{"openapi":"3.1.0","info":{"title":"Photos Library API","version":"v1","description":"Manage photos, videos, and albums created by your app in Google Photos "},"servers":[{"url":"https://www.googleapis.com/"}],"paths":{"/v1/mediaItems:batchCreate":{"post":{"operationId":"photoslibrary.mediaItems.batchCreate","x-executor-toolPath":"photoslibrary.mediaItems.batchCreate","x-executor-pathTemplate":"/v1/mediaItems:batchCreate","tags":["Photos Library API"],"description":"Creates one or more media items in a user's Google Photos library. This is the second step for creating a media item. For details regarding Step 1, uploading the raw bytes to a Google Server, see Uploading media. This call adds the media item to the library. If an app created album `id` is specified, the call adds the media item to the album too. Each album can contain up to 20,000 media items. By default, the media item will be added to the end of the library or album. If an album `id` and position are both defined, the media item is added to the album at the specified position. If the call contains multiple media items, they're added at the specified position.","servers":[{"url":"https://photoslibrary.googleapis.com/"}],"parameters":[{"name":"key","in":"query","required":false,"description":"API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.","schema":{"description":"API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.","type":"string"},"style":"form","explode":false},{"name":"access_token","in":"query","required":false,"description":"OAuth access token.","schema":{"description":"OAuth access token.","type":"string"},"style":"form","explode":false},{"name":"uploadType","in":"query","required":false,"description":"Legacy upload protocol for media (e.g. \"media\", \"multipart\").","schema":{"description":"Legacy upload protocol for media (e.g. \"media\", \"multipart\").","type":"string"},"style":"form","explode":false},{"name":"callback","in":"query","required":false,"description":"JSONP","schema":{"description":"JSONP","type":"string"},"style":"form","explode":false},{"name":"fields","in":"query","required":false,"description":"Selector specifying which fields to include in a partial response.","schema":{"description":"Selector specifying which fields to include in a partial response.","type":"string"},"style":"form","explode":false},{"name":"upload_protocol","in":"query","required":false,"description":"Upload protocol for media (e.g. \"raw\", \"multipart\").","schema":{"description":"Upload protocol for media (e.g. \"raw\", \"multipart\").","type":"string"},"style":"form","explode":false},{"name":"prettyPrint","in":"query","required":false,"description":"Returns response with indentations and line breaks.","schema":{"description":"Returns response with indentations and line breaks.","default":"true","type":"boolean"},"style":"form","explode":false},{"name":"$.xgafv","in":"query","required":false,"description":"V1 error format.","schema":{"description":"V1 error format.","enum":["1","2"],"type":"string"},"style":"form","explode":false},{"name":"quotaUser","in":"query","required":false,"description":"Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.","schema":{"description":"Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.","type":"string"},"style":"form","explode":false},{"name":"alt","in":"query","required":false,"description":"Data format for response.","schema":{"description":"Data format for response.","default":"json","enum":["json","media","proto"],"type":"string"},"style":"form","explode":false},{"name":"oauth_token","in":"query","required":false,"description":"OAuth 2.0 token for the current user.","schema":{"description":"OAuth 2.0 token for the current user.","type":"string"},"style":"form","explode":false}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/photoslibrary_v1_BatchCreateMediaItemsRequest"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/photoslibrary_v1_BatchCreateMediaItemsResponse"}}}}},"security":[{"googleOAuth2":["https://www.googleapis.com/auth/photoslibrary.appendonly"]}],"x-google-scopes":["https://www.googleapis.com/auth/photoslibrary.appendonly"]}},"/v1/mediaItems:search":{"post":{"operationId":"photoslibrary.mediaItems.search","x-executor-toolPath":"photoslibrary.mediaItems.search","x-executor-pathTemplate":"/v1/mediaItems:search","tags":["Photos Library API"],"description":"Searches for app created media items in a user's Google Photos library. Only media items and ablums created by your app are returned. If no filters are set, then all app created media items in the user's library are returned. If an app created album is set, all media items in the specified album are returned. If filters are specified, app created media items that match the filters from the user's library are listed. If you set both the album and the filters, the request results in an error.","servers":[{"url":"https://photoslibrary.googleapis.com/"}],"parameters":[{"name":"key","in":"query","required":false,"description":"API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.","schema":{"description":"API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.","type":"string"},"style":"form","explode":false},{"name":"access_token","in":"query","required":false,"description":"OAuth access token.","schema":{"description":"OAuth access token.","type":"string"},"style":"form","explode":false},{"name":"uploadType","in":"query","required":false,"description":"Legacy upload protocol for media (e.g. \"media\", \"multipart\").","schema":{"description":"Legacy upload protocol for media (e.g. \"media\", \"multipart\").","type":"string"},"style":"form","explode":false},{"name":"callback","in":"query","required":false,"description":"JSONP","schema":{"description":"JSONP","type":"string"},"style":"form","explode":false},{"name":"fields","in":"query","required":false,"description":"Selector specifying which fields to include in a partial response.","schema":{"description":"Selector specifying which fields to include in a partial response.","type":"string"},"style":"form","explode":false},{"name":"upload_protocol","in":"query","required":false,"description":"Upload protocol for media (e.g. \"raw\", \"multipart\").","schema":{"description":"Upload protocol for media (e.g. \"raw\", \"multipart\").","type":"string"},"style":"form","explode":false},{"name":"prettyPrint","in":"query","required":false,"description":"Returns response with indentations and line breaks.","schema":{"description":"Returns response with indentations and line breaks.","default":"true","type":"boolean"},"style":"form","explode":false},{"name":"$.xgafv","in":"query","required":false,"description":"V1 error format.","schema":{"description":"V1 error format.","enum":["1","2"],"type":"string"},"style":"form","explode":false},{"name":"quotaUser","in":"query","required":false,"description":"Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.","schema":{"description":"Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.","type":"string"},"style":"form","explode":false},{"name":"alt","in":"query","required":false,"description":"Data format for response.","schema":{"description":"Data format for response.","default":"json","enum":["json","media","proto"],"type":"string"},"style":"form","explode":false},{"name":"oauth_token","in":"query","required":false,"description":"OAuth 2.0 token for the current user.","schema":{"description":"OAuth 2.0 token for the current user.","type":"string"},"style":"form","explode":false}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/photoslibrary_v1_SearchMediaItemsRequest"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/photoslibrary_v1_SearchMediaItemsResponse"}}}}},"security":[{"googleOAuth2":["https://www.googleapis.com/auth/photoslibrary.readonly.appcreateddata"]}],"x-google-scopes":["https://www.googleapis.com/auth/photoslibrary.readonly.appcreateddata"]}},"/v1/mediaItems/{mediaItemId}":{"get":{"operationId":"photoslibrary.mediaItems.get","x-executor-toolPath":"photoslibrary.mediaItems.get","x-executor-pathTemplate":"/v1/mediaItems/{+mediaItemId}","tags":["Photos Library API"],"description":"Returns the app created media item for the specified media item identifier.","servers":[{"url":"https://photoslibrary.googleapis.com/"}],"parameters":[{"name":"key","in":"query","required":false,"description":"API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.","schema":{"description":"API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.","type":"string"},"style":"form","explode":false},{"name":"access_token","in":"query","required":false,"description":"OAuth access token.","schema":{"description":"OAuth access token.","type":"string"},"style":"form","explode":false},{"name":"uploadType","in":"query","required":false,"description":"Legacy upload protocol for media (e.g. \"media\", \"multipart\").","schema":{"description":"Legacy upload protocol for media (e.g. \"media\", \"multipart\").","type":"string"},"style":"form","explode":false},{"name":"callback","in":"query","required":false,"description":"JSONP","schema":{"description":"JSONP","type":"string"},"style":"form","explode":false},{"name":"fields","in":"query","required":false,"description":"Selector specifying which fields to include in a partial response.","schema":{"description":"Selector specifying which fields to include in a partial response.","type":"string"},"style":"form","explode":false},{"name":"upload_protocol","in":"query","required":false,"description":"Upload protocol for media (e.g. \"raw\", \"multipart\").","schema":{"description":"Upload protocol for media (e.g. \"raw\", \"multipart\").","type":"string"},"style":"form","explode":false},{"name":"prettyPrint","in":"query","required":false,"description":"Returns response with indentations and line breaks.","schema":{"description":"Returns response with indentations and line breaks.","default":"true","type":"boolean"},"style":"form","explode":false},{"name":"$.xgafv","in":"query","required":false,"description":"V1 error format.","schema":{"description":"V1 error format.","enum":["1","2"],"type":"string"},"style":"form","explode":false},{"name":"quotaUser","in":"query","required":false,"description":"Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.","schema":{"description":"Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.","type":"string"},"style":"form","explode":false},{"name":"alt","in":"query","required":false,"description":"Data format for response.","schema":{"description":"Data format for response.","default":"json","enum":["json","media","proto"],"type":"string"},"style":"form","explode":false},{"name":"oauth_token","in":"query","required":false,"description":"OAuth 2.0 token for the current user.","schema":{"description":"OAuth 2.0 token for the current user.","type":"string"},"style":"form","explode":false},{"name":"mediaItemId","in":"path","required":true,"description":"Required. Identifier of the media item to be requested.","schema":{"description":"Required. Identifier of the media item to be requested.","type":"string"},"allowReserved":true}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/photoslibrary_v1_MediaItem"}}}}},"security":[{"googleOAuth2":["https://www.googleapis.com/auth/photoslibrary.readonly.appcreateddata"]}],"x-google-scopes":["https://www.googleapis.com/auth/photoslibrary.readonly.appcreateddata"]}},"/v1/mediaItems":{"get":{"operationId":"photoslibrary.mediaItems.list","x-executor-toolPath":"photoslibrary.mediaItems.list","x-executor-pathTemplate":"/v1/mediaItems","tags":["Photos Library API"],"description":"List all media items created by your app from a user's Google Photos library.","servers":[{"url":"https://photoslibrary.googleapis.com/"}],"parameters":[{"name":"key","in":"query","required":false,"description":"API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.","schema":{"description":"API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.","type":"string"},"style":"form","explode":false},{"name":"access_token","in":"query","required":false,"description":"OAuth access token.","schema":{"description":"OAuth access token.","type":"string"},"style":"form","explode":false},{"name":"uploadType","in":"query","required":false,"description":"Legacy upload protocol for media (e.g. \"media\", \"multipart\").","schema":{"description":"Legacy upload protocol for media (e.g. \"media\", \"multipart\").","type":"string"},"style":"form","explode":false},{"name":"callback","in":"query","required":false,"description":"JSONP","schema":{"description":"JSONP","type":"string"},"style":"form","explode":false},{"name":"fields","in":"query","required":false,"description":"Selector specifying which fields to include in a partial response.","schema":{"description":"Selector specifying which fields to include in a partial response.","type":"string"},"style":"form","explode":false},{"name":"upload_protocol","in":"query","required":false,"description":"Upload protocol for media (e.g. \"raw\", \"multipart\").","schema":{"description":"Upload protocol for media (e.g. \"raw\", \"multipart\").","type":"string"},"style":"form","explode":false},{"name":"prettyPrint","in":"query","required":false,"description":"Returns response with indentations and line breaks.","schema":{"description":"Returns response with indentations and line breaks.","default":"true","type":"boolean"},"style":"form","explode":false},{"name":"$.xgafv","in":"query","required":false,"description":"V1 error format.","schema":{"description":"V1 error format.","enum":["1","2"],"type":"string"},"style":"form","explode":false},{"name":"quotaUser","in":"query","required":false,"description":"Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.","schema":{"description":"Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.","type":"string"},"style":"form","explode":false},{"name":"alt","in":"query","required":false,"description":"Data format for response.","schema":{"description":"Data format for response.","default":"json","enum":["json","media","proto"],"type":"string"},"style":"form","explode":false},{"name":"oauth_token","in":"query","required":false,"description":"OAuth 2.0 token for the current user.","schema":{"description":"OAuth 2.0 token for the current user.","type":"string"},"style":"form","explode":false},{"name":"pageToken","in":"query","required":false,"description":"A continuation token to get the next page of the results. Adding this to the request returns the rows after the `pageToken`. The `pageToken` should be the value returned in the `nextPageToken` parameter in the response to the `listMediaItems` request.","schema":{"description":"A continuation token to get the next page of the results. Adding this to the request returns the rows after the `pageToken`. The `pageToken` should be the value returned in the `nextPageToken` parameter in the response to the `listMediaItems` request.","type":"string"},"style":"form","explode":false},{"name":"pageSize","in":"query","required":false,"description":"Maximum number of media items to return in the response. Fewer media items might be returned than the specified number. The default `pageSize` is 25, the maximum is 100.","schema":{"description":"Maximum number of media items to return in the response. Fewer media items might be returned than the specified number. The default `pageSize` is 25, the maximum is 100.","format":"int32","type":"integer"},"style":"form","explode":false}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/photoslibrary_v1_ListMediaItemsResponse"}}}}},"security":[{"googleOAuth2":["https://www.googleapis.com/auth/photoslibrary.readonly.appcreateddata"]}],"x-google-scopes":["https://www.googleapis.com/auth/photoslibrary.readonly.appcreateddata"]}},"/v1/mediaItems/{id}":{"patch":{"operationId":"photoslibrary.mediaItems.patch","x-executor-toolPath":"photoslibrary.mediaItems.patch","x-executor-pathTemplate":"/v1/mediaItems/{+id}","tags":["Photos Library API"],"description":"Update the app created media item with the specified `id`. Only the `id` and `description` fields of the media item are read. The media item must have been created by the developer via the API.","servers":[{"url":"https://photoslibrary.googleapis.com/"}],"parameters":[{"name":"key","in":"query","required":false,"description":"API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.","schema":{"description":"API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.","type":"string"},"style":"form","explode":false},{"name":"access_token","in":"query","required":false,"description":"OAuth access token.","schema":{"description":"OAuth access token.","type":"string"},"style":"form","explode":false},{"name":"uploadType","in":"query","required":false,"description":"Legacy upload protocol for media (e.g. \"media\", \"multipart\").","schema":{"description":"Legacy upload protocol for media (e.g. \"media\", \"multipart\").","type":"string"},"style":"form","explode":false},{"name":"callback","in":"query","required":false,"description":"JSONP","schema":{"description":"JSONP","type":"string"},"style":"form","explode":false},{"name":"fields","in":"query","required":false,"description":"Selector specifying which fields to include in a partial response.","schema":{"description":"Selector specifying which fields to include in a partial response.","type":"string"},"style":"form","explode":false},{"name":"upload_protocol","in":"query","required":false,"description":"Upload protocol for media (e.g. \"raw\", \"multipart\").","schema":{"description":"Upload protocol for media (e.g. \"raw\", \"multipart\").","type":"string"},"style":"form","explode":false},{"name":"prettyPrint","in":"query","required":false,"description":"Returns response with indentations and line breaks.","schema":{"description":"Returns response with indentations and line breaks.","default":"true","type":"boolean"},"style":"form","explode":false},{"name":"$.xgafv","in":"query","required":false,"description":"V1 error format.","schema":{"description":"V1 error format.","enum":["1","2"],"type":"string"},"style":"form","explode":false},{"name":"quotaUser","in":"query","required":false,"description":"Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.","schema":{"description":"Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.","type":"string"},"style":"form","explode":false},{"name":"alt","in":"query","required":false,"description":"Data format for response.","schema":{"description":"Data format for response.","default":"json","enum":["json","media","proto"],"type":"string"},"style":"form","explode":false},{"name":"oauth_token","in":"query","required":false,"description":"OAuth 2.0 token for the current user.","schema":{"description":"OAuth 2.0 token for the current user.","type":"string"},"style":"form","explode":false},{"name":"updateMask","in":"query","required":false,"description":"Required. Indicate what fields in the provided media item to update. The only valid value is `description`.","schema":{"description":"Required. Indicate what fields in the provided media item to update. The only valid value is `description`.","format":"google-fieldmask","type":"string"},"style":"form","explode":false},{"name":"id","in":"path","required":true,"description":"Identifier for the media item. This is a persistent identifier that can be used between sessions to identify this media item.","schema":{"description":"Identifier for the media item. This is a persistent identifier that can be used between sessions to identify this media item.","type":"string"},"allowReserved":true}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/photoslibrary_v1_MediaItem"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/photoslibrary_v1_MediaItem"}}}}},"security":[{"googleOAuth2":["https://www.googleapis.com/auth/photoslibrary.edit.appcreateddata"]}],"x-google-scopes":["https://www.googleapis.com/auth/photoslibrary.edit.appcreateddata"]}},"/v1/mediaItems:batchGet":{"get":{"operationId":"photoslibrary.mediaItems.batchGet","x-executor-toolPath":"photoslibrary.mediaItems.batchGet","x-executor-pathTemplate":"/v1/mediaItems:batchGet","tags":["Photos Library API"],"description":"Returns the list of app created media items for the specified media item identifiers. Items are returned in the same order as the supplied identifiers.","servers":[{"url":"https://photoslibrary.googleapis.com/"}],"parameters":[{"name":"key","in":"query","required":false,"description":"API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.","schema":{"description":"API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.","type":"string"},"style":"form","explode":false},{"name":"access_token","in":"query","required":false,"description":"OAuth access token.","schema":{"description":"OAuth access token.","type":"string"},"style":"form","explode":false},{"name":"uploadType","in":"query","required":false,"description":"Legacy upload protocol for media (e.g. \"media\", \"multipart\").","schema":{"description":"Legacy upload protocol for media (e.g. \"media\", \"multipart\").","type":"string"},"style":"form","explode":false},{"name":"callback","in":"query","required":false,"description":"JSONP","schema":{"description":"JSONP","type":"string"},"style":"form","explode":false},{"name":"fields","in":"query","required":false,"description":"Selector specifying which fields to include in a partial response.","schema":{"description":"Selector specifying which fields to include in a partial response.","type":"string"},"style":"form","explode":false},{"name":"upload_protocol","in":"query","required":false,"description":"Upload protocol for media (e.g. \"raw\", \"multipart\").","schema":{"description":"Upload protocol for media (e.g. \"raw\", \"multipart\").","type":"string"},"style":"form","explode":false},{"name":"prettyPrint","in":"query","required":false,"description":"Returns response with indentations and line breaks.","schema":{"description":"Returns response with indentations and line breaks.","default":"true","type":"boolean"},"style":"form","explode":false},{"name":"$.xgafv","in":"query","required":false,"description":"V1 error format.","schema":{"description":"V1 error format.","enum":["1","2"],"type":"string"},"style":"form","explode":false},{"name":"quotaUser","in":"query","required":false,"description":"Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.","schema":{"description":"Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.","type":"string"},"style":"form","explode":false},{"name":"alt","in":"query","required":false,"description":"Data format for response.","schema":{"description":"Data format for response.","default":"json","enum":["json","media","proto"],"type":"string"},"style":"form","explode":false},{"name":"oauth_token","in":"query","required":false,"description":"OAuth 2.0 token for the current user.","schema":{"description":"OAuth 2.0 token for the current user.","type":"string"},"style":"form","explode":false},{"name":"mediaItemIds","in":"query","required":false,"description":"Required. Identifiers of the media items to be requested. Must not contain repeated identifiers and cannot be empty. The maximum number of media items that can be retrieved in one call is 50.","schema":{"type":"array","items":{"description":"Required. Identifiers of the media items to be requested. Must not contain repeated identifiers and cannot be empty. The maximum number of media items that can be retrieved in one call is 50.","type":"string"}},"style":"form","explode":true}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/photoslibrary_v1_BatchGetMediaItemsResponse"}}}}},"security":[{"googleOAuth2":["https://www.googleapis.com/auth/photoslibrary.readonly.appcreateddata"]}],"x-google-scopes":["https://www.googleapis.com/auth/photoslibrary.readonly.appcreateddata"]}},"/v1/albums/{id}":{"patch":{"operationId":"photoslibrary.albums.patch","x-executor-toolPath":"photoslibrary.albums.patch","x-executor-pathTemplate":"/v1/albums/{+id}","tags":["Photos Library API"],"description":"Update the app created album with the specified `id`. Only the `id`, `title` and `cover_photo_media_item_id` fields of the album are read. The album must have been created by the developer via the API.","servers":[{"url":"https://photoslibrary.googleapis.com/"}],"parameters":[{"name":"key","in":"query","required":false,"description":"API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.","schema":{"description":"API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.","type":"string"},"style":"form","explode":false},{"name":"access_token","in":"query","required":false,"description":"OAuth access token.","schema":{"description":"OAuth access token.","type":"string"},"style":"form","explode":false},{"name":"uploadType","in":"query","required":false,"description":"Legacy upload protocol for media (e.g. \"media\", \"multipart\").","schema":{"description":"Legacy upload protocol for media (e.g. \"media\", \"multipart\").","type":"string"},"style":"form","explode":false},{"name":"callback","in":"query","required":false,"description":"JSONP","schema":{"description":"JSONP","type":"string"},"style":"form","explode":false},{"name":"fields","in":"query","required":false,"description":"Selector specifying which fields to include in a partial response.","schema":{"description":"Selector specifying which fields to include in a partial response.","type":"string"},"style":"form","explode":false},{"name":"upload_protocol","in":"query","required":false,"description":"Upload protocol for media (e.g. \"raw\", \"multipart\").","schema":{"description":"Upload protocol for media (e.g. \"raw\", \"multipart\").","type":"string"},"style":"form","explode":false},{"name":"prettyPrint","in":"query","required":false,"description":"Returns response with indentations and line breaks.","schema":{"description":"Returns response with indentations and line breaks.","default":"true","type":"boolean"},"style":"form","explode":false},{"name":"$.xgafv","in":"query","required":false,"description":"V1 error format.","schema":{"description":"V1 error format.","enum":["1","2"],"type":"string"},"style":"form","explode":false},{"name":"quotaUser","in":"query","required":false,"description":"Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.","schema":{"description":"Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.","type":"string"},"style":"form","explode":false},{"name":"alt","in":"query","required":false,"description":"Data format for response.","schema":{"description":"Data format for response.","default":"json","enum":["json","media","proto"],"type":"string"},"style":"form","explode":false},{"name":"oauth_token","in":"query","required":false,"description":"OAuth 2.0 token for the current user.","schema":{"description":"OAuth 2.0 token for the current user.","type":"string"},"style":"form","explode":false},{"name":"id","in":"path","required":true,"description":"Identifier for the album. This is a persistent identifier that can be used between sessions to identify this album.","schema":{"description":"Identifier for the album. This is a persistent identifier that can be used between sessions to identify this album.","type":"string"},"allowReserved":true},{"name":"updateMask","in":"query","required":false,"description":"Required. Indicate what fields in the provided album to update. The only valid values are `title` and `cover_photo_media_item_id`.","schema":{"description":"Required. Indicate what fields in the provided album to update. The only valid values are `title` and `cover_photo_media_item_id`.","format":"google-fieldmask","type":"string"},"style":"form","explode":false}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/photoslibrary_v1_Album"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/photoslibrary_v1_Album"}}}}},"security":[{"googleOAuth2":["https://www.googleapis.com/auth/photoslibrary.edit.appcreateddata"]}],"x-google-scopes":["https://www.googleapis.com/auth/photoslibrary.edit.appcreateddata"]}},"/v1/albums/{albumId}:batchAddMediaItems":{"post":{"operationId":"photoslibrary.albums.batchAddMediaItems","x-executor-toolPath":"photoslibrary.albums.batchAddMediaItems","x-executor-pathTemplate":"/v1/albums/{+albumId}:batchAddMediaItems","tags":["Photos Library API"],"description":"Adds one or more app created media items in a user's Google Photos library to an app created album. The media items and albums must have been created by the developer via the API. Media items are added to the end of the album. If multiple media items are given, they are added in the order specified in this call. Each album can contain up to 20,000 media items. Partial success is not supported. The entire request will fail if an invalid media item or album is specified.","servers":[{"url":"https://photoslibrary.googleapis.com/"}],"parameters":[{"name":"key","in":"query","required":false,"description":"API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.","schema":{"description":"API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.","type":"string"},"style":"form","explode":false},{"name":"access_token","in":"query","required":false,"description":"OAuth access token.","schema":{"description":"OAuth access token.","type":"string"},"style":"form","explode":false},{"name":"uploadType","in":"query","required":false,"description":"Legacy upload protocol for media (e.g. \"media\", \"multipart\").","schema":{"description":"Legacy upload protocol for media (e.g. \"media\", \"multipart\").","type":"string"},"style":"form","explode":false},{"name":"callback","in":"query","required":false,"description":"JSONP","schema":{"description":"JSONP","type":"string"},"style":"form","explode":false},{"name":"fields","in":"query","required":false,"description":"Selector specifying which fields to include in a partial response.","schema":{"description":"Selector specifying which fields to include in a partial response.","type":"string"},"style":"form","explode":false},{"name":"upload_protocol","in":"query","required":false,"description":"Upload protocol for media (e.g. \"raw\", \"multipart\").","schema":{"description":"Upload protocol for media (e.g. \"raw\", \"multipart\").","type":"string"},"style":"form","explode":false},{"name":"prettyPrint","in":"query","required":false,"description":"Returns response with indentations and line breaks.","schema":{"description":"Returns response with indentations and line breaks.","default":"true","type":"boolean"},"style":"form","explode":false},{"name":"$.xgafv","in":"query","required":false,"description":"V1 error format.","schema":{"description":"V1 error format.","enum":["1","2"],"type":"string"},"style":"form","explode":false},{"name":"quotaUser","in":"query","required":false,"description":"Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.","schema":{"description":"Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.","type":"string"},"style":"form","explode":false},{"name":"alt","in":"query","required":false,"description":"Data format for response.","schema":{"description":"Data format for response.","default":"json","enum":["json","media","proto"],"type":"string"},"style":"form","explode":false},{"name":"oauth_token","in":"query","required":false,"description":"OAuth 2.0 token for the current user.","schema":{"description":"OAuth 2.0 token for the current user.","type":"string"},"style":"form","explode":false},{"name":"albumId","in":"path","required":true,"description":"Required. Identifier of the Album that the media items are added to.","schema":{"description":"Required. Identifier of the Album that the media items are added to.","type":"string"},"allowReserved":true}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/photoslibrary_v1_BatchAddMediaItemsToAlbumRequest"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/photoslibrary_v1_BatchAddMediaItemsToAlbumResponse"}}}}},"security":[{"googleOAuth2":["https://www.googleapis.com/auth/photoslibrary.appendonly"]},{"googleOAuth2":["https://www.googleapis.com/auth/photoslibrary.edit.appcreateddata"]}],"x-google-scopes":["https://www.googleapis.com/auth/photoslibrary.appendonly","https://www.googleapis.com/auth/photoslibrary.edit.appcreateddata"]}},"/v1/albums/{albumId}:addEnrichment":{"post":{"operationId":"photoslibrary.albums.addEnrichment","x-executor-toolPath":"photoslibrary.albums.addEnrichment","x-executor-pathTemplate":"/v1/albums/{+albumId}:addEnrichment","tags":["Photos Library API"],"description":"Adds an enrichment at a specified position in an app created created album.","servers":[{"url":"https://photoslibrary.googleapis.com/"}],"parameters":[{"name":"key","in":"query","required":false,"description":"API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.","schema":{"description":"API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.","type":"string"},"style":"form","explode":false},{"name":"access_token","in":"query","required":false,"description":"OAuth access token.","schema":{"description":"OAuth access token.","type":"string"},"style":"form","explode":false},{"name":"uploadType","in":"query","required":false,"description":"Legacy upload protocol for media (e.g. \"media\", \"multipart\").","schema":{"description":"Legacy upload protocol for media (e.g. \"media\", \"multipart\").","type":"string"},"style":"form","explode":false},{"name":"callback","in":"query","required":false,"description":"JSONP","schema":{"description":"JSONP","type":"string"},"style":"form","explode":false},{"name":"fields","in":"query","required":false,"description":"Selector specifying which fields to include in a partial response.","schema":{"description":"Selector specifying which fields to include in a partial response.","type":"string"},"style":"form","explode":false},{"name":"upload_protocol","in":"query","required":false,"description":"Upload protocol for media (e.g. \"raw\", \"multipart\").","schema":{"description":"Upload protocol for media (e.g. \"raw\", \"multipart\").","type":"string"},"style":"form","explode":false},{"name":"prettyPrint","in":"query","required":false,"description":"Returns response with indentations and line breaks.","schema":{"description":"Returns response with indentations and line breaks.","default":"true","type":"boolean"},"style":"form","explode":false},{"name":"$.xgafv","in":"query","required":false,"description":"V1 error format.","schema":{"description":"V1 error format.","enum":["1","2"],"type":"string"},"style":"form","explode":false},{"name":"quotaUser","in":"query","required":false,"description":"Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.","schema":{"description":"Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.","type":"string"},"style":"form","explode":false},{"name":"alt","in":"query","required":false,"description":"Data format for response.","schema":{"description":"Data format for response.","default":"json","enum":["json","media","proto"],"type":"string"},"style":"form","explode":false},{"name":"oauth_token","in":"query","required":false,"description":"OAuth 2.0 token for the current user.","schema":{"description":"OAuth 2.0 token for the current user.","type":"string"},"style":"form","explode":false},{"name":"albumId","in":"path","required":true,"description":"Required. Identifier of the app created album where the enrichment is to be added.","schema":{"description":"Required. Identifier of the app created album where the enrichment is to be added.","type":"string"},"allowReserved":true}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/photoslibrary_v1_AddEnrichmentToAlbumRequest"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/photoslibrary_v1_AddEnrichmentToAlbumResponse"}}}}},"security":[{"googleOAuth2":["https://www.googleapis.com/auth/photoslibrary.appendonly"]},{"googleOAuth2":["https://www.googleapis.com/auth/photoslibrary.edit.appcreateddata"]}],"x-google-scopes":["https://www.googleapis.com/auth/photoslibrary.appendonly","https://www.googleapis.com/auth/photoslibrary.edit.appcreateddata"]}},"/v1/albums":{"get":{"operationId":"photoslibrary.albums.list","x-executor-toolPath":"photoslibrary.albums.list","x-executor-pathTemplate":"/v1/albums","tags":["Photos Library API"],"description":"Lists all albums created by your app.","servers":[{"url":"https://photoslibrary.googleapis.com/"}],"parameters":[{"name":"key","in":"query","required":false,"description":"API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.","schema":{"description":"API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.","type":"string"},"style":"form","explode":false},{"name":"access_token","in":"query","required":false,"description":"OAuth access token.","schema":{"description":"OAuth access token.","type":"string"},"style":"form","explode":false},{"name":"uploadType","in":"query","required":false,"description":"Legacy upload protocol for media (e.g. \"media\", \"multipart\").","schema":{"description":"Legacy upload protocol for media (e.g. \"media\", \"multipart\").","type":"string"},"style":"form","explode":false},{"name":"callback","in":"query","required":false,"description":"JSONP","schema":{"description":"JSONP","type":"string"},"style":"form","explode":false},{"name":"fields","in":"query","required":false,"description":"Selector specifying which fields to include in a partial response.","schema":{"description":"Selector specifying which fields to include in a partial response.","type":"string"},"style":"form","explode":false},{"name":"upload_protocol","in":"query","required":false,"description":"Upload protocol for media (e.g. \"raw\", \"multipart\").","schema":{"description":"Upload protocol for media (e.g. \"raw\", \"multipart\").","type":"string"},"style":"form","explode":false},{"name":"prettyPrint","in":"query","required":false,"description":"Returns response with indentations and line breaks.","schema":{"description":"Returns response with indentations and line breaks.","default":"true","type":"boolean"},"style":"form","explode":false},{"name":"$.xgafv","in":"query","required":false,"description":"V1 error format.","schema":{"description":"V1 error format.","enum":["1","2"],"type":"string"},"style":"form","explode":false},{"name":"quotaUser","in":"query","required":false,"description":"Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.","schema":{"description":"Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.","type":"string"},"style":"form","explode":false},{"name":"alt","in":"query","required":false,"description":"Data format for response.","schema":{"description":"Data format for response.","default":"json","enum":["json","media","proto"],"type":"string"},"style":"form","explode":false},{"name":"oauth_token","in":"query","required":false,"description":"OAuth 2.0 token for the current user.","schema":{"description":"OAuth 2.0 token for the current user.","type":"string"},"style":"form","explode":false},{"name":"pageToken","in":"query","required":false,"description":"A continuation token to get the next page of the results. Adding this to the request returns the rows after the `pageToken`. The `pageToken` should be the value returned in the `nextPageToken` parameter in the response to the `listAlbums` request.","schema":{"description":"A continuation token to get the next page of the results. Adding this to the request returns the rows after the `pageToken`. The `pageToken` should be the value returned in the `nextPageToken` parameter in the response to the `listAlbums` request.","type":"string"},"style":"form","explode":false},{"name":"pageSize","in":"query","required":false,"description":"Maximum number of albums to return in the response. Fewer albums might be returned than the specified number. The default `pageSize` is 20, the maximum is 50.","schema":{"description":"Maximum number of albums to return in the response. Fewer albums might be returned than the specified number. The default `pageSize` is 20, the maximum is 50.","format":"int32","type":"integer"},"style":"form","explode":false},{"name":"excludeNonAppCreatedData","in":"query","required":false,"description":"If set, the results exclude media items that were not created by this app. Defaults to false (all albums are returned). This field is ignored if the photoslibrary.readonly.appcreateddata scope is used.","schema":{"description":"If set, the results exclude media items that were not created by this app. Defaults to false (all albums are returned). This field is ignored if the photoslibrary.readonly.appcreateddata scope is used.","type":"boolean"},"style":"form","explode":false}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/photoslibrary_v1_ListAlbumsResponse"}}}}},"security":[{"googleOAuth2":["https://www.googleapis.com/auth/photoslibrary.readonly.appcreateddata"]}],"x-google-scopes":["https://www.googleapis.com/auth/photoslibrary.readonly.appcreateddata"]},"post":{"operationId":"photoslibrary.albums.create","x-executor-toolPath":"photoslibrary.albums.create","x-executor-pathTemplate":"/v1/albums","tags":["Photos Library API"],"description":"Creates an album in a user's Google Photos library.","servers":[{"url":"https://photoslibrary.googleapis.com/"}],"parameters":[{"name":"key","in":"query","required":false,"description":"API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.","schema":{"description":"API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.","type":"string"},"style":"form","explode":false},{"name":"access_token","in":"query","required":false,"description":"OAuth access token.","schema":{"description":"OAuth access token.","type":"string"},"style":"form","explode":false},{"name":"uploadType","in":"query","required":false,"description":"Legacy upload protocol for media (e.g. \"media\", \"multipart\").","schema":{"description":"Legacy upload protocol for media (e.g. \"media\", \"multipart\").","type":"string"},"style":"form","explode":false},{"name":"callback","in":"query","required":false,"description":"JSONP","schema":{"description":"JSONP","type":"string"},"style":"form","explode":false},{"name":"fields","in":"query","required":false,"description":"Selector specifying which fields to include in a partial response.","schema":{"description":"Selector specifying which fields to include in a partial response.","type":"string"},"style":"form","explode":false},{"name":"upload_protocol","in":"query","required":false,"description":"Upload protocol for media (e.g. \"raw\", \"multipart\").","schema":{"description":"Upload protocol for media (e.g. \"raw\", \"multipart\").","type":"string"},"style":"form","explode":false},{"name":"prettyPrint","in":"query","required":false,"description":"Returns response with indentations and line breaks.","schema":{"description":"Returns response with indentations and line breaks.","default":"true","type":"boolean"},"style":"form","explode":false},{"name":"$.xgafv","in":"query","required":false,"description":"V1 error format.","schema":{"description":"V1 error format.","enum":["1","2"],"type":"string"},"style":"form","explode":false},{"name":"quotaUser","in":"query","required":false,"description":"Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.","schema":{"description":"Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.","type":"string"},"style":"form","explode":false},{"name":"alt","in":"query","required":false,"description":"Data format for response.","schema":{"description":"Data format for response.","default":"json","enum":["json","media","proto"],"type":"string"},"style":"form","explode":false},{"name":"oauth_token","in":"query","required":false,"description":"OAuth 2.0 token for the current user.","schema":{"description":"OAuth 2.0 token for the current user.","type":"string"},"style":"form","explode":false}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/photoslibrary_v1_CreateAlbumRequest"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/photoslibrary_v1_Album"}}}}},"security":[{"googleOAuth2":["https://www.googleapis.com/auth/photoslibrary.appendonly"]}],"x-google-scopes":["https://www.googleapis.com/auth/photoslibrary.appendonly"]}},"/v1/albums/{albumId}:batchRemoveMediaItems":{"post":{"operationId":"photoslibrary.albums.batchRemoveMediaItems","x-executor-toolPath":"photoslibrary.albums.batchRemoveMediaItems","x-executor-pathTemplate":"/v1/albums/{+albumId}:batchRemoveMediaItems","tags":["Photos Library API"],"description":"Removes one or more app created media items from a specified app created album. The media items and the album must have been created by the developer via the API. Partial success is not supported. The entire request will fail and no action will be performed on the album if an invalid media item or album is specified.","servers":[{"url":"https://photoslibrary.googleapis.com/"}],"parameters":[{"name":"key","in":"query","required":false,"description":"API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.","schema":{"description":"API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.","type":"string"},"style":"form","explode":false},{"name":"access_token","in":"query","required":false,"description":"OAuth access token.","schema":{"description":"OAuth access token.","type":"string"},"style":"form","explode":false},{"name":"uploadType","in":"query","required":false,"description":"Legacy upload protocol for media (e.g. \"media\", \"multipart\").","schema":{"description":"Legacy upload protocol for media (e.g. \"media\", \"multipart\").","type":"string"},"style":"form","explode":false},{"name":"callback","in":"query","required":false,"description":"JSONP","schema":{"description":"JSONP","type":"string"},"style":"form","explode":false},{"name":"fields","in":"query","required":false,"description":"Selector specifying which fields to include in a partial response.","schema":{"description":"Selector specifying which fields to include in a partial response.","type":"string"},"style":"form","explode":false},{"name":"upload_protocol","in":"query","required":false,"description":"Upload protocol for media (e.g. \"raw\", \"multipart\").","schema":{"description":"Upload protocol for media (e.g. \"raw\", \"multipart\").","type":"string"},"style":"form","explode":false},{"name":"prettyPrint","in":"query","required":false,"description":"Returns response with indentations and line breaks.","schema":{"description":"Returns response with indentations and line breaks.","default":"true","type":"boolean"},"style":"form","explode":false},{"name":"$.xgafv","in":"query","required":false,"description":"V1 error format.","schema":{"description":"V1 error format.","enum":["1","2"],"type":"string"},"style":"form","explode":false},{"name":"quotaUser","in":"query","required":false,"description":"Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.","schema":{"description":"Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.","type":"string"},"style":"form","explode":false},{"name":"alt","in":"query","required":false,"description":"Data format for response.","schema":{"description":"Data format for response.","default":"json","enum":["json","media","proto"],"type":"string"},"style":"form","explode":false},{"name":"oauth_token","in":"query","required":false,"description":"OAuth 2.0 token for the current user.","schema":{"description":"OAuth 2.0 token for the current user.","type":"string"},"style":"form","explode":false},{"name":"albumId","in":"path","required":true,"description":"Required. Identifier of the Album that the media items are to be removed from.","schema":{"description":"Required. Identifier of the Album that the media items are to be removed from.","type":"string"},"allowReserved":true}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/photoslibrary_v1_BatchRemoveMediaItemsFromAlbumRequest"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/photoslibrary_v1_BatchRemoveMediaItemsFromAlbumResponse"}}}}},"security":[{"googleOAuth2":["https://www.googleapis.com/auth/photoslibrary.edit.appcreateddata"]}],"x-google-scopes":["https://www.googleapis.com/auth/photoslibrary.edit.appcreateddata"]}},"/v1/albums/{albumId}":{"get":{"operationId":"photoslibrary.albums.get","x-executor-toolPath":"photoslibrary.albums.get","x-executor-pathTemplate":"/v1/albums/{+albumId}","tags":["Photos Library API"],"description":"Returns the app created album based on the specified `albumId`. The `albumId` must be the ID of an album created by your app.","servers":[{"url":"https://photoslibrary.googleapis.com/"}],"parameters":[{"name":"key","in":"query","required":false,"description":"API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.","schema":{"description":"API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.","type":"string"},"style":"form","explode":false},{"name":"access_token","in":"query","required":false,"description":"OAuth access token.","schema":{"description":"OAuth access token.","type":"string"},"style":"form","explode":false},{"name":"uploadType","in":"query","required":false,"description":"Legacy upload protocol for media (e.g. \"media\", \"multipart\").","schema":{"description":"Legacy upload protocol for media (e.g. \"media\", \"multipart\").","type":"string"},"style":"form","explode":false},{"name":"callback","in":"query","required":false,"description":"JSONP","schema":{"description":"JSONP","type":"string"},"style":"form","explode":false},{"name":"fields","in":"query","required":false,"description":"Selector specifying which fields to include in a partial response.","schema":{"description":"Selector specifying which fields to include in a partial response.","type":"string"},"style":"form","explode":false},{"name":"upload_protocol","in":"query","required":false,"description":"Upload protocol for media (e.g. \"raw\", \"multipart\").","schema":{"description":"Upload protocol for media (e.g. \"raw\", \"multipart\").","type":"string"},"style":"form","explode":false},{"name":"prettyPrint","in":"query","required":false,"description":"Returns response with indentations and line breaks.","schema":{"description":"Returns response with indentations and line breaks.","default":"true","type":"boolean"},"style":"form","explode":false},{"name":"$.xgafv","in":"query","required":false,"description":"V1 error format.","schema":{"description":"V1 error format.","enum":["1","2"],"type":"string"},"style":"form","explode":false},{"name":"quotaUser","in":"query","required":false,"description":"Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.","schema":{"description":"Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.","type":"string"},"style":"form","explode":false},{"name":"alt","in":"query","required":false,"description":"Data format for response.","schema":{"description":"Data format for response.","default":"json","enum":["json","media","proto"],"type":"string"},"style":"form","explode":false},{"name":"oauth_token","in":"query","required":false,"description":"OAuth 2.0 token for the current user.","schema":{"description":"OAuth 2.0 token for the current user.","type":"string"},"style":"form","explode":false},{"name":"albumId","in":"path","required":true,"description":"Required. Identifier of the album to be requested.","schema":{"description":"Required. Identifier of the album to be requested.","type":"string"},"allowReserved":true}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/photoslibrary_v1_Album"}}}}},"security":[{"googleOAuth2":["https://www.googleapis.com/auth/photoslibrary.readonly.appcreateddata"]}],"x-google-scopes":["https://www.googleapis.com/auth/photoslibrary.readonly.appcreateddata"]}},"/v1/uploads":{"post":{"operationId":"photoslibrary.mediaItems.upload","x-executor-toolPath":"photoslibrary.mediaItems.upload","x-executor-pathTemplate":"/v1/uploads","tags":["Photos Library API"],"description":"Uploads raw photo or video bytes to Google Photos and returns a plain-text upload token. Call mediaItems.batchCreate with the returned token to create the media item.","servers":[{"url":"https://photoslibrary.googleapis.com/"}],"parameters":[{"name":"X-Goog-Upload-File-Name","in":"header","required":true,"description":"File name Google Photos should associate with the uploaded bytes.","schema":{"type":"string"}},{"name":"X-Goog-Upload-Protocol","in":"header","required":true,"description":"Google Photos raw upload protocol. Set to raw.","schema":{"type":"string","enum":["raw"],"default":"raw"}},{"name":"X-Goog-Upload-Content-Type","in":"header","required":false,"description":"MIME type of the uploaded media, for example image/jpeg or video/mp4.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"responses":{"200":{"description":"Successful response","content":{"text/plain":{"schema":{"type":"string"}}}}},"security":[{"googleOAuth2":["https://www.googleapis.com/auth/photoslibrary.appendonly"]}],"x-google-scopes":["https://www.googleapis.com/auth/photoslibrary.appendonly"]}}},"components":{"schemas":{"photoslibrary_v1_DateFilter":{"description":"This filter defines the allowed dates or date ranges for the media returned. It's possible to pick a set of specific dates and a set of date ranges. Media items uploaded without metadata specifying the date the media item was captured will not be returned in queries using date filters. Google Photos server upload time is not used as a fallback in this case.","type":"object","properties":{"dates":{"description":"List of dates that match the media items' creation date. A maximum of 5 dates can be included per request.","type":"array","items":{"$ref":"#/components/schemas/photoslibrary_v1_Date"}},"ranges":{"description":"List of dates ranges that match the media items' creation date. A maximum of 5 dates ranges can be included per request.","type":"array","items":{"$ref":"#/components/schemas/photoslibrary_v1_DateRange"}}}},"photoslibrary_v1_MediaItemResult":{"description":"Result of retrieving a media item.","type":"object","properties":{"status":{"$ref":"#/components/schemas/photoslibrary_v1_Status"},"mediaItem":{"$ref":"#/components/schemas/photoslibrary_v1_MediaItem"}}},"photoslibrary_v1_TextEnrichment":{"description":"An enrichment containing text.","type":"object","properties":{"text":{"description":"Text for this enrichment item.","type":"string"}}},"photoslibrary_v1_Photo":{"description":"Metadata that is specific to a photo, such as, ISO, focal length and exposure time. Some of these fields may be null or not included.","type":"object","properties":{"exposureTime":{"description":"Exposure time of the camera aperture when the photo was taken.","format":"google-duration","type":"string"},"focalLength":{"description":"Focal length of the camera lens with which the photo was taken.","format":"float","type":"number"},"cameraMake":{"description":"Brand of the camera with which the photo was taken.","type":"string"},"cameraModel":{"description":"Model of the camera with which the photo was taken.","type":"string"},"isoEquivalent":{"description":"ISO of the camera with which the photo was taken.","format":"int32","type":"integer"},"apertureFNumber":{"description":"Aperture f number of the camera lens with which the photo was taken.","format":"float","type":"number"}}},"photoslibrary_v1_LatLng":{"description":"An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges.","type":"object","properties":{"longitude":{"description":"The longitude in degrees. It must be in the range [-180.0, +180.0].","format":"double","type":"number"},"latitude":{"description":"The latitude in degrees. It must be in the range [-90.0, +90.0].","format":"double","type":"number"}}},"photoslibrary_v1_MediaItem":{"description":"Representation of a media item (such as a photo or video) in Google Photos.","type":"object","properties":{"mediaMetadata":{"$ref":"#/components/schemas/photoslibrary_v1_MediaMetadata"},"id":{"description":"Identifier for the media item. This is a persistent identifier that can be used between sessions to identify this media item.","type":"string"},"productUrl":{"description":"Google Photos URL for the media item. This link is available to the user only if they're signed in. When retrieved from an album search, the URL points to the item inside the album.","type":"string"},"baseUrl":{"description":"A URL to the media item's bytes. This shouldn't be used as is. Parameters should be appended to this URL before use. See the [developer documentation](https://developers.google.com/photos/library/guides/access-media-items#base-urls) for a complete list of supported parameters. For example, `'=w2048-h1024'` will set the dimensions of a media item of type photo to have a width of 2048 px and height of 1024 px.","type":"string"},"filename":{"description":"Filename of the media item. This is shown to the user in the item's info section in the Google Photos app.","type":"string"},"contributorInfo":{"$ref":"#/components/schemas/photoslibrary_v1_ContributorInfo"},"description":{"description":"Description of the media item. This is shown to the user in the item's info section in the Google Photos app. Must be shorter than 1000 characters. Only include text written by users. Descriptions should add context and help users understand media. Do not include any auto-generated strings such as filenames, tags, and other metadata.","type":"string"},"mimeType":{"description":"MIME type of the media item. For example, `image/jpeg`.","type":"string"}}},"photoslibrary_v1_UnshareAlbumResponse":{"description":"Response of a successful unshare of a shared album.","type":"object"},"photoslibrary_v1_Date":{"description":"Represents a whole calendar date. Set `day` to 0 when only the month and year are significant, for example, all of December 2018. Set `day` and `month` to 0 if only the year is significant, for example, the entire of 2018. Set `year` to 0 when only the day and month are significant, for example, an anniversary or birthday. Unsupported: Setting all values to 0, only `month` to 0, or both `day` and `year` to 0 at the same time.","type":"object","properties":{"day":{"description":"Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a year/month where the day isn't significant.","format":"int32","type":"integer"},"year":{"description":"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.","format":"int32","type":"integer"},"month":{"description":"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.","format":"int32","type":"integer"}}},"photoslibrary_v1_SharedAlbumOptions":{"description":"Options that control the sharing of an album.","type":"object","properties":{"isCommentable":{"description":"True if the shared album allows collaborators (users who have joined the album) to add comments to the album. Defaults to false.","type":"boolean"},"isCollaborative":{"description":"True if the shared album allows collaborators (users who have joined the album) to add media items to it. Defaults to false.","type":"boolean"}}},"photoslibrary_v1_BatchRemoveMediaItemsFromAlbumResponse":{"description":"Response for successfully removing all specified media items from the album.","type":"object"},"photoslibrary_v1_BatchGetMediaItemsResponse":{"description":"Response to retrieve a list of app created media items.","type":"object","properties":{"mediaItemResults":{"description":"Output only. List of media items retrieved. Note that even if the call to BatchGetMediaItems succeeds, there may have been failures for some media items in the batch. These failures are indicated in each MediaItemResult.status.","type":"array","items":{"$ref":"#/components/schemas/photoslibrary_v1_MediaItemResult"}}}},"photoslibrary_v1_ListAlbumsResponse":{"description":"List of albums requested.","type":"object","properties":{"albums":{"description":"Output only. List of albums shown in the Albums tab of the user's Google Photos app.","type":"array","items":{"$ref":"#/components/schemas/photoslibrary_v1_Album"}},"nextPageToken":{"description":"Output only. Token to use to get the next set of albums. Populated if there are more albums to retrieve for this request.","type":"string"}}},"photoslibrary_v1_ContributorInfo":{"description":"Information about the user who added the media item. Note that this information is included only if the media item is within a shared album created by your app and you have the sharing scope.","type":"object","properties":{"displayName":{"description":"Display name of the contributor.","type":"string"},"profilePictureBaseUrl":{"description":"URL to the profile picture of the contributor.","type":"string"}}},"photoslibrary_v1_BatchCreateMediaItemsResponse":{"description":"List of media items created.","type":"object","properties":{"newMediaItemResults":{"description":"Output only. List of media items created.","type":"array","items":{"$ref":"#/components/schemas/photoslibrary_v1_NewMediaItemResult"}}}},"photoslibrary_v1_ListMediaItemsResponse":{"description":"List of all media items from the user's Google Photos library.","type":"object","properties":{"nextPageToken":{"description":"Output only. Token to use to get the next set of media items. Its presence is the only reliable indicator of more media items being available in the next request.","type":"string"},"mediaItems":{"description":"Output only. List of media items in the user's library.","type":"array","items":{"$ref":"#/components/schemas/photoslibrary_v1_MediaItem"}}}},"photoslibrary_v1_NewEnrichmentItem":{"description":"A new enrichment item to be added to an app created album, used by the `albums.addEnrichment` call.","type":"object","properties":{"mapEnrichment":{"$ref":"#/components/schemas/photoslibrary_v1_MapEnrichment"},"textEnrichment":{"$ref":"#/components/schemas/photoslibrary_v1_TextEnrichment"},"locationEnrichment":{"$ref":"#/components/schemas/photoslibrary_v1_LocationEnrichment"}}},"photoslibrary_v1_MapEnrichment":{"description":"An enrichment containing a map, showing origin and destination locations.","type":"object","properties":{"destination":{"$ref":"#/components/schemas/photoslibrary_v1_Location"},"origin":{"$ref":"#/components/schemas/photoslibrary_v1_Location"}}},"photoslibrary_v1_AddEnrichmentToAlbumRequest":{"description":"Request to add an enrichment to a specific album at a specific position.","type":"object","properties":{"albumPosition":{"$ref":"#/components/schemas/photoslibrary_v1_AlbumPosition"},"newEnrichmentItem":{"$ref":"#/components/schemas/photoslibrary_v1_NewEnrichmentItem"}}},"photoslibrary_v1_FeatureFilter":{"description":"This filter defines the features that the media items should have.","type":"object","properties":{"includedFeatures":{"description":"The set of features to be included in the media item search results. The items in the set are ORed and may match any of the specified features.","type":"array","items":{"enum":["NONE","FAVORITES"],"type":"string"}}}},"photoslibrary_v1_SearchMediaItemsResponse":{"description":"List of media items that match the search parameters.","type":"object","properties":{"mediaItems":{"description":"Output only. List of media items that match the search parameters.","type":"array","items":{"$ref":"#/components/schemas/photoslibrary_v1_MediaItem"}},"nextPageToken":{"description":"Output only. Use this token to get the next set of media items. Its presence is the only reliable indicator of more media items being available in the next request.","type":"string"}}},"photoslibrary_v1_ContentFilter":{"description":"This filter allows you to return media items based on the content type. It's possible to specify a list of categories to include, and/or a list of categories to exclude. Within each list, the categories are combined with an OR. The content filter `includedContentCategories`: [c1, c2, c3] would get media items that contain (c1 OR c2 OR c3). The content filter `excludedContentCategories`: [c1, c2, c3] would NOT get media items that contain (c1 OR c2 OR c3). You can also include some categories while excluding others, as in this example: `includedContentCategories`: [c1, c2], `excludedContentCategories`: [c3, c4] The previous example would get media items that contain (c1 OR c2) AND NOT (c3 OR c4). A category that appears in `includedContentategories` must not appear in `excludedContentCategories`.","type":"object","properties":{"includedContentCategories":{"description":"The set of categories to be included in the media item search results. The items in the set are ORed. There's a maximum of 10 `includedContentCategories` per request.","type":"array","items":{"enum":["NONE","LANDSCAPES","RECEIPTS","CITYSCAPES","LANDMARKS","SELFIES","PEOPLE","PETS","WEDDINGS","BIRTHDAYS","DOCUMENTS","TRAVEL","ANIMALS","FOOD","SPORT","NIGHT","PERFORMANCES","WHITEBOARDS","SCREENSHOTS","UTILITY","ARTS","CRAFTS","FASHION","HOUSES","GARDENS","FLOWERS","HOLIDAYS"],"type":"string"}},"excludedContentCategories":{"description":"The set of categories which are not to be included in the media item search results. The items in the set are ORed. There's a maximum of 10 `excludedContentCategories` per request.","type":"array","items":{"enum":["NONE","LANDSCAPES","RECEIPTS","CITYSCAPES","LANDMARKS","SELFIES","PEOPLE","PETS","WEDDINGS","BIRTHDAYS","DOCUMENTS","TRAVEL","ANIMALS","FOOD","SPORT","NIGHT","PERFORMANCES","WHITEBOARDS","SCREENSHOTS","UTILITY","ARTS","CRAFTS","FASHION","HOUSES","GARDENS","FLOWERS","HOLIDAYS"],"type":"string"}}}},"photoslibrary_v1_EnrichmentItem":{"description":"An enrichment item.","type":"object","properties":{"id":{"description":"Identifier of the enrichment item.","type":"string"}}},"photoslibrary_v1_SearchMediaItemsRequest":{"description":"Request to search for app created media items in a user's library. If the album id from an app created album is specified, this call will return the list of media items in the album. If neither filters nor album id are specified, this call will return all app created media items in a user's Google Photos library. If filters are specified, this call will return all app created media items in the user's library that fulfill the filter criteria. Filters and album id must not both be set, as this will result in an invalid request.","type":"object","properties":{"pageToken":{"description":"A continuation token to get the next page of the results. Adding this to the request returns the rows after the `pageToken`. The `pageToken` should be the value returned in the `nextPageToken` parameter in the response to the `searchMediaItems` request.","type":"string"},"filters":{"$ref":"#/components/schemas/photoslibrary_v1_Filters"},"orderBy":{"description":"An optional field to specify the sort order of the search results. The `orderBy` field only works when a dateFilter is used. When this field is not specified, results are displayed newest first, oldest last by their creationTime. Providing `MediaMetadata.creation_time` displays search results in the opposite order, oldest first then newest last. To display results newest first then oldest last, include the `desc` argument as follows: `MediaMetadata.creation_time desc`. The only additional filters that can be used with this parameter are includeArchivedMedia and excludeNonAppCreatedData. No other filters are supported.","type":"string"},"albumId":{"description":"Identifier of an album. If populated, lists all media items in specified album. Can't set in conjunction with any filters.","type":"string"},"pageSize":{"description":"Maximum number of media items to return in the response. Fewer media items might be returned than the specified number. The default `pageSize` is 25, the maximum is 100.","format":"int32","type":"integer"}}},"photoslibrary_v1_SimpleMediaItem":{"description":"A simple media item to be created in Google Photos via an upload token.","type":"object","properties":{"fileName":{"description":"File name with extension of the media item. This is shown to the user in Google Photos. The file name specified during the byte upload process is ignored if this field is set. The file name, including the file extension, shouldn't be more than 255 characters. This is an optional field.","type":"string"},"uploadToken":{"description":"Token identifying the media bytes that have been uploaded to Google.","type":"string"}}},"photoslibrary_v1_BatchRemoveMediaItemsFromAlbumRequest":{"description":"Request to remove a list of media items from an album.","type":"object","properties":{"mediaItemIds":{"description":"Required. Identifiers of the MediaItems to be removed. Must not contain repeated identifiers and cannot be empty. The maximum number of media items that can be removed in one call is 50.","type":"array","items":{"type":"string"}}}},"photoslibrary_v1_JoinSharedAlbumRequest":{"description":"Request to join a shared album on behalf of the user. This uses a shareToken which can be acquired via the shareAlbum or listSharedAlbums calls.","type":"object","properties":{"shareToken":{"description":"Required. Token to join the shared album on behalf of the user.","type":"string"}}},"photoslibrary_v1_ListSharedAlbumsResponse":{"description":"List of shared albums requested.","type":"object","properties":{"sharedAlbums":{"description":"Output only. List of shared albums.","type":"array","items":{"$ref":"#/components/schemas/photoslibrary_v1_Album"}},"nextPageToken":{"description":"Output only. Token to use to get the next set of shared albums. Populated if there are more shared albums to retrieve for this request.","type":"string"}}},"photoslibrary_v1_UnshareAlbumRequest":{"description":"Request to unshare a shared album in Google Photos.","type":"object"},"photoslibrary_v1_AddEnrichmentToAlbumResponse":{"description":"The enrichment item that's created.","type":"object","properties":{"enrichmentItem":{"$ref":"#/components/schemas/photoslibrary_v1_EnrichmentItem"}}},"photoslibrary_v1_Video":{"description":"Metadata that is specific to a video, for example, fps and processing status. Some of these fields may be null or not included.","type":"object","properties":{"fps":{"description":"Frame rate of the video.","format":"double","type":"number"},"status":{"description":"Processing status of the video.","enum":["UNSPECIFIED","PROCESSING","READY","FAILED"],"type":"string"},"cameraMake":{"description":"Brand of the camera with which the video was taken.","type":"string"},"cameraModel":{"description":"Model of the camera with which the video was taken.","type":"string"}}},"photoslibrary_v1_LocationEnrichment":{"description":"An enrichment containing a single location.","type":"object","properties":{"location":{"$ref":"#/components/schemas/photoslibrary_v1_Location"}}},"photoslibrary_v1_CreateAlbumRequest":{"description":"Request to create an album in Google Photos.","type":"object","properties":{"album":{"$ref":"#/components/schemas/photoslibrary_v1_Album"}}},"photoslibrary_v1_NewMediaItem":{"description":"New media item that's created in a user's Google Photos account.","type":"object","properties":{"description":{"description":"Description of the media item. This is shown to the user in the item's info section in the Google Photos app. Must be shorter than 1000 characters. Only include text written by users. Descriptions should add context and help users understand media. Do not include any auto-generated strings such as filenames, tags, and other metadata.","type":"string"},"simpleMediaItem":{"$ref":"#/components/schemas/photoslibrary_v1_SimpleMediaItem"}}},"photoslibrary_v1_ShareInfo":{"description":"Information about albums that are shared. This information is only included if you created the album, it is shared and you have the sharing scope.","type":"object","properties":{"shareableUrl":{"description":"A link to the shared Google Photos album. Anyone with the link can view the contents of the album, so it should be treated with care. The `shareableUrl` parameter is only returned if the album has link sharing turned on. If a user is already joined to an album that isn't link-shared, they can use the album's [`productUrl`](https://developers.google.com/photos/library/reference/rest/v1/albums#Album) to access it instead. A `shareableUrl` is invalidated if the owner turns off link sharing in the Google Photos app, or if the album is unshared.","type":"string"},"sharedAlbumOptions":{"$ref":"#/components/schemas/photoslibrary_v1_SharedAlbumOptions"},"isOwned":{"description":"True if the user owns the album.","type":"boolean"},"shareToken":{"description":"A token that is used to join, leave, or retrieve the details of a shared album on behalf of a user who isn't the owner. A `shareToken` is invalidated if the owner turns off link sharing in the Google Photos app, or if the album is unshared.","type":"string"},"isJoined":{"description":"True if the user is joined to the album. This is always true for the owner of the album.","type":"boolean"},"isJoinable":{"description":"True if the album can be joined by users.","type":"boolean"}}},"photoslibrary_v1_DateRange":{"description":"Defines a range of dates. Both dates must be of the same format. For more information, see Date.","type":"object","properties":{"startDate":{"$ref":"#/components/schemas/photoslibrary_v1_Date"},"endDate":{"$ref":"#/components/schemas/photoslibrary_v1_Date"}}},"photoslibrary_v1_AlbumPosition":{"description":"Specifies a position in an album.","type":"object","properties":{"relativeEnrichmentItemId":{"description":"The enrichment item to which the position is relative to. Only used when position type is AFTER_ENRICHMENT_ITEM.","type":"string"},"relativeMediaItemId":{"description":"The media item to which the position is relative to. Only used when position type is AFTER_MEDIA_ITEM.","type":"string"},"position":{"description":"Type of position, for a media or enrichment item.","enum":["POSITION_TYPE_UNSPECIFIED","FIRST_IN_ALBUM","LAST_IN_ALBUM","AFTER_MEDIA_ITEM","AFTER_ENRICHMENT_ITEM"],"type":"string"}}},"photoslibrary_v1_Location":{"description":"Represents a physical location.","type":"object","properties":{"latlng":{"$ref":"#/components/schemas/photoslibrary_v1_LatLng"},"locationName":{"description":"Name of the location to be displayed.","type":"string"}}},"photoslibrary_v1_NewMediaItemResult":{"description":"Result of creating a new media item.","type":"object","properties":{"mediaItem":{"$ref":"#/components/schemas/photoslibrary_v1_MediaItem"},"status":{"$ref":"#/components/schemas/photoslibrary_v1_Status"},"uploadToken":{"description":"The upload token used to create this new (simple) media item. Only populated if the media item is simple and required a single upload token.","type":"string"}}},"photoslibrary_v1_MediaTypeFilter":{"description":"This filter defines the type of media items to be returned, for example, videos or photos. Only one media type is supported.","type":"object","properties":{"mediaTypes":{"description":"The types of media items to be included. This field should be populated with only one media type. If you specify multiple media types, it results in an error.","type":"array","items":{"enum":["ALL_MEDIA","VIDEO","PHOTO"],"type":"string"}}}},"photoslibrary_v1_Album":{"description":"Representation of an album in Google Photos. Albums are containers for media items. If an album has been shared by the application, it contains an extra `shareInfo` property.","type":"object","properties":{"productUrl":{"description":"[Output only] Google Photos URL for the album. The user needs to be signed in to their Google Photos account to access this link.","type":"string"},"id":{"description":"Identifier for the album. This is a persistent identifier that can be used between sessions to identify this album.","type":"string"},"coverPhotoBaseUrl":{"description":"[Output only] A URL to the cover photo's bytes. This shouldn't be used as is. Parameters should be appended to this URL before use. See the [developer documentation](https://developers.google.com/photos/library/guides/access-media-items#base-urls) for a complete list of supported parameters. For example, `'=w2048-h1024'` sets the dimensions of the cover photo to have a width of 2048 px and height of 1024 px.","type":"string"},"coverPhotoMediaItemId":{"description":"Identifier for the media item associated with the cover photo.","type":"string"},"shareInfo":{"$ref":"#/components/schemas/photoslibrary_v1_ShareInfo"},"title":{"description":"Name of the album displayed to the user in their Google Photos account. This string shouldn't be more than 500 characters.","type":"string"},"mediaItemsCount":{"description":"[Output only] The number of media items in the album.","format":"int64","type":"string"},"isWriteable":{"description":"[Output only] True if you can create media items in this album. This field is based on the scopes granted and permissions of the album. If the scopes are changed or permissions of the album are changed, this field is updated.","type":"boolean"}}},"photoslibrary_v1_BatchAddMediaItemsToAlbumResponse":{"description":"Response for adding media items to an album.","type":"object"},"photoslibrary_v1_MediaMetadata":{"description":"Metadata for a media item.","type":"object","properties":{"width":{"description":"Original width (in pixels) of the media item.","format":"int64","type":"string"},"creationTime":{"description":"Time when the media item was first created (not when it was uploaded to Google Photos).","format":"google-datetime","type":"string"},"photo":{"$ref":"#/components/schemas/photoslibrary_v1_Photo"},"height":{"description":"Original height (in pixels) of the media item.","format":"int64","type":"string"},"video":{"$ref":"#/components/schemas/photoslibrary_v1_Video"}}},"photoslibrary_v1_BatchAddMediaItemsToAlbumRequest":{"description":"Request to add media items to an app created album.","type":"object","properties":{"mediaItemIds":{"description":"Required. Identifiers of the MediaItems to be added. The maximum number of media items that can be added in one call is 50.","type":"array","items":{"type":"string"}}}},"photoslibrary_v1_JoinSharedAlbumResponse":{"description":"Response to successfully joining the shared album on behalf of the user.","type":"object","properties":{"album":{"$ref":"#/components/schemas/photoslibrary_v1_Album"}}},"photoslibrary_v1_Status":{"description":"The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).","type":"object","properties":{"code":{"description":"The status code, which should be an enum value of google.rpc.Code.","format":"int32","type":"integer"},"message":{"description":"A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.","type":"string"},"details":{"description":"A list of messages that carry the error details. There is a common set of message types for APIs to use.","type":"array","items":{"type":"object","additionalProperties":{"description":"Properties of the object. Contains field @type with type URL."}}}}},"photoslibrary_v1_Filters":{"description":"Filters that can be applied to a media item search. If multiple filter options are specified, they're treated as AND with each other.","type":"object","properties":{"includeArchivedMedia":{"description":"If set, the results include media items that the user has archived. Defaults to false (archived media items aren't included).","type":"boolean"},"mediaTypeFilter":{"$ref":"#/components/schemas/photoslibrary_v1_MediaTypeFilter"},"excludeNonAppCreatedData":{"description":"If set, the results exclude media items that were not created by this app. Defaults to false (all media items are returned). This field is ignored if the photoslibrary.readonly.appcreateddata scope is used.","type":"boolean"},"contentFilter":{"$ref":"#/components/schemas/photoslibrary_v1_ContentFilter"},"featureFilter":{"$ref":"#/components/schemas/photoslibrary_v1_FeatureFilter"},"dateFilter":{"$ref":"#/components/schemas/photoslibrary_v1_DateFilter"}}},"photoslibrary_v1_LeaveSharedAlbumResponse":{"description":"Response to successfully leaving the shared album on behalf of the user.","type":"object"},"photoslibrary_v1_ShareAlbumResponse":{"description":"Response to successfully sharing an album.","type":"object","properties":{"shareInfo":{"$ref":"#/components/schemas/photoslibrary_v1_ShareInfo"}}},"photoslibrary_v1_BatchCreateMediaItemsRequest":{"description":"Request to create one or more media items in a user's Google Photos library. If an `albumid` from an app created album is specified, the media items are also added to that album. `albumPosition` is optional and can only be specified if an `albumId` is set.","type":"object","properties":{"albumPosition":{"$ref":"#/components/schemas/photoslibrary_v1_AlbumPosition"},"albumId":{"description":"Identifier of the album where the media items are added. The media items are also added to the user's library. This is an optional field.","type":"string"},"newMediaItems":{"description":"Required. List of media items to be created. Maximum 50 media items per call.","type":"array","items":{"$ref":"#/components/schemas/photoslibrary_v1_NewMediaItem"}}}},"photoslibrary_v1_LeaveSharedAlbumRequest":{"description":"Request to leave a shared album on behalf of the user. This uses a shareToken which can be acquired via the or listSharedAlbums or getAlbum calls.","type":"object","properties":{"shareToken":{"description":"Required. Token to leave the shared album on behalf of the user.","type":"string"}}},"photoslibrary_v1_ShareAlbumRequest":{"description":"Request to make an album shared in Google Photos.","type":"object","properties":{"sharedAlbumOptions":{"$ref":"#/components/schemas/photoslibrary_v1_SharedAlbumOptions"}}}},"securitySchemes":{"googleOAuth2":{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://accounts.google.com/o/oauth2/v2/auth","tokenUrl":"https://oauth2.googleapis.com/token","scopes":{"openid":"","email":"","profile":"","https://www.googleapis.com/auth/photoslibrary.appendonly":"","https://www.googleapis.com/auth/photoslibrary.edit.appcreateddata":"","https://www.googleapis.com/auth/photoslibrary.readonly.appcreateddata":""}}}}}},"security":[{"googleOAuth2":["openid","email","profile","https://www.googleapis.com/auth/photoslibrary.appendonly","https://www.googleapis.com/auth/photoslibrary.edit.appcreateddata","https://www.googleapis.com/auth/photoslibrary.readonly.appcreateddata"]}],"x-executor-origin":{"kind":"googleDiscoveryBundle","services":[{"discoveryUrl":"https://www.googleapis.com/discovery/v1/apis/photoslibrary/v1/rest","service":"photoslibrary","version":"v1"}]}}