gopro-plus-0.6.6.6: GoPro Plus Client API.
Copyright(c) Dustin Sallings 2020
LicenseBSD3
Maintainerdustin@spy.net
Stabilityexperimental
Safe HaskellSafe-Inferred
LanguageHaskell2010

GoPro.Plus.Media

Description

GoPro Plus media client.

Synopsis

Accessing Data

list Source #

Arguments

:: (HasGoProAuth m, MonadIO m) 
=> Int

Number of items per page.

-> Int

Page number (one-based).

-> m ([Medium], PageInfo) 

List a page worth of media.

listAll :: (HasGoProAuth m, MonadIO m) => m [Medium] Source #

List all media.

listWhile :: (HasGoProAuth m, MonadIO m) => ([Medium] -> Bool) -> m [Medium] Source #

List all media while returned batches pass the given predicate.

medium :: (HasGoProAuth m, FromJSON j, MonadIO m) => MediumID -> m j Source #

Get the current Medium record for the given Medium ID.

notReady :: (HasGoProAuth m, MonadIO m) => m [Medium] Source #

Get a list of items whose processing is failed or incomplete.

This includes items that are currently uploading, or items that will not upload.

retrieve :: (HasGoProAuth m, FromJSON j, MonadIO m) => MediumID -> m j Source #

Get download descriptors for a given medium. The format is typically FileInfo, but it can be useful to map it into something else.

delete :: (HasGoProAuth m, MonadIO m) => MediumID -> m [Error] Source #

Delete an item.

reprocess :: (HasGoProAuth m, MonadIO m) => MediumID -> m () Source #

Reprocess a failed upload for the given medium ID

fetchThumbnail :: (HasGoProAuth m, MonadIO m) => Medium -> m ByteString Source #

Fetch a 450px wide thumbnail data for the given medium.

Data Types

data PageInfo Source #

Pagination info returned from lists.

Constructors

PageInfo 

Instances

Instances details
Arbitrary PageInfo Source # 
Instance details

Defined in GoPro.Plus.Arbitrary

FromJSON PageInfo Source # 
Instance details

Defined in GoPro.Plus.Media

ToJSON PageInfo Source # 
Instance details

Defined in GoPro.Plus.Media

Generic PageInfo Source # 
Instance details

Defined in GoPro.Plus.Media

Associated Types

type Rep PageInfo :: Type -> Type #

Methods

from :: PageInfo -> Rep PageInfo x #

to :: Rep PageInfo x -> PageInfo #

Show PageInfo Source # 
Instance details

Defined in GoPro.Plus.Media

Eq PageInfo Source # 
Instance details

Defined in GoPro.Plus.Media

type Rep PageInfo Source # 
Instance details

Defined in GoPro.Plus.Media

