-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A Haskell client for the Strava V3 API. -- -- A Haskell client for the Strava V3 API. @package strive @version 0.6.0 -- | http://strava.github.io/api/v3/uploads/ module Strive.Types.Uploads -- | http://strava.github.io/api/v3/uploads/#attributes data UploadStatus UploadStatus :: Maybe Integer -> Maybe Text -> Maybe Text -> Integer -> Text -> UploadStatus uploadStatus_activityId :: UploadStatus -> Maybe Integer uploadStatus_error :: UploadStatus -> Maybe Text uploadStatus_externalId :: UploadStatus -> Maybe Text uploadStatus_id :: UploadStatus -> Integer uploadStatus_status :: UploadStatus -> Text instance FromJSON UploadStatus instance Show UploadStatus -- | http://strava.github.io/api/v3/kudos/ module Strive.Options.Kudos -- | getActivityKudoers type GetActivityKudoersOptions = PaginationOptions -- | http://strava.github.io/api/v3/follow/ module Strive.Options.Friends -- | getCurrentFriends type GetCurrentFriendsOptions = PaginationOptions -- | getFriends type GetFriendsOptions = PaginationOptions -- | getCurrentFollowers type GetCurrentFollowersOptions = PaginationOptions -- | getFollowers type GetFollowersOptions = PaginationOptions -- | getCommonFriends type GetCommonFriendsOptions = PaginationOptions -- | http://strava.github.io/api/v3/comments/ module Strive.Options.Comments -- | getActivityComments data GetActivityCommentsOptions GetActivityCommentsOptions :: Bool -> Integer -> Integer -> GetActivityCommentsOptions getActivityCommentsOptions_markdown :: GetActivityCommentsOptions -> Bool getActivityCommentsOptions_page :: GetActivityCommentsOptions -> Integer getActivityCommentsOptions_perPage :: GetActivityCommentsOptions -> Integer instance Show GetActivityCommentsOptions instance QueryLike GetActivityCommentsOptions instance Default GetActivityCommentsOptions -- | http://strava.github.io/api/v3/oauth/ module Strive.Options.Authentication -- | buildAuthorizeUrl data BuildAuthorizeUrlOptions BuildAuthorizeUrlOptions :: Bool -> Bool -> Bool -> String -> BuildAuthorizeUrlOptions buildAuthorizeUrlOptions_approvalPrompt :: BuildAuthorizeUrlOptions -> Bool buildAuthorizeUrlOptions_privateScope :: BuildAuthorizeUrlOptions -> Bool buildAuthorizeUrlOptions_writeScope :: BuildAuthorizeUrlOptions -> Bool buildAuthorizeUrlOptions_state :: BuildAuthorizeUrlOptions -> String instance Show BuildAuthorizeUrlOptions instance QueryLike BuildAuthorizeUrlOptions instance Default BuildAuthorizeUrlOptions -- | Lenses for easily getting and setting values. module Strive.Lenses -- | A lens for a record. type Lens a b = Functor f => (b -> f b) -> a -> f a -- | Get a field from a record. get :: Lens a b -> a -> b -- | Set a field in a record. set :: Lens a b -> b -> a -> a -- | Update a field in a record update :: Lens a b -> (b -> b) -> a -> a -- | Types for choosing an option from a limited set. module Strive.Enums -- | An activity's type. data ActivityType Alpineski :: ActivityType Backcountryski :: ActivityType Hike :: ActivityType Iceskate :: ActivityType Inlineskate :: ActivityType Kitesurf :: ActivityType Nordicski :: ActivityType Ride :: ActivityType Rollerski :: ActivityType Run :: ActivityType Snowboard :: ActivityType Snowshoe :: ActivityType Swim :: ActivityType Walk :: ActivityType Windsurf :: ActivityType Workout :: ActivityType -- | An activity zone's type. data ActivityZoneType HeartrateZone :: ActivityZoneType PowerZone :: ActivityZoneType -- | An athlete's age group. data AgeGroup Ages0To24 :: AgeGroup Ages25To34 :: AgeGroup Ages35To44 :: AgeGroup Ages45To54 :: AgeGroup Ages55To64 :: AgeGroup Ages65Plus :: AgeGroup -- | A club's type. data ClubType CasualClub :: ClubType Company :: ClubType Other :: ClubType RacingTeam :: ClubType Shop :: ClubType -- | A bike's frame type. data FrameType CrossFrame :: FrameType MountainFrame :: FrameType RoadFrame :: FrameType TimeTrialFrame :: FrameType -- | An athlete's gender. data Gender Female :: Gender Male :: Gender -- | An athlete's measurement preference. data MeasurementPreference Feet :: MeasurementPreference Meters :: MeasurementPreference -- | A photo's type. data PhotoType InstagramPhoto :: PhotoType -- | A stream's resolution. data Resolution Low :: Resolution Medium :: Resolution High :: Resolution -- | A resource's state. data ResourceState Meta :: ResourceState Summary :: ResourceState Detailed :: ResourceState -- | A segment's activity type. data SegmentActivityType Riding :: SegmentActivityType Running :: SegmentActivityType -- | A series' type in a stream. data SeriesType Distance :: SeriesType Time :: SeriesType -- | A club's sport type. data SportType SportCycling :: SportType SportOther :: SportType SportRunning :: SportType SportTriathalon :: SportType -- | An athlete's weight class. data WeightClass Kilograms0To54 :: WeightClass Kilograms55To64 :: WeightClass Kilograms65To74 :: WeightClass Kilograms75To84 :: WeightClass Kilograms85To94 :: WeightClass Kilograms95Plus :: WeightClass Pounds0To124 :: WeightClass Pounds125To149 :: WeightClass Pounds150To164 :: WeightClass Pounds165To179 :: WeightClass Pounds180To199 :: WeightClass Pounds200Plus :: WeightClass instance Show ActivityType instance Show ActivityZoneType instance Show ClubType instance Show FrameType instance Show MeasurementPreference instance Show PhotoType instance Show ResourceState instance Show SportType instance Show WeightClass instance FromJSON SportType instance FromJSON SeriesType instance Show SeriesType instance Show SegmentActivityType instance FromJSON ResourceState instance FromJSON Resolution instance Show Resolution instance FromJSON PhotoType instance FromJSON MeasurementPreference instance FromJSON Gender instance Show Gender instance FromJSON FrameType instance FromJSON ClubType instance Show AgeGroup instance FromJSON ActivityZoneType instance FromJSON ActivityType -- | http://strava.github.io/api/v3/activities/ module Strive.Options.Activities -- | CreateActivity data CreateActivityOptions CreateActivityOptions :: Maybe String -> Maybe Double -> CreateActivityOptions createActivityOptions_description :: CreateActivityOptions -> Maybe String createActivityOptions_distance :: CreateActivityOptions -> Maybe Double -- | GetActivity data GetActivityOptions GetActivityOptions :: Bool -> GetActivityOptions getActivityOptions_allEfforts :: GetActivityOptions -> Bool -- | UpdateActivity data UpdateActivityOptions UpdateActivityOptions :: Maybe String -> Maybe ActivityType -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe String -> Maybe String -> UpdateActivityOptions updateActivityOptions_name :: UpdateActivityOptions -> Maybe String updateActivityOptions_type :: UpdateActivityOptions -> Maybe ActivityType updateActivityOptions_private :: UpdateActivityOptions -> Maybe Bool updateActivityOptions_commute :: UpdateActivityOptions -> Maybe Bool updateActivityOptions_trainer :: UpdateActivityOptions -> Maybe Bool updateActivityOptions_gearId :: UpdateActivityOptions -> Maybe String updateActivityOptions_description :: UpdateActivityOptions -> Maybe String -- | getCurrentActivities data GetCurrentActivitiesOptions GetCurrentActivitiesOptions :: Maybe UTCTime -> Maybe UTCTime -> Integer -> Integer -> GetCurrentActivitiesOptions getCurrentActivitiesOptions_before :: GetCurrentActivitiesOptions -> Maybe UTCTime getCurrentActivitiesOptions_after :: GetCurrentActivitiesOptions -> Maybe UTCTime getCurrentActivitiesOptions_page :: GetCurrentActivitiesOptions -> Integer getCurrentActivitiesOptions_perPage :: GetCurrentActivitiesOptions -> Integer -- | getFeed type GetFeedOptions = PaginationOptions instance Show CreateActivityOptions instance Show GetActivityOptions instance Show UpdateActivityOptions instance Show GetCurrentActivitiesOptions instance QueryLike GetCurrentActivitiesOptions instance Default GetCurrentActivitiesOptions instance QueryLike UpdateActivityOptions instance Default UpdateActivityOptions instance QueryLike GetActivityOptions instance Default GetActivityOptions instance QueryLike CreateActivityOptions instance Default CreateActivityOptions -- | http://strava.github.io/api/v3/athlete/ module Strive.Options.Athletes -- | updateCurrentAthlete data UpdateCurrentAthleteOptions UpdateCurrentAthleteOptions :: Maybe String -> Maybe String -> Maybe String -> Maybe Gender -> Maybe Double -> UpdateCurrentAthleteOptions updateCurrentAthleteOptions_city :: UpdateCurrentAthleteOptions -> Maybe String updateCurrentAthleteOptions_state :: UpdateCurrentAthleteOptions -> Maybe String updateCurrentAthleteOptions_country :: UpdateCurrentAthleteOptions -> Maybe String updateCurrentAthleteOptions_sex :: UpdateCurrentAthleteOptions -> Maybe Gender updateCurrentAthleteOptions_weight :: UpdateCurrentAthleteOptions -> Maybe Double -- | getAthleteCrs type GetAthleteCrsOptions = PaginationOptions instance Show UpdateCurrentAthleteOptions instance QueryLike UpdateCurrentAthleteOptions instance Default UpdateCurrentAthleteOptions -- | http://strava.github.io/api/v3/clubs/ module Strive.Options.Clubs -- | getClubMembers type GetClubMembersOptions = PaginationOptions -- | getClubActivities type GetClubActivitiesOptions = PaginationOptions -- | getStarredSegments type GetStarredSegmentsOptions = PaginationOptions -- | getSegmentEfforts data GetSegmentEffortsOptions GetSegmentEffortsOptions :: Maybe Integer -> Maybe (UTCTime, UTCTime) -> Integer -> Integer -> GetSegmentEffortsOptions getSegmentEffortsOptions_athleteId :: GetSegmentEffortsOptions -> Maybe Integer getSegmentEffortsOptions_range :: GetSegmentEffortsOptions -> Maybe (UTCTime, UTCTime) getSegmentEffortsOptions_page :: GetSegmentEffortsOptions -> Integer getSegmentEffortsOptions_perPage :: GetSegmentEffortsOptions -> Integer -- | getSegmentLeaderboard data GetSegmentLeaderboardOptions GetSegmentLeaderboardOptions :: Maybe Gender -> Maybe AgeGroup -> Maybe WeightClass -> Maybe Bool -> Maybe Integer -> Maybe String -> Integer -> Integer -> GetSegmentLeaderboardOptions getSegmentLeaderboardOptions_gender :: GetSegmentLeaderboardOptions -> Maybe Gender getSegmentLeaderboardOptions_ageGroup :: GetSegmentLeaderboardOptions -> Maybe AgeGroup getSegmentLeaderboardOptions_weightClass :: GetSegmentLeaderboardOptions -> Maybe WeightClass getSegmentLeaderboardOptions_following :: GetSegmentLeaderboardOptions -> Maybe Bool getSegmentLeaderboardOptions_clubId :: GetSegmentLeaderboardOptions -> Maybe Integer getSegmentLeaderboardOptions_dateRange :: GetSegmentLeaderboardOptions -> Maybe String getSegmentLeaderboardOptions_page :: GetSegmentLeaderboardOptions -> Integer getSegmentLeaderboardOptions_perPage :: GetSegmentLeaderboardOptions -> Integer -- | exploreSegments data ExploreSegmentsOptions ExploreSegmentsOptions :: SegmentActivityType -> Integer -> Integer -> ExploreSegmentsOptions exploreSegmentsOptions_activityType :: ExploreSegmentsOptions -> SegmentActivityType exploreSegmentsOptions_minCat :: ExploreSegmentsOptions -> Integer exploreSegmentsOptions_maxCat :: ExploreSegmentsOptions -> Integer instance Show GetSegmentEffortsOptions instance Show GetSegmentLeaderboardOptions instance Show ExploreSegmentsOptions instance QueryLike ExploreSegmentsOptions instance Default ExploreSegmentsOptions instance QueryLike GetSegmentLeaderboardOptions instance Default GetSegmentLeaderboardOptions instance QueryLike GetSegmentEffortsOptions instance Default GetSegmentEffortsOptions -- | http://strava.github.io/api/v3/streams/ module Strive.Options.Streams -- | getStreams data GetStreamsOptions GetStreamsOptions :: Maybe Resolution -> SeriesType -> GetStreamsOptions getStreamsOptions_resolution :: GetStreamsOptions -> Maybe Resolution getStreamsOptions_seriesType :: GetStreamsOptions -> SeriesType instance Show GetStreamsOptions instance QueryLike GetStreamsOptions instance Default GetStreamsOptions -- | http://strava.github.io/api/v3/uploads/ module Strive.Options.Uploads -- | uploadActivity data UploadActivityOptions UploadActivityOptions :: Maybe ActivityType -> Maybe String -> Maybe String -> Bool -> Bool -> Maybe String -> UploadActivityOptions uploadActivityOptions_activityType :: UploadActivityOptions -> Maybe ActivityType uploadActivityOptions_name :: UploadActivityOptions -> Maybe String uploadActivityOptions_description :: UploadActivityOptions -> Maybe String uploadActivityOptions_private :: UploadActivityOptions -> Bool uploadActivityOptions_trainer :: UploadActivityOptions -> Bool uploadActivityOptions_externalId :: UploadActivityOptions -> Maybe String instance Show UploadActivityOptions instance QueryLike UploadActivityOptions instance Default UploadActivityOptions -- | Optional parameters for actions. module Strive.Options -- | http://strava.github.io/api/v3/clubs/ module Strive.Types.Clubs -- | http://strava.github.io/api/v3/clubs/#detailed data ClubDetailed ClubDetailed :: Text -> ClubType -> Text -> Text -> Integer -> Integer -> Text -> Bool -> Text -> Text -> ResourceState -> SportType -> Text -> ClubDetailed clubDetailed_city :: ClubDetailed -> Text clubDetailed_clubType :: ClubDetailed -> ClubType clubDetailed_country :: ClubDetailed -> Text clubDetailed_description :: ClubDetailed -> Text clubDetailed_id :: ClubDetailed -> Integer clubDetailed_memberCount :: ClubDetailed -> Integer clubDetailed_name :: ClubDetailed -> Text clubDetailed_private :: ClubDetailed -> Bool clubDetailed_profile :: ClubDetailed -> Text clubDetailed_profileMedium :: ClubDetailed -> Text clubDetailed_resourceState :: ClubDetailed -> ResourceState clubDetailed_sportType :: ClubDetailed -> SportType clubDetailed_state :: ClubDetailed -> Text -- | http://strava.github.io/api/v3/clubs/#summary data ClubSummary ClubSummary :: Integer -> Text -> Text -> Text -> ResourceState -> ClubSummary clubSummary_id :: ClubSummary -> Integer clubSummary_name :: ClubSummary -> Text clubSummary_profile :: ClubSummary -> Text clubSummary_profileMedium :: ClubSummary -> Text clubSummary_resourceState :: ClubSummary -> ResourceState instance FromJSON ClubSummary instance Show ClubSummary instance FromJSON ClubDetailed instance Show ClubDetailed -- | http://strava.github.io/api/v3/gear/ module Strive.Types.Gear -- | http://strava.github.io/api/v3/gear/#detailed data GearDetailed GearDetailed :: Text -> Text -> Double -> Maybe FrameType -> Text -> Text -> Text -> Bool -> ResourceState -> GearDetailed gearDetailed_brandName :: GearDetailed -> Text gearDetailed_description :: GearDetailed -> Text gearDetailed_distance :: GearDetailed -> Double gearDetailed_frameType :: GearDetailed -> Maybe FrameType gearDetailed_id :: GearDetailed -> Text gearDetailed_modelName :: GearDetailed -> Text gearDetailed_name :: GearDetailed -> Text gearDetailed_primary :: GearDetailed -> Bool gearDetailed_resourceState :: GearDetailed -> ResourceState -- | http://strava.github.io/api/v3/gear/#summary data GearSummary GearSummary :: Double -> Text -> Text -> Bool -> ResourceState -> GearSummary gearSummary_distance :: GearSummary -> Double gearSummary_id :: GearSummary -> Text gearSummary_name :: GearSummary -> Text gearSummary_primary :: GearSummary -> Bool gearSummary_resourceState :: GearSummary -> ResourceState instance FromJSON GearSummary instance Show GearSummary instance FromJSON GearDetailed instance Show GearDetailed -- | http://strava.github.io/api/v3/athlete/ module Strive.Types.Athletes -- | http://strava.github.io/api/v3/athlete/#detailed data AthleteDetailed AthleteDetailed :: [GearSummary] -> Text -> [ClubSummary] -> Text -> UTCTime -> Text -> Text -> Text -> Maybe Text -> Integer -> Maybe Text -> Integer -> Maybe Integer -> Integer -> Text -> MeasurementPreference -> Integer -> Bool -> Text -> Text -> ResourceState -> Maybe Gender -> [GearSummary] -> Text -> UTCTime -> AthleteDetailed athleteDetailed_bikes :: AthleteDetailed -> [GearSummary] athleteDetailed_city :: AthleteDetailed -> Text athleteDetailed_clubs :: AthleteDetailed -> [ClubSummary] athleteDetailed_country :: AthleteDetailed -> Text athleteDetailed_createdAt :: AthleteDetailed -> UTCTime athleteDetailed_datePreference :: AthleteDetailed -> Text athleteDetailed_email :: AthleteDetailed -> Text athleteDetailed_firstname :: AthleteDetailed -> Text athleteDetailed_follower :: AthleteDetailed -> Maybe Text athleteDetailed_followerCount :: AthleteDetailed -> Integer athleteDetailed_friend :: AthleteDetailed -> Maybe Text athleteDetailed_friendCount :: AthleteDetailed -> Integer athleteDetailed_ftp :: AthleteDetailed -> Maybe Integer athleteDetailed_id :: AthleteDetailed -> Integer athleteDetailed_lastname :: AthleteDetailed -> Text athleteDetailed_measurementPreference :: AthleteDetailed -> MeasurementPreference athleteDetailed_mutualFriendCount :: AthleteDetailed -> Integer athleteDetailed_premium :: AthleteDetailed -> Bool athleteDetailed_profile :: AthleteDetailed -> Text athleteDetailed_profileMedium :: AthleteDetailed -> Text athleteDetailed_resourceState :: AthleteDetailed -> ResourceState athleteDetailed_sex :: AthleteDetailed -> Maybe Gender athleteDetailed_shoes :: AthleteDetailed -> [GearSummary] athleteDetailed_state :: AthleteDetailed -> Text athleteDetailed_updatedAt :: AthleteDetailed -> UTCTime -- | http://strava.github.io/api/v3/athlete/#summary data AthleteSummary AthleteSummary :: Maybe Text -> Maybe Text -> UTCTime -> Text -> Maybe Text -> Maybe Text -> Integer -> Text -> Bool -> Text -> Text -> ResourceState -> Maybe Gender -> Text -> UTCTime -> AthleteSummary athleteSummary_city :: AthleteSummary -> Maybe Text athleteSummary_country :: AthleteSummary -> Maybe Text athleteSummary_createdAt :: AthleteSummary -> UTCTime athleteSummary_firstname :: AthleteSummary -> Text athleteSummary_follower :: AthleteSummary -> Maybe Text athleteSummary_friend :: AthleteSummary -> Maybe Text athleteSummary_id :: AthleteSummary -> Integer athleteSummary_lastname :: AthleteSummary -> Text athleteSummary_premium :: AthleteSummary -> Bool athleteSummary_profile :: AthleteSummary -> Text athleteSummary_profileMedium :: AthleteSummary -> Text athleteSummary_resourceState :: AthleteSummary -> ResourceState athleteSummary_sex :: AthleteSummary -> Maybe Gender athleteSummary_state :: AthleteSummary -> Text athleteSummary_updatedAt :: AthleteSummary -> UTCTime -- | http://strava.github.io/api/v3/athlete/#meta data AthleteMeta AthleteMeta :: Integer -> ResourceState -> AthleteMeta athleteMeta_id :: AthleteMeta -> Integer athleteMeta_resourceState :: AthleteMeta -> ResourceState instance FromJSON AthleteMeta instance Show AthleteMeta instance FromJSON AthleteSummary instance Show AthleteSummary instance FromJSON AthleteDetailed instance Show AthleteDetailed -- | http://strava.github.io/api/v3/oauth/ module Strive.Types.Authentication -- | http://strava.github.io/api/v3/oauth/#example-response data TokenExchangeResponse TokenExchangeResponse :: Text -> AthleteDetailed -> TokenExchangeResponse tokenExchangeResponse_accessToken :: TokenExchangeResponse -> Text tokenExchangeResponse_athlete :: TokenExchangeResponse -> AthleteDetailed -- | http://strava.github.io/api/v3/oauth/#example-response-1 data DeauthorizationResponse DeauthorizationResponse :: Text -> DeauthorizationResponse deauthorizationResponse_accessToken :: DeauthorizationResponse -> Text instance FromJSON DeauthorizationResponse instance Show DeauthorizationResponse instance FromJSON TokenExchangeResponse instance Show TokenExchangeResponse -- | http://strava.github.io/api/v3/comments/ module Strive.Types.Comments -- | -- http://strava.github.io/api/v3/comments/#summary-and-detailed-representation-attributes data CommentSummary CommentSummary :: Integer -> AthleteSummary -> UTCTime -> Integer -> ResourceState -> Text -> CommentSummary commentSummary_activityId :: CommentSummary -> Integer commentSummary_athlete :: CommentSummary -> AthleteSummary commentSummary_createdAt :: CommentSummary -> UTCTime commentSummary_id :: CommentSummary -> Integer commentSummary_resourceState :: CommentSummary -> ResourceState commentSummary_text :: CommentSummary -> Text instance FromJSON CommentSummary instance Show CommentSummary -- | http://strava.github.io/api/v3/photos/ module Strive.Types.Photos -- | -- http://strava.github.io/api/v3/photos/#summary-and-detailed-representation-attributes data PhotoSummary PhotoSummary :: Integer -> Text -> UTCTime -> Integer -> Maybe (Double, Double) -> Text -> ResourceState -> PhotoType -> Text -> UTCTime -> PhotoSummary photoSummary_activityId :: PhotoSummary -> Integer photoSummary_caption :: PhotoSummary -> Text photoSummary_createdAt :: PhotoSummary -> UTCTime photoSummary_id :: PhotoSummary -> Integer photoSummary_location :: PhotoSummary -> Maybe (Double, Double) photoSummary_ref :: PhotoSummary -> Text photoSummary_resourceState :: PhotoSummary -> ResourceState photoSummary_type :: PhotoSummary -> PhotoType photoSummary_uid :: PhotoSummary -> Text photoSummary_uploadedAt :: PhotoSummary -> UTCTime instance FromJSON PhotoSummary instance Show PhotoSummary -- | http://strava.github.io/api/#polylines module Strive.Types.Polylines -- | http://strava.github.io/api/v3/activities/#detailed data PolylineDetailed PolylineDetailed :: Text -> [(Double, Double)] -> ResourceState -> Maybe [(Double, Double)] -> PolylineDetailed polylineDetailed_id :: PolylineDetailed -> Text polylineDetailed_polyline :: PolylineDetailed -> [(Double, Double)] polylineDetailed_resourceState :: PolylineDetailed -> ResourceState polylineDetailed_summaryPolyline :: PolylineDetailed -> Maybe [(Double, Double)] -- | http://strava.github.io/api/v3/activities/#summary data PolylineSummary PolylineSummary :: Text -> ResourceState -> Maybe [(Double, Double)] -> PolylineSummary polylineSummary_id :: PolylineSummary -> Text polylineSummary_resourceState :: PolylineSummary -> ResourceState polylineSummary_summaryPolyline :: PolylineSummary -> Maybe [(Double, Double)] instance Show PolylineDetailed instance Show PolylineSummary instance FromJSON PolylineSummary instance FromJSON PolylineDetailed -- | http://strava.github.io/api/v3/segments/ module Strive.Types.Segments -- | http://strava.github.io/api/v3/segments/#detailed data SegmentDetailed SegmentDetailed :: ActivityType -> Integer -> Double -> Text -> Integer -> Text -> UTCTime -> Double -> Integer -> Double -> Double -> Double -> (Double, Double) -> Double -> Bool -> Integer -> PolylineDetailed -> Double -> Text -> Bool -> ResourceState -> Integer -> Bool -> Double -> (Double, Double) -> Double -> Text -> Double -> UTCTime -> SegmentDetailed segmentDetailed_activityType :: SegmentDetailed -> ActivityType segmentDetailed_athleteCount :: SegmentDetailed -> Integer segmentDetailed_averageGrade :: SegmentDetailed -> Double segmentDetailed_city :: SegmentDetailed -> Text segmentDetailed_climbCategory :: SegmentDetailed -> Integer segmentDetailed_country :: SegmentDetailed -> Text segmentDetailed_createdAt :: SegmentDetailed -> UTCTime segmentDetailed_distance :: SegmentDetailed -> Double segmentDetailed_effortCount :: SegmentDetailed -> Integer segmentDetailed_elevationHigh :: SegmentDetailed -> Double segmentDetailed_elevationLow :: SegmentDetailed -> Double segmentDetailed_endLatitude :: SegmentDetailed -> Double segmentDetailed_endLatlng :: SegmentDetailed -> (Double, Double) segmentDetailed_endLongitude :: SegmentDetailed -> Double segmentDetailed_hazardous :: SegmentDetailed -> Bool segmentDetailed_id :: SegmentDetailed -> Integer segmentDetailed_map :: SegmentDetailed -> PolylineDetailed segmentDetailed_maximumGrade :: SegmentDetailed -> Double segmentDetailed_name :: SegmentDetailed -> Text segmentDetailed_private :: SegmentDetailed -> Bool segmentDetailed_resourceState :: SegmentDetailed -> ResourceState segmentDetailed_starCount :: SegmentDetailed -> Integer segmentDetailed_starred :: SegmentDetailed -> Bool segmentDetailed_startLatitude :: SegmentDetailed -> Double segmentDetailed_startLatlng :: SegmentDetailed -> (Double, Double) segmentDetailed_startLongitude :: SegmentDetailed -> Double segmentDetailed_state :: SegmentDetailed -> Text segmentDetailed_totalElevationGain :: SegmentDetailed -> Double segmentDetailed_updatedAt :: SegmentDetailed -> UTCTime -- | http://strava.github.io/api/v3/segments/#summary data SegmentSummary SegmentSummary :: ActivityType -> Double -> Text -> Integer -> Text -> Double -> Double -> Double -> Double -> (Double, Double) -> Double -> Integer -> Double -> Text -> Bool -> ResourceState -> Bool -> Double -> (Double, Double) -> Double -> Text -> SegmentSummary segmentSummary_activityType :: SegmentSummary -> ActivityType segmentSummary_averageGrade :: SegmentSummary -> Double segmentSummary_city :: SegmentSummary -> Text segmentSummary_climbCategory :: SegmentSummary -> Integer segmentSummary_country :: SegmentSummary -> Text segmentSummary_distance :: SegmentSummary -> Double segmentSummary_elevationHigh :: SegmentSummary -> Double segmentSummary_elevationLow :: SegmentSummary -> Double segmentSummary_endLatitude :: SegmentSummary -> Double segmentSummary_endLatlng :: SegmentSummary -> (Double, Double) segmentSummary_endLongitude :: SegmentSummary -> Double segmentSummary_id :: SegmentSummary -> Integer segmentSummary_maximumGrade :: SegmentSummary -> Double segmentSummary_name :: SegmentSummary -> Text segmentSummary_private :: SegmentSummary -> Bool segmentSummary_resourceState :: SegmentSummary -> ResourceState segmentSummary_starred :: SegmentSummary -> Bool segmentSummary_startLatitude :: SegmentSummary -> Double segmentSummary_startLatlng :: SegmentSummary -> (Double, Double) segmentSummary_startLongitude :: SegmentSummary -> Double segmentSummary_state :: SegmentSummary -> Text -- | http://strava.github.io/api/v3/segments/#leaderboard data SegmentLeaderboardResponse SegmentLeaderboardResponse :: Integer -> Integer -> [SegmentLeaderboardEntry] -> SegmentLeaderboardResponse segmentLeaderboardResponse_effortCount :: SegmentLeaderboardResponse -> Integer segmentLeaderboardResponse_entryCount :: SegmentLeaderboardResponse -> Integer segmentLeaderboardResponse_entries :: SegmentLeaderboardResponse -> [SegmentLeaderboardEntry] -- | http://strava.github.io/api/v3/segments/#leaderboard data SegmentLeaderboardEntry SegmentLeaderboardEntry :: Integer -> Maybe Gender -> Integer -> Text -> Text -> Double -> Double -> Double -> Integer -> Integer -> Integer -> Integer -> UTCTime -> UTCTime -> SegmentLeaderboardEntry segmentLeaderboardEntry_activityId :: SegmentLeaderboardEntry -> Integer segmentLeaderboardEntry_athleteGender :: SegmentLeaderboardEntry -> Maybe Gender segmentLeaderboardEntry_athleteId :: SegmentLeaderboardEntry -> Integer segmentLeaderboardEntry_athleteName :: SegmentLeaderboardEntry -> Text segmentLeaderboardEntry_athleteProfile :: SegmentLeaderboardEntry -> Text segmentLeaderboardEntry_averageHr :: SegmentLeaderboardEntry -> Double segmentLeaderboardEntry_averageWatts :: SegmentLeaderboardEntry -> Double segmentLeaderboardEntry_distance :: SegmentLeaderboardEntry -> Double segmentLeaderboardEntry_effortId :: SegmentLeaderboardEntry -> Integer segmentLeaderboardEntry_elapsedTime :: SegmentLeaderboardEntry -> Integer segmentLeaderboardEntry_movingTime :: SegmentLeaderboardEntry -> Integer segmentLeaderboardEntry_rank :: SegmentLeaderboardEntry -> Integer segmentLeaderboardEntry_startDate :: SegmentLeaderboardEntry -> UTCTime segmentLeaderboardEntry_startDateLocal :: SegmentLeaderboardEntry -> UTCTime -- | http://strava.github.io/api/v3/segments/#explore data SegmentExplorerResponse SegmentExplorerResponse :: [SegmentExplorerEntry] -> SegmentExplorerResponse segmentExplorerResponse_entries :: SegmentExplorerResponse -> [SegmentExplorerEntry] -- | http://strava.github.io/api/v3/segments/#explore data SegmentExplorerEntry SegmentExplorerEntry :: Double -> Integer -> String -> Double -> Double -> (Double, Double) -> Integer -> Text -> Text -> ResourceState -> Bool -> (Double, Double) -> SegmentExplorerEntry segmentExplorerEntry_avgGrade :: SegmentExplorerEntry -> Double segmentExplorerEntry_climbCategory :: SegmentExplorerEntry -> Integer segmentExplorerEntry_climbCategoryDesc :: SegmentExplorerEntry -> String segmentExplorerEntry_distance :: SegmentExplorerEntry -> Double segmentExplorerEntry_elevDifference :: SegmentExplorerEntry -> Double segmentExplorerEntry_endLatlng :: SegmentExplorerEntry -> (Double, Double) segmentExplorerEntry_id :: SegmentExplorerEntry -> Integer segmentExplorerEntry_name :: SegmentExplorerEntry -> Text segmentExplorerEntry_points :: SegmentExplorerEntry -> Text segmentExplorerEntry_resourceState :: SegmentExplorerEntry -> ResourceState segmentExplorerEntry_starred :: SegmentExplorerEntry -> Bool segmentExplorerEntry_startLatlng :: SegmentExplorerEntry -> (Double, Double) instance FromJSON SegmentExplorerResponse instance Show SegmentExplorerResponse instance FromJSON SegmentExplorerEntry instance Show SegmentExplorerEntry instance FromJSON SegmentLeaderboardResponse instance Show SegmentLeaderboardResponse instance FromJSON SegmentLeaderboardEntry instance Show SegmentLeaderboardEntry instance FromJSON SegmentSummary instance Show SegmentSummary instance FromJSON SegmentDetailed instance Show SegmentDetailed -- | http://strava.github.io/api/v3/efforts/ module Strive.Types.Efforts -- | http://strava.github.io/api/v3/efforts/#detailed data EffortDetailed EffortDetailed :: Integer -> Integer -> Maybe Double -> Maybe Double -> Maybe Double -> Double -> Integer -> Integer -> Maybe Bool -> Integer -> Maybe Integer -> Maybe Integer -> Integer -> Text -> Maybe Integer -> ResourceState -> SegmentSummary -> UTCTime -> UTCTime -> Integer -> EffortDetailed effortDetailed_activityId :: EffortDetailed -> Integer effortDetailed_athleteId :: EffortDetailed -> Integer effortDetailed_averageCadence :: EffortDetailed -> Maybe Double effortDetailed_averageHeartrate :: EffortDetailed -> Maybe Double effortDetailed_averageWatts :: EffortDetailed -> Maybe Double effortDetailed_distance :: EffortDetailed -> Double effortDetailed_elapsedTime :: EffortDetailed -> Integer effortDetailed_endIndex :: EffortDetailed -> Integer effortDetailed_hidden :: EffortDetailed -> Maybe Bool effortDetailed_id :: EffortDetailed -> Integer effortDetailed_komRank :: EffortDetailed -> Maybe Integer effortDetailed_maxHeartrate :: EffortDetailed -> Maybe Integer effortDetailed_movingTime :: EffortDetailed -> Integer effortDetailed_name :: EffortDetailed -> Text effortDetailed_prRank :: EffortDetailed -> Maybe Integer effortDetailed_resourceState :: EffortDetailed -> ResourceState effortDetailed_segment :: EffortDetailed -> SegmentSummary effortDetailed_startDate :: EffortDetailed -> UTCTime effortDetailed_startDateLocal :: EffortDetailed -> UTCTime effortDetailed_startIndex :: EffortDetailed -> Integer instance Show EffortDetailed instance FromJSON EffortDetailed -- | http://strava.github.io/api/v3/activities/ module Strive.Types.Activities -- | http://strava.github.io/api/v3/activities/#detailed data ActivityDetailed ActivityDetailed :: Integer -> AthleteMeta -> Integer -> Double -> Maybe Double -> Double -> Integer -> Bool -> Maybe Text -> Double -> Integer -> Maybe (Double, Double) -> Maybe Text -> Bool -> GearSummary -> Maybe Text -> Bool -> Integer -> Maybe Text -> Maybe Double -> Maybe Text -> Text -> Maybe Text -> Bool -> PolylineDetailed -> Double -> Integer -> Text -> Integer -> Bool -> ResourceState -> [EffortDetailed] -> UTCTime -> UTCTime -> Double -> Maybe (Double, Double) -> Double -> Text -> Double -> Bool -> Integer -> ActivityType -> Maybe Integer -> ActivityDetailed activityDetailed_achievementCount :: ActivityDetailed -> Integer activityDetailed_athlete :: ActivityDetailed -> AthleteMeta activityDetailed_athleteCount :: ActivityDetailed -> Integer activityDetailed_averageSpeed :: ActivityDetailed -> Double activityDetailed_averageWatts :: ActivityDetailed -> Maybe Double activityDetailed_calories :: ActivityDetailed -> Double activityDetailed_commentCount :: ActivityDetailed -> Integer activityDetailed_commute :: ActivityDetailed -> Bool activityDetailed_description :: ActivityDetailed -> Maybe Text activityDetailed_distance :: ActivityDetailed -> Double activityDetailed_elapsedTime :: ActivityDetailed -> Integer activityDetailed_endLatlng :: ActivityDetailed -> Maybe (Double, Double) activityDetailed_externalId :: ActivityDetailed -> Maybe Text activityDetailed_flagged :: ActivityDetailed -> Bool activityDetailed_gear :: ActivityDetailed -> GearSummary activityDetailed_gearId :: ActivityDetailed -> Maybe Text activityDetailed_hasKudoed :: ActivityDetailed -> Bool activityDetailed_id :: ActivityDetailed -> Integer activityDetailed_instagramPrimaryPhoto :: ActivityDetailed -> Maybe Text activityDetailed_kilojoules :: ActivityDetailed -> Maybe Double activityDetailed_locationCity :: ActivityDetailed -> Maybe Text activityDetailed_locationCountry :: ActivityDetailed -> Text activityDetailed_locationState :: ActivityDetailed -> Maybe Text activityDetailed_manual :: ActivityDetailed -> Bool activityDetailed_map :: ActivityDetailed -> PolylineDetailed activityDetailed_maxSpeed :: ActivityDetailed -> Double activityDetailed_movingTime :: ActivityDetailed -> Integer activityDetailed_name :: ActivityDetailed -> Text activityDetailed_photoCount :: ActivityDetailed -> Integer activityDetailed_private :: ActivityDetailed -> Bool activityDetailed_resourceState :: ActivityDetailed -> ResourceState activityDetailed_segmentEfforts :: ActivityDetailed -> [EffortDetailed] activityDetailed_startDate :: ActivityDetailed -> UTCTime activityDetailed_startDateLocal :: ActivityDetailed -> UTCTime activityDetailed_startLatitude :: ActivityDetailed -> Double activityDetailed_startLatlng :: ActivityDetailed -> Maybe (Double, Double) activityDetailed_startLongitude :: ActivityDetailed -> Double activityDetailed_timezone :: ActivityDetailed -> Text activityDetailed_totalElevationGain :: ActivityDetailed -> Double activityDetailed_trainer :: ActivityDetailed -> Bool activityDetailed_truncated :: ActivityDetailed -> Integer activityDetailed_type :: ActivityDetailed -> ActivityType activityDetailed_uploadId :: ActivityDetailed -> Maybe Integer -- | http://strava.github.io/api/v3/activities/#summary data ActivitySummary ActivitySummary :: Integer -> AthleteMeta -> Integer -> Double -> Maybe Double -> Integer -> Bool -> Double -> Integer -> Maybe (Double, Double) -> Maybe Text -> Bool -> Maybe Text -> Bool -> Integer -> Maybe Double -> Integer -> Maybe Text -> Text -> Maybe Text -> Bool -> PolylineSummary -> Double -> Integer -> Text -> Integer -> Bool -> ResourceState -> UTCTime -> UTCTime -> Double -> Maybe (Double, Double) -> Double -> Text -> Double -> Bool -> ActivityType -> Maybe Integer -> ActivitySummary activitySummary_achievementCount :: ActivitySummary -> Integer activitySummary_athlete :: ActivitySummary -> AthleteMeta activitySummary_athleteCount :: ActivitySummary -> Integer activitySummary_averageSpeed :: ActivitySummary -> Double activitySummary_averageWatts :: ActivitySummary -> Maybe Double activitySummary_commentCount :: ActivitySummary -> Integer activitySummary_commute :: ActivitySummary -> Bool activitySummary_distance :: ActivitySummary -> Double activitySummary_elapsedTime :: ActivitySummary -> Integer activitySummary_endLatlng :: ActivitySummary -> Maybe (Double, Double) activitySummary_externalId :: ActivitySummary -> Maybe Text activitySummary_flagged :: ActivitySummary -> Bool activitySummary_gearId :: ActivitySummary -> Maybe Text activitySummary_hasKudoed :: ActivitySummary -> Bool activitySummary_id :: ActivitySummary -> Integer activitySummary_kilojoules :: ActivitySummary -> Maybe Double activitySummary_kudosCount :: ActivitySummary -> Integer activitySummary_locationCity :: ActivitySummary -> Maybe Text activitySummary_locationCountry :: ActivitySummary -> Text activitySummary_locationState :: ActivitySummary -> Maybe Text activitySummary_manual :: ActivitySummary -> Bool activitySummary_map :: ActivitySummary -> PolylineSummary activitySummary_maxSpeed :: ActivitySummary -> Double activitySummary_movingTime :: ActivitySummary -> Integer activitySummary_name :: ActivitySummary -> Text activitySummary_photoCount :: ActivitySummary -> Integer activitySummary_private :: ActivitySummary -> Bool activitySummary_resourceState :: ActivitySummary -> ResourceState activitySummary_startDate :: ActivitySummary -> UTCTime activitySummary_startDateLocal :: ActivitySummary -> UTCTime activitySummary_startLatitude :: ActivitySummary -> Double activitySummary_startLatlng :: ActivitySummary -> Maybe (Double, Double) activitySummary_startLongitude :: ActivitySummary -> Double activitySummary_timezone :: ActivitySummary -> Text activitySummary_totalElevationGain :: ActivitySummary -> Double activitySummary_trainer :: ActivitySummary -> Bool activitySummary_type :: ActivitySummary -> ActivityType activitySummary_uploadId :: ActivitySummary -> Maybe Integer -- | http://strava.github.io/api/v3/activities/#zones data ActivityZoneDetailed ActivityZoneDetailed :: [ActivityZoneDistributionBucket] -> ResourceState -> Bool -> ActivityZoneType -> ActivityZoneDetailed activityZoneDetailed_distributionBuckets :: ActivityZoneDetailed -> [ActivityZoneDistributionBucket] activityZoneDetailed_resourceState :: ActivityZoneDetailed -> ResourceState activityZoneDetailed_sensorBased :: ActivityZoneDetailed -> Bool activityZoneDetailed_type :: ActivityZoneDetailed -> ActivityZoneType -- | http://strava.github.io/api/v3/activities/#zones data ActivityZoneDistributionBucket ActivityZoneDistributionBucket :: Integer -> Integer -> Integer -> ActivityZoneDistributionBucket activityZoneDistributionBucket_max :: ActivityZoneDistributionBucket -> Integer activityZoneDistributionBucket_min :: ActivityZoneDistributionBucket -> Integer activityZoneDistributionBucket_time :: ActivityZoneDistributionBucket -> Integer -- | http://strava.github.io/api/v3/activities/#laps data ActivityLapSummary ActivityLapSummary :: Integer -> Integer -> Double -> Double -> Double -> Integer -> Integer -> Integer -> Integer -> Double -> Double -> Text -> ResourceState -> UTCTime -> UTCTime -> Integer -> Double -> ActivityLapSummary activityLapSummary_activityId :: ActivityLapSummary -> Integer activityLapSummary_athleteId :: ActivityLapSummary -> Integer activityLapSummary_averageSpeed :: ActivityLapSummary -> Double activityLapSummary_averageWatts :: ActivityLapSummary -> Double activityLapSummary_distance :: ActivityLapSummary -> Double activityLapSummary_elapsedTime :: ActivityLapSummary -> Integer activityLapSummary_endIndex :: ActivityLapSummary -> Integer activityLapSummary_id :: ActivityLapSummary -> Integer activityLapSummary_lapIndex :: ActivityLapSummary -> Integer activityLapSummary_maxSpeed :: ActivityLapSummary -> Double activityLapSummary_movingTime :: ActivityLapSummary -> Double activityLapSummary_name :: ActivityLapSummary -> Text activityLapSummary_resourceState :: ActivityLapSummary -> ResourceState activityLapSummary_startDate :: ActivityLapSummary -> UTCTime activityLapSummary_startDateLocal :: ActivityLapSummary -> UTCTime activityLapSummary_startIndex :: ActivityLapSummary -> Integer activityLapSummary_totalElevationGain :: ActivityLapSummary -> Double instance Show ActivityLapSummary instance FromJSON ActivityLapSummary instance FromJSON ActivityZoneDetailed instance Show ActivityZoneDetailed instance FromJSON ActivityZoneDistributionBucket instance Show ActivityZoneDistributionBucket instance FromJSON ActivitySummary instance Show ActivitySummary instance FromJSON ActivityDetailed instance Show ActivityDetailed -- | http://strava.github.io/api/v3/streams/ module Strive.Types.Streams -- | http://strava.github.io/api/v3/streams/#detailed data StreamDetailed StreamDetailed :: [Value] -> Integer -> Resolution -> SeriesType -> Text -> StreamDetailed streamDetailed_data :: StreamDetailed -> [Value] streamDetailed_originalSize :: StreamDetailed -> Integer streamDetailed_resolution :: StreamDetailed -> Resolution streamDetailed_seriesType :: StreamDetailed -> SeriesType streamDetailed_type :: StreamDetailed -> Text instance FromJSON StreamDetailed instance Show StreamDetailed -- | Data types representing responses from the API. module Strive.Types -- | Types and functions for dealing with the API client itself. module Strive.Client -- | Strava V3 API client. data Client Client :: String -> (Request -> IO (Response ByteString)) -> Client client_accessToken :: Client -> String client_requester :: Client -> Request -> IO (Response ByteString) -- | Build a new client using the default HTTP manager to make requests. buildClient :: String -> IO Client instance Show Client -- | http://strava.github.io/api/v3/activities/ module Strive.Actions.Activities -- | http://strava.github.io/api/v3/activities/#create createActivity :: Client -> String -> String -> UTCTime -> Integer -> CreateActivityOptions -> IO (Either String ActivityDetailed) -- | http://strava.github.io/api/v3/activities/#get-details getActivity :: Client -> Integer -> GetActivityOptions -> IO (Either String ActivitySummary) -- | http://strava.github.io/api/v3/activities/#put-updates updateActivity :: Client -> Integer -> UpdateActivityOptions -> IO (Either String ActivityDetailed) -- | http://strava.github.io/api/v3/activities/#delete deleteActivity :: Client -> Integer -> IO (Either String ()) -- | http://strava.github.io/api/v3/activities/#get-activities getCurrentActivities :: Client -> GetCurrentActivitiesOptions -> IO (Either String [ActivitySummary]) -- | http://strava.github.io/api/v3/activities/#get-feed getFeed :: Client -> GetFeedOptions -> IO (Either String [ActivitySummary]) -- | http://strava.github.io/api/v3/activities/#zones getActivityZones :: Client -> Integer -> IO (Either String [ActivityZoneDetailed]) -- | http://strava.github.io/api/v3/activities/#laps getActivityLaps :: Client -> Integer -> IO (Either String [ActivityLapSummary]) -- | http://strava.github.io/api/v3/athlete/ module Strive.Actions.Athletes -- | http://strava.github.io/api/v3/athlete/#get-details getCurrentAthlete :: Client -> IO (Either String AthleteDetailed) -- | http://strava.github.io/api/v3/athlete/#get-another-details getAthlete :: Client -> Integer -> IO (Either String AthleteSummary) -- | http://strava.github.io/api/v3/athlete/#update updateCurrentAthlete :: Client -> UpdateCurrentAthleteOptions -> IO (Either String AthleteDetailed) -- | http://strava.github.io/api/v3/athlete/#koms getAthleteCrs :: Client -> Integer -> GetAthleteCrsOptions -> IO (Either String [EffortDetailed]) -- | http://strava.github.io/api/v3/oauth/ module Strive.Actions.Authentication -- | http://strava.github.io/api/v3/oauth/#get-authorize buildAuthorizeUrl :: Integer -> String -> BuildAuthorizeUrlOptions -> String -- | http://strava.github.io/api/v3/oauth/#post-token exchangeToken :: Integer -> String -> String -> IO (Either String TokenExchangeResponse) -- | http://strava.github.io/api/v3/oauth/#deauthorize deauthorize :: Client -> IO (Either String DeauthorizationResponse) -- | http://strava.github.io/api/v3/clubs/ module Strive.Actions.Clubs -- | http://strava.github.io/api/v3/clubs/#get-details getClub :: Client -> Integer -> IO (Either String ClubDetailed) -- | http://strava.github.io/api/v3/clubs/#get-athletes getCurrentClubs :: Client -> IO (Either String [ClubSummary]) -- | http://strava.github.io/api/v3/clubs/#get-members getClubMembers :: Client -> Integer -> GetClubMembersOptions -> IO (Either String [AthleteSummary]) -- | http://strava.github.io/api/v3/clubs/#get-activities getClubActivities :: Client -> Integer -> GetClubActivitiesOptions -> IO (Either String [ActivitySummary]) -- | http://strava.github.io/api/v3/comments/ module Strive.Actions.Comments -- | http://strava.github.io/api/v3/comments/#list getActivityComments :: Client -> Integer -> GetActivityCommentsOptions -> IO (Either String [CommentSummary]) -- | http://strava.github.io/api/v3/efforts/ module Strive.Actions.Efforts -- | http://strava.github.io/api/v3/efforts/#retrieve getSegmentEffort :: Client -> Integer -> IO (Either String EffortDetailed) -- | http://strava.github.io/api/v3/follow/ module Strive.Actions.Friends -- | http://strava.github.io/api/v3/follow/#friends getCurrentFriends :: Client -> GetCurrentFriendsOptions -> IO (Either String [AthleteSummary]) -- | http://strava.github.io/api/v3/follow/#friends getFriends :: Client -> Integer -> GetFriendsOptions -> IO (Either String [AthleteSummary]) -- | http://strava.github.io/api/v3/follow/#followers getCurrentFollowers :: Client -> GetCurrentFollowersOptions -> IO (Either String [AthleteSummary]) -- | http://strava.github.io/api/v3/follow/#followers getFollowers :: Client -> Integer -> GetFollowersOptions -> IO (Either String [AthleteSummary]) -- | http://strava.github.io/api/v3/follow/#both getCommonFriends :: Client -> Integer -> GetCommonFriendsOptions -> IO (Either String [AthleteSummary]) -- | http://strava.github.io/api/v3/gear/ module Strive.Actions.Gear -- | http://strava.github.io/api/v3/gear/#show getGear :: Client -> String -> IO (Either String GearDetailed) -- | http://strava.github.io/api/v3/kudos/ module Strive.Actions.Kudos -- | http://strava.github.io/api/v3/kudos/#list getActivityKudoers :: Client -> Integer -> GetActivityKudoersOptions -> IO (Either String [AthleteSummary]) -- | http://strava.github.io/api/v3/photos/ module Strive.Actions.Photos -- | http://strava.github.io/api/v3/photos/#list getActivityPhotos :: Client -> Integer -> IO (Either String [PhotoSummary]) -- | http://strava.github.io/api/v3/segments/ module Strive.Actions.Segments -- | http://strava.github.io/api/v3/segments/#retrieve getSegment :: Client -> Integer -> IO (Either String SegmentDetailed) -- | http://strava.github.io/api/v3/segments/#starred getStarredSegments :: Client -> GetStarredSegmentsOptions -> IO (Either String [SegmentSummary]) -- | http://strava.github.io/api/v3/segments/#efforts getSegmentEfforts :: Client -> Integer -> GetSegmentEffortsOptions -> IO (Either String [EffortDetailed]) -- | http://strava.github.io/api/v3/segments/#leaderboard getSegmentLeaderboard :: Client -> Integer -> GetSegmentLeaderboardOptions -> IO (Either String SegmentLeaderboardResponse) -- | http://strava.github.io/api/v3/segments/#explore exploreSegments :: Client -> (Double, Double, Double, Double) -> ExploreSegmentsOptions -> IO (Either String SegmentExplorerResponse) -- | http://strava.github.io/api/v3/streams/ module Strive.Actions.Streams -- | http://strava.github.io/api/v3/streams/#activity getActivityStreams :: Client -> Integer -> [String] -> GetStreamsOptions -> IO (Either String [StreamDetailed]) -- | http://strava.github.io/api/v3/streams/#effort getEffortStreams :: Client -> Integer -> [String] -> GetStreamsOptions -> IO (Either String [StreamDetailed]) -- | http://strava.github.io/api/v3/streams/#segment getSegmentStreams :: Client -> Integer -> [String] -> GetStreamsOptions -> IO (Either String [StreamDetailed]) -- | http://strava.github.io/api/v3/uploads/ module Strive.Actions.Uploads -- | http://strava.github.io/api/v3/uploads/#post-file uploadActivity :: Client -> ByteString -> String -> UploadActivityOptions -> IO (Either String UploadStatus) -- | http://strava.github.io/api/v3/uploads/#get-status getUpload :: Client -> Integer -> IO (Either String UploadStatus) -- | Functions for performing actions against the API. module Strive.Actions -- | Helper function for easily performing actions. with :: Default a => [a -> a] -> a -- | A Haskell client for the Strava V3 API. module Strive class AccessTokenLens a_aLwz b_aLwA | a_aLwz -> b_aLwA accessToken :: AccessTokenLens a_aLwz b_aLwA => Lens a_aLwz b_aLwA class RequesterLens a_aLwB b_aLwC | a_aLwB -> b_aLwC requester :: RequesterLens a_aLwB b_aLwC => Lens a_aLwB b_aLwC class ApprovalPromptLens a_aLxo b_aLxp | a_aLxo -> b_aLxp approvalPrompt :: ApprovalPromptLens a_aLxo b_aLxp => Lens a_aLxo b_aLxp class PrivateScopeLens a_aLxq b_aLxr | a_aLxq -> b_aLxr privateScope :: PrivateScopeLens a_aLxq b_aLxr => Lens a_aLxq b_aLxr class WriteScopeLens a_aLxs b_aLxt | a_aLxs -> b_aLxt writeScope :: WriteScopeLens a_aLxs b_aLxt => Lens a_aLxs b_aLxt class StateLens a_aLxu b_aLxv | a_aLxu -> b_aLxv state :: StateLens a_aLxu b_aLxv => Lens a_aLxu b_aLxv class DescriptionLens a_aLyO b_aLyP | a_aLyO -> b_aLyP description :: DescriptionLens a_aLyO b_aLyP => Lens a_aLyO b_aLyP class DistanceLens a_aLyQ b_aLyR | a_aLyQ -> b_aLyR distance :: DistanceLens a_aLyQ b_aLyR => Lens a_aLyQ b_aLyR class ActivityTypeLens a_aLzy b_aLzz | a_aLzy -> b_aLzz activityType :: ActivityTypeLens a_aLzy b_aLzz => Lens a_aLzy b_aLzz class MinCatLens a_aLzA b_aLzB | a_aLzA -> b_aLzB minCat :: MinCatLens a_aLzA b_aLzB => Lens a_aLzA b_aLzB class MaxCatLens a_aLzC b_aLzD | a_aLzC -> b_aLzD maxCat :: MaxCatLens a_aLzC b_aLzD => Lens a_aLzC b_aLzD class MarkdownLens a_aLAD b_aLAE | a_aLAD -> b_aLAE markdown :: MarkdownLens a_aLAD b_aLAE => Lens a_aLAD b_aLAE class PageLens a_aLAF b_aLAG | a_aLAF -> b_aLAG page :: PageLens a_aLAF b_aLAG => Lens a_aLAF b_aLAG class PerPageLens a_aLAH b_aLAI | a_aLAH -> b_aLAI perPage :: PerPageLens a_aLAH b_aLAI => Lens a_aLAH b_aLAI class AllEffortsLens a_aLBI b_aLBJ | a_aLBI -> b_aLBJ allEfforts :: AllEffortsLens a_aLBI b_aLBJ => Lens a_aLBI b_aLBJ class BeforeLens a_aLC7 b_aLC8 | a_aLC7 -> b_aLC8 before :: BeforeLens a_aLC7 b_aLC8 => Lens a_aLC7 b_aLC8 class AfterLens a_aLC9 b_aLCa | a_aLC9 -> b_aLCa after :: AfterLens a_aLC9 b_aLCa => Lens a_aLC9 b_aLCa class AthleteIdLens a_aLDf b_aLDg | a_aLDf -> b_aLDg athleteId :: AthleteIdLens a_aLDf b_aLDg => Lens a_aLDf b_aLDg class RangeLens a_aLDh b_aLDi | a_aLDh -> b_aLDi range :: RangeLens a_aLDh b_aLDi => Lens a_aLDh b_aLDi class GenderLens a_aLEn b_aLEo | a_aLEn -> b_aLEo gender :: GenderLens a_aLEn b_aLEo => Lens a_aLEn b_aLEo class AgeGroupLens a_aLEp b_aLEq | a_aLEp -> b_aLEq ageGroup :: AgeGroupLens a_aLEp b_aLEq => Lens a_aLEp b_aLEq class WeightClassLens a_aLEr b_aLEs | a_aLEr -> b_aLEs weightClass :: WeightClassLens a_aLEr b_aLEs => Lens a_aLEr b_aLEs class FollowingLens a_aLEt b_aLEu | a_aLEt -> b_aLEu following :: FollowingLens a_aLEt b_aLEu => Lens a_aLEt b_aLEu class ClubIdLens a_aLEv b_aLEw | a_aLEv -> b_aLEw clubId :: ClubIdLens a_aLEv b_aLEw => Lens a_aLEv b_aLEw class DateRangeLens a_aLEx b_aLEy | a_aLEx -> b_aLEy dateRange :: DateRangeLens a_aLEx b_aLEy => Lens a_aLEx b_aLEy class ResolutionLens a_aLGR b_aLGS | a_aLGR -> b_aLGS resolution :: ResolutionLens a_aLGR b_aLGS => Lens a_aLGR b_aLGS class SeriesTypeLens a_aLGT b_aLGU | a_aLGT -> b_aLGU seriesType :: SeriesTypeLens a_aLGT b_aLGU => Lens a_aLGT b_aLGU class NameLens a_aLI3 b_aLI4 | a_aLI3 -> b_aLI4 name :: NameLens a_aLI3 b_aLI4 => Lens a_aLI3 b_aLI4 class TypeLens a_aLI5 b_aLI6 | a_aLI5 -> b_aLI6 type :: TypeLens a_aLI5 b_aLI6 => Lens a_aLI5 b_aLI6 class PrivateLens a_aLI7 b_aLI8 | a_aLI7 -> b_aLI8 private :: PrivateLens a_aLI7 b_aLI8 => Lens a_aLI7 b_aLI8 class CommuteLens a_aLI9 b_aLIa | a_aLI9 -> b_aLIa commute :: CommuteLens a_aLI9 b_aLIa => Lens a_aLI9 b_aLIa class TrainerLens a_aLIb b_aLIc | a_aLIb -> b_aLIc trainer :: TrainerLens a_aLIb b_aLIc => Lens a_aLIb b_aLIc class GearIdLens a_aLId b_aLIe | a_aLId -> b_aLIe gearId :: GearIdLens a_aLId b_aLIe => Lens a_aLId b_aLIe class CityLens a_aLKl b_aLKm | a_aLKl -> b_aLKm city :: CityLens a_aLKl b_aLKm => Lens a_aLKl b_aLKm class CountryLens a_aLKn b_aLKo | a_aLKn -> b_aLKo country :: CountryLens a_aLKn b_aLKo => Lens a_aLKn b_aLKo class SexLens a_aLKp b_aLKq | a_aLKp -> b_aLKq sex :: SexLens a_aLKp b_aLKq => Lens a_aLKp b_aLKq class WeightLens a_aLKr b_aLKs | a_aLKr -> b_aLKs weight :: WeightLens a_aLKr b_aLKs => Lens a_aLKr b_aLKs class ExternalIdLens a_aLLX b_aLLY | a_aLLX -> b_aLLY externalId :: ExternalIdLens a_aLLX b_aLLY => Lens a_aLLX b_aLLY class AchievementCountLens a_aLNk b_aLNl | a_aLNk -> b_aLNl achievementCount :: AchievementCountLens a_aLNk b_aLNl => Lens a_aLNk b_aLNl class AthleteLens a_aLNm b_aLNn | a_aLNm -> b_aLNn athlete :: AthleteLens a_aLNm b_aLNn => Lens a_aLNm b_aLNn class AthleteCountLens a_aLNo b_aLNp | a_aLNo -> b_aLNp athleteCount :: AthleteCountLens a_aLNo b_aLNp => Lens a_aLNo b_aLNp class AverageSpeedLens a_aLNq b_aLNr | a_aLNq -> b_aLNr averageSpeed :: AverageSpeedLens a_aLNq b_aLNr => Lens a_aLNq b_aLNr class AverageWattsLens a_aLNs b_aLNt | a_aLNs -> b_aLNt averageWatts :: AverageWattsLens a_aLNs b_aLNt => Lens a_aLNs b_aLNt class CaloriesLens a_aLNu b_aLNv | a_aLNu -> b_aLNv calories :: CaloriesLens a_aLNu b_aLNv => Lens a_aLNu b_aLNv class CommentCountLens a_aLNw b_aLNx | a_aLNw -> b_aLNx commentCount :: CommentCountLens a_aLNw b_aLNx => Lens a_aLNw b_aLNx class ElapsedTimeLens a_aLNy b_aLNz | a_aLNy -> b_aLNz elapsedTime :: ElapsedTimeLens a_aLNy b_aLNz => Lens a_aLNy b_aLNz class EndLatlngLens a_aLNA b_aLNB | a_aLNA -> b_aLNB endLatlng :: EndLatlngLens a_aLNA b_aLNB => Lens a_aLNA b_aLNB class FlaggedLens a_aLNC b_aLND | a_aLNC -> b_aLND flagged :: FlaggedLens a_aLNC b_aLND => Lens a_aLNC b_aLND class GearLens a_aLNE b_aLNF | a_aLNE -> b_aLNF gear :: GearLens a_aLNE b_aLNF => Lens a_aLNE b_aLNF class HasKudoedLens a_aLNG b_aLNH | a_aLNG -> b_aLNH hasKudoed :: HasKudoedLens a_aLNG b_aLNH => Lens a_aLNG b_aLNH class IdLens a_aLNI b_aLNJ | a_aLNI -> b_aLNJ id :: IdLens a_aLNI b_aLNJ => Lens a_aLNI b_aLNJ class InstagramPrimaryPhotoLens a_aLNK b_aLNL | a_aLNK -> b_aLNL instagramPrimaryPhoto :: InstagramPrimaryPhotoLens a_aLNK b_aLNL => Lens a_aLNK b_aLNL class KilojoulesLens a_aLNM b_aLNN | a_aLNM -> b_aLNN kilojoules :: KilojoulesLens a_aLNM b_aLNN => Lens a_aLNM b_aLNN class LocationCityLens a_aLNO b_aLNP | a_aLNO -> b_aLNP locationCity :: LocationCityLens a_aLNO b_aLNP => Lens a_aLNO b_aLNP class LocationCountryLens a_aLNQ b_aLNR | a_aLNQ -> b_aLNR locationCountry :: LocationCountryLens a_aLNQ b_aLNR => Lens a_aLNQ b_aLNR class LocationStateLens a_aLNS b_aLNT | a_aLNS -> b_aLNT locationState :: LocationStateLens a_aLNS b_aLNT => Lens a_aLNS b_aLNT class ManualLens a_aLNU b_aLNV | a_aLNU -> b_aLNV manual :: ManualLens a_aLNU b_aLNV => Lens a_aLNU b_aLNV class MapLens a_aLNW b_aLNX | a_aLNW -> b_aLNX map :: MapLens a_aLNW b_aLNX => Lens a_aLNW b_aLNX class MaxSpeedLens a_aLNY b_aLNZ | a_aLNY -> b_aLNZ maxSpeed :: MaxSpeedLens a_aLNY b_aLNZ => Lens a_aLNY b_aLNZ class MovingTimeLens a_aLO0 b_aLO1 | a_aLO0 -> b_aLO1 movingTime :: MovingTimeLens a_aLO0 b_aLO1 => Lens a_aLO0 b_aLO1 class PhotoCountLens a_aLO2 b_aLO3 | a_aLO2 -> b_aLO3 photoCount :: PhotoCountLens a_aLO2 b_aLO3 => Lens a_aLO2 b_aLO3 class ResourceStateLens a_aLO4 b_aLO5 | a_aLO4 -> b_aLO5 resourceState :: ResourceStateLens a_aLO4 b_aLO5 => Lens a_aLO4 b_aLO5 class SegmentEffortsLens a_aLO6 b_aLO7 | a_aLO6 -> b_aLO7 segmentEfforts :: SegmentEffortsLens a_aLO6 b_aLO7 => Lens a_aLO6 b_aLO7 class StartDateLens a_aLO8 b_aLO9 | a_aLO8 -> b_aLO9 startDate :: StartDateLens a_aLO8 b_aLO9 => Lens a_aLO8 b_aLO9 class StartDateLocalLens a_aLOa b_aLOb | a_aLOa -> b_aLOb startDateLocal :: StartDateLocalLens a_aLOa b_aLOb => Lens a_aLOa b_aLOb class StartLatitudeLens a_aLOc b_aLOd | a_aLOc -> b_aLOd startLatitude :: StartLatitudeLens a_aLOc b_aLOd => Lens a_aLOc b_aLOd class StartLatlngLens a_aLOe b_aLOf | a_aLOe -> b_aLOf startLatlng :: StartLatlngLens a_aLOe b_aLOf => Lens a_aLOe b_aLOf class StartLongitudeLens a_aLOg b_aLOh | a_aLOg -> b_aLOh startLongitude :: StartLongitudeLens a_aLOg b_aLOh => Lens a_aLOg b_aLOh class TimezoneLens a_aLOi b_aLOj | a_aLOi -> b_aLOj timezone :: TimezoneLens a_aLOi b_aLOj => Lens a_aLOi b_aLOj class TotalElevationGainLens a_aLOk b_aLOl | a_aLOk -> b_aLOl totalElevationGain :: TotalElevationGainLens a_aLOk b_aLOl => Lens a_aLOk b_aLOl class TruncatedLens a_aLOm b_aLOn | a_aLOm -> b_aLOn truncated :: TruncatedLens a_aLOm b_aLOn => Lens a_aLOm b_aLOn class UploadIdLens a_aLOo b_aLOp | a_aLOo -> b_aLOp uploadId :: UploadIdLens a_aLOo b_aLOp => Lens a_aLOo b_aLOp class ActivityIdLens a_aM0E b_aM0F | a_aM0E -> b_aM0F activityId :: ActivityIdLens a_aM0E b_aM0F => Lens a_aM0E b_aM0F class EndIndexLens a_aM0G b_aM0H | a_aM0G -> b_aM0H endIndex :: EndIndexLens a_aM0G b_aM0H => Lens a_aM0G b_aM0H class LapIndexLens a_aM0I b_aM0J | a_aM0I -> b_aM0J lapIndex :: LapIndexLens a_aM0I b_aM0J => Lens a_aM0I b_aM0J class StartIndexLens a_aM0K b_aM0L | a_aM0K -> b_aM0L startIndex :: StartIndexLens a_aM0K b_aM0L => Lens a_aM0K b_aM0L class KudosCountLens a_aM4A b_aM4B | a_aM4A -> b_aM4B kudosCount :: KudosCountLens a_aM4A b_aM4B => Lens a_aM4A b_aM4B class DistributionBucketsLens a_aMc9 b_aMca | a_aMc9 -> b_aMca distributionBuckets :: DistributionBucketsLens a_aMc9 b_aMca => Lens a_aMc9 b_aMca class SensorBasedLens a_aMcb b_aMcc | a_aMcb -> b_aMcc sensorBased :: SensorBasedLens a_aMcb b_aMcc => Lens a_aMcb b_aMcc class MaxLens a_aMdh b_aMdi | a_aMdh -> b_aMdi max :: MaxLens a_aMdh b_aMdi => Lens a_aMdh b_aMdi class MinLens a_aMdj b_aMdk | a_aMdj -> b_aMdk min :: MinLens a_aMdj b_aMdk => Lens a_aMdj b_aMdk class TimeLens a_aMdl b_aMdm | a_aMdl -> b_aMdm time :: TimeLens a_aMdl b_aMdm => Lens a_aMdl b_aMdm class BikesLens a_aMem b_aMen | a_aMem -> b_aMen bikes :: BikesLens a_aMem b_aMen => Lens a_aMem b_aMen class ClubsLens a_aMeo b_aMep | a_aMeo -> b_aMep clubs :: ClubsLens a_aMeo b_aMep => Lens a_aMeo b_aMep class CreatedAtLens a_aMeq b_aMer | a_aMeq -> b_aMer createdAt :: CreatedAtLens a_aMeq b_aMer => Lens a_aMeq b_aMer class DatePreferenceLens a_aMes b_aMet | a_aMes -> b_aMet datePreference :: DatePreferenceLens a_aMes b_aMet => Lens a_aMes b_aMet class EmailLens a_aMeu b_aMev | a_aMeu -> b_aMev email :: EmailLens a_aMeu b_aMev => Lens a_aMeu b_aMev class FirstnameLens a_aMew b_aMex | a_aMew -> b_aMex firstname :: FirstnameLens a_aMew b_aMex => Lens a_aMew b_aMex class FollowerLens a_aMey b_aMez | a_aMey -> b_aMez follower :: FollowerLens a_aMey b_aMez => Lens a_aMey b_aMez class FollowerCountLens a_aMeA b_aMeB | a_aMeA -> b_aMeB followerCount :: FollowerCountLens a_aMeA b_aMeB => Lens a_aMeA b_aMeB class FriendLens a_aMeC b_aMeD | a_aMeC -> b_aMeD friend :: FriendLens a_aMeC b_aMeD => Lens a_aMeC b_aMeD class FriendCountLens a_aMeE b_aMeF | a_aMeE -> b_aMeF friendCount :: FriendCountLens a_aMeE b_aMeF => Lens a_aMeE b_aMeF class FtpLens a_aMeG b_aMeH | a_aMeG -> b_aMeH ftp :: FtpLens a_aMeG b_aMeH => Lens a_aMeG b_aMeH class LastnameLens a_aMeI b_aMeJ | a_aMeI -> b_aMeJ lastname :: LastnameLens a_aMeI b_aMeJ => Lens a_aMeI b_aMeJ class MeasurementPreferenceLens a_aMeK b_aMeL | a_aMeK -> b_aMeL measurementPreference :: MeasurementPreferenceLens a_aMeK b_aMeL => Lens a_aMeK b_aMeL class MutualFriendCountLens a_aMeM b_aMeN | a_aMeM -> b_aMeN mutualFriendCount :: MutualFriendCountLens a_aMeM b_aMeN => Lens a_aMeM b_aMeN class PremiumLens a_aMeO b_aMeP | a_aMeO -> b_aMeP premium :: PremiumLens a_aMeO b_aMeP => Lens a_aMeO b_aMeP class ProfileLens a_aMeQ b_aMeR | a_aMeQ -> b_aMeR profile :: ProfileLens a_aMeQ b_aMeR => Lens a_aMeQ b_aMeR class ProfileMediumLens a_aMeS b_aMeT | a_aMeS -> b_aMeT profileMedium :: ProfileMediumLens a_aMeS b_aMeT => Lens a_aMeS b_aMeT class ShoesLens a_aMeU b_aMeV | a_aMeU -> b_aMeV shoes :: ShoesLens a_aMeU b_aMeV => Lens a_aMeU b_aMeV class UpdatedAtLens a_aMeW b_aMeX | a_aMeW -> b_aMeX updatedAt :: UpdatedAtLens a_aMeW b_aMeX => Lens a_aMeW b_aMeX class ClubTypeLens a_aMpr b_aMps | a_aMpr -> b_aMps clubType :: ClubTypeLens a_aMpr b_aMps => Lens a_aMpr b_aMps class MemberCountLens a_aMpt b_aMpu | a_aMpt -> b_aMpu memberCount :: MemberCountLens a_aMpt b_aMpu => Lens a_aMpt b_aMpu class SportTypeLens a_aMpv b_aMpw | a_aMpv -> b_aMpw sportType :: SportTypeLens a_aMpv b_aMpw => Lens a_aMpv b_aMpw class TextLens a_aMtu b_aMtv | a_aMtu -> b_aMtv text :: TextLens a_aMtu b_aMtv => Lens a_aMtu b_aMtv class AverageCadenceLens a_aMv7 b_aMv8 | a_aMv7 -> b_aMv8 averageCadence :: AverageCadenceLens a_aMv7 b_aMv8 => Lens a_aMv7 b_aMv8 class AverageHeartrateLens a_aMv9 b_aMva | a_aMv9 -> b_aMva averageHeartrate :: AverageHeartrateLens a_aMv9 b_aMva => Lens a_aMv9 b_aMva class HiddenLens a_aMvb b_aMvc | a_aMvb -> b_aMvc hidden :: HiddenLens a_aMvb b_aMvc => Lens a_aMvb b_aMvc class KomRankLens a_aMvd b_aMve | a_aMvd -> b_aMve komRank :: KomRankLens a_aMvd b_aMve => Lens a_aMvd b_aMve class MaxHeartrateLens a_aMvf b_aMvg | a_aMvf -> b_aMvg maxHeartrate :: MaxHeartrateLens a_aMvf b_aMvg => Lens a_aMvf b_aMvg class PrRankLens a_aMvh b_aMvi | a_aMvh -> b_aMvi prRank :: PrRankLens a_aMvh b_aMvi => Lens a_aMvh b_aMvi class SegmentLens a_aMvj b_aMvk | a_aMvj -> b_aMvk segment :: SegmentLens a_aMvj b_aMvk => Lens a_aMvj b_aMvk class BrandNameLens a_aMA4 b_aMA5 | a_aMA4 -> b_aMA5 brandName :: BrandNameLens a_aMA4 b_aMA5 => Lens a_aMA4 b_aMA5 class FrameTypeLens a_aMA6 b_aMA7 | a_aMA6 -> b_aMA7 frameType :: FrameTypeLens a_aMA6 b_aMA7 => Lens a_aMA6 b_aMA7 class ModelNameLens a_aMA8 b_aMA9 | a_aMA8 -> b_aMA9 modelName :: ModelNameLens a_aMA8 b_aMA9 => Lens a_aMA8 b_aMA9 class PrimaryLens a_aMAa b_aMAb | a_aMAa -> b_aMAb primary :: PrimaryLens a_aMAa b_aMAb => Lens a_aMAa b_aMAb class CaptionLens a_aMDu b_aMDv | a_aMDu -> b_aMDv caption :: CaptionLens a_aMDu b_aMDv => Lens a_aMDu b_aMDv class LocationLens a_aMDw b_aMDx | a_aMDw -> b_aMDx location :: LocationLens a_aMDw b_aMDx => Lens a_aMDw b_aMDx class RefLens a_aMDy b_aMDz | a_aMDy -> b_aMDz ref :: RefLens a_aMDy b_aMDz => Lens a_aMDy b_aMDz class UidLens a_aMDA b_aMDB | a_aMDA -> b_aMDB uid :: UidLens a_aMDA b_aMDB => Lens a_aMDA b_aMDB class UploadedAtLens a_aMDC b_aMDD | a_aMDC -> b_aMDD uploadedAt :: UploadedAtLens a_aMDC b_aMDD => Lens a_aMDC b_aMDD class PolylineLens a_aMGd b_aMGe | a_aMGd -> b_aMGe polyline :: PolylineLens a_aMGd b_aMGe => Lens a_aMGd b_aMGe class SummaryPolylineLens a_aMGf b_aMGg | a_aMGf -> b_aMGg summaryPolyline :: SummaryPolylineLens a_aMGf b_aMGg => Lens a_aMGf b_aMGg class AverageGradeLens a_aMHZ b_aMI0 | a_aMHZ -> b_aMI0 averageGrade :: AverageGradeLens a_aMHZ b_aMI0 => Lens a_aMHZ b_aMI0 class ClimbCategoryLens a_aMI1 b_aMI2 | a_aMI1 -> b_aMI2 climbCategory :: ClimbCategoryLens a_aMI1 b_aMI2 => Lens a_aMI1 b_aMI2 class EffortCountLens a_aMI3 b_aMI4 | a_aMI3 -> b_aMI4 effortCount :: EffortCountLens a_aMI3 b_aMI4 => Lens a_aMI3 b_aMI4 class ElevationHighLens a_aMI5 b_aMI6 | a_aMI5 -> b_aMI6 elevationHigh :: ElevationHighLens a_aMI5 b_aMI6 => Lens a_aMI5 b_aMI6 class ElevationLowLens a_aMI7 b_aMI8 | a_aMI7 -> b_aMI8 elevationLow :: ElevationLowLens a_aMI7 b_aMI8 => Lens a_aMI7 b_aMI8 class EndLatitudeLens a_aMI9 b_aMIa | a_aMI9 -> b_aMIa endLatitude :: EndLatitudeLens a_aMI9 b_aMIa => Lens a_aMI9 b_aMIa class EndLongitudeLens a_aMIb b_aMIc | a_aMIb -> b_aMIc endLongitude :: EndLongitudeLens a_aMIb b_aMIc => Lens a_aMIb b_aMIc class HazardousLens a_aMId b_aMIe | a_aMId -> b_aMIe hazardous :: HazardousLens a_aMId b_aMIe => Lens a_aMId b_aMIe class MaximumGradeLens a_aMIf b_aMIg | a_aMIf -> b_aMIg maximumGrade :: MaximumGradeLens a_aMIf b_aMIg => Lens a_aMIf b_aMIg class StarCountLens a_aMIh b_aMIi | a_aMIh -> b_aMIi starCount :: StarCountLens a_aMIh b_aMIi => Lens a_aMIh b_aMIi class StarredLens a_aMIj b_aMIk | a_aMIj -> b_aMIk starred :: StarredLens a_aMIj b_aMIk => Lens a_aMIj b_aMIk class AvgGradeLens a_aMPg b_aMPh | a_aMPg -> b_aMPh avgGrade :: AvgGradeLens a_aMPg b_aMPh => Lens a_aMPg b_aMPh class ClimbCategoryDescLens a_aMPi b_aMPj | a_aMPi -> b_aMPj climbCategoryDesc :: ClimbCategoryDescLens a_aMPi b_aMPj => Lens a_aMPi b_aMPj class ElevDifferenceLens a_aMPk b_aMPl | a_aMPk -> b_aMPl elevDifference :: ElevDifferenceLens a_aMPk b_aMPl => Lens a_aMPk b_aMPl class PointsLens a_aMPm b_aMPn | a_aMPm -> b_aMPn points :: PointsLens a_aMPm b_aMPn => Lens a_aMPm b_aMPn class EntriesLens a_aMSe b_aMSf | a_aMSe -> b_aMSf entries :: EntriesLens a_aMSe b_aMSf => Lens a_aMSe b_aMSf class AthleteGenderLens a_aMSD b_aMSE | a_aMSD -> b_aMSE athleteGender :: AthleteGenderLens a_aMSD b_aMSE => Lens a_aMSD b_aMSE class AthleteNameLens a_aMSF b_aMSG | a_aMSF -> b_aMSG athleteName :: AthleteNameLens a_aMSF b_aMSG => Lens a_aMSF b_aMSG class AthleteProfileLens a_aMSH b_aMSI | a_aMSH -> b_aMSI athleteProfile :: AthleteProfileLens a_aMSH b_aMSI => Lens a_aMSH b_aMSI class AverageHrLens a_aMSJ b_aMSK | a_aMSJ -> b_aMSK averageHr :: AverageHrLens a_aMSJ b_aMSK => Lens a_aMSJ b_aMSK class EffortIdLens a_aMSL b_aMSM | a_aMSL -> b_aMSM effortId :: EffortIdLens a_aMSL b_aMSM => Lens a_aMSL b_aMSM class RankLens a_aMSN b_aMSO | a_aMSN -> b_aMSO rank :: RankLens a_aMSN b_aMSO => Lens a_aMSN b_aMSO class EntryCountLens a_aMWh b_aMWi | a_aMWh -> b_aMWi entryCount :: EntryCountLens a_aMWh b_aMWi => Lens a_aMWh b_aMWi class DataLens a_aN1c b_aN1d | a_aN1c -> b_aN1d data :: DataLens a_aN1c b_aN1d => Lens a_aN1c b_aN1d class OriginalSizeLens a_aN1e b_aN1f | a_aN1e -> b_aN1f originalSize :: OriginalSizeLens a_aN1e b_aN1f => Lens a_aN1e b_aN1f class ErrorLens a_aN2Y b_aN2Z | a_aN2Y -> b_aN2Z error :: ErrorLens a_aN2Y b_aN2Z => Lens a_aN2Y b_aN2Z class StatusLens a_aN30 b_aN31 | a_aN30 -> b_aN31 status :: StatusLens a_aN30 b_aN31 => Lens a_aN30 b_aN31