package photos type Album struct { ID string `json:"id"` Title string `json:"title"` } type Asset struct { ID string `json:"id"` Filename string `json:"filename"` Cloud string `json:"cloud"` MediaType string `json:"mediaType"` MediaSubtypes []string `json:"mediaSubtypes,omitempty"` SourceType string `json:"sourceType,omitempty"` PlaybackStyle string `json:"playbackStyle,omitempty"` PixelWidth int `json:"pixelWidth"` PixelHeight int `json:"pixelHeight"` CreationDate *string `json:"creationDate,omitempty"` ModificationDate *string `json:"modificationDate,omitempty"` Duration float64 `json:"duration,omitempty"` IsFavorite bool `json:"isFavorite,omitempty"` IsHidden bool `json:"isHidden,omitempty"` HasAdjustments bool `json:"hasAdjustments,omitempty"` Location *AssetLocation `json:"location,omitempty"` BurstIdentifier string `json:"burstIdentifier,omitempty"` RepresentsBurst bool `json:"representsBurst,omitempty"` BurstSelectionTypes []string `json:"burstSelectionTypes,omitempty"` AdjustmentInfo *AdjustmentInfo `json:"adjustmentInfo,omitempty"` Resources []AssetResource `json:"resources,omitempty"` } type AssetLocation struct { Latitude float64 `json:"latitude"` Longitude float64 `json:"longitude"` Altitude float64 `json:"altitude,omitempty"` HorizontalAccuracy float64 `json:"horizontalAccuracy,omitempty"` } type AdjustmentInfo struct { FormatIdentifier string `json:"formatIdentifier,omitempty"` FormatVersion string `json:"formatVersion,omitempty"` BaseFilename string `json:"baseFilename,omitempty"` } type AssetResource struct { Type string `json:"type"` Filename string `json:"filename"` UTI string `json:"uti"` Local bool `json:"local"` Size int64 `json:"size,omitempty"` } type Placemark struct { Name string `json:"name,omitempty"` Country string `json:"country,omitempty"` CountryCode string `json:"countryCode,omitempty"` AdministrativeArea string `json:"administrativeArea,omitempty"` SubAdministrativeArea string `json:"subAdministrativeArea,omitempty"` Locality string `json:"locality,omitempty"` SubLocality string `json:"subLocality,omitempty"` Thoroughfare string `json:"thoroughfare,omitempty"` SubThoroughfare string `json:"subThoroughfare,omitempty"` PostalCode string `json:"postalCode,omitempty"` FormattedAddress string `json:"formattedAddress,omitempty"` InlandWater string `json:"inlandWater,omitempty"` Ocean string `json:"ocean,omitempty"` AreasOfInterest []string `json:"areasOfInterest,omitempty"` } type PlacemarkResponse struct { Placemark Placemark `json:"placemark"` Error string `json:"error,omitempty"` } type ExportResult struct { Filename string `json:"filename"` Size int64 `json:"size"` Cloud string `json:"cloud"` Skipped bool `json:"skipped,omitempty"` Error string `json:"error,omitempty"` } type CollectionNode struct { ID string `json:"id,omitempty"` Name string `json:"name"` Kind string `json:"kind"` Children []CollectionNode `json:"children,omitempty"` } type AlbumsResponse struct { Albums []Album `json:"albums"` } type AssetsResponse struct { Assets []Asset `json:"assets"` Total int `json:"total"` } type TreeResponse struct { Collections []CollectionNode `json:"collections"` } type ErrorResponse struct { Error string `json:"error"` } type ExportResultResponse struct { ExportResult }