# Copyright 2015 Google Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
require 'date'
require 'google/apis/core/base_service'
require 'google/apis/core/json_representation'
require 'google/apis/core/hashable'
require 'google/apis/errors'
module Google
module Apis
module PhotoslibraryV1
# Request to add an enrichment to a specific album at a specific position.
class AddEnrichmentToAlbumRequest
include Google::Apis::Core::Hashable
# Specifies a position in an album.
# Corresponds to the JSON property `albumPosition`
# @return [Google::Apis::PhotoslibraryV1::AlbumPosition]
attr_accessor :album_position
# A new enrichment item to be added to an album, used by the
# AddEnrichmentToAlbum call.
# Corresponds to the JSON property `newEnrichmentItem`
# @return [Google::Apis::PhotoslibraryV1::NewEnrichmentItem]
attr_accessor :new_enrichment_item
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@album_position = args[:album_position] if args.key?(:album_position)
@new_enrichment_item = args[:new_enrichment_item] if args.key?(:new_enrichment_item)
end
end
#
class AddEnrichmentToAlbumResponse
include Google::Apis::Core::Hashable
# An enrichment item.
# Corresponds to the JSON property `enrichmentItem`
# @return [Google::Apis::PhotoslibraryV1::EnrichmentItem]
attr_accessor :enrichment_item
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@enrichment_item = args[:enrichment_item] if args.key?(:enrichment_item)
end
end
# Representation of an album in Google Photos.
# Albums are a container for media items. They contain an additional
# shareInfo property if they have been shared by the application.
class Album
include Google::Apis::Core::Hashable
# [Output only] A URL to the cover photo's bytes. This should not be used as
# is. Parameters should be appended to this URL before use. For example,
# '=w2048-h1024' will set the dimensions of the cover photo to have a width
# of 2048 px and height of 1024 px.
# Corresponds to the JSON property `coverPhotoBaseUrl`
# @return [String]
attr_accessor :cover_photo_base_url
# [Ouput only] Identifier for the album. This is a persistent identifier that
# can be used between sessions to identify this album.
# Corresponds to the JSON property `id`
# @return [String]
attr_accessor :id
# [Output only] True if media items can be created in the 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
# will be updated.
# Corresponds to the JSON property `isWriteable`
# @return [Boolean]
attr_accessor :is_writeable
alias_method :is_writeable?, :is_writeable
# [Output only] Google Photos URL for the album. The user needs to be signed
# in to their Google Photos account to access this link.
# Corresponds to the JSON property `productUrl`
# @return [String]
attr_accessor :product_url
# Information about albums that are shared. Note that this
# information is only included if the album was created by you and you have the
# sharing scope.
# Corresponds to the JSON property `shareInfo`
# @return [Google::Apis::PhotoslibraryV1::ShareInfo]
attr_accessor :share_info
# Name of the album displayed to the user in their Google Photos account.
# This string should not be more than 500 characters.
# Corresponds to the JSON property `title`
# @return [String]
attr_accessor :title
# [Output only] The number of media items in the album
# Corresponds to the JSON property `totalMediaItems`
# @return [Fixnum]
attr_accessor :total_media_items
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@cover_photo_base_url = args[:cover_photo_base_url] if args.key?(:cover_photo_base_url)
@id = args[:id] if args.key?(:id)
@is_writeable = args[:is_writeable] if args.key?(:is_writeable)
@product_url = args[:product_url] if args.key?(:product_url)
@share_info = args[:share_info] if args.key?(:share_info)
@title = args[:title] if args.key?(:title)
@total_media_items = args[:total_media_items] if args.key?(:total_media_items)
end
end
# Specifies a position in an album.
class AlbumPosition
include Google::Apis::Core::Hashable
# Type of position, for a media or enrichment item.
# Corresponds to the JSON property `position`
# @return [String]
attr_accessor :position
# The enrichment item to which the position is relative to.
# Only used when position type is AFTER_ENRICHMENT_ITEM.
# Corresponds to the JSON property `relativeEnrichmentItemId`
# @return [String]
attr_accessor :relative_enrichment_item_id
# The media item to which the position is relative to.
# Only used when position type is AFTER_MEDIA_ITEM.
# Corresponds to the JSON property `relativeMediaItemId`
# @return [String]
attr_accessor :relative_media_item_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@position = args[:position] if args.key?(:position)
@relative_enrichment_item_id = args[:relative_enrichment_item_id] if args.key?(:relative_enrichment_item_id)
@relative_media_item_id = args[:relative_media_item_id] if args.key?(:relative_media_item_id)
end
end
# Request to create one or more media items in a user's Google Photos library.
# If an albumid
is specified, the media items are also added to
# that album. albumPosition
is optional and can only be specified
# if an albumId
is set.
class BatchCreateMediaItemsRequest
include Google::Apis::Core::Hashable
# Identifier of the album where the media item(s) will be added. They will
# also be added to the user's library. This is an optional field.
# Corresponds to the JSON property `albumId`
# @return [String]
attr_accessor :album_id
# Specifies a position in an album.
# Corresponds to the JSON property `albumPosition`
# @return [Google::Apis::PhotoslibraryV1::AlbumPosition]
attr_accessor :album_position
# List of media items to be created.
# Corresponds to the JSON property `newMediaItems`
# @return [Array]
attr_accessor :new_media_items
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@album_id = args[:album_id] if args.key?(:album_id)
@album_position = args[:album_position] if args.key?(:album_position)
@new_media_items = args[:new_media_items] if args.key?(:new_media_items)
end
end
#
class BatchCreateMediaItemsResponse
include Google::Apis::Core::Hashable
# [Output only] List of media items which were created.
# Corresponds to the JSON property `newMediaItemResults`
# @return [Array]
attr_accessor :new_media_item_results
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@new_media_item_results = args[:new_media_item_results] if args.key?(:new_media_item_results)
end
end
# This filter is used to define which results to return based on the contents
# of the media item.
# It is 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. For example, if the content filter looks like:
# included_content_categories: [c1, c2, c3]
# It would get media items that contain (c1 OR c2 OR c3).
# And if the content filter looks like:
# excluded_content_categories: [c1, c2, c3]
# It would get media items that contain NOT (c1 OR c2 OR c3).
# You can also include some categories while excluding others, as in this
# proto:
# included_content_categories: [c1, c2],
# excluded_content_category: [c3, c4]
# It 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
.
class ContentFilter
include Google::Apis::Core::Hashable
# The set of categories that must NOT be present in the media items in the
# result. The items in the set are ORed. There is a maximum of 10
# excludedContentCategories per request.
# Corresponds to the JSON property `excludedContentCategories`
# @return [Array]
attr_accessor :excluded_content_categories
# The set of categories that must be present in the media items in the
# result. The items in the set are ORed. There is a maximum of 10
# includedContentCategories per request.
# Corresponds to the JSON property `includedContentCategories`
# @return [Array]
attr_accessor :included_content_categories
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@excluded_content_categories = args[:excluded_content_categories] if args.key?(:excluded_content_categories)
@included_content_categories = args[:included_content_categories] if args.key?(:included_content_categories)
end
end
# Information about a user who contributed the media item. Note that this
# information is only included if the album containing the media item is
# shared, was created by you and you have the sharing scope.
class ContributorInfo
include Google::Apis::Core::Hashable
# Display name of the contributor.
# Corresponds to the JSON property `displayName`
# @return [String]
attr_accessor :display_name
# URL to the profile picture of the contributor.
# Corresponds to the JSON property `profilePictureBaseUrl`
# @return [String]
attr_accessor :profile_picture_base_url
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@display_name = args[:display_name] if args.key?(:display_name)
@profile_picture_base_url = args[:profile_picture_base_url] if args.key?(:profile_picture_base_url)
end
end
# Request to create an album in Google Photos.
class CreateAlbumRequest
include Google::Apis::Core::Hashable
# Representation of an album in Google Photos.
# Albums are a container for media items. They contain an additional
# shareInfo property if they have been shared by the application.
# Corresponds to the JSON property `album`
# @return [Google::Apis::PhotoslibraryV1::Album]
attr_accessor :album
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@album = args[:album] if args.key?(:album)
end
end
# Represents a whole calendar date. The day may be 0 to represent a year and
# month where the day is not significant, e.g. a whole calendar month. The month
# may be 0 to represent a a day and a year where the month is not signficant, e.
# g. when you want to specify the same day in every month of a year or a
# specific year. The year may be 0 to represent a month and day independent of
# year, e.g. anniversary date.
class Date
include Google::Apis::Core::Hashable
# 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 is not significant.
# Corresponds to the JSON property `day`
# @return [Fixnum]
attr_accessor :day
# Month of year. Must be from 1 to 12, or 0 if specifying a date without a
# month.
# Corresponds to the JSON property `month`
# @return [Fixnum]
attr_accessor :month
# Year of date. Must be from 1 to 9999, or 0 if specifying a date without
# a year.
# Corresponds to the JSON property `year`
# @return [Fixnum]
attr_accessor :year
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@day = args[:day] if args.key?(:day)
@month = args[:month] if args.key?(:month)
@year = args[:year] if args.key?(:year)
end
end
# This filter defines the allowed dates or date ranges for the media returned.
# It is possible to pick a set of specific dates and a set of date ranges.
class DateFilter
include Google::Apis::Core::Hashable
# List of dates that the media items must have been created on. There is a
# maximum of 5 dates that can be included per request.
# Corresponds to the JSON property `dates`
# @return [Array]
attr_accessor :dates
# List of dates ranges that the media items must have been created in. There
# is a maximum of 5 dates ranges that can be included per request.
# Corresponds to the JSON property `ranges`
# @return [Array]
attr_accessor :ranges
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@dates = args[:dates] if args.key?(:dates)
@ranges = args[:ranges] if args.key?(:ranges)
end
end
# Defines a range of dates. Both dates must be of the same format (see Date
# definition for more).
class DateRange
include Google::Apis::Core::Hashable
# Represents a whole calendar date. The day may be 0 to represent a year and
# month where the day is not significant, e.g. a whole calendar month. The month
# may be 0 to represent a a day and a year where the month is not signficant, e.
# g. when you want to specify the same day in every month of a year or a
# specific year. The year may be 0 to represent a month and day independent of
# year, e.g. anniversary date.
# Corresponds to the JSON property `endDate`
# @return [Google::Apis::PhotoslibraryV1::Date]
attr_accessor :end_date
# Represents a whole calendar date. The day may be 0 to represent a year and
# month where the day is not significant, e.g. a whole calendar month. The month
# may be 0 to represent a a day and a year where the month is not signficant, e.
# g. when you want to specify the same day in every month of a year or a
# specific year. The year may be 0 to represent a month and day independent of
# year, e.g. anniversary date.
# Corresponds to the JSON property `startDate`
# @return [Google::Apis::PhotoslibraryV1::Date]
attr_accessor :start_date
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@end_date = args[:end_date] if args.key?(:end_date)
@start_date = args[:start_date] if args.key?(:start_date)
end
end
# An enrichment item.
class EnrichmentItem
include Google::Apis::Core::Hashable
# Identifier of the enrichment item.
# Corresponds to the JSON property `id`
# @return [String]
attr_accessor :id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@id = args[:id] if args.key?(:id)
end
end
# Filters that can be applied to a media item search.
# If multiple filter options are specified, they are treated as AND with each
# other.
class Filters
include Google::Apis::Core::Hashable
# This filter is used to define which results to return based on the contents
# of the media item.
# It is 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. For example, if the content filter looks like:
# included_content_categories: [c1, c2, c3]
# It would get media items that contain (c1 OR c2 OR c3).
# And if the content filter looks like:
# excluded_content_categories: [c1, c2, c3]
# It would get media items that contain NOT (c1 OR c2 OR c3).
# You can also include some categories while excluding others, as in this
# proto:
# included_content_categories: [c1, c2],
# excluded_content_category: [c3, c4]
# It 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
.
# Corresponds to the JSON property `contentFilter`
# @return [Google::Apis::PhotoslibraryV1::ContentFilter]
attr_accessor :content_filter
# This filter defines the allowed dates or date ranges for the media returned.
# It is possible to pick a set of specific dates and a set of date ranges.
# Corresponds to the JSON property `dateFilter`
# @return [Google::Apis::PhotoslibraryV1::DateFilter]
attr_accessor :date_filter
# If set, the results will include media items that the user has archived.
# Defaults to false (archived media items are not included).
# Corresponds to the JSON property `includeArchivedMedia`
# @return [Boolean]
attr_accessor :include_archived_media
alias_method :include_archived_media?, :include_archived_media
# This filter defines the type of media items to be returned, for example
# videos or photos. All the specified media types are treated as an OR with
# each other.
# Corresponds to the JSON property `mediaTypeFilter`
# @return [Google::Apis::PhotoslibraryV1::MediaTypeFilter]
attr_accessor :media_type_filter
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@content_filter = args[:content_filter] if args.key?(:content_filter)
@date_filter = args[:date_filter] if args.key?(:date_filter)
@include_archived_media = args[:include_archived_media] if args.key?(:include_archived_media)
@media_type_filter = args[:media_type_filter] if args.key?(:media_type_filter)
end
end
# 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.
class JoinSharedAlbumRequest
include Google::Apis::Core::Hashable
# Token indicating the shared album to join on behalf of the user.
# Corresponds to the JSON property `shareToken`
# @return [String]
attr_accessor :share_token
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@share_token = args[:share_token] if args.key?(:share_token)
end
end
# Response to successfully joining the shared album on behalf of the user.
class JoinSharedAlbumResponse
include Google::Apis::Core::Hashable
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
end
end
# An object representing a latitude/longitude pair. This is expressed as a pair
# of doubles representing degrees latitude and degrees longitude. Unless
# specified otherwise, this must conform to the
# WGS84
# standard. Values must be within normalized ranges.
class LatLng
include Google::Apis::Core::Hashable
# The latitude in degrees. It must be in the range [-90.0, +90.0].
# Corresponds to the JSON property `latitude`
# @return [Float]
attr_accessor :latitude
# The longitude in degrees. It must be in the range [-180.0, +180.0].
# Corresponds to the JSON property `longitude`
# @return [Float]
attr_accessor :longitude
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@latitude = args[:latitude] if args.key?(:latitude)
@longitude = args[:longitude] if args.key?(:longitude)
end
end
#
class ListAlbumsResponse
include Google::Apis::Core::Hashable
# [Output only] List of albums that were created by the user.
# Corresponds to the JSON property `albums`
# @return [Array]
attr_accessor :albums
# [Output only] Token to use to get the next set of albums. Populated if
# there are more albums to retrieve for this request.
# Corresponds to the JSON property `nextPageToken`
# @return [String]
attr_accessor :next_page_token
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@albums = args[:albums] if args.key?(:albums)
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
end
end
#
class ListSharedAlbumsResponse
include Google::Apis::Core::Hashable
# [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.
# Corresponds to the JSON property `nextPageToken`
# @return [String]
attr_accessor :next_page_token
# [Output only] List of shared albums that were requested.
# Corresponds to the JSON property `sharedAlbums`
# @return [Array]
attr_accessor :shared_albums
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
@shared_albums = args[:shared_albums] if args.key?(:shared_albums)
end
end
# Represents a physical location.
class Location
include Google::Apis::Core::Hashable
# An object representing a latitude/longitude pair. This is expressed as a pair
# of doubles representing degrees latitude and degrees longitude. Unless
# specified otherwise, this must conform to the
# WGS84
# standard. Values must be within normalized ranges.
# Corresponds to the JSON property `latlng`
# @return [Google::Apis::PhotoslibraryV1::LatLng]
attr_accessor :latlng
# Name of the location to be displayed.
# Corresponds to the JSON property `locationName`
# @return [String]
attr_accessor :location_name
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@latlng = args[:latlng] if args.key?(:latlng)
@location_name = args[:location_name] if args.key?(:location_name)
end
end
# An enrichment containing a single location.
class LocationEnrichment
include Google::Apis::Core::Hashable
# Represents a physical location.
# Corresponds to the JSON property `location`
# @return [Google::Apis::PhotoslibraryV1::Location]
attr_accessor :location
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@location = args[:location] if args.key?(:location)
end
end
# An enrichment containing a map, showing origin and destination locations.
class MapEnrichment
include Google::Apis::Core::Hashable
# Represents a physical location.
# Corresponds to the JSON property `destination`
# @return [Google::Apis::PhotoslibraryV1::Location]
attr_accessor :destination
# Represents a physical location.
# Corresponds to the JSON property `origin`
# @return [Google::Apis::PhotoslibraryV1::Location]
attr_accessor :origin
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@destination = args[:destination] if args.key?(:destination)
@origin = args[:origin] if args.key?(:origin)
end
end
# Representation of a media item (e.g. photo, video etc.) in Google Photos.
class MediaItem
include Google::Apis::Core::Hashable
# A URL to the media item's bytes. This should not be used as is.
# 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.
# Corresponds to the JSON property `baseUrl`
# @return [String]
attr_accessor :base_url
# Information about a user who contributed the media item. Note that this
# information is only included if the album containing the media item is
# shared, was created by you and you have the sharing scope.
# Corresponds to the JSON property `contributorInfo`
# @return [Google::Apis::PhotoslibraryV1::ContributorInfo]
attr_accessor :contributor_info
# Description of the media item. This is shown to the user in the item's
# info section in the Google Photos app.
# Corresponds to the JSON property `description`
# @return [String]
attr_accessor :description
# Identifier for the media item. This is a persistent identifier that can be
# used between sessions to identify this media item.
# Corresponds to the JSON property `id`
# @return [String]
attr_accessor :id
# Metadata for a media item.
# Corresponds to the JSON property `mediaMetadata`
# @return [Google::Apis::PhotoslibraryV1::MediaMetadata]
attr_accessor :media_metadata
# MIME type of the media item.
# Corresponds to the JSON property `mimeType`
# @return [String]
attr_accessor :mime_type
# Google Photos URL for the media item. This link will only be available to
# the user if they're signed in.
# Corresponds to the JSON property `productUrl`
# @return [String]
attr_accessor :product_url
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@base_url = args[:base_url] if args.key?(:base_url)
@contributor_info = args[:contributor_info] if args.key?(:contributor_info)
@description = args[:description] if args.key?(:description)
@id = args[:id] if args.key?(:id)
@media_metadata = args[:media_metadata] if args.key?(:media_metadata)
@mime_type = args[:mime_type] if args.key?(:mime_type)
@product_url = args[:product_url] if args.key?(:product_url)
end
end
# Metadata for a media item.
class MediaMetadata
include Google::Apis::Core::Hashable
# Time when the media item was first created (not when it was uploaded to
# Google Photos).
# Corresponds to the JSON property `creationTime`
# @return [String]
attr_accessor :creation_time
# Original height (in pixels) of the media item.
# Corresponds to the JSON property `height`
# @return [Fixnum]
attr_accessor :height
# Metadata that is specific to a photo, for example, ISO, focal length and
# exposure time. Some of these fields may be null or not included.
# Corresponds to the JSON property `photo`
# @return [Google::Apis::PhotoslibraryV1::Photo]
attr_accessor :photo
# Metadata that is specific to a video, for example, fps and processing status.
# Some of these fields may be null or not included.
# Corresponds to the JSON property `video`
# @return [Google::Apis::PhotoslibraryV1::Video]
attr_accessor :video
# Original width (in pixels) of the media item.
# Corresponds to the JSON property `width`
# @return [Fixnum]
attr_accessor :width
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@creation_time = args[:creation_time] if args.key?(:creation_time)
@height = args[:height] if args.key?(:height)
@photo = args[:photo] if args.key?(:photo)
@video = args[:video] if args.key?(:video)
@width = args[:width] if args.key?(:width)
end
end
# This filter defines the type of media items to be returned, for example
# videos or photos. All the specified media types are treated as an OR with
# each other.
class MediaTypeFilter
include Google::Apis::Core::Hashable
# The types of media items to be included. This field should only be
# populated with one media type, multiple media types will result in an error
# response.
# Corresponds to the JSON property `mediaTypes`
# @return [Array]
attr_accessor :media_types
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@media_types = args[:media_types] if args.key?(:media_types)
end
end
# A new enrichment item to be added to an album, used by the
# AddEnrichmentToAlbum call.
class NewEnrichmentItem
include Google::Apis::Core::Hashable
# An enrichment containing a single location.
# Corresponds to the JSON property `locationEnrichment`
# @return [Google::Apis::PhotoslibraryV1::LocationEnrichment]
attr_accessor :location_enrichment
# An enrichment containing a map, showing origin and destination locations.
# Corresponds to the JSON property `mapEnrichment`
# @return [Google::Apis::PhotoslibraryV1::MapEnrichment]
attr_accessor :map_enrichment
# An enrichment containing text.
# Corresponds to the JSON property `textEnrichment`
# @return [Google::Apis::PhotoslibraryV1::TextEnrichment]
attr_accessor :text_enrichment
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@location_enrichment = args[:location_enrichment] if args.key?(:location_enrichment)
@map_enrichment = args[:map_enrichment] if args.key?(:map_enrichment)
@text_enrichment = args[:text_enrichment] if args.key?(:text_enrichment)
end
end
# New media item that will be created in a user's Google Photos account.
class NewMediaItem
include Google::Apis::Core::Hashable
# Description of the media item. This will be shown to the user in the item's
# info section in the Google Photos app.
# This string should not be more than 1000 characters.
# Corresponds to the JSON property `description`
# @return [String]
attr_accessor :description
# A simple media item to be created in Google Photos via an upload token.
# Corresponds to the JSON property `simpleMediaItem`
# @return [Google::Apis::PhotoslibraryV1::SimpleMediaItem]
attr_accessor :simple_media_item
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@description = args[:description] if args.key?(:description)
@simple_media_item = args[:simple_media_item] if args.key?(:simple_media_item)
end
end
# Result of creating a new media item.
class NewMediaItemResult
include Google::Apis::Core::Hashable
# Representation of a media item (e.g. photo, video etc.) in Google Photos.
# Corresponds to the JSON property `mediaItem`
# @return [Google::Apis::PhotoslibraryV1::MediaItem]
attr_accessor :media_item
# 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). The error model is designed to be:
# - Simple to use and understand for most users
# - Flexible enough to meet unexpected needs
# # Overview
# The `Status` message contains three pieces of data: error code, error message,
# and error details. The error code should be an enum value of
# google.rpc.Code, but it may accept additional error codes if needed. The
# error message should be a developer-facing English message that helps
# developers *understand* and *resolve* the error. If a localized user-facing
# error message is needed, put the localized message in the error details or
# localize it in the client. The optional error details may contain arbitrary
# information about the error. There is a predefined set of error detail types
# in the package `google.rpc` that can be used for common error conditions.
# # Language mapping
# The `Status` message is the logical representation of the error model, but it
# is not necessarily the actual wire format. When the `Status` message is
# exposed in different client libraries and different wire protocols, it can be
# mapped differently. For example, it will likely be mapped to some exceptions
# in Java, but more likely mapped to some error codes in C.
# # Other uses
# The error model and the `Status` message can be used in a variety of
# environments, either with or without APIs, to provide a
# consistent developer experience across different environments.
# Example uses of this error model include:
# - Partial errors. If a service needs to return partial errors to the client,
# it may embed the `Status` in the normal response to indicate the partial
# errors.
# - Workflow errors. A typical workflow has multiple steps. Each step may
# have a `Status` message for error reporting.
# - Batch operations. If a client uses batch request and batch response, the
# `Status` message should be used directly inside batch response, one for
# each error sub-response.
# - Asynchronous operations. If an API call embeds asynchronous operation
# results in its response, the status of those operations should be
# represented directly using the `Status` message.
# - Logging. If some API errors are stored in logs, the message `Status` could
# be used directly after any stripping needed for security/privacy reasons.
# Corresponds to the JSON property `status`
# @return [Google::Apis::PhotoslibraryV1::Status]
attr_accessor :status
# The upload token used to create this new media item.
# Corresponds to the JSON property `uploadToken`
# @return [String]
attr_accessor :upload_token
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@media_item = args[:media_item] if args.key?(:media_item)
@status = args[:status] if args.key?(:status)
@upload_token = args[:upload_token] if args.key?(:upload_token)
end
end
# Metadata that is specific to a photo, for example, ISO, focal length and
# exposure time. Some of these fields may be null or not included.
class Photo
include Google::Apis::Core::Hashable
# Apeture f number of the photo.
# Corresponds to the JSON property `apertureFNumber`
# @return [Float]
attr_accessor :aperture_f_number
# Brand of the camera which took the photo.
# Corresponds to the JSON property `cameraMake`
# @return [String]
attr_accessor :camera_make
# Model of the camera which took the photo.
# Corresponds to the JSON property `cameraModel`
# @return [String]
attr_accessor :camera_model
# Exposure time of the photo.
# Corresponds to the JSON property `exposureTime`
# @return [String]
attr_accessor :exposure_time
# Focal length of the photo.
# Corresponds to the JSON property `focalLength`
# @return [Float]
attr_accessor :focal_length
# ISO of the photo.
# Corresponds to the JSON property `isoEquivalent`
# @return [Fixnum]
attr_accessor :iso_equivalent
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@aperture_f_number = args[:aperture_f_number] if args.key?(:aperture_f_number)
@camera_make = args[:camera_make] if args.key?(:camera_make)
@camera_model = args[:camera_model] if args.key?(:camera_model)
@exposure_time = args[:exposure_time] if args.key?(:exposure_time)
@focal_length = args[:focal_length] if args.key?(:focal_length)
@iso_equivalent = args[:iso_equivalent] if args.key?(:iso_equivalent)
end
end
# Request to search for media items in a user's library.
# If the album id 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 media items in a user's Google Photos
# library.
# If filters are specified, this call will return all media items in
# the user's library which fulfills the criteria based upon the filters.
# Filters and album id must not both be set, as this will result in an
# invalid request.
class SearchMediaItemsRequest
include Google::Apis::Core::Hashable
# Identifier of an album. If populated will list all media items in
# specified album. Cannot be set in conjunction with any filters.
# Corresponds to the JSON property `albumId`
# @return [String]
attr_accessor :album_id
# Filters that can be applied to a media item search.
# If multiple filter options are specified, they are treated as AND with each
# other.
# Corresponds to the JSON property `filters`
# @return [Google::Apis::PhotoslibraryV1::Filters]
attr_accessor :filters
# Maximum number of media items to return in the response. The default number
# of media items to return at a time is 100. The maximum page size is 500.
# Corresponds to the JSON property `pageSize`
# @return [Fixnum]
attr_accessor :page_size
# A continuation token to get the next page of the results. Adding this to
# the request will return the rows after the pageToken. The pageToken should
# be the value returned in the nextPageToken parameter in the response to the
# searchMediaItems request.
# Corresponds to the JSON property `pageToken`
# @return [String]
attr_accessor :page_token
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@album_id = args[:album_id] if args.key?(:album_id)
@filters = args[:filters] if args.key?(:filters)
@page_size = args[:page_size] if args.key?(:page_size)
@page_token = args[:page_token] if args.key?(:page_token)
end
end
#
class SearchMediaItemsResponse
include Google::Apis::Core::Hashable
# [Output only] List of media items that match the search parameters.
# Corresponds to the JSON property `mediaItems`
# @return [Array]
attr_accessor :media_items
# [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.
# Corresponds to the JSON property `nextPageToken`
# @return [String]
attr_accessor :next_page_token
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@media_items = args[:media_items] if args.key?(:media_items)
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
end
end
# Request to make an album shared in Google Photos.
class ShareAlbumRequest
include Google::Apis::Core::Hashable
# Options that control the sharing of an album.
# Corresponds to the JSON property `sharedAlbumOptions`
# @return [Google::Apis::PhotoslibraryV1::SharedAlbumOptions]
attr_accessor :shared_album_options
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@shared_album_options = args[:shared_album_options] if args.key?(:shared_album_options)
end
end
#
class ShareAlbumResponse
include Google::Apis::Core::Hashable
# Information about albums that are shared. Note that this
# information is only included if the album was created by you and you have the
# sharing scope.
# Corresponds to the JSON property `shareInfo`
# @return [Google::Apis::PhotoslibraryV1::ShareInfo]
attr_accessor :share_info
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@share_info = args[:share_info] if args.key?(:share_info)
end
end
# Information about albums that are shared. Note that this
# information is only included if the album was created by you and you have the
# sharing scope.
class ShareInfo
include Google::Apis::Core::Hashable
# A token which can be used to join this shared album on behalf of other
# users via the API.
# Corresponds to the JSON property `shareToken`
# @return [String]
attr_accessor :share_token
# A link to the album that's now shared on the Google Photos website and app.
# Anyone with the link can access this shared album and see all of the items
# present in the album.
# Corresponds to the JSON property `shareableUrl`
# @return [String]
attr_accessor :shareable_url
# Options that control the sharing of an album.
# Corresponds to the JSON property `sharedAlbumOptions`
# @return [Google::Apis::PhotoslibraryV1::SharedAlbumOptions]
attr_accessor :shared_album_options
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@share_token = args[:share_token] if args.key?(:share_token)
@shareable_url = args[:shareable_url] if args.key?(:shareable_url)
@shared_album_options = args[:shared_album_options] if args.key?(:shared_album_options)
end
end
# Options that control the sharing of an album.
class SharedAlbumOptions
include Google::Apis::Core::Hashable
# True if the shared album allows collaborators (users who have joined
# the album) to add media items to it. Defaults to false.
# Corresponds to the JSON property `isCollaborative`
# @return [Boolean]
attr_accessor :is_collaborative
alias_method :is_collaborative?, :is_collaborative
# True if the shared album allows the owner and the collaborators (users
# who have joined the album) to add comments to the album. Defaults to false.
# Corresponds to the JSON property `isCommentable`
# @return [Boolean]
attr_accessor :is_commentable
alias_method :is_commentable?, :is_commentable
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@is_collaborative = args[:is_collaborative] if args.key?(:is_collaborative)
@is_commentable = args[:is_commentable] if args.key?(:is_commentable)
end
end
# A simple media item to be created in Google Photos via an upload token.
class SimpleMediaItem
include Google::Apis::Core::Hashable
# Token identifying the media bytes which have been uploaded to Google.
# Corresponds to the JSON property `uploadToken`
# @return [String]
attr_accessor :upload_token
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@upload_token = args[:upload_token] if args.key?(:upload_token)
end
end
# 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). The error model is designed to be:
# - Simple to use and understand for most users
# - Flexible enough to meet unexpected needs
# # Overview
# The `Status` message contains three pieces of data: error code, error message,
# and error details. The error code should be an enum value of
# google.rpc.Code, but it may accept additional error codes if needed. The
# error message should be a developer-facing English message that helps
# developers *understand* and *resolve* the error. If a localized user-facing
# error message is needed, put the localized message in the error details or
# localize it in the client. The optional error details may contain arbitrary
# information about the error. There is a predefined set of error detail types
# in the package `google.rpc` that can be used for common error conditions.
# # Language mapping
# The `Status` message is the logical representation of the error model, but it
# is not necessarily the actual wire format. When the `Status` message is
# exposed in different client libraries and different wire protocols, it can be
# mapped differently. For example, it will likely be mapped to some exceptions
# in Java, but more likely mapped to some error codes in C.
# # Other uses
# The error model and the `Status` message can be used in a variety of
# environments, either with or without APIs, to provide a
# consistent developer experience across different environments.
# Example uses of this error model include:
# - Partial errors. If a service needs to return partial errors to the client,
# it may embed the `Status` in the normal response to indicate the partial
# errors.
# - Workflow errors. A typical workflow has multiple steps. Each step may
# have a `Status` message for error reporting.
# - Batch operations. If a client uses batch request and batch response, the
# `Status` message should be used directly inside batch response, one for
# each error sub-response.
# - Asynchronous operations. If an API call embeds asynchronous operation
# results in its response, the status of those operations should be
# represented directly using the `Status` message.
# - Logging. If some API errors are stored in logs, the message `Status` could
# be used directly after any stripping needed for security/privacy reasons.
class Status
include Google::Apis::Core::Hashable
# The status code, which should be an enum value of google.rpc.Code.
# Corresponds to the JSON property `code`
# @return [Fixnum]
attr_accessor :code
# A list of messages that carry the error details. There is a common set of
# message types for APIs to use.
# Corresponds to the JSON property `details`
# @return [Array>]
attr_accessor :details
# 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.
# Corresponds to the JSON property `message`
# @return [String]
attr_accessor :message
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@code = args[:code] if args.key?(:code)
@details = args[:details] if args.key?(:details)
@message = args[:message] if args.key?(:message)
end
end
# An enrichment containing text.
class TextEnrichment
include Google::Apis::Core::Hashable
# Text for this text enrichment item.
# Corresponds to the JSON property `text`
# @return [String]
attr_accessor :text
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@text = args[:text] if args.key?(:text)
end
end
# Metadata that is specific to a video, for example, fps and processing status.
# Some of these fields may be null or not included.
class Video
include Google::Apis::Core::Hashable
# Brand of the camera which took the video.
# Corresponds to the JSON property `cameraMake`
# @return [String]
attr_accessor :camera_make
# Model of the camera which took the video.
# Corresponds to the JSON property `cameraModel`
# @return [String]
attr_accessor :camera_model
# Frame rate of the video.
# Corresponds to the JSON property `fps`
# @return [Float]
attr_accessor :fps
# Processing status of the video.
# Corresponds to the JSON property `status`
# @return [String]
attr_accessor :status
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@camera_make = args[:camera_make] if args.key?(:camera_make)
@camera_model = args[:camera_model] if args.key?(:camera_model)
@fps = args[:fps] if args.key?(:fps)
@status = args[:status] if args.key?(:status)
end
end
end
end
end