{-# LANGUAGE FlexibleInstances      #-}
{-# LANGUAGE FunctionalDependencies #-}
{-# LANGUAGE TemplateHaskell        #-}
{-# OPTIONS_GHC -Wno-missing-import-lists #-}
{-# OPTIONS_HADDOCK hide #-}

-- | Lens classes and instances generated with template Haskell.
module Strive.Internal.Lenses
  ( AccessTokenLens(accessToken)
  , AchievementCountLens(achievementCount)
  , ActivityIdLens(activityId)
  , ActivityTypeLens(activityType)
  , AfterLens(after)
  , AgeGroupLens(ageGroup)
  , AllEffortsLens(allEfforts)
  , ApprovalPromptLens(approvalPrompt)
  , AthleteCountLens(athleteCount)
  , AthleteGenderLens(athleteGender)
  , AthleteIdLens(athleteId)
  , AthleteLens(athlete)
  , AthleteNameLens(athleteName)
  , AthleteProfileLens(athleteProfile)
  , AverageCadenceLens(averageCadence)
  , AverageGradeLens(averageGrade)
  , AverageHeartrateLens(averageHeartrate)
  , AverageHrLens(averageHr)
  , AverageSpeedLens(averageSpeed)
  , AverageWattsLens(averageWatts)
  , AvgGradeLens(avgGrade)
  , BeforeLens(before)
  , BikesLens(bikes)
  , BrandNameLens(brandName)
  , CaloriesLens(calories)
  , CaptionLens(caption)
  , CityLens(city)
  , ClimbCategoryDescLens(climbCategoryDesc)
  , ClimbCategoryLens(climbCategory)
  , ClubIdLens(clubId)
  , ClubsLens(clubs)
  , ClubTypeLens(clubType)
  , CommentCountLens(commentCount)
  , CommuteLens(commute)
  , ContextEntriesLens(contextEntries)
  , CountryLens(country)
  , CreatedAtLens(createdAt)
  , Data_Lens(data_)
  , DatePreferenceLens(datePreference)
  , DateRangeLens(dateRange)
  , DescriptionLens(description)
  , DeviceWattsLens(deviceWatts)
  , DistanceLens(distance)
  , DistributionBucketsLens(distributionBuckets)
  , EffortCountLens(effortCount)
  , EffortIdLens(effortId)
  , ElapsedTimeLens(elapsedTime)
  , ElevationHighLens(elevationHigh)
  , ElevationLowLens(elevationLow)
  , ElevDifferenceLens(elevDifference)
  , EmailLens(email)
  , EndIndexLens(endIndex)
  , EndLatitudeLens(endLatitude)
  , EndLatlngLens(endLatlng)
  , EndLongitudeLens(endLongitude)
  , EntriesLens(entries)
  , EntryCountLens(entryCount)
  , ErrorLens(error)
  , ExternalIdLens(externalId)
  , FirstnameLens(firstname)
  , FlaggedLens(flagged)
  , FollowerCountLens(followerCount)
  , FollowerLens(follower)
  , FollowingLens(following)
  , FrameTypeLens(frameType)
  , FriendCountLens(friendCount)
  , FriendLens(friend)
  , FtpLens(ftp)
  , GearIdLens(gearId)
  , GearLens(gear)
  , GenderLens(gender)
  , HasKudoedLens(hasKudoed)
  , HazardousLens(hazardous)
  , HiddenLens(hidden)
  , IdLens(id)
  , InstagramPrimaryPhotoLens(instagramPrimaryPhoto)
  , KilojoulesLens(kilojoules)
  , KomRankLens(komRank)
  , KudosCountLens(kudosCount)
  , LapIndexLens(lapIndex)
  , LastnameLens(lastname)
  , LocationCityLens(locationCity)
  , LocationCountryLens(locationCountry)
  , LocationLens(location)
  , LocationStateLens(locationState)
  , ManualLens(manual)
  , MapLens(map)
  , MarkdownLens(markdown)
  , MaxCatLens(maxCat)
  , MaxHeartrateLens(maxHeartrate)
  , MaximumGradeLens(maximumGrade)
  , MaxLens(max)
  , MaxSpeedLens(maxSpeed)
  , MeasurementPreferenceLens(measurementPreference)
  , MemberCountLens(memberCount)
  , MinCatLens(minCat)
  , MinLens(min)
  , ModelNameLens(modelName)
  , MovingTimeLens(movingTime)
  , MutualFriendCountLens(mutualFriendCount)
  , NameLens(name)
  , OriginalSizeLens(originalSize)
  , PageLens(page)
  , PerPageLens(perPage)
  , PhotoCountLens(photoCount)
  , PointsLens(points)
  , PolylineLens(polyline)
  , PremiumLens(premium)
  , PrimaryLens(primary)
  , PrivateLens(private)
  , PrivateScopeLens(privateScope)
  , ProfileLens(profile)
  , ProfileMediumLens(profileMedium)
  , PrRankLens(prRank)
  , RangeLens(range)
  , RankLens(rank)
  , RefLens(ref)
  , RequesterLens(requester)
  , ResolutionLens(resolution)
  , ResourceStateLens(resourceState)
  , SegmentEffortsLens(segmentEfforts)
  , SegmentLens(segment)
  , SegmentsLens(segments)
  , SensorBasedLens(sensorBased)
  , SeriesTypeLens(seriesType)
  , SexLens(sex)
  , ShoesLens(shoes)
  , SportTypeLens(sportType)
  , StarCountLens(starCount)
  , StarredLens(starred)
  , StartDateLens(startDate)
  , StartDateLocalLens(startDateLocal)
  , StartIndexLens(startIndex)
  , StartLatitudeLens(startLatitude)
  , StartLatlngLens(startLatlng)
  , StartLongitudeLens(startLongitude)
  , StateLens(state)
  , StatusLens(status)
  , SummaryPolylineLens(summaryPolyline)
  , TextLens(text)
  , TimeLens(time)
  , TimezoneLens(timezone)
  , TotalElevationGainLens(totalElevationGain)
  , TrainerLens(trainer)
  , TruncatedLens(truncated)
  , Type_Lens(type_)
  , UidLens(uid)
  , UpdatedAtLens(updatedAt)
  , UploadedAtLens(uploadedAt)
  , UploadIdLens(uploadId)
  , WeightClassLens(weightClass)
  , WeightedAverageWattsLens(weightedAverageWatts)
  , WeightLens(weight)
  , WriteScopeLens(writeScope)
  ) where

import Strive.Internal.TH (makeLenses)
import Strive.Lenses (Lens)

import Strive.Client
import Strive.Internal.Options
import Strive.Options
import Strive.Types

$(makeLenses "Client")

$(makeLenses "BuildAuthorizeUrlOptions")
$(makeLenses "CreateActivityOptions")
$(makeLenses "ExploreSegmentsOptions")
$(makeLenses "GetActivityCommentsOptions")
$(makeLenses "GetActivityOptions")
$(makeLenses "GetClubActivitiesOptions")
$(makeLenses "GetCurrentActivitiesOptions")
$(makeLenses "GetSegmentEffortsOptions")
$(makeLenses "GetSegmentLeaderboardOptions")
$(makeLenses "GetStreamsOptions")
$(makeLenses "PaginationOptions")
$(makeLenses "UpdateActivityOptions")
$(makeLenses "UpdateCurrentAthleteOptions")
$(makeLenses "UploadActivityOptions")

$(makeLenses "ActivityDetailed")
$(makeLenses "ActivityLapSummary")
$(makeLenses "ActivitySummary")
$(makeLenses "ActivityZoneDetailed")
$(makeLenses "ActivityZoneDistributionBucket")
$(makeLenses "AthleteDetailed")
$(makeLenses "AthleteMeta")
$(makeLenses "AthleteSummary")
$(makeLenses "ClubDetailed")
$(makeLenses "ClubSummary")
$(makeLenses "CommentSummary")
$(makeLenses "DeauthorizationResponse")
$(makeLenses "EffortDetailed")
$(makeLenses "GearDetailed")
$(makeLenses "GearSummary")
$(makeLenses "PhotoSummary")
$(makeLenses "PolylineDetailed")
$(makeLenses "PolylineSummary")
$(makeLenses "SegmentDetailed")
$(makeLenses "SegmentExplorerEntry")
$(makeLenses "SegmentExplorerResponse")
$(makeLenses "SegmentLeaderboardEntry")
$(makeLenses "SegmentLeaderboardResponse")
$(makeLenses "SegmentSummary")
$(makeLenses "StreamDetailed")
$(makeLenses "TokenExchangeResponse")
$(makeLenses "UploadStatus")