type Rep PageInfo = D1 ('MetaData "PageInfo" "GoPro.Plus.Media" "gopro-plus-0.6.6.6-8FT1Q7p0wsbGfNfy3dwI3G" 'False) (C1 ('MetaCons "PageInfo" 'PrefixI 'True) ((S1 ('MetaSel ('Just "_current_page") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int) :*: S1 ('MetaSel ('Just "_per_page") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)) :*: (S1 ('MetaSel ('Just "_total_items") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int) :*: S1 ('MetaSel ('Just "_total_pages") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int))))

type MediumID = Text Source #

GoPro-assigned identifier for an uploaded item.

data MediumType Source #

Type of Media for a given item.

Constructors

Photo

a still photo

Video

normal video

TimeLapse

a timelapse series of photos

TimeLapseVideo

a timelapse video

Burst

a set of photos taken in a burst

Chaptered 
Livestream 
Looped 
LoopedVideo 
BurstVideo 
Continuous 
ExternalVideo 
Session 
MultiClipEdit 
Audio 

Instances

Instances details
Arbitrary MediumType Source # 
Instance details

Defined in GoPro.Plus.Arbitrary

FromJSON MediumType Source # 
Instance details

Defined in GoPro.Plus.Media

ToJSON MediumType Source # 
Instance details

Defined in GoPro.Plus.Media

Bounded MediumType Source # 
Instance details

Defined in GoPro.Plus.Media

Enum MediumType Source # 
Instance details

Defined in GoPro.Plus.Media

Read MediumType Source # 
Instance details

Defined in GoPro.Plus.Media

Show MediumType Source # 
Instance details

Defined in GoPro.Plus.Media

Eq MediumType Source # 
Instance details

Defined in GoPro.Plus.Media

data ReadyToViewType Source #

Instances

Instances details
Arbitrary ReadyToViewType Source # 
Instance details

Defined in GoPro.Plus.Arbitrary

FromJSON ReadyToViewType Source # 
Instance details

Defined in GoPro.Plus.Media

ToJSON ReadyToViewType Source # 
Instance details

Defined in GoPro.Plus.Media

Bounded ReadyToViewType Source # 
Instance details

Defined in GoPro.Plus.Media

Enum ReadyToViewType Source # 
Instance details

Defined in GoPro.Plus.Media

Generic ReadyToViewType Source # 
Instance details

Defined in GoPro.Plus.Media

Associated Types

type Rep ReadyToViewType :: Type -> Type #

Read ReadyToViewType Source # 
Instance details

Defined in GoPro.Plus.Media

Show ReadyToViewType Source # 
Instance details

Defined in GoPro.Plus.Media

Eq ReadyToViewType Source # 
Instance details

Defined in GoPro.Plus.Media

type Rep ReadyToViewType Source # 
Instance details

Defined in GoPro.Plus.Media

type Rep ReadyToViewType = D1 ('MetaData "ReadyToViewType" "GoPro.Plus.Media" "gopro-plus-0.6.6.6-8FT1Q7p0wsbGfNfy3dwI3G" 'False) (((C1 ('MetaCons "ViewReady" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ViewFailure" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "ViewLoading" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ViewRegistered" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "ViewTranscoding" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ViewProcessing" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "ViewUploading" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ViewPreTranscoding" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ViewUpdating" 'PrefixI 'False) (U1 :: Type -> Type)))))

data Medium Source #

Instances

Instances details
Arbitrary Medium Source # 
Instance details

Defined in GoPro.Plus.Arbitrary

FromJSON Medium Source # 
Instance details

Defined in GoPro.Plus.Media

ToJSON Medium Source # 
Instance details

Defined in GoPro.Plus.Media

Generic Medium Source # 
Instance details

Defined in GoPro.Plus.Media

Associated Types

type Rep Medium :: Type -> Type #

Methods

from :: Medium -> Rep Medium x #

to :: Rep Medium x -> Medium #

Show Medium Source # 
Instance details

Defined in GoPro.Plus.Media

Eq Medium Source # 
Instance details

Defined in GoPro.Plus.Media

Methods

(==) :: Medium -> Medium -> Bool #

(/=) :: Medium -> Medium -> Bool #

type Rep Medium Source # 
Instance details

Defined in GoPro.Plus.Media

type Rep Medium = D1 ('MetaData "Medium" "GoPro.Plus.Media" "gopro-plus-0.6.6.6-8FT1Q7p0wsbGfNfy3dwI3G" 'False) (C1 ('MetaCons "Medium" 'PrefixI 'True) (((S1 ('MetaSel ('Just "_medium_id") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 MediumID) :*: (S1 ('MetaSel ('Just "_medium_camera_model") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe String)) :*: S1 ('MetaSel ('Just "_medium_captured_at") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 UTCTime))) :*: (S1 ('MetaSel ('Just "_medium_created_at") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 UTCTime) :*: (S1 ('MetaSel ('Just "_medium_file_size") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Int)) :*: S1 ('MetaSel ('Just "_medium_moments_count") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)))) :*: ((S1 ('MetaSel ('Just "_medium_ready_to_view") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ReadyToViewType) :*: (S1 ('MetaSel ('Just "_medium_source_duration") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe String)) :*: S1 ('MetaSel ('Just "_medium_type") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 MediumType))) :*: ((S1 ('MetaSel ('Just "_medium_token") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: S1 ('MetaSel ('Just "_medium_width") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Int))) :*: (S1 ('MetaSel ('Just "_medium_height") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Int)) :*: S1 ('MetaSel ('Just "_medium_filename") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe String)))))))

data Listing Source #

Constructors

Listing 

Fields

Instances

Instances details
Arbitrary Listing Source # 
Instance details

Defined in GoPro.Plus.Arbitrary

FromJSON Listing Source # 
Instance details

Defined in GoPro.Plus.Media

ToJSON Listing Source # 
Instance details

Defined in GoPro.Plus.Media

Generic Listing Source # 
Instance details

Defined in GoPro.Plus.Media

Associated Types

type Rep Listing :: Type -> Type #

Methods

from :: Listing -> Rep Listing x #

to :: Rep Listing x -> Listing #

Show Listing Source # 
Instance details

Defined in GoPro.Plus.Media

Eq Listing Source # 
Instance details

Defined in GoPro.Plus.Media

Methods

(==) :: Listing -> Listing -> Bool #

(/=) :: Listing -> Listing -> Bool #

type Rep Listing Source # 
Instance details

Defined in GoPro.Plus.Media

type Rep Listing = D1 ('MetaData "Listing" "GoPro.Plus.Media" "gopro-plus-0.6.6.6-8FT1Q7p0wsbGfNfy3dwI3G" 'False) (C1 ('MetaCons "Listing" 'PrefixI 'True) (S1 ('MetaSel ('Just "_media") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Medium]) :*: S1 ('MetaSel ('Just "_pages") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PageInfo)))

class HasMediaURL c where Source #

Instances

Instances details
HasMediaURL File Source # 
Instance details

Defined in GoPro.Plus.Media

HasMediaURL SidecarFile Source # 
Instance details

Defined in GoPro.Plus.Media

HasMediaURL Variation Source # 
Instance details

Defined in GoPro.Plus.Media

class HasMediaHead c where Source #

Instances

Instances details
HasMediaHead File Source # 
Instance details

Defined in GoPro.Plus.Media

HasMediaHead SidecarFile Source # 
Instance details

Defined in GoPro.Plus.Media

HasMediaHead Variation Source # 
Instance details

Defined in GoPro.Plus.Media

class HasMediaLabel c where Source #

Instances

Instances details
HasMediaLabel SidecarFile Source # 
Instance details

Defined in GoPro.Plus.Media

HasMediaLabel Variation Source # 
Instance details

Defined in GoPro.Plus.Media

class HasMediaType c where Source #

Instances

Instances details
HasMediaType SidecarFile Source # 
Instance details

Defined in GoPro.Plus.Media

HasMediaType Variation Source # 
Instance details

Defined in GoPro.Plus.Media

data File Source #

Instances

Instances details
Arbitrary File Source # 
Instance details

Defined in GoPro.Plus.Arbitrary

Methods

arbitrary :: Gen File #

shrink :: File -> [File] #

FromJSON File Source # 
Instance details

Defined in GoPro.Plus.Media

ToJSON File Source # 
Instance details

Defined in GoPro.Plus.Media

Generic File Source # 
Instance details

Defined in GoPro.Plus.Media

Associated Types

type Rep File :: Type -> Type #

Methods

from :: File -> Rep File x #

to :: Rep File x -> File #

Show File Source # 
Instance details

Defined in GoPro.Plus.Media

Methods

showsPrec :: Int -> File -> ShowS #

show :: File -> String #

showList :: [File] -> ShowS #

Eq File Source # 
Instance details

Defined in GoPro.Plus.Media

Methods

(==) :: File -> File -> Bool #

(/=) :: File -> File -> Bool #

HasMediaHead File Source # 
Instance details

Defined in GoPro.Plus.Media

HasMediaItemNumber File Source # 
Instance details

Defined in GoPro.Plus.Media

HasMediaURL File Source # 
Instance details

Defined in GoPro.Plus.Media

type Rep File Source # 
Instance details

Defined in GoPro.Plus.Media

data Variation Source #

Instances

Instances details
Arbitrary Variation Source # 
Instance details

Defined in GoPro.Plus.Arbitrary

FromJSON Variation Source # 
Instance details

Defined in GoPro.Plus.Media

ToJSON Variation Source # 
Instance details

Defined in GoPro.Plus.Media

Generic Variation Source # 
Instance details

Defined in GoPro.Plus.Media

Associated Types

type Rep Variation :: Type -> Type #

Show Variation Source # 
Instance details

Defined in GoPro.Plus.Media

Eq Variation Source # 
Instance details

Defined in GoPro.Plus.Media

HasMediaHead Variation Source # 
Instance details

Defined in GoPro.Plus.Media

HasMediaItemNumber Variation Source # 
Instance details

Defined in GoPro.Plus.Media

HasMediaLabel Variation Source # 
Instance details

Defined in GoPro.Plus.Media

HasMediaType Variation Source # 
Instance details

Defined in GoPro.Plus.Media

HasMediaURL Variation Source # 
Instance details

Defined in GoPro.Plus.Media

type Rep Variation Source # 
Instance details

Defined in GoPro.Plus.Media

data SpriteFrame Source #

Constructors

SpriteFrame 

Instances

Instances details
Arbitrary SpriteFrame Source # 
Instance details

Defined in GoPro.Plus.Arbitrary

FromJSON SpriteFrame Source # 
Instance details

Defined in GoPro.Plus.Media

ToJSON SpriteFrame Source # 
Instance details

Defined in GoPro.Plus.Media

Generic SpriteFrame Source # 
Instance details

Defined in GoPro.Plus.Media

Associated Types

type Rep SpriteFrame :: Type -> Type #

Show SpriteFrame Source # 
Instance details

Defined in GoPro.Plus.Media

Eq SpriteFrame Source # 
Instance details

Defined in GoPro.Plus.Media

type Rep SpriteFrame Source # 
Instance details

Defined in GoPro.Plus.Media

type Rep SpriteFrame = D1 ('MetaData "SpriteFrame" "GoPro.Plus.Media" "gopro-plus-0.6.6.6-8FT1Q7p0wsbGfNfy3dwI3G" 'False) (C1 ('MetaCons "SpriteFrame" 'PrefixI 'True) (S1 ('MetaSel ('Just "_frame_count") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int) :*: (S1 ('MetaSel ('Just "_frame_height") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int) :*: S1 ('MetaSel ('Just "_frame_width") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int))))

data Sprite Source #

Instances

Instances details
Arbitrary Sprite Source # 
Instance details

Defined in GoPro.Plus.Arbitrary

FromJSON Sprite Source # 
Instance details

Defined in GoPro.Plus.Media

ToJSON Sprite Source # 
Instance details

Defined in GoPro.Plus.Media

Generic Sprite Source # 
Instance details

Defined in GoPro.Plus.Media

Associated Types

type Rep Sprite :: Type -> Type #

Methods

from :: Sprite -> Rep Sprite x #

to :: Rep Sprite x -> Sprite #

Show Sprite Source # 
Instance details

Defined in GoPro.Plus.Media

Eq Sprite Source # 
Instance details

Defined in GoPro.Plus.Media

Methods

(==) :: Sprite -> Sprite -> Bool #

(/=) :: Sprite -> Sprite -> Bool #

type Rep Sprite Source # 
Instance details

Defined in GoPro.Plus.Media

data SidecarFile Source #

Instances

Instances details
Arbitrary SidecarFile Source # 
Instance details

Defined in GoPro.Plus.Arbitrary

FromJSON SidecarFile Source # 
Instance details

Defined in GoPro.Plus.Media

ToJSON SidecarFile Source # 
Instance details

Defined in GoPro.Plus.Media

Generic SidecarFile Source # 
Instance details

Defined in GoPro.Plus.Media

Associated Types

type Rep SidecarFile :: Type -> Type #

Show SidecarFile Source # 
Instance details

Defined in GoPro.Plus.Media

Eq SidecarFile Source # 
Instance details

Defined in GoPro.Plus.Media

HasMediaHead SidecarFile Source # 
Instance details

Defined in GoPro.Plus.Media

HasMediaItemNumber SidecarFile Source # 
Instance details

Defined in GoPro.Plus.Media

HasMediaLabel SidecarFile Source # 
Instance details

Defined in GoPro.Plus.Media

HasMediaType SidecarFile Source # 
Instance details

Defined in GoPro.Plus.Media

HasMediaURL SidecarFile Source # 
Instance details

Defined in GoPro.Plus.Media

type Rep SidecarFile Source # 
Instance details

Defined in GoPro.Plus.Media

type Rep SidecarFile = D1 ('MetaData "SidecarFile" "GoPro.Plus.Media" "gopro-plus-0.6.6.6-8FT1Q7p0wsbGfNfy3dwI3G" 'False) (C1 ('MetaCons "SidecarFile" 'PrefixI 'True) ((S1 ('MetaSel ('Just "_sidecar_fps") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Double) :*: (S1 ('MetaSel ('Just "_sidecar_label") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: S1 ('MetaSel ('Just "_sidecar_type") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String))) :*: (S1 ('MetaSel ('Just "_sidecar_head") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: (S1 ('MetaSel ('Just "_sidecar_url") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: S1 ('MetaSel ('Just "_sidecar_item_number") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Int))))))

data FileStuff Source #

Constructors

FileStuff 

Instances

Instances details
Arbitrary FileStuff Source # 
Instance details

Defined in GoPro.Plus.Arbitrary

FromJSON FileStuff Source # 
Instance details

Defined in GoPro.Plus.Media

ToJSON FileStuff Source # 
Instance details

Defined in GoPro.Plus.Media

Generic FileStuff Source # 
Instance details

Defined in GoPro.Plus.Media

Associated Types

type Rep FileStuff :: Type -> Type #

Show FileStuff Source # 
Instance details

Defined in GoPro.Plus.Media

Eq FileStuff Source # 
Instance details

Defined in GoPro.Plus.Media

type Rep FileStuff Source # 
Instance details

Defined in GoPro.Plus.Media

type Rep FileStuff = D1 ('MetaData "FileStuff" "GoPro.Plus.Media" "gopro-plus-0.6.6.6-8FT1Q7p0wsbGfNfy3dwI3G" 'False) (C1 ('MetaCons "FileStuff" 'PrefixI 'True) ((S1 ('MetaSel ('Just "_files") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [File]) :*: S1 ('MetaSel ('Just "_variations") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Variation])) :*: (S1 ('MetaSel ('Just "_sprites") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Sprite]) :*: S1 ('MetaSel ('Just "_sidecar_files") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [SidecarFile]))))

data FileInfo Source #

Constructors

FileInfo 

Instances

Instances details
Arbitrary FileInfo Source # 
Instance details

Defined in GoPro.Plus.Arbitrary

FromJSON FileInfo Source # 
Instance details

Defined in GoPro.Plus.Media

ToJSON FileInfo Source # 
Instance details

Defined in GoPro.Plus.Media

Generic FileInfo Source # 
Instance details

Defined in GoPro.Plus.Media

Associated Types

type Rep FileInfo :: Type -> Type #

Methods

from :: FileInfo -> Rep FileInfo x #

to :: Rep FileInfo x -> FileInfo #

Show FileInfo Source # 
Instance details

Defined in GoPro.Plus.Media

Eq FileInfo Source # 
Instance details

Defined in GoPro.Plus.Media

type Rep FileInfo Source # 
Instance details

Defined in GoPro.Plus.Media

type Rep FileInfo = D1 ('MetaData "FileInfo" "GoPro.Plus.Media" "gopro-plus-0.6.6.6-8FT1Q7p0wsbGfNfy3dwI3G" 'False) (C1 ('MetaCons "FileInfo" 'PrefixI 'True) (S1 ('MetaSel ('Just "_fileStuff") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FileStuff) :*: S1 ('MetaSel ('Just "_filename") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)))

data Error Source #

Instances

Instances details
FromJSON Error Source # 
Instance details

Defined in GoPro.Plus.Media

Generic Error Source # 
Instance details

Defined in GoPro.Plus.Media

Associated Types

type Rep Error :: Type -> Type #

Methods

from :: Error -> Rep Error x #

to :: Rep Error x -> Error #

Show Error Source # 
Instance details

Defined in GoPro.Plus.Media

Methods

showsPrec :: Int -> Error -> ShowS #

show :: Error -> String #

showList :: [Error] -> ShowS #

type Rep Error Source # 
Instance details

Defined in GoPro.Plus.Media

type Rep Error = D1 ('MetaData "Error" "GoPro.Plus.Media" "gopro-plus-0.6.6.6-8FT1Q7p0wsbGfNfy3dwI3G" 'False) (C1 ('MetaCons "Error" 'PrefixI 'True) ((S1 ('MetaSel ('Just "_error_reason") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: S1 ('MetaSel ('Just "_error_code") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)) :*: (S1 ('MetaSel ('Just "_error_description") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: S1 ('MetaSel ('Just "_error_id") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String))))

data Moment Source #

A moment of interestingness in a Medium.

Constructors

Moment 

Instances

Instances details
Arbitrary Moment Source # 
Instance details

Defined in GoPro.Plus.Arbitrary

FromJSON Moment Source # 
Instance details

Defined in GoPro.Plus.Media

ToJSON Moment Source # 
Instance details

Defined in GoPro.Plus.Media

Generic Moment Source # 
Instance details

Defined in GoPro.Plus.Media

Associated Types

type Rep Moment :: Type -> Type #

Methods

from :: Moment -> Rep Moment x #

to :: Rep Moment x -> Moment #

Show Moment Source # 
Instance details

Defined in GoPro.Plus.Media

Eq Moment Source # 
Instance details

Defined in GoPro.Plus.Media

Methods

(==) :: Moment -> Moment -> Bool #

(/=) :: Moment -> Moment -> Bool #

type Rep Moment Source # 
Instance details

Defined in GoPro.Plus.Media

type Rep Moment = D1 ('MetaData "Moment" "GoPro.Plus.Media" "gopro-plus-0.6.6.6-8FT1Q7p0wsbGfNfy3dwI3G" 'False) (C1 ('MetaCons "Moment" 'PrefixI 'True) (S1 ('MetaSel ('Just "_moment_id") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: S1 ('MetaSel ('Just "_moment_time") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Int))))

moments :: (HasGoProAuth m, MonadIO m) => MediumID -> m [Moment] Source #

Get the moments for the given medium.

Low-level Junk

updateMedium Source #

Arguments

:: (HasGoProAuth m, MonadIO m, FromJSON j, Putable a) 
=> (j -> a)

Transformation function.

-> MediumID

Medium to update.

-> m () 

Fetch, modify, and store a medium value.

putMedium :: (HasGoProAuth m, MonadIO m, Putable a) => MediumID -> a -> m () Source #

Put a Medium. It's probably best to get a raw JSON Value and update it in place.