packages feed

gogol-fitness (empty) → 0.0.1

raw patch · 21 files changed

+4289/−0 lines, 21 filesdep +basedep +gogol-coresetup-changed

Dependencies added: base, gogol-core

Files

+ LICENSE view
@@ -0,0 +1,367 @@+Mozilla Public License Version 2.0+==================================++1. Definitions+--------------++1.1. "Contributor"+    means each individual or legal entity that creates, contributes to+    the creation of, or owns Covered Software.++1.2. "Contributor Version"+    means the combination of the Contributions of others (if any) used+    by a Contributor and that particular Contributor's Contribution.++1.3. "Contribution"+    means Covered Software of a particular Contributor.++1.4. "Covered Software"+    means Source Code Form to which the initial Contributor has attached+    the notice in Exhibit A, the Executable Form of such Source Code+    Form, and Modifications of such Source Code Form, in each case+    including portions thereof.++1.5. "Incompatible With Secondary Licenses"+    means++    (a) that the initial Contributor has attached the notice described+        in Exhibit B to the Covered Software; or++    (b) that the Covered Software was made available under the terms of+        version 1.1 or earlier of the License, but not also under the+        terms of a Secondary License.++1.6. "Executable Form"+    means any form of the work other than Source Code Form.++1.7. "Larger Work"+    means a work that combines Covered Software with other material, in+    a separate file or files, that is not Covered Software.++1.8. "License"+    means this document.++1.9. "Licensable"+    means having the right to grant, to the maximum extent possible,+    whether at the time of the initial grant or subsequently, any and+    all of the rights conveyed by this License.++1.10. "Modifications"+    means any of the following:++    (a) any file in Source Code Form that results from an addition to,+        deletion from, or modification of the contents of Covered+        Software; or++    (b) any new file in Source Code Form that contains any Covered+        Software.++1.11. "Patent Claims" of a Contributor+    means any patent claim(s), including without limitation, method,+    process, and apparatus claims, in any patent Licensable by such+    Contributor that would be infringed, but for the grant of the+    License, by the making, using, selling, offering for sale, having+    made, import, or transfer of either its Contributions or its+    Contributor Version.++1.12. "Secondary License"+    means either the GNU General Public License, Version 2.0, the GNU+    Lesser General Public License, Version 2.1, the GNU Affero General+    Public License, Version 3.0, or any later versions of those+    licenses.++1.13. "Source Code Form"+    means the form of the work preferred for making modifications.++1.14. "You" (or "Your")+    means an individual or a legal entity exercising rights under this+    License. For legal entities, "You" includes any entity that+    controls, is controlled by, or is under common control with You. For+    purposes of this definition, "control" means (a) the power, direct+    or indirect, to cause the direction or management of such entity,+    whether by contract or otherwise, or (b) ownership of more than+    fifty percent (50%) of the outstanding shares or beneficial+    ownership of such entity.++2. License Grants and Conditions+--------------------------------++2.1. Grants++Each Contributor hereby grants You a world-wide, royalty-free,+non-exclusive license:++(a) under intellectual property rights (other than patent or trademark)+    Licensable by such Contributor to use, reproduce, make available,+    modify, display, perform, distribute, and otherwise exploit its+    Contributions, either on an unmodified basis, with Modifications, or+    as part of a Larger Work; and++(b) under Patent Claims of such Contributor to make, use, sell, offer+    for sale, have made, import, and otherwise transfer either its+    Contributions or its Contributor Version.++2.2. Effective Date++The licenses granted in Section 2.1 with respect to any Contribution+become effective for each Contribution on the date the Contributor first+distributes such Contribution.++2.3. Limitations on Grant Scope++The licenses granted in this Section 2 are the only rights granted under+this License. No additional rights or licenses will be implied from the+distribution or licensing of Covered Software under this License.+Notwithstanding Section 2.1(b) above, no patent license is granted by a+Contributor:++(a) for any code that a Contributor has removed from Covered Software;+    or++(b) for infringements caused by: (i) Your and any other third party's+    modifications of Covered Software, or (ii) the combination of its+    Contributions with other software (except as part of its Contributor+    Version); or++(c) under Patent Claims infringed by Covered Software in the absence of+    its Contributions.++This License does not grant any rights in the trademarks, service marks,+or logos of any Contributor (except as may be necessary to comply with+the notice requirements in Section 3.4).++2.4. Subsequent Licenses++No Contributor makes additional grants as a result of Your choice to+distribute the Covered Software under a subsequent version of this+License (see Section 10.2) or under the terms of a Secondary License (if+permitted under the terms of Section 3.3).++2.5. Representation++Each Contributor represents that the Contributor believes its+Contributions are its original creation(s) or it has sufficient rights+to grant the rights to its Contributions conveyed by this License.++2.6. Fair Use++This License is not intended to limit any rights You have under+applicable copyright doctrines of fair use, fair dealing, or other+equivalents.++2.7. Conditions++Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted+in Section 2.1.++3. Responsibilities+-------------------++3.1. Distribution of Source Form++All distribution of Covered Software in Source Code Form, including any+Modifications that You create or to which You contribute, must be under+the terms of this License. You must inform recipients that the Source+Code Form of the Covered Software is governed by the terms of this+License, and how they can obtain a copy of this License. You may not+attempt to alter or restrict the recipients' rights in the Source Code+Form.++3.2. Distribution of Executable Form++If You distribute Covered Software in Executable Form then:++(a) such Covered Software must also be made available in Source Code+    Form, as described in Section 3.1, and You must inform recipients of+    the Executable Form how they can obtain a copy of such Source Code+    Form by reasonable means in a timely manner, at a charge no more+    than the cost of distribution to the recipient; and++(b) You may distribute such Executable Form under the terms of this+    License, or sublicense it under different terms, provided that the+    license for the Executable Form does not attempt to limit or alter+    the recipients' rights in the Source Code Form under this License.++3.3. Distribution of a Larger Work++You may create and distribute a Larger Work under terms of Your choice,+provided that You also comply with the requirements of this License for+the Covered Software. If the Larger Work is a combination of Covered+Software with a work governed by one or more Secondary Licenses, and the+Covered Software is not Incompatible With Secondary Licenses, this+License permits You to additionally distribute such Covered Software+under the terms of such Secondary License(s), so that the recipient of+the Larger Work may, at their option, further distribute the Covered+Software under the terms of either this License or such Secondary+License(s).++3.4. Notices++You may not remove or alter the substance of any license notices+(including copyright notices, patent notices, disclaimers of warranty,+or limitations of liability) contained within the Source Code Form of+the Covered Software, except that You may alter any license notices to+the extent required to remedy known factual inaccuracies.++3.5. Application of Additional Terms++You may choose to offer, and to charge a fee for, warranty, support,+indemnity or liability obligations to one or more recipients of Covered+Software. However, You may do so only on Your own behalf, and not on+behalf of any Contributor. You must make it absolutely clear that any+such warranty, support, indemnity, or liability obligation is offered by+You alone, and You hereby agree to indemnify every Contributor for any+liability incurred by such Contributor as a result of warranty, support,+indemnity or liability terms You offer. You may include additional+disclaimers of warranty and limitations of liability specific to any+jurisdiction.++4. Inability to Comply Due to Statute or Regulation+---------------------------------------------------++If it is impossible for You to comply with any of the terms of this+License with respect to some or all of the Covered Software due to+statute, judicial order, or regulation then You must: (a) comply with+the terms of this License to the maximum extent possible; and (b)+describe the limitations and the code they affect. Such description must+be placed in a text file included with all distributions of the Covered+Software under this License. Except to the extent prohibited by statute+or regulation, such description must be sufficiently detailed for a+recipient of ordinary skill to be able to understand it.++5. Termination+--------------++5.1. The rights granted under this License will terminate automatically+if You fail to comply with any of its terms. However, if You become+compliant, then the rights granted under this License from a particular+Contributor are reinstated (a) provisionally, unless and until such+Contributor explicitly and finally terminates Your grants, and (b) on an+ongoing basis, if such Contributor fails to notify You of the+non-compliance by some reasonable means prior to 60 days after You have+come back into compliance. Moreover, Your grants from a particular+Contributor are reinstated on an ongoing basis if such Contributor+notifies You of the non-compliance by some reasonable means, this is the+first time You have received notice of non-compliance with this License+from such Contributor, and You become compliant prior to 30 days after+Your receipt of the notice.++5.2. If You initiate litigation against any entity by asserting a patent+infringement claim (excluding declaratory judgment actions,+counter-claims, and cross-claims) alleging that a Contributor Version+directly or indirectly infringes any patent, then the rights granted to+You by any and all Contributors for the Covered Software under Section+2.1 of this License shall terminate.++5.3. In the event of termination under Sections 5.1 or 5.2 above, all+end user license agreements (excluding distributors and resellers) which+have been validly granted by You or Your distributors under this License+prior to termination shall survive termination.++************************************************************************+*                                                                      *+*  6. Disclaimer of Warranty                                           *+*  -------------------------                                           *+*                                                                      *+*  Covered Software is provided under this License on an "as is"       *+*  basis, without warranty of any kind, either expressed, implied, or  *+*  statutory, including, without limitation, warranties that the       *+*  Covered Software is free of defects, merchantable, fit for a        *+*  particular purpose or non-infringing. The entire risk as to the     *+*  quality and performance of the Covered Software is with You.        *+*  Should any Covered Software prove defective in any respect, You     *+*  (not any Contributor) assume the cost of any necessary servicing,   *+*  repair, or correction. This disclaimer of warranty constitutes an   *+*  essential part of this License. No use of any Covered Software is   *+*  authorized under this License except under this disclaimer.         *+*                                                                      *+************************************************************************++************************************************************************+*                                                                      *+*  7. Limitation of Liability                                          *+*  --------------------------                                          *+*                                                                      *+*  Under no circumstances and under no legal theory, whether tort      *+*  (including negligence), contract, or otherwise, shall any           *+*  Contributor, or anyone who distributes Covered Software as          *+*  permitted above, be liable to You for any direct, indirect,         *+*  special, incidental, or consequential damages of any character      *+*  including, without limitation, damages for lost profits, loss of    *+*  goodwill, work stoppage, computer failure or malfunction, or any    *+*  and all other commercial damages or losses, even if such party      *+*  shall have been informed of the possibility of such damages. This   *+*  limitation of liability shall not apply to liability for death or   *+*  personal injury resulting from such party's negligence to the       *+*  extent applicable law prohibits such limitation. Some               *+*  jurisdictions do not allow the exclusion or limitation of           *+*  incidental or consequential damages, so this exclusion and          *+*  limitation may not apply to You.                                    *+*                                                                      *+************************************************************************++8. Litigation+-------------++Any litigation relating to this License may be brought only in the+courts of a jurisdiction where the defendant maintains its principal+place of business and such litigation shall be governed by laws of that+jurisdiction, without reference to its conflict-of-law provisions.+Nothing in this Section shall prevent a party's ability to bring+cross-claims or counter-claims.++9. Miscellaneous+----------------++This License represents the complete agreement concerning the subject+matter hereof. If any provision of this License is held to be+unenforceable, such provision shall be reformed only to the extent+necessary to make it enforceable. Any law or regulation which provides+that the language of a contract shall be construed against the drafter+shall not be used to construe this License against a Contributor.++10. Versions of the License+---------------------------++10.1. New Versions++Mozilla Foundation is the license steward. Except as provided in Section+10.3, no one other than the license steward has the right to modify or+publish new versions of this License. Each version will be given a+distinguishing version number.++10.2. Effect of New Versions++You may distribute the Covered Software under the terms of the version+of the License under which You originally received the Covered Software,+or under the terms of any subsequent version published by the license+steward.++10.3. Modified Versions++If you create software not governed by this License, and you want to+create a new license for such software, you may create and use a+modified version of this License if you rename the license and remove+any references to the name of the license steward (except to note that+such modified license differs from this License).++10.4. Distributing Source Code Form that is Incompatible With Secondary+Licenses++If You choose to distribute Source Code Form that is Incompatible With+Secondary Licenses under the terms of this version of the License, the+notice described in Exhibit B of this License must be attached.++Exhibit A - Source Code Form License Notice+-------------------------------------------++  This Source Code Form is subject to the terms of the Mozilla Public+  License, v. 2.0. If a copy of the MPL was not distributed with this+  file, You can obtain one at http://mozilla.org/MPL/2.0/.++If it is not possible or desirable to put the notice in a particular+file, then You may include the notice in a location (such as a LICENSE+file in a relevant directory) where a recipient would be likely to look+for such a notice.++You may add additional accurate notices of copyright ownership.
+ README.md view
@@ -0,0 +1,28 @@+# gogol-fitness++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version++`0.0.1`+++## Description++A client library for the Google Fitness.+++## Contribute++For any problems, comments, or feedback please create an issue [here on GitHub](https://github.com/brendanhay/amazonka/issues).++> _Note:_ this library is an auto-generated Haskell package. Please see `amazonka-gen` for more information.+++## Licence++`gogol-fitness` is released under the [Mozilla Public License Version 2.0](http://www.mozilla.org/MPL/).
+ Setup.hs view
@@ -0,0 +1,2 @@+import           Distribution.Simple+main = defaultMain
+ gen/Network/Google/Fitness.hs view
@@ -0,0 +1,271 @@+{-# LANGUAGE DataKinds         #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TypeOperators     #-}++{-# OPTIONS_GHC -fno-warn-unused-imports    #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}++-- |+-- Module      : Network.Google.Fitness+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Google Fit API+--+-- /See:/ <https://developers.google.com/fit/rest/ Fitness Reference>+module Network.Google.Fitness+    (+    -- * Service Configuration+      fitnessService++    -- * API Declaration+    , FitnessAPI++    -- * Resources++    -- ** fitness.users.dataSources.create+    , module Network.Google.Resource.Fitness.Users.DataSources.Create++    -- ** fitness.users.dataSources.datasets.delete+    , module Network.Google.Resource.Fitness.Users.DataSources.DataSets.Delete++    -- ** fitness.users.dataSources.datasets.get+    , module Network.Google.Resource.Fitness.Users.DataSources.DataSets.Get++    -- ** fitness.users.dataSources.datasets.patch+    , module Network.Google.Resource.Fitness.Users.DataSources.DataSets.Patch++    -- ** fitness.users.dataSources.delete+    , module Network.Google.Resource.Fitness.Users.DataSources.Delete++    -- ** fitness.users.dataSources.get+    , module Network.Google.Resource.Fitness.Users.DataSources.Get++    -- ** fitness.users.dataSources.list+    , module Network.Google.Resource.Fitness.Users.DataSources.List++    -- ** fitness.users.dataSources.patch+    , module Network.Google.Resource.Fitness.Users.DataSources.Patch++    -- ** fitness.users.dataSources.update+    , module Network.Google.Resource.Fitness.Users.DataSources.Update++    -- ** fitness.users.dataset.aggregate+    , module Network.Google.Resource.Fitness.Users.DataSet.Aggregate++    -- ** fitness.users.sessions.delete+    , module Network.Google.Resource.Fitness.Users.Sessions.Delete++    -- ** fitness.users.sessions.list+    , module Network.Google.Resource.Fitness.Users.Sessions.List++    -- ** fitness.users.sessions.update+    , module Network.Google.Resource.Fitness.Users.Sessions.Update++    -- * Types++    -- ** AggregateBucketType+    , AggregateBucketType (..)++    -- ** DataSet+    , DataSet+    , dataSet+    , dsNextPageToken+    , dsDataSourceId+    , dsPoint+    , dsMinStartTimeNs+    , dsMaxEndTimeNs++    -- ** Application+    , Application+    , application+    , aPackageName+    , aName+    , aVersion+    , aDetailsURL++    -- ** AggregateResponse+    , AggregateResponse+    , aggregateResponse+    , arBucket++    -- ** AggregateBy+    , AggregateBy+    , aggregateBy+    , abDataTypeName+    , abDataSourceId++    -- ** DataSourceType+    , DataSourceType (..)++    -- ** BucketByActivity+    , BucketByActivity+    , bucketByActivity+    , bbaMinDurationMillis+    , bbaActivityDataSourceId++    -- ** AggregateRequest+    , AggregateRequest+    , aggregateRequest+    , arEndTimeMillis+    , arAggregateBy+    , arBucketBySession+    , arBucketByActivityType+    , arBucketByTime+    , arStartTimeMillis+    , arBucketByActivitySegment++    -- ** Device+    , Device+    , device+    , dManufacturer+    , dUid+    , dModel+    , dVersion+    , dType++    -- ** Value+    , Value+    , value+    , vMapVal+    , vFpVal+    , vIntVal+    , vStringVal++    -- ** BucketBySession+    , BucketBySession+    , bucketBySession+    , bbsMinDurationMillis++    -- ** DataPoint+    , DataPoint+    , dataPoint+    , dpOriginDataSourceId+    , dpRawTimestampNanos+    , dpDataTypeName+    , dpValue+    , dpComputationTimeMillis+    , dpEndTimeNanos+    , dpModifiedTimeMillis+    , dpStartTimeNanos++    -- ** ListSessionsResponse+    , ListSessionsResponse+    , listSessionsResponse+    , lsrNextPageToken+    , lsrDeletedSession+    , lsrSession++    -- ** AggregateBucket+    , AggregateBucket+    , aggregateBucket+    , abEndTimeMillis+    , abDataSet+    , abActivity+    , abType+    , abStartTimeMillis+    , abSession++    -- ** MapValue+    , MapValue+    , mapValue+    , mvFpVal++    -- ** ListDataSourcesResponse+    , ListDataSourcesResponse+    , listDataSourcesResponse+    , ldsrDataSource++    -- ** DataTypeField+    , DataTypeField+    , dataTypeField+    , dtfFormat+    , dtfName+    , dtfOptional++    -- ** DataSource+    , DataSource+    , dataSource+    , dsApplication+    , dsDevice+    , dsName+    , dsDataType+    , dsType+    , dsDataStreamName+    , dsDataStreamId++    -- ** DeviceType+    , DeviceType (..)++    -- ** ValueMapValEntry+    , ValueMapValEntry+    , valueMapValEntry+    , vmveValue+    , vmveKey++    -- ** BucketByTime+    , BucketByTime+    , bucketByTime+    , bbtDurationMillis++    -- ** DataType+    , DataType+    , dataType+    , dtField+    , dtName++    -- ** Session+    , Session+    , session+    , sEndTimeMillis+    , sActiveTimeMillis+    , sApplication+    , sActivityType+    , sName+    , sModifiedTimeMillis+    , sId+    , sStartTimeMillis+    , sDescription++    -- ** DataTypeFieldFormat+    , DataTypeFieldFormat (..)+    ) where++import           Network.Google.Fitness.Types+import           Network.Google.Prelude+import           Network.Google.Resource.Fitness.Users.DataSet.Aggregate+import           Network.Google.Resource.Fitness.Users.DataSources.Create+import           Network.Google.Resource.Fitness.Users.DataSources.DataSets.Delete+import           Network.Google.Resource.Fitness.Users.DataSources.DataSets.Get+import           Network.Google.Resource.Fitness.Users.DataSources.DataSets.Patch+import           Network.Google.Resource.Fitness.Users.DataSources.Delete+import           Network.Google.Resource.Fitness.Users.DataSources.Get+import           Network.Google.Resource.Fitness.Users.DataSources.List+import           Network.Google.Resource.Fitness.Users.DataSources.Patch+import           Network.Google.Resource.Fitness.Users.DataSources.Update+import           Network.Google.Resource.Fitness.Users.Sessions.Delete+import           Network.Google.Resource.Fitness.Users.Sessions.List+import           Network.Google.Resource.Fitness.Users.Sessions.Update++{- $resources+TODO+-}++-- | Represents the entirety of the methods and resources available for the Fitness service.+type FitnessAPI =+     UsersDataSetAggregateResource :<|>+       UsersDataSourcesDataSetsPatchResource+       :<|> UsersDataSourcesDataSetsGetResource+       :<|> UsersDataSourcesDataSetsDeleteResource+       :<|> UsersDataSourcesListResource+       :<|> UsersDataSourcesPatchResource+       :<|> UsersDataSourcesGetResource+       :<|> UsersDataSourcesCreateResource+       :<|> UsersDataSourcesDeleteResource+       :<|> UsersDataSourcesUpdateResource+       :<|> UsersSessionsListResource+       :<|> UsersSessionsDeleteResource+       :<|> UsersSessionsUpdateResource
+ gen/Network/Google/Fitness/Types.hs view
@@ -0,0 +1,228 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Network.Google.Fitness.Types+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.Google.Fitness.Types+    (+    -- * Service Configuration+      fitnessService++    -- * OAuth Scopes+    , fitnessBodyReadScope+    , fitnessActivityReadScope+    , fitnessActivityWriteScope+    , fitnessLocationReadScope+    , fitnessLocationWriteScope+    , fitnessBodyWriteScope++    -- * AggregateBucketType+    , AggregateBucketType (..)++    -- * DataSet+    , DataSet+    , dataSet+    , dsNextPageToken+    , dsDataSourceId+    , dsPoint+    , dsMinStartTimeNs+    , dsMaxEndTimeNs++    -- * Application+    , Application+    , application+    , aPackageName+    , aName+    , aVersion+    , aDetailsURL++    -- * AggregateResponse+    , AggregateResponse+    , aggregateResponse+    , arBucket++    -- * AggregateBy+    , AggregateBy+    , aggregateBy+    , abDataTypeName+    , abDataSourceId++    -- * DataSourceType+    , DataSourceType (..)++    -- * BucketByActivity+    , BucketByActivity+    , bucketByActivity+    , bbaMinDurationMillis+    , bbaActivityDataSourceId++    -- * AggregateRequest+    , AggregateRequest+    , aggregateRequest+    , arEndTimeMillis+    , arAggregateBy+    , arBucketBySession+    , arBucketByActivityType+    , arBucketByTime+    , arStartTimeMillis+    , arBucketByActivitySegment++    -- * Device+    , Device+    , device+    , dManufacturer+    , dUid+    , dModel+    , dVersion+    , dType++    -- * Value+    , Value+    , value+    , vMapVal+    , vFpVal+    , vIntVal+    , vStringVal++    -- * BucketBySession+    , BucketBySession+    , bucketBySession+    , bbsMinDurationMillis++    -- * DataPoint+    , DataPoint+    , dataPoint+    , dpOriginDataSourceId+    , dpRawTimestampNanos+    , dpDataTypeName+    , dpValue+    , dpComputationTimeMillis+    , dpEndTimeNanos+    , dpModifiedTimeMillis+    , dpStartTimeNanos++    -- * ListSessionsResponse+    , ListSessionsResponse+    , listSessionsResponse+    , lsrNextPageToken+    , lsrDeletedSession+    , lsrSession++    -- * AggregateBucket+    , AggregateBucket+    , aggregateBucket+    , abEndTimeMillis+    , abDataSet+    , abActivity+    , abType+    , abStartTimeMillis+    , abSession++    -- * MapValue+    , MapValue+    , mapValue+    , mvFpVal++    -- * ListDataSourcesResponse+    , ListDataSourcesResponse+    , listDataSourcesResponse+    , ldsrDataSource++    -- * DataTypeField+    , DataTypeField+    , dataTypeField+    , dtfFormat+    , dtfName+    , dtfOptional++    -- * DataSource+    , DataSource+    , dataSource+    , dsApplication+    , dsDevice+    , dsName+    , dsDataType+    , dsType+    , dsDataStreamName+    , dsDataStreamId++    -- * DeviceType+    , DeviceType (..)++    -- * ValueMapValEntry+    , ValueMapValEntry+    , valueMapValEntry+    , vmveValue+    , vmveKey++    -- * BucketByTime+    , BucketByTime+    , bucketByTime+    , bbtDurationMillis++    -- * DataType+    , DataType+    , dataType+    , dtField+    , dtName++    -- * Session+    , Session+    , session+    , sEndTimeMillis+    , sActiveTimeMillis+    , sApplication+    , sActivityType+    , sName+    , sModifiedTimeMillis+    , sId+    , sStartTimeMillis+    , sDescription++    -- * DataTypeFieldFormat+    , DataTypeFieldFormat (..)+    ) where++import           Network.Google.Fitness.Types.Product+import           Network.Google.Fitness.Types.Sum+import           Network.Google.Prelude++-- | Default request referring to version 'v1' of the Fitness. This contains the host and root path used as a starting point for constructing service requests.+fitnessService :: Service+fitnessService+  = defaultService (ServiceId "fitness:v1")+      "www.googleapis.com"++-- | View body sensor information in Google Fit+fitnessBodyReadScope :: OAuthScope+fitnessBodyReadScope = "https://www.googleapis.com/auth/fitness.body.read";++-- | View your activity information in Google Fit+fitnessActivityReadScope :: OAuthScope+fitnessActivityReadScope = "https://www.googleapis.com/auth/fitness.activity.read";++-- | View and store your activity information in Google Fit+fitnessActivityWriteScope :: OAuthScope+fitnessActivityWriteScope = "https://www.googleapis.com/auth/fitness.activity.write";++-- | View your stored location data in Google Fit+fitnessLocationReadScope :: OAuthScope+fitnessLocationReadScope = "https://www.googleapis.com/auth/fitness.location.read";++-- | View and store your location data in Google Fit+fitnessLocationWriteScope :: OAuthScope+fitnessLocationWriteScope = "https://www.googleapis.com/auth/fitness.location.write";++-- | View and store body sensor data in Google Fit+fitnessBodyWriteScope :: OAuthScope+fitnessBodyWriteScope = "https://www.googleapis.com/auth/fitness.body.write";
+ gen/Network/Google/Fitness/Types/Product.hs view
@@ -0,0 +1,1541 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}++{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Network.Google.Fitness.Types.Product+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.Google.Fitness.Types.Product where++import           Network.Google.Fitness.Types.Sum+import           Network.Google.Prelude++-- | A dataset represents a projection container for data points. They do not+-- carry any info of their own. Datasets represent a set of data points+-- from a particular data source. A data point can be found in more than+-- one dataset.+--+-- /See:/ 'dataSet' smart constructor.+data DataSet = DataSet+    { _dsNextPageToken  :: !(Maybe Text)+    , _dsDataSourceId   :: !(Maybe Text)+    , _dsPoint          :: !(Maybe [DataPoint])+    , _dsMinStartTimeNs :: !(Maybe (Textual Int64))+    , _dsMaxEndTimeNs   :: !(Maybe (Textual Int64))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DataSet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dsNextPageToken'+--+-- * 'dsDataSourceId'+--+-- * 'dsPoint'+--+-- * 'dsMinStartTimeNs'+--+-- * 'dsMaxEndTimeNs'+dataSet+    :: DataSet+dataSet =+    DataSet+    { _dsNextPageToken = Nothing+    , _dsDataSourceId = Nothing+    , _dsPoint = Nothing+    , _dsMinStartTimeNs = Nothing+    , _dsMaxEndTimeNs = Nothing+    }++-- | This token will be set when a dataset is received in response to a GET+-- request and the dataset is too large to be included in a single+-- response. Provide this value in a subsequent GET request to return the+-- next page of data points within this dataset.+dsNextPageToken :: Lens' DataSet (Maybe Text)+dsNextPageToken+  = lens _dsNextPageToken+      (\ s a -> s{_dsNextPageToken = a})++-- | The data stream ID of the data source that created the points in this+-- dataset.+dsDataSourceId :: Lens' DataSet (Maybe Text)+dsDataSourceId+  = lens _dsDataSourceId+      (\ s a -> s{_dsDataSourceId = a})++-- | A partial list of data points contained in the dataset, ordered by+-- largest endTimeNanos first. This list is considered complete when+-- retrieving a small dataset and partial when patching a dataset or+-- retrieving a dataset that is too large to include in a single response.+dsPoint :: Lens' DataSet [DataPoint]+dsPoint+  = lens _dsPoint (\ s a -> s{_dsPoint = a}) . _Default+      . _Coerce++-- | The smallest start time of all data points in this possibly partial+-- representation of the dataset. Time is in nanoseconds from epoch. This+-- should also match the first part of the dataset identifier.+dsMinStartTimeNs :: Lens' DataSet (Maybe Int64)+dsMinStartTimeNs+  = lens _dsMinStartTimeNs+      (\ s a -> s{_dsMinStartTimeNs = a})+      . mapping _Coerce++-- | The largest end time of all data points in this possibly partial+-- representation of the dataset. Time is in nanoseconds from epoch. This+-- should also match the first part of the dataset identifier.+dsMaxEndTimeNs :: Lens' DataSet (Maybe Int64)+dsMaxEndTimeNs+  = lens _dsMaxEndTimeNs+      (\ s a -> s{_dsMaxEndTimeNs = a})+      . mapping _Coerce++instance FromJSON DataSet where+        parseJSON+          = withObject "DataSet"+              (\ o ->+                 DataSet <$>+                   (o .:? "nextPageToken") <*> (o .:? "dataSourceId")+                     <*> (o .:? "point" .!= mempty)+                     <*> (o .:? "minStartTimeNs")+                     <*> (o .:? "maxEndTimeNs"))++instance ToJSON DataSet where+        toJSON DataSet{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _dsNextPageToken,+                  ("dataSourceId" .=) <$> _dsDataSourceId,+                  ("point" .=) <$> _dsPoint,+                  ("minStartTimeNs" .=) <$> _dsMinStartTimeNs,+                  ("maxEndTimeNs" .=) <$> _dsMaxEndTimeNs])++-- | See:+-- google3\/java\/com\/google\/android\/apps\/heart\/platform\/api\/Application.java+--+-- /See:/ 'application' smart constructor.+data Application = Application+    { _aPackageName :: !(Maybe Text)+    , _aName        :: !(Maybe Text)+    , _aVersion     :: !(Maybe Text)+    , _aDetailsURL  :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Application' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aPackageName'+--+-- * 'aName'+--+-- * 'aVersion'+--+-- * 'aDetailsURL'+application+    :: Application+application =+    Application+    { _aPackageName = Nothing+    , _aName = Nothing+    , _aVersion = Nothing+    , _aDetailsURL = Nothing+    }++-- | Package name for this application. This is used as a unique identifier+-- when created by Android applications, but cannot be specified by REST+-- clients. REST clients will have their developer project number reflected+-- into the Data Source data stream IDs, instead of the packageName.+aPackageName :: Lens' Application (Maybe Text)+aPackageName+  = lens _aPackageName (\ s a -> s{_aPackageName = a})++-- | The name of this application. This is required for REST clients, but we+-- do not enforce uniqueness of this name. It is provided as a matter of+-- convenience for other developers who would like to identify which REST+-- created an Application or Data Source.+aName :: Lens' Application (Maybe Text)+aName = lens _aName (\ s a -> s{_aName = a})++-- | Version of the application. You should update this field whenever the+-- application changes in a way that affects the computation of the data.+aVersion :: Lens' Application (Maybe Text)+aVersion = lens _aVersion (\ s a -> s{_aVersion = a})++-- | An optional URI that can be used to link back to the application.+aDetailsURL :: Lens' Application (Maybe Text)+aDetailsURL+  = lens _aDetailsURL (\ s a -> s{_aDetailsURL = a})++instance FromJSON Application where+        parseJSON+          = withObject "Application"+              (\ o ->+                 Application <$>+                   (o .:? "packageName") <*> (o .:? "name") <*>+                     (o .:? "version")+                     <*> (o .:? "detailsUrl"))++instance ToJSON Application where+        toJSON Application{..}+          = object+              (catMaybes+                 [("packageName" .=) <$> _aPackageName,+                  ("name" .=) <$> _aName, ("version" .=) <$> _aVersion,+                  ("detailsUrl" .=) <$> _aDetailsURL])++--+-- /See:/ 'aggregateResponse' smart constructor.+newtype AggregateResponse = AggregateResponse+    { _arBucket :: Maybe [AggregateBucket]+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AggregateResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'arBucket'+aggregateResponse+    :: AggregateResponse+aggregateResponse =+    AggregateResponse+    { _arBucket = Nothing+    }++-- | A list of buckets containing the aggregated data.+arBucket :: Lens' AggregateResponse [AggregateBucket]+arBucket+  = lens _arBucket (\ s a -> s{_arBucket = a}) .+      _Default+      . _Coerce++instance FromJSON AggregateResponse where+        parseJSON+          = withObject "AggregateResponse"+              (\ o ->+                 AggregateResponse <$> (o .:? "bucket" .!= mempty))++instance ToJSON AggregateResponse where+        toJSON AggregateResponse{..}+          = object (catMaybes [("bucket" .=) <$> _arBucket])++-- | The specification of which data to aggregate.+--+-- /See:/ 'aggregateBy' smart constructor.+data AggregateBy = AggregateBy+    { _abDataTypeName :: !(Maybe Text)+    , _abDataSourceId :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AggregateBy' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'abDataTypeName'+--+-- * 'abDataSourceId'+aggregateBy+    :: AggregateBy+aggregateBy =+    AggregateBy+    { _abDataTypeName = Nothing+    , _abDataSourceId = Nothing+    }++-- | The data type to aggregate. All data sources providing this data type+-- will contribute data to the aggregation. The response will contain a+-- single dataset for this data type name. The dataset will have a data+-- source ID of derived:com.google.:com.google.android.gms:aggregated+abDataTypeName :: Lens' AggregateBy (Maybe Text)+abDataTypeName+  = lens _abDataTypeName+      (\ s a -> s{_abDataTypeName = a})++-- | A data source ID to aggregate. Mutually exclusive of dataTypeName. Only+-- data from the specified data source ID will be included in the+-- aggregation. The dataset in the response will have the same data source+-- ID.+abDataSourceId :: Lens' AggregateBy (Maybe Text)+abDataSourceId+  = lens _abDataSourceId+      (\ s a -> s{_abDataSourceId = a})++instance FromJSON AggregateBy where+        parseJSON+          = withObject "AggregateBy"+              (\ o ->+                 AggregateBy <$>+                   (o .:? "dataTypeName") <*> (o .:? "dataSourceId"))++instance ToJSON AggregateBy where+        toJSON AggregateBy{..}+          = object+              (catMaybes+                 [("dataTypeName" .=) <$> _abDataTypeName,+                  ("dataSourceId" .=) <$> _abDataSourceId])++--+-- /See:/ 'bucketByActivity' smart constructor.+data BucketByActivity = BucketByActivity+    { _bbaMinDurationMillis    :: !(Maybe (Textual Int64))+    , _bbaActivityDataSourceId :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BucketByActivity' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bbaMinDurationMillis'+--+-- * 'bbaActivityDataSourceId'+bucketByActivity+    :: BucketByActivity+bucketByActivity =+    BucketByActivity+    { _bbaMinDurationMillis = Nothing+    , _bbaActivityDataSourceId = Nothing+    }++-- | Specifies that only activity segments of duration longer than+-- minDurationMillis are considered and used as a container for aggregated+-- data.+bbaMinDurationMillis :: Lens' BucketByActivity (Maybe Int64)+bbaMinDurationMillis+  = lens _bbaMinDurationMillis+      (\ s a -> s{_bbaMinDurationMillis = a})+      . mapping _Coerce++-- | The default activity stream will be used if a specific+-- activityDataSourceId is not specified.+bbaActivityDataSourceId :: Lens' BucketByActivity (Maybe Text)+bbaActivityDataSourceId+  = lens _bbaActivityDataSourceId+      (\ s a -> s{_bbaActivityDataSourceId = a})++instance FromJSON BucketByActivity where+        parseJSON+          = withObject "BucketByActivity"+              (\ o ->+                 BucketByActivity <$>+                   (o .:? "minDurationMillis") <*>+                     (o .:? "activityDataSourceId"))++instance ToJSON BucketByActivity where+        toJSON BucketByActivity{..}+          = object+              (catMaybes+                 [("minDurationMillis" .=) <$> _bbaMinDurationMillis,+                  ("activityDataSourceId" .=) <$>+                    _bbaActivityDataSourceId])++--+-- /See:/ 'aggregateRequest' smart constructor.+data AggregateRequest = AggregateRequest+    { _arEndTimeMillis           :: !(Maybe (Textual Int64))+    , _arAggregateBy             :: !(Maybe [AggregateBy])+    , _arBucketBySession         :: !(Maybe BucketBySession)+    , _arBucketByActivityType    :: !(Maybe BucketByActivity)+    , _arBucketByTime            :: !(Maybe BucketByTime)+    , _arStartTimeMillis         :: !(Maybe (Textual Int64))+    , _arBucketByActivitySegment :: !(Maybe BucketByActivity)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AggregateRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'arEndTimeMillis'+--+-- * 'arAggregateBy'+--+-- * 'arBucketBySession'+--+-- * 'arBucketByActivityType'+--+-- * 'arBucketByTime'+--+-- * 'arStartTimeMillis'+--+-- * 'arBucketByActivitySegment'+aggregateRequest+    :: AggregateRequest+aggregateRequest =+    AggregateRequest+    { _arEndTimeMillis = Nothing+    , _arAggregateBy = Nothing+    , _arBucketBySession = Nothing+    , _arBucketByActivityType = Nothing+    , _arBucketByTime = Nothing+    , _arStartTimeMillis = Nothing+    , _arBucketByActivitySegment = Nothing+    }++-- | The end of a window of time. Data that intersects with this time window+-- will be aggregated. The time is in milliseconds since epoch, inclusive.+arEndTimeMillis :: Lens' AggregateRequest (Maybe Int64)+arEndTimeMillis+  = lens _arEndTimeMillis+      (\ s a -> s{_arEndTimeMillis = a})+      . mapping _Coerce++-- | The specification of data to be aggregated. At least one aggregateBy+-- spec must be provided. All data that is specified will be aggregated+-- using the same bucketing criteria. There will be one dataset in the+-- response for every aggregateBy spec.+arAggregateBy :: Lens' AggregateRequest [AggregateBy]+arAggregateBy+  = lens _arAggregateBy+      (\ s a -> s{_arAggregateBy = a})+      . _Default+      . _Coerce++-- | Specifies that data be aggregated by user sessions. Data that does not+-- fall within the time range of a session will not be included in the+-- response. Mutually exclusive of other bucketing specifications.+arBucketBySession :: Lens' AggregateRequest (Maybe BucketBySession)+arBucketBySession+  = lens _arBucketBySession+      (\ s a -> s{_arBucketBySession = a})++-- | Specifies that data be aggregated by the type of activity being+-- performed when the data was recorded. All data that was recorded during+-- a certain activity type (for the given time range) will be aggregated+-- into the same bucket. Data that was recorded while the user was not+-- active will not be included in the response. Mutually exclusive of other+-- bucketing specifications.+arBucketByActivityType :: Lens' AggregateRequest (Maybe BucketByActivity)+arBucketByActivityType+  = lens _arBucketByActivityType+      (\ s a -> s{_arBucketByActivityType = a})++-- | Specifies that data be aggregated by a single time interval. Mutually+-- exclusive of other bucketing specifications.+arBucketByTime :: Lens' AggregateRequest (Maybe BucketByTime)+arBucketByTime+  = lens _arBucketByTime+      (\ s a -> s{_arBucketByTime = a})++-- | The start of a window of time. Data that intersects with this time+-- window will be aggregated. The time is in milliseconds since epoch,+-- inclusive.+arStartTimeMillis :: Lens' AggregateRequest (Maybe Int64)+arStartTimeMillis+  = lens _arStartTimeMillis+      (\ s a -> s{_arStartTimeMillis = a})+      . mapping _Coerce++-- | Specifies that data be aggregated each activity segment recored for a+-- user. Similar to bucketByActivitySegment, but bucketing is done for each+-- activity segment rather than all segments of the same type. Mutually+-- exclusive of other bucketing specifications.+arBucketByActivitySegment :: Lens' AggregateRequest (Maybe BucketByActivity)+arBucketByActivitySegment+  = lens _arBucketByActivitySegment+      (\ s a -> s{_arBucketByActivitySegment = a})++instance FromJSON AggregateRequest where+        parseJSON+          = withObject "AggregateRequest"+              (\ o ->+                 AggregateRequest <$>+                   (o .:? "endTimeMillis") <*>+                     (o .:? "aggregateBy" .!= mempty)+                     <*> (o .:? "bucketBySession")+                     <*> (o .:? "bucketByActivityType")+                     <*> (o .:? "bucketByTime")+                     <*> (o .:? "startTimeMillis")+                     <*> (o .:? "bucketByActivitySegment"))++instance ToJSON AggregateRequest where+        toJSON AggregateRequest{..}+          = object+              (catMaybes+                 [("endTimeMillis" .=) <$> _arEndTimeMillis,+                  ("aggregateBy" .=) <$> _arAggregateBy,+                  ("bucketBySession" .=) <$> _arBucketBySession,+                  ("bucketByActivityType" .=) <$>+                    _arBucketByActivityType,+                  ("bucketByTime" .=) <$> _arBucketByTime,+                  ("startTimeMillis" .=) <$> _arStartTimeMillis,+                  ("bucketByActivitySegment" .=) <$>+                    _arBucketByActivitySegment])++-- | Representation of an integrated device (such as a phone or a wearable)+-- that can hold sensors. Each sensor is exposed as a data source. The main+-- purpose of the device information contained in this class is to identify+-- the hardware of a particular data source. This can be useful in+-- different ways, including: - Distinguishing two similar sensors on+-- different devices (the step counter on two nexus 5 phones, for instance)+-- - Display the source of data to the user (by using the device make \/+-- model) - Treat data differently depending on sensor type (accelerometers+-- on a watch may give different patterns than those on a phone) - Build+-- different analysis models for each device\/version.+--+-- /See:/ 'device' smart constructor.+data Device = Device+    { _dManufacturer :: !(Maybe Text)+    , _dUid          :: !(Maybe Text)+    , _dModel        :: !(Maybe Text)+    , _dVersion      :: !(Maybe Text)+    , _dType         :: !(Maybe DeviceType)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Device' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dManufacturer'+--+-- * 'dUid'+--+-- * 'dModel'+--+-- * 'dVersion'+--+-- * 'dType'+device+    :: Device+device =+    Device+    { _dManufacturer = Nothing+    , _dUid = Nothing+    , _dModel = Nothing+    , _dVersion = Nothing+    , _dType = Nothing+    }++-- | Manufacturer of the product\/hardware.+dManufacturer :: Lens' Device (Maybe Text)+dManufacturer+  = lens _dManufacturer+      (\ s a -> s{_dManufacturer = a})++-- | The serial number or other unique ID for the hardware. This field is+-- obfuscated when read by any REST or Android client that did not create+-- the data source. Only the data source creator will see the uid field in+-- clear and normal form.+dUid :: Lens' Device (Maybe Text)+dUid = lens _dUid (\ s a -> s{_dUid = a})++-- | End-user visible model name for the device.+dModel :: Lens' Device (Maybe Text)+dModel = lens _dModel (\ s a -> s{_dModel = a})++-- | Version string for the device hardware\/software.+dVersion :: Lens' Device (Maybe Text)+dVersion = lens _dVersion (\ s a -> s{_dVersion = a})++-- | A constant representing the type of the device.+dType :: Lens' Device (Maybe DeviceType)+dType = lens _dType (\ s a -> s{_dType = a})++instance FromJSON Device where+        parseJSON+          = withObject "Device"+              (\ o ->+                 Device <$>+                   (o .:? "manufacturer") <*> (o .:? "uid") <*>+                     (o .:? "model")+                     <*> (o .:? "version")+                     <*> (o .:? "type"))++instance ToJSON Device where+        toJSON Device{..}+          = object+              (catMaybes+                 [("manufacturer" .=) <$> _dManufacturer,+                  ("uid" .=) <$> _dUid, ("model" .=) <$> _dModel,+                  ("version" .=) <$> _dVersion,+                  ("type" .=) <$> _dType])++-- | Holder object for the value of a single field in a data point. A field+-- value has a particular format and is only ever set to one of an integer+-- or a floating point value.+--+-- /See:/ 'value' smart constructor.+data Value = Value+    { _vMapVal    :: !(Maybe [ValueMapValEntry])+    , _vFpVal     :: !(Maybe (Textual Double))+    , _vIntVal    :: !(Maybe (Textual Int32))+    , _vStringVal :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Value' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vMapVal'+--+-- * 'vFpVal'+--+-- * 'vIntVal'+--+-- * 'vStringVal'+value+    :: Value+value =+    Value+    { _vMapVal = Nothing+    , _vFpVal = Nothing+    , _vIntVal = Nothing+    , _vStringVal = Nothing+    }++-- | Map value. The valid key space and units for the corresponding value of+-- each entry should be documented as part of the data type definition.+-- Keys should be kept small whenever possible. Data streams with large+-- keys and high data frequency may be down sampled.+vMapVal :: Lens' Value [ValueMapValEntry]+vMapVal+  = lens _vMapVal (\ s a -> s{_vMapVal = a}) . _Default+      . _Coerce++-- | Floating point value. When this is set, other values must not be set.+vFpVal :: Lens' Value (Maybe Double)+vFpVal+  = lens _vFpVal (\ s a -> s{_vFpVal = a}) .+      mapping _Coerce++-- | Integer value. When this is set, other values must not be set.+vIntVal :: Lens' Value (Maybe Int32)+vIntVal+  = lens _vIntVal (\ s a -> s{_vIntVal = a}) .+      mapping _Coerce++-- | String value. When this is set, other values must not be set. Strings+-- should be kept small whenever possible. Data streams with large string+-- values and high data frequency may be down sampled.+vStringVal :: Lens' Value (Maybe Text)+vStringVal+  = lens _vStringVal (\ s a -> s{_vStringVal = a})++instance FromJSON Value where+        parseJSON+          = withObject "Value"+              (\ o ->+                 Value <$>+                   (o .:? "mapVal" .!= mempty) <*> (o .:? "fpVal") <*>+                     (o .:? "intVal")+                     <*> (o .:? "stringVal"))++instance ToJSON Value where+        toJSON Value{..}+          = object+              (catMaybes+                 [("mapVal" .=) <$> _vMapVal,+                  ("fpVal" .=) <$> _vFpVal, ("intVal" .=) <$> _vIntVal,+                  ("stringVal" .=) <$> _vStringVal])++--+-- /See:/ 'bucketBySession' smart constructor.+newtype BucketBySession = BucketBySession+    { _bbsMinDurationMillis :: Maybe (Textual Int64)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BucketBySession' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bbsMinDurationMillis'+bucketBySession+    :: BucketBySession+bucketBySession =+    BucketBySession+    { _bbsMinDurationMillis = Nothing+    }++-- | Specifies that only sessions of duration longer than minDurationMillis+-- are considered and used as a container for aggregated data.+bbsMinDurationMillis :: Lens' BucketBySession (Maybe Int64)+bbsMinDurationMillis+  = lens _bbsMinDurationMillis+      (\ s a -> s{_bbsMinDurationMillis = a})+      . mapping _Coerce++instance FromJSON BucketBySession where+        parseJSON+          = withObject "BucketBySession"+              (\ o ->+                 BucketBySession <$> (o .:? "minDurationMillis"))++instance ToJSON BucketBySession where+        toJSON BucketBySession{..}+          = object+              (catMaybes+                 [("minDurationMillis" .=) <$> _bbsMinDurationMillis])++-- | Represents a single data point, generated by a particular data source. A+-- data point holds a value for each field, an end timestamp and an+-- optional start time. The exact semantics of each of these attributes are+-- specified in the documentation for the particular data type. A data+-- point can represent an instantaneous measurement, reading or input+-- observation, as well as averages or aggregates over a time interval.+-- Check the data type documentation to determine which is the case for a+-- particular data type. Data points always contain one value for each+-- field of the data type.+--+-- /See:/ 'dataPoint' smart constructor.+data DataPoint = DataPoint+    { _dpOriginDataSourceId    :: !(Maybe Text)+    , _dpRawTimestampNanos     :: !(Maybe (Textual Int64))+    , _dpDataTypeName          :: !(Maybe Text)+    , _dpValue                 :: !(Maybe [Value])+    , _dpComputationTimeMillis :: !(Maybe (Textual Int64))+    , _dpEndTimeNanos          :: !(Maybe (Textual Int64))+    , _dpModifiedTimeMillis    :: !(Maybe (Textual Int64))+    , _dpStartTimeNanos        :: !(Maybe (Textual Int64))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DataPoint' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dpOriginDataSourceId'+--+-- * 'dpRawTimestampNanos'+--+-- * 'dpDataTypeName'+--+-- * 'dpValue'+--+-- * 'dpComputationTimeMillis'+--+-- * 'dpEndTimeNanos'+--+-- * 'dpModifiedTimeMillis'+--+-- * 'dpStartTimeNanos'+dataPoint+    :: DataPoint+dataPoint =+    DataPoint+    { _dpOriginDataSourceId = Nothing+    , _dpRawTimestampNanos = Nothing+    , _dpDataTypeName = Nothing+    , _dpValue = Nothing+    , _dpComputationTimeMillis = Nothing+    , _dpEndTimeNanos = Nothing+    , _dpModifiedTimeMillis = Nothing+    , _dpStartTimeNanos = Nothing+    }++-- | If the data point is contained in a dataset for a derived data source,+-- this field will be populated with the data source stream ID that created+-- the data point originally.+dpOriginDataSourceId :: Lens' DataPoint (Maybe Text)+dpOriginDataSourceId+  = lens _dpOriginDataSourceId+      (\ s a -> s{_dpOriginDataSourceId = a})++-- | The raw timestamp from the original SensorEvent.+dpRawTimestampNanos :: Lens' DataPoint (Maybe Int64)+dpRawTimestampNanos+  = lens _dpRawTimestampNanos+      (\ s a -> s{_dpRawTimestampNanos = a})+      . mapping _Coerce++-- | The data type defining the format of the values in this data point.+dpDataTypeName :: Lens' DataPoint (Maybe Text)+dpDataTypeName+  = lens _dpDataTypeName+      (\ s a -> s{_dpDataTypeName = a})++-- | Values of each data type field for the data point. It is expected that+-- each value corresponding to a data type field will occur in the same+-- order that the field is listed with in the data type specified in a data+-- source. Only one of integer and floating point fields will be populated,+-- depending on the format enum value within data source\'s type field.+dpValue :: Lens' DataPoint [Value]+dpValue+  = lens _dpValue (\ s a -> s{_dpValue = a}) . _Default+      . _Coerce++-- | Used for version checking during transformation; that is, a datapoint+-- can only replace another datapoint that has an older computation time+-- stamp.+dpComputationTimeMillis :: Lens' DataPoint (Maybe Int64)+dpComputationTimeMillis+  = lens _dpComputationTimeMillis+      (\ s a -> s{_dpComputationTimeMillis = a})+      . mapping _Coerce++-- | The end time of the interval represented by this data point, in+-- nanoseconds since epoch.+dpEndTimeNanos :: Lens' DataPoint (Maybe Int64)+dpEndTimeNanos+  = lens _dpEndTimeNanos+      (\ s a -> s{_dpEndTimeNanos = a})+      . mapping _Coerce++-- | Indicates the last time this data point was modified. Useful only in+-- contexts where we are listing the data changes, rather than representing+-- the current state of the data.+dpModifiedTimeMillis :: Lens' DataPoint (Maybe Int64)+dpModifiedTimeMillis+  = lens _dpModifiedTimeMillis+      (\ s a -> s{_dpModifiedTimeMillis = a})+      . mapping _Coerce++-- | The start time of the interval represented by this data point, in+-- nanoseconds since epoch.+dpStartTimeNanos :: Lens' DataPoint (Maybe Int64)+dpStartTimeNanos+  = lens _dpStartTimeNanos+      (\ s a -> s{_dpStartTimeNanos = a})+      . mapping _Coerce++instance FromJSON DataPoint where+        parseJSON+          = withObject "DataPoint"+              (\ o ->+                 DataPoint <$>+                   (o .:? "originDataSourceId") <*>+                     (o .:? "rawTimestampNanos")+                     <*> (o .:? "dataTypeName")+                     <*> (o .:? "value" .!= mempty)+                     <*> (o .:? "computationTimeMillis")+                     <*> (o .:? "endTimeNanos")+                     <*> (o .:? "modifiedTimeMillis")+                     <*> (o .:? "startTimeNanos"))++instance ToJSON DataPoint where+        toJSON DataPoint{..}+          = object+              (catMaybes+                 [("originDataSourceId" .=) <$> _dpOriginDataSourceId,+                  ("rawTimestampNanos" .=) <$> _dpRawTimestampNanos,+                  ("dataTypeName" .=) <$> _dpDataTypeName,+                  ("value" .=) <$> _dpValue,+                  ("computationTimeMillis" .=) <$>+                    _dpComputationTimeMillis,+                  ("endTimeNanos" .=) <$> _dpEndTimeNanos,+                  ("modifiedTimeMillis" .=) <$> _dpModifiedTimeMillis,+                  ("startTimeNanos" .=) <$> _dpStartTimeNanos])++--+-- /See:/ 'listSessionsResponse' smart constructor.+data ListSessionsResponse = ListSessionsResponse+    { _lsrNextPageToken  :: !(Maybe Text)+    , _lsrDeletedSession :: !(Maybe [Session])+    , _lsrSession        :: !(Maybe [Session])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListSessionsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lsrNextPageToken'+--+-- * 'lsrDeletedSession'+--+-- * 'lsrSession'+listSessionsResponse+    :: ListSessionsResponse+listSessionsResponse =+    ListSessionsResponse+    { _lsrNextPageToken = Nothing+    , _lsrDeletedSession = Nothing+    , _lsrSession = Nothing+    }++-- | The continuation token, which is used to page through large result sets.+-- Provide this value in a subsequent request to return the next page of+-- results.+lsrNextPageToken :: Lens' ListSessionsResponse (Maybe Text)+lsrNextPageToken+  = lens _lsrNextPageToken+      (\ s a -> s{_lsrNextPageToken = a})++-- | If includeDeleted is set to true in the request, this list will contain+-- sessions deleted with original end times that are within the startTime+-- and endTime frame.+lsrDeletedSession :: Lens' ListSessionsResponse [Session]+lsrDeletedSession+  = lens _lsrDeletedSession+      (\ s a -> s{_lsrDeletedSession = a})+      . _Default+      . _Coerce++-- | Sessions with an end time that is between startTime and endTime of the+-- request.+lsrSession :: Lens' ListSessionsResponse [Session]+lsrSession+  = lens _lsrSession (\ s a -> s{_lsrSession = a}) .+      _Default+      . _Coerce++instance FromJSON ListSessionsResponse where+        parseJSON+          = withObject "ListSessionsResponse"+              (\ o ->+                 ListSessionsResponse <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "deletedSession" .!= mempty)+                     <*> (o .:? "session" .!= mempty))++instance ToJSON ListSessionsResponse where+        toJSON ListSessionsResponse{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _lsrNextPageToken,+                  ("deletedSession" .=) <$> _lsrDeletedSession,+                  ("session" .=) <$> _lsrSession])++--+-- /See:/ 'aggregateBucket' smart constructor.+data AggregateBucket = AggregateBucket+    { _abEndTimeMillis   :: !(Maybe (Textual Int64))+    , _abDataSet         :: !(Maybe [DataSet])+    , _abActivity        :: !(Maybe (Textual Int32))+    , _abType            :: !(Maybe AggregateBucketType)+    , _abStartTimeMillis :: !(Maybe (Textual Int64))+    , _abSession         :: !(Maybe Session)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AggregateBucket' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'abEndTimeMillis'+--+-- * 'abDataSet'+--+-- * 'abActivity'+--+-- * 'abType'+--+-- * 'abStartTimeMillis'+--+-- * 'abSession'+aggregateBucket+    :: AggregateBucket+aggregateBucket =+    AggregateBucket+    { _abEndTimeMillis = Nothing+    , _abDataSet = Nothing+    , _abActivity = Nothing+    , _abType = Nothing+    , _abStartTimeMillis = Nothing+    , _abSession = Nothing+    }++-- | The end time for the aggregated data, in milliseconds since epoch,+-- inclusive.+abEndTimeMillis :: Lens' AggregateBucket (Maybe Int64)+abEndTimeMillis+  = lens _abEndTimeMillis+      (\ s a -> s{_abEndTimeMillis = a})+      . mapping _Coerce++-- | There will be one dataset per AggregateBy in the request.+abDataSet :: Lens' AggregateBucket [DataSet]+abDataSet+  = lens _abDataSet (\ s a -> s{_abDataSet = a}) .+      _Default+      . _Coerce++-- | Available for Bucket.Type.ACTIVITY_TYPE, Bucket.Type.ACTIVITY_SEGMENT+abActivity :: Lens' AggregateBucket (Maybe Int32)+abActivity+  = lens _abActivity (\ s a -> s{_abActivity = a}) .+      mapping _Coerce++-- | The type of a bucket signifies how the data aggregation is performed in+-- the bucket.+abType :: Lens' AggregateBucket (Maybe AggregateBucketType)+abType = lens _abType (\ s a -> s{_abType = a})++-- | The start time for the aggregated data, in milliseconds since epoch,+-- inclusive.+abStartTimeMillis :: Lens' AggregateBucket (Maybe Int64)+abStartTimeMillis+  = lens _abStartTimeMillis+      (\ s a -> s{_abStartTimeMillis = a})+      . mapping _Coerce++-- | Available for Bucket.Type.SESSION+abSession :: Lens' AggregateBucket (Maybe Session)+abSession+  = lens _abSession (\ s a -> s{_abSession = a})++instance FromJSON AggregateBucket where+        parseJSON+          = withObject "AggregateBucket"+              (\ o ->+                 AggregateBucket <$>+                   (o .:? "endTimeMillis") <*>+                     (o .:? "dataset" .!= mempty)+                     <*> (o .:? "activity")+                     <*> (o .:? "type")+                     <*> (o .:? "startTimeMillis")+                     <*> (o .:? "session"))++instance ToJSON AggregateBucket where+        toJSON AggregateBucket{..}+          = object+              (catMaybes+                 [("endTimeMillis" .=) <$> _abEndTimeMillis,+                  ("dataset" .=) <$> _abDataSet,+                  ("activity" .=) <$> _abActivity,+                  ("type" .=) <$> _abType,+                  ("startTimeMillis" .=) <$> _abStartTimeMillis,+                  ("session" .=) <$> _abSession])++-- | Holder object for the value of an entry in a map field of a data point.+-- A map value supports a subset of the formats that the regular Value+-- supports.+--+-- /See:/ 'mapValue' smart constructor.+newtype MapValue = MapValue+    { _mvFpVal :: Maybe (Textual Double)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MapValue' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mvFpVal'+mapValue+    :: MapValue+mapValue =+    MapValue+    { _mvFpVal = Nothing+    }++-- | Floating point value.+mvFpVal :: Lens' MapValue (Maybe Double)+mvFpVal+  = lens _mvFpVal (\ s a -> s{_mvFpVal = a}) .+      mapping _Coerce++instance FromJSON MapValue where+        parseJSON+          = withObject "MapValue"+              (\ o -> MapValue <$> (o .:? "fpVal"))++instance ToJSON MapValue where+        toJSON MapValue{..}+          = object (catMaybes [("fpVal" .=) <$> _mvFpVal])++--+-- /See:/ 'listDataSourcesResponse' smart constructor.+newtype ListDataSourcesResponse = ListDataSourcesResponse+    { _ldsrDataSource :: Maybe [DataSource]+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListDataSourcesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ldsrDataSource'+listDataSourcesResponse+    :: ListDataSourcesResponse+listDataSourcesResponse =+    ListDataSourcesResponse+    { _ldsrDataSource = Nothing+    }++-- | A previously created data source.+ldsrDataSource :: Lens' ListDataSourcesResponse [DataSource]+ldsrDataSource+  = lens _ldsrDataSource+      (\ s a -> s{_ldsrDataSource = a})+      . _Default+      . _Coerce++instance FromJSON ListDataSourcesResponse where+        parseJSON+          = withObject "ListDataSourcesResponse"+              (\ o ->+                 ListDataSourcesResponse <$>+                   (o .:? "dataSource" .!= mempty))++instance ToJSON ListDataSourcesResponse where+        toJSON ListDataSourcesResponse{..}+          = object+              (catMaybes [("dataSource" .=) <$> _ldsrDataSource])++-- | In case of multi-dimensional data (such as an accelerometer with x, y,+-- and z axes) each field represents one dimension. Each data type field+-- has a unique name which identifies it. The field also defines the format+-- of the data (int, float, etc.). This message is only instantiated in+-- code and not used for wire comms or stored in any way.+--+-- /See:/ 'dataTypeField' smart constructor.+data DataTypeField = DataTypeField+    { _dtfFormat   :: !(Maybe DataTypeFieldFormat)+    , _dtfName     :: !(Maybe Text)+    , _dtfOptional :: !(Maybe Bool)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DataTypeField' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dtfFormat'+--+-- * 'dtfName'+--+-- * 'dtfOptional'+dataTypeField+    :: DataTypeField+dataTypeField =+    DataTypeField+    { _dtfFormat = Nothing+    , _dtfName = Nothing+    , _dtfOptional = Nothing+    }++-- | The different supported formats for each field in a data type.+dtfFormat :: Lens' DataTypeField (Maybe DataTypeFieldFormat)+dtfFormat+  = lens _dtfFormat (\ s a -> s{_dtfFormat = a})++-- | Defines the name and format of data. Unlike data type names, field names+-- are not namespaced, and only need to be unique within the data type.+dtfName :: Lens' DataTypeField (Maybe Text)+dtfName = lens _dtfName (\ s a -> s{_dtfName = a})++dtfOptional :: Lens' DataTypeField (Maybe Bool)+dtfOptional+  = lens _dtfOptional (\ s a -> s{_dtfOptional = a})++instance FromJSON DataTypeField where+        parseJSON+          = withObject "DataTypeField"+              (\ o ->+                 DataTypeField <$>+                   (o .:? "format") <*> (o .:? "name") <*>+                     (o .:? "optional"))++instance ToJSON DataTypeField where+        toJSON DataTypeField{..}+          = object+              (catMaybes+                 [("format" .=) <$> _dtfFormat,+                  ("name" .=) <$> _dtfName,+                  ("optional" .=) <$> _dtfOptional])++-- | Definition of a unique source of sensor data. Data sources can expose+-- raw data coming from hardware sensors on local or companion devices.+-- They can also expose derived data, created by transforming or merging+-- other data sources. Multiple data sources can exist for the same data+-- type. Every data point inserted into or read from this service has an+-- associated data source. The data source contains enough information to+-- uniquely identify its data, including the hardware device and the+-- application that collected and\/or transformed the data. It also holds+-- useful metadata, such as the hardware and application versions, and the+-- device type. Each data source produces a unique stream of data, with a+-- unique identifier. Not all changes to data source affect the stream+-- identifier, so that data collected by updated versions of the same+-- application\/device can still be considered to belong to the same data+-- stream.+--+-- /See:/ 'dataSource' smart constructor.+data DataSource = DataSource+    { _dsApplication    :: !(Maybe Application)+    , _dsDevice         :: !(Maybe Device)+    , _dsName           :: !(Maybe Text)+    , _dsDataType       :: !(Maybe DataType)+    , _dsType           :: !(Maybe DataSourceType)+    , _dsDataStreamName :: !(Maybe Text)+    , _dsDataStreamId   :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DataSource' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dsApplication'+--+-- * 'dsDevice'+--+-- * 'dsName'+--+-- * 'dsDataType'+--+-- * 'dsType'+--+-- * 'dsDataStreamName'+--+-- * 'dsDataStreamId'+dataSource+    :: DataSource+dataSource =+    DataSource+    { _dsApplication = Nothing+    , _dsDevice = Nothing+    , _dsName = Nothing+    , _dsDataType = Nothing+    , _dsType = Nothing+    , _dsDataStreamName = Nothing+    , _dsDataStreamId = Nothing+    }++-- | Information about an application which feeds sensor data into the+-- platform.+dsApplication :: Lens' DataSource (Maybe Application)+dsApplication+  = lens _dsApplication+      (\ s a -> s{_dsApplication = a})++-- | Representation of an integrated device (such as a phone or a wearable)+-- that can hold sensors.+dsDevice :: Lens' DataSource (Maybe Device)+dsDevice = lens _dsDevice (\ s a -> s{_dsDevice = a})++-- | An end-user visible name for this data source.+dsName :: Lens' DataSource (Maybe Text)+dsName = lens _dsName (\ s a -> s{_dsName = a})++-- | The data type defines the schema for a stream of data being collected+-- by, inserted into, or queried from the Fitness API.+dsDataType :: Lens' DataSource (Maybe DataType)+dsDataType+  = lens _dsDataType (\ s a -> s{_dsDataType = a})++-- | A constant describing the type of this data source. Indicates whether+-- this data source produces raw or derived data.+dsType :: Lens' DataSource (Maybe DataSourceType)+dsType = lens _dsType (\ s a -> s{_dsType = a})++-- | The stream name uniquely identifies this particular data source among+-- other data sources of the same type from the same underlying producer.+-- Setting the stream name is optional, but should be done whenever an+-- application exposes two streams for the same data type, or when a device+-- has two equivalent sensors.+dsDataStreamName :: Lens' DataSource (Maybe Text)+dsDataStreamName+  = lens _dsDataStreamName+      (\ s a -> s{_dsDataStreamName = a})++-- | A unique identifier for the data stream produced by this data source.+-- The identifier includes: - The physical device\'s manufacturer, model,+-- and serial number (UID). - The application\'s package name or name.+-- Package name is used when the data source was created by an Android+-- application. The developer project number is used when the data source+-- was created by a REST client. - The data source\'s type. - The data+-- source\'s stream name. Note that not all attributes of the data source+-- are used as part of the stream identifier. In particular, the version of+-- the hardware\/the application isn\'t used. This allows us to preserve+-- the same stream through version updates. This also means that two+-- DataSource objects may represent the same data stream even if they\'re+-- not equal. The exact format of the data stream ID created by an Android+-- application is:+-- type:dataType.name:application.packageName:device.manufacturer:device.model:device.uid:dataStreamName+-- The exact format of the data stream ID created by a REST client is:+-- type:dataType.name:developer project+-- number:device.manufacturer:device.model:device.uid:dataStreamName When+-- any of the optional fields that comprise of the data stream ID are+-- blank, they will be omitted from the data stream ID. The minnimum viable+-- data stream ID would be: type:dataType.name:developer project number+-- Finally, the developer project number is obfuscated when read by any+-- REST or Android client that did not create the data source. Only the+-- data source creator will see the developer project number in clear and+-- normal form.+dsDataStreamId :: Lens' DataSource (Maybe Text)+dsDataStreamId+  = lens _dsDataStreamId+      (\ s a -> s{_dsDataStreamId = a})++instance FromJSON DataSource where+        parseJSON+          = withObject "DataSource"+              (\ o ->+                 DataSource <$>+                   (o .:? "application") <*> (o .:? "device") <*>+                     (o .:? "name")+                     <*> (o .:? "dataType")+                     <*> (o .:? "type")+                     <*> (o .:? "dataStreamName")+                     <*> (o .:? "dataStreamId"))++instance ToJSON DataSource where+        toJSON DataSource{..}+          = object+              (catMaybes+                 [("application" .=) <$> _dsApplication,+                  ("device" .=) <$> _dsDevice, ("name" .=) <$> _dsName,+                  ("dataType" .=) <$> _dsDataType,+                  ("type" .=) <$> _dsType,+                  ("dataStreamName" .=) <$> _dsDataStreamName,+                  ("dataStreamId" .=) <$> _dsDataStreamId])++--+-- /See:/ 'valueMapValEntry' smart constructor.+data ValueMapValEntry = ValueMapValEntry+    { _vmveValue :: !(Maybe MapValue)+    , _vmveKey   :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ValueMapValEntry' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vmveValue'+--+-- * 'vmveKey'+valueMapValEntry+    :: ValueMapValEntry+valueMapValEntry =+    ValueMapValEntry+    { _vmveValue = Nothing+    , _vmveKey = Nothing+    }++vmveValue :: Lens' ValueMapValEntry (Maybe MapValue)+vmveValue+  = lens _vmveValue (\ s a -> s{_vmveValue = a})++vmveKey :: Lens' ValueMapValEntry (Maybe Text)+vmveKey = lens _vmveKey (\ s a -> s{_vmveKey = a})++instance FromJSON ValueMapValEntry where+        parseJSON+          = withObject "ValueMapValEntry"+              (\ o ->+                 ValueMapValEntry <$>+                   (o .:? "value") <*> (o .:? "key"))++instance ToJSON ValueMapValEntry where+        toJSON ValueMapValEntry{..}+          = object+              (catMaybes+                 [("value" .=) <$> _vmveValue,+                  ("key" .=) <$> _vmveKey])++--+-- /See:/ 'bucketByTime' smart constructor.+newtype BucketByTime = BucketByTime+    { _bbtDurationMillis :: Maybe (Textual Int64)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BucketByTime' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bbtDurationMillis'+bucketByTime+    :: BucketByTime+bucketByTime =+    BucketByTime+    { _bbtDurationMillis = Nothing+    }++-- | Specifies that result buckets aggregate data by exactly durationMillis+-- time frames. Time frames that contain no data will be included in the+-- response with an empty dataset.+bbtDurationMillis :: Lens' BucketByTime (Maybe Int64)+bbtDurationMillis+  = lens _bbtDurationMillis+      (\ s a -> s{_bbtDurationMillis = a})+      . mapping _Coerce++instance FromJSON BucketByTime where+        parseJSON+          = withObject "BucketByTime"+              (\ o -> BucketByTime <$> (o .:? "durationMillis"))++instance ToJSON BucketByTime where+        toJSON BucketByTime{..}+          = object+              (catMaybes+                 [("durationMillis" .=) <$> _bbtDurationMillis])++-- | See:+-- google3\/java\/com\/google\/android\/apps\/heart\/platform\/api\/DataType.java+--+-- /See:/ 'dataType' smart constructor.+data DataType = DataType+    { _dtField :: !(Maybe [DataTypeField])+    , _dtName  :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DataType' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dtField'+--+-- * 'dtName'+dataType+    :: DataType+dataType =+    DataType+    { _dtField = Nothing+    , _dtName = Nothing+    }++-- | A field represents one dimension of a data type.+dtField :: Lens' DataType [DataTypeField]+dtField+  = lens _dtField (\ s a -> s{_dtField = a}) . _Default+      . _Coerce++-- | Each data type has a unique, namespaced, name. All data types in the+-- com.google namespace are shared as part of the platform.+dtName :: Lens' DataType (Maybe Text)+dtName = lens _dtName (\ s a -> s{_dtName = a})++instance FromJSON DataType where+        parseJSON+          = withObject "DataType"+              (\ o ->+                 DataType <$>+                   (o .:? "field" .!= mempty) <*> (o .:? "name"))++instance ToJSON DataType where+        toJSON DataType{..}+          = object+              (catMaybes+                 [("field" .=) <$> _dtField, ("name" .=) <$> _dtName])++-- | Sessions contain metadata, such as a user-friendly name and time+-- interval information.+--+-- /See:/ 'session' smart constructor.+data Session = Session+    { _sEndTimeMillis      :: !(Maybe (Textual Int64))+    , _sActiveTimeMillis   :: !(Maybe (Textual Int64))+    , _sApplication        :: !(Maybe Application)+    , _sActivityType       :: !(Maybe (Textual Int32))+    , _sName               :: !(Maybe Text)+    , _sModifiedTimeMillis :: !(Maybe (Textual Int64))+    , _sId                 :: !(Maybe Text)+    , _sStartTimeMillis    :: !(Maybe (Textual Int64))+    , _sDescription        :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Session' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sEndTimeMillis'+--+-- * 'sActiveTimeMillis'+--+-- * 'sApplication'+--+-- * 'sActivityType'+--+-- * 'sName'+--+-- * 'sModifiedTimeMillis'+--+-- * 'sId'+--+-- * 'sStartTimeMillis'+--+-- * 'sDescription'+session+    :: Session+session =+    Session+    { _sEndTimeMillis = Nothing+    , _sActiveTimeMillis = Nothing+    , _sApplication = Nothing+    , _sActivityType = Nothing+    , _sName = Nothing+    , _sModifiedTimeMillis = Nothing+    , _sId = Nothing+    , _sStartTimeMillis = Nothing+    , _sDescription = Nothing+    }++-- | An end time, in milliseconds since epoch, inclusive.+sEndTimeMillis :: Lens' Session (Maybe Int64)+sEndTimeMillis+  = lens _sEndTimeMillis+      (\ s a -> s{_sEndTimeMillis = a})+      . mapping _Coerce++-- | Session active time. While start_time_millis and end_time_millis define+-- the full session time, the active time can be shorter and specified by+-- active_time_millis. If the inactive time during the session is known, it+-- should also be inserted via a com.google.activity.segment data point+-- with a STILL activity value+sActiveTimeMillis :: Lens' Session (Maybe Int64)+sActiveTimeMillis+  = lens _sActiveTimeMillis+      (\ s a -> s{_sActiveTimeMillis = a})+      . mapping _Coerce++-- | The application that created the session.+sApplication :: Lens' Session (Maybe Application)+sApplication+  = lens _sApplication (\ s a -> s{_sApplication = a})++-- | The type of activity this session represents.+sActivityType :: Lens' Session (Maybe Int32)+sActivityType+  = lens _sActivityType+      (\ s a -> s{_sActivityType = a})+      . mapping _Coerce++-- | A human readable name of the session.+sName :: Lens' Session (Maybe Text)+sName = lens _sName (\ s a -> s{_sName = a})++-- | A timestamp that indicates when the session was last modified.+sModifiedTimeMillis :: Lens' Session (Maybe Int64)+sModifiedTimeMillis+  = lens _sModifiedTimeMillis+      (\ s a -> s{_sModifiedTimeMillis = a})+      . mapping _Coerce++-- | A client-generated identifier that is unique across all sessions owned+-- by this particular user.+sId :: Lens' Session (Maybe Text)+sId = lens _sId (\ s a -> s{_sId = a})++-- | A start time, in milliseconds since epoch, inclusive.+sStartTimeMillis :: Lens' Session (Maybe Int64)+sStartTimeMillis+  = lens _sStartTimeMillis+      (\ s a -> s{_sStartTimeMillis = a})+      . mapping _Coerce++-- | A description for this session.+sDescription :: Lens' Session (Maybe Text)+sDescription+  = lens _sDescription (\ s a -> s{_sDescription = a})++instance FromJSON Session where+        parseJSON+          = withObject "Session"+              (\ o ->+                 Session <$>+                   (o .:? "endTimeMillis") <*>+                     (o .:? "activeTimeMillis")+                     <*> (o .:? "application")+                     <*> (o .:? "activityType")+                     <*> (o .:? "name")+                     <*> (o .:? "modifiedTimeMillis")+                     <*> (o .:? "id")+                     <*> (o .:? "startTimeMillis")+                     <*> (o .:? "description"))++instance ToJSON Session where+        toJSON Session{..}+          = object+              (catMaybes+                 [("endTimeMillis" .=) <$> _sEndTimeMillis,+                  ("activeTimeMillis" .=) <$> _sActiveTimeMillis,+                  ("application" .=) <$> _sApplication,+                  ("activityType" .=) <$> _sActivityType,+                  ("name" .=) <$> _sName,+                  ("modifiedTimeMillis" .=) <$> _sModifiedTimeMillis,+                  ("id" .=) <$> _sId,+                  ("startTimeMillis" .=) <$> _sStartTimeMillis,+                  ("description" .=) <$> _sDescription])
+ gen/Network/Google/Fitness/Types/Sum.hs view
@@ -0,0 +1,173 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE LambdaCase         #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Network.Google.Fitness.Types.Sum+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.Google.Fitness.Types.Sum where++import           Network.Google.Prelude++-- | The type of a bucket signifies how the data aggregation is performed in+-- the bucket.+data AggregateBucketType+    = ABTActivitySegment+      -- ^ @activitySegment@+    | ABTActivityType+      -- ^ @activityType@+    | ABTSession+      -- ^ @session@+    | ABTTime+      -- ^ @time@+    | ABTUnknown+      -- ^ @unknown@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable AggregateBucketType++instance FromText AggregateBucketType where+    fromText = \case+        "activitySegment" -> Just ABTActivitySegment+        "activityType" -> Just ABTActivityType+        "session" -> Just ABTSession+        "time" -> Just ABTTime+        "unknown" -> Just ABTUnknown+        _ -> Nothing++instance ToText AggregateBucketType where+    toText = \case+        ABTActivitySegment -> "activitySegment"+        ABTActivityType -> "activityType"+        ABTSession -> "session"+        ABTTime -> "time"+        ABTUnknown -> "unknown"++instance FromJSON AggregateBucketType where+    parseJSON = parseJSONText "AggregateBucketType"++instance ToJSON AggregateBucketType where+    toJSON = toJSONText++-- | A constant describing the type of this data source. Indicates whether+-- this data source produces raw or derived data.+data DataSourceType+    = Derived+      -- ^ @derived@+    | Raw+      -- ^ @raw@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable DataSourceType++instance FromText DataSourceType where+    fromText = \case+        "derived" -> Just Derived+        "raw" -> Just Raw+        _ -> Nothing++instance ToText DataSourceType where+    toText = \case+        Derived -> "derived"+        Raw -> "raw"++instance FromJSON DataSourceType where+    parseJSON = parseJSONText "DataSourceType"++instance ToJSON DataSourceType where+    toJSON = toJSONText++-- | A constant representing the type of the device.+data DeviceType+    = ChestStrap+      -- ^ @chestStrap@+    | Phone+      -- ^ @phone@+    | Scale+      -- ^ @scale@+    | Tablet+      -- ^ @tablet@+    | Unknown+      -- ^ @unknown@+    | Watch+      -- ^ @watch@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable DeviceType++instance FromText DeviceType where+    fromText = \case+        "chestStrap" -> Just ChestStrap+        "phone" -> Just Phone+        "scale" -> Just Scale+        "tablet" -> Just Tablet+        "unknown" -> Just Unknown+        "watch" -> Just Watch+        _ -> Nothing++instance ToText DeviceType where+    toText = \case+        ChestStrap -> "chestStrap"+        Phone -> "phone"+        Scale -> "scale"+        Tablet -> "tablet"+        Unknown -> "unknown"+        Watch -> "watch"++instance FromJSON DeviceType where+    parseJSON = parseJSONText "DeviceType"++instance ToJSON DeviceType where+    toJSON = toJSONText++-- | The different supported formats for each field in a data type.+data DataTypeFieldFormat+    = FloatList+      -- ^ @floatList@+    | FloatPoint+      -- ^ @floatPoint@+    | Integer+      -- ^ @integer@+    | IntegerList+      -- ^ @integerList@+    | Map+      -- ^ @map@+    | String+      -- ^ @string@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable DataTypeFieldFormat++instance FromText DataTypeFieldFormat where+    fromText = \case+        "floatList" -> Just FloatList+        "floatPoint" -> Just FloatPoint+        "integer" -> Just Integer+        "integerList" -> Just IntegerList+        "map" -> Just Map+        "string" -> Just String+        _ -> Nothing++instance ToText DataTypeFieldFormat where+    toText = \case+        FloatList -> "floatList"+        FloatPoint -> "floatPoint"+        Integer -> "integer"+        IntegerList -> "integerList"+        Map -> "map"+        String -> "string"++instance FromJSON DataTypeFieldFormat where+    parseJSON = parseJSONText "DataTypeFieldFormat"++instance ToJSON DataTypeFieldFormat where+    toJSON = toJSONText
+ gen/Network/Google/Resource/Fitness/Users/DataSet/Aggregate.hs view
@@ -0,0 +1,105 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Fitness.Users.DataSet.Aggregate+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Aggregates data of a certain type or stream into buckets divided by a+-- given type of boundary. Multiple data sets of multiple types and from+-- multiple sources can be aggreated into exactly one bucket type per+-- request.+--+-- /See:/ <https://developers.google.com/fit/rest/ Fitness Reference> for @fitness.users.dataset.aggregate@.+module Network.Google.Resource.Fitness.Users.DataSet.Aggregate+    (+    -- * REST Resource+      UsersDataSetAggregateResource++    -- * Creating a Request+    , usersDataSetAggregate+    , UsersDataSetAggregate++    -- * Request Lenses+    , udsaPayload+    , udsaUserId+    ) where++import           Network.Google.Fitness.Types+import           Network.Google.Prelude++-- | A resource alias for @fitness.users.dataset.aggregate@ method which the+-- 'UsersDataSetAggregate' request conforms to.+type UsersDataSetAggregateResource =+     "fitness" :>+       "v1" :>+         "users" :>+           Capture "userId" Text :>+             "dataset:aggregate" :>+               QueryParam "alt" AltJSON :>+                 ReqBody '[JSON] AggregateRequest :>+                   Post '[JSON] AggregateResponse++-- | Aggregates data of a certain type or stream into buckets divided by a+-- given type of boundary. Multiple data sets of multiple types and from+-- multiple sources can be aggreated into exactly one bucket type per+-- request.+--+-- /See:/ 'usersDataSetAggregate' smart constructor.+data UsersDataSetAggregate = UsersDataSetAggregate+    { _udsaPayload :: !AggregateRequest+    , _udsaUserId  :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UsersDataSetAggregate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'udsaPayload'+--+-- * 'udsaUserId'+usersDataSetAggregate+    :: AggregateRequest -- ^ 'udsaPayload'+    -> Text -- ^ 'udsaUserId'+    -> UsersDataSetAggregate+usersDataSetAggregate pUdsaPayload_ pUdsaUserId_ =+    UsersDataSetAggregate+    { _udsaPayload = pUdsaPayload_+    , _udsaUserId = pUdsaUserId_+    }++-- | Multipart request metadata.+udsaPayload :: Lens' UsersDataSetAggregate AggregateRequest+udsaPayload+  = lens _udsaPayload (\ s a -> s{_udsaPayload = a})++-- | Aggregate data for the person identified. Use me to indicate the+-- authenticated user. Only me is supported at this time.+udsaUserId :: Lens' UsersDataSetAggregate Text+udsaUserId+  = lens _udsaUserId (\ s a -> s{_udsaUserId = a})++instance GoogleRequest UsersDataSetAggregate where+        type Rs UsersDataSetAggregate = AggregateResponse+        requestClient UsersDataSetAggregate{..}+          = go _udsaUserId (Just AltJSON) _udsaPayload+              fitnessService+          where go+                  = buildClient+                      (Proxy :: Proxy UsersDataSetAggregateResource)+                      mempty
+ gen/Network/Google/Resource/Fitness/Users/DataSources/Create.hs view
@@ -0,0 +1,112 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Fitness.Users.DataSources.Create+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a new data source that is unique across all data sources+-- belonging to this user. The data stream ID field can be omitted and will+-- be generated by the server with the correct format. The data stream ID+-- is an ordered combination of some fields from the data source. In+-- addition to the data source fields reflected into the data source ID,+-- the developer project number that is authenticated when creating the+-- data source is included. This developer project number is obfuscated+-- when read by any other developer reading public data types.+--+-- /See:/ <https://developers.google.com/fit/rest/ Fitness Reference> for @fitness.users.dataSources.create@.+module Network.Google.Resource.Fitness.Users.DataSources.Create+    (+    -- * REST Resource+      UsersDataSourcesCreateResource++    -- * Creating a Request+    , usersDataSourcesCreate+    , UsersDataSourcesCreate++    -- * Request Lenses+    , udscPayload+    , udscUserId+    ) where++import           Network.Google.Fitness.Types+import           Network.Google.Prelude++-- | A resource alias for @fitness.users.dataSources.create@ method which the+-- 'UsersDataSourcesCreate' request conforms to.+type UsersDataSourcesCreateResource =+     "fitness" :>+       "v1" :>+         "users" :>+           Capture "userId" Text :>+             "dataSources" :>+               QueryParam "alt" AltJSON :>+                 ReqBody '[JSON] DataSource :> Post '[JSON] DataSource++-- | Creates a new data source that is unique across all data sources+-- belonging to this user. The data stream ID field can be omitted and will+-- be generated by the server with the correct format. The data stream ID+-- is an ordered combination of some fields from the data source. In+-- addition to the data source fields reflected into the data source ID,+-- the developer project number that is authenticated when creating the+-- data source is included. This developer project number is obfuscated+-- when read by any other developer reading public data types.+--+-- /See:/ 'usersDataSourcesCreate' smart constructor.+data UsersDataSourcesCreate = UsersDataSourcesCreate+    { _udscPayload :: !DataSource+    , _udscUserId  :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UsersDataSourcesCreate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'udscPayload'+--+-- * 'udscUserId'+usersDataSourcesCreate+    :: DataSource -- ^ 'udscPayload'+    -> Text -- ^ 'udscUserId'+    -> UsersDataSourcesCreate+usersDataSourcesCreate pUdscPayload_ pUdscUserId_ =+    UsersDataSourcesCreate+    { _udscPayload = pUdscPayload_+    , _udscUserId = pUdscUserId_+    }++-- | Multipart request metadata.+udscPayload :: Lens' UsersDataSourcesCreate DataSource+udscPayload+  = lens _udscPayload (\ s a -> s{_udscPayload = a})++-- | Create the data source for the person identified. Use me to indicate the+-- authenticated user. Only me is supported at this time.+udscUserId :: Lens' UsersDataSourcesCreate Text+udscUserId+  = lens _udscUserId (\ s a -> s{_udscUserId = a})++instance GoogleRequest UsersDataSourcesCreate where+        type Rs UsersDataSourcesCreate = DataSource+        requestClient UsersDataSourcesCreate{..}+          = go _udscUserId (Just AltJSON) _udscPayload+              fitnessService+          where go+                  = buildClient+                      (Proxy :: Proxy UsersDataSourcesCreateResource)+                      mempty
+ gen/Network/Google/Resource/Fitness/Users/DataSources/DataSets/Delete.hs view
@@ -0,0 +1,160 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Fitness.Users.DataSources.DataSets.Delete+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Performs an inclusive delete of all data points whose start and end+-- times have any overlap with the time range specified by the dataset ID.+-- For most data types, the entire data point will be deleted. For data+-- types where the time span represents a consistent value (such as+-- com.google.activity.segment), and a data point straddles either end+-- point of the dataset, only the overlapping portion of the data point+-- will be deleted.+--+-- /See:/ <https://developers.google.com/fit/rest/ Fitness Reference> for @fitness.users.dataSources.datasets.delete@.+module Network.Google.Resource.Fitness.Users.DataSources.DataSets.Delete+    (+    -- * REST Resource+      UsersDataSourcesDataSetsDeleteResource++    -- * Creating a Request+    , usersDataSourcesDataSetsDelete+    , UsersDataSourcesDataSetsDelete++    -- * Request Lenses+    , udsdsdDataSourceId+    , udsdsdUserId+    , udsdsdDataSetId+    , udsdsdModifiedTimeMillis+    , udsdsdCurrentTimeMillis+    ) where++import           Network.Google.Fitness.Types+import           Network.Google.Prelude++-- | A resource alias for @fitness.users.dataSources.datasets.delete@ method which the+-- 'UsersDataSourcesDataSetsDelete' request conforms to.+type UsersDataSourcesDataSetsDeleteResource =+     "fitness" :>+       "v1" :>+         "users" :>+           Capture "userId" Text :>+             "dataSources" :>+               Capture "dataSourceId" Text :>+                 "datasets" :>+                   Capture "datasetId" Text :>+                     QueryParam "modifiedTimeMillis" (Textual Int64) :>+                       QueryParam "currentTimeMillis" (Textual Int64) :>+                         QueryParam "alt" AltJSON :> Delete '[JSON] ()++-- | Performs an inclusive delete of all data points whose start and end+-- times have any overlap with the time range specified by the dataset ID.+-- For most data types, the entire data point will be deleted. For data+-- types where the time span represents a consistent value (such as+-- com.google.activity.segment), and a data point straddles either end+-- point of the dataset, only the overlapping portion of the data point+-- will be deleted.+--+-- /See:/ 'usersDataSourcesDataSetsDelete' smart constructor.+data UsersDataSourcesDataSetsDelete = UsersDataSourcesDataSetsDelete+    { _udsdsdDataSourceId       :: !Text+    , _udsdsdUserId             :: !Text+    , _udsdsdDataSetId          :: !Text+    , _udsdsdModifiedTimeMillis :: !(Maybe (Textual Int64))+    , _udsdsdCurrentTimeMillis  :: !(Maybe (Textual Int64))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UsersDataSourcesDataSetsDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'udsdsdDataSourceId'+--+-- * 'udsdsdUserId'+--+-- * 'udsdsdDataSetId'+--+-- * 'udsdsdModifiedTimeMillis'+--+-- * 'udsdsdCurrentTimeMillis'+usersDataSourcesDataSetsDelete+    :: Text -- ^ 'udsdsdDataSourceId'+    -> Text -- ^ 'udsdsdUserId'+    -> Text -- ^ 'udsdsdDataSetId'+    -> UsersDataSourcesDataSetsDelete+usersDataSourcesDataSetsDelete pUdsdsdDataSourceId_ pUdsdsdUserId_ pUdsdsdDataSetId_ =+    UsersDataSourcesDataSetsDelete+    { _udsdsdDataSourceId = pUdsdsdDataSourceId_+    , _udsdsdUserId = pUdsdsdUserId_+    , _udsdsdDataSetId = pUdsdsdDataSetId_+    , _udsdsdModifiedTimeMillis = Nothing+    , _udsdsdCurrentTimeMillis = Nothing+    }++-- | The data stream ID of the data source that created the dataset.+udsdsdDataSourceId :: Lens' UsersDataSourcesDataSetsDelete Text+udsdsdDataSourceId+  = lens _udsdsdDataSourceId+      (\ s a -> s{_udsdsdDataSourceId = a})++-- | Delete a dataset for the person identified. Use me to indicate the+-- authenticated user. Only me is supported at this time.+udsdsdUserId :: Lens' UsersDataSourcesDataSetsDelete Text+udsdsdUserId+  = lens _udsdsdUserId (\ s a -> s{_udsdsdUserId = a})++-- | Dataset identifier that is a composite of the minimum data point start+-- time and maximum data point end time represented as nanoseconds from the+-- epoch. The ID is formatted like: \"startTime-endTime\" where startTime+-- and endTime are 64 bit integers.+udsdsdDataSetId :: Lens' UsersDataSourcesDataSetsDelete Text+udsdsdDataSetId+  = lens _udsdsdDataSetId+      (\ s a -> s{_udsdsdDataSetId = a})++-- | When the operation was performed on the client.+udsdsdModifiedTimeMillis :: Lens' UsersDataSourcesDataSetsDelete (Maybe Int64)+udsdsdModifiedTimeMillis+  = lens _udsdsdModifiedTimeMillis+      (\ s a -> s{_udsdsdModifiedTimeMillis = a})+      . mapping _Coerce++-- | The client\'s current time in milliseconds since epoch.+udsdsdCurrentTimeMillis :: Lens' UsersDataSourcesDataSetsDelete (Maybe Int64)+udsdsdCurrentTimeMillis+  = lens _udsdsdCurrentTimeMillis+      (\ s a -> s{_udsdsdCurrentTimeMillis = a})+      . mapping _Coerce++instance GoogleRequest UsersDataSourcesDataSetsDelete+         where+        type Rs UsersDataSourcesDataSetsDelete = ()+        requestClient UsersDataSourcesDataSetsDelete{..}+          = go _udsdsdUserId _udsdsdDataSourceId+              _udsdsdDataSetId+              _udsdsdModifiedTimeMillis+              _udsdsdCurrentTimeMillis+              (Just AltJSON)+              fitnessService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy UsersDataSourcesDataSetsDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Fitness/Users/DataSources/DataSets/Get.hs view
@@ -0,0 +1,159 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Fitness.Users.DataSources.DataSets.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a dataset containing all data points whose start and end times+-- overlap with the specified range of the dataset minimum start time and+-- maximum end time. Specifically, any data point whose start time is less+-- than or equal to the dataset end time and whose end time is greater than+-- or equal to the dataset start time.+--+-- /See:/ <https://developers.google.com/fit/rest/ Fitness Reference> for @fitness.users.dataSources.datasets.get@.+module Network.Google.Resource.Fitness.Users.DataSources.DataSets.Get+    (+    -- * REST Resource+      UsersDataSourcesDataSetsGetResource++    -- * Creating a Request+    , usersDataSourcesDataSetsGet+    , UsersDataSourcesDataSetsGet++    -- * Request Lenses+    , udsdsgDataSourceId+    , udsdsgUserId+    , udsdsgDataSetId+    , udsdsgLimit+    , udsdsgPageToken+    ) where++import           Network.Google.Fitness.Types+import           Network.Google.Prelude++-- | A resource alias for @fitness.users.dataSources.datasets.get@ method which the+-- 'UsersDataSourcesDataSetsGet' request conforms to.+type UsersDataSourcesDataSetsGetResource =+     "fitness" :>+       "v1" :>+         "users" :>+           Capture "userId" Text :>+             "dataSources" :>+               Capture "dataSourceId" Text :>+                 "datasets" :>+                   Capture "datasetId" Text :>+                     QueryParam "limit" (Textual Int32) :>+                       QueryParam "pageToken" Text :>+                         QueryParam "alt" AltJSON :> Get '[JSON] DataSet++-- | Returns a dataset containing all data points whose start and end times+-- overlap with the specified range of the dataset minimum start time and+-- maximum end time. Specifically, any data point whose start time is less+-- than or equal to the dataset end time and whose end time is greater than+-- or equal to the dataset start time.+--+-- /See:/ 'usersDataSourcesDataSetsGet' smart constructor.+data UsersDataSourcesDataSetsGet = UsersDataSourcesDataSetsGet+    { _udsdsgDataSourceId :: !Text+    , _udsdsgUserId       :: !Text+    , _udsdsgDataSetId    :: !Text+    , _udsdsgLimit        :: !(Maybe (Textual Int32))+    , _udsdsgPageToken    :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UsersDataSourcesDataSetsGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'udsdsgDataSourceId'+--+-- * 'udsdsgUserId'+--+-- * 'udsdsgDataSetId'+--+-- * 'udsdsgLimit'+--+-- * 'udsdsgPageToken'+usersDataSourcesDataSetsGet+    :: Text -- ^ 'udsdsgDataSourceId'+    -> Text -- ^ 'udsdsgUserId'+    -> Text -- ^ 'udsdsgDataSetId'+    -> UsersDataSourcesDataSetsGet+usersDataSourcesDataSetsGet pUdsdsgDataSourceId_ pUdsdsgUserId_ pUdsdsgDataSetId_ =+    UsersDataSourcesDataSetsGet+    { _udsdsgDataSourceId = pUdsdsgDataSourceId_+    , _udsdsgUserId = pUdsdsgUserId_+    , _udsdsgDataSetId = pUdsdsgDataSetId_+    , _udsdsgLimit = Nothing+    , _udsdsgPageToken = Nothing+    }++-- | The data stream ID of the data source that created the dataset.+udsdsgDataSourceId :: Lens' UsersDataSourcesDataSetsGet Text+udsdsgDataSourceId+  = lens _udsdsgDataSourceId+      (\ s a -> s{_udsdsgDataSourceId = a})++-- | Retrieve a dataset for the person identified. Use me to indicate the+-- authenticated user. Only me is supported at this time.+udsdsgUserId :: Lens' UsersDataSourcesDataSetsGet Text+udsdsgUserId+  = lens _udsdsgUserId (\ s a -> s{_udsdsgUserId = a})++-- | Dataset identifier that is a composite of the minimum data point start+-- time and maximum data point end time represented as nanoseconds from the+-- epoch. The ID is formatted like: \"startTime-endTime\" where startTime+-- and endTime are 64 bit integers.+udsdsgDataSetId :: Lens' UsersDataSourcesDataSetsGet Text+udsdsgDataSetId+  = lens _udsdsgDataSetId+      (\ s a -> s{_udsdsgDataSetId = a})++-- | If specified, no more than this many data points will be included in the+-- dataset. If the there are more data points in the dataset, nextPageToken+-- will be set in the dataset response.+udsdsgLimit :: Lens' UsersDataSourcesDataSetsGet (Maybe Int32)+udsdsgLimit+  = lens _udsdsgLimit (\ s a -> s{_udsdsgLimit = a}) .+      mapping _Coerce++-- | The continuation token, which is used to page through large datasets. To+-- get the next page of a dataset, set this parameter to the value of+-- nextPageToken from the previous response. Each subsequent call will+-- yield a partial dataset with data point end timestamps that are strictly+-- smaller than those in the previous partial response.+udsdsgPageToken :: Lens' UsersDataSourcesDataSetsGet (Maybe Text)+udsdsgPageToken+  = lens _udsdsgPageToken+      (\ s a -> s{_udsdsgPageToken = a})++instance GoogleRequest UsersDataSourcesDataSetsGet+         where+        type Rs UsersDataSourcesDataSetsGet = DataSet+        requestClient UsersDataSourcesDataSetsGet{..}+          = go _udsdsgUserId _udsdsgDataSourceId+              _udsdsgDataSetId+              _udsdsgLimit+              _udsdsgPageToken+              (Just AltJSON)+              fitnessService+          where go+                  = buildClient+                      (Proxy :: Proxy UsersDataSourcesDataSetsGetResource)+                      mempty
+ gen/Network/Google/Resource/Fitness/Users/DataSources/DataSets/Patch.hs view
@@ -0,0 +1,156 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Fitness.Users.DataSources.DataSets.Patch+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Adds data points to a dataset. The dataset need not be previously+-- created. All points within the given dataset will be returned with+-- subsquent calls to retrieve this dataset. Data points can belong to more+-- than one dataset. This method does not use patch semantics.+--+-- /See:/ <https://developers.google.com/fit/rest/ Fitness Reference> for @fitness.users.dataSources.datasets.patch@.+module Network.Google.Resource.Fitness.Users.DataSources.DataSets.Patch+    (+    -- * REST Resource+      UsersDataSourcesDataSetsPatchResource++    -- * Creating a Request+    , usersDataSourcesDataSetsPatch+    , UsersDataSourcesDataSetsPatch++    -- * Request Lenses+    , udsdspDataSourceId+    , udsdspPayload+    , udsdspUserId+    , udsdspDataSetId+    , udsdspCurrentTimeMillis+    ) where++import           Network.Google.Fitness.Types+import           Network.Google.Prelude++-- | A resource alias for @fitness.users.dataSources.datasets.patch@ method which the+-- 'UsersDataSourcesDataSetsPatch' request conforms to.+type UsersDataSourcesDataSetsPatchResource =+     "fitness" :>+       "v1" :>+         "users" :>+           Capture "userId" Text :>+             "dataSources" :>+               Capture "dataSourceId" Text :>+                 "datasets" :>+                   Capture "datasetId" Text :>+                     QueryParam "currentTimeMillis" (Textual Int64) :>+                       QueryParam "alt" AltJSON :>+                         ReqBody '[JSON] DataSet :> Patch '[JSON] DataSet++-- | Adds data points to a dataset. The dataset need not be previously+-- created. All points within the given dataset will be returned with+-- subsquent calls to retrieve this dataset. Data points can belong to more+-- than one dataset. This method does not use patch semantics.+--+-- /See:/ 'usersDataSourcesDataSetsPatch' smart constructor.+data UsersDataSourcesDataSetsPatch = UsersDataSourcesDataSetsPatch+    { _udsdspDataSourceId      :: !Text+    , _udsdspPayload           :: !DataSet+    , _udsdspUserId            :: !Text+    , _udsdspDataSetId         :: !Text+    , _udsdspCurrentTimeMillis :: !(Maybe (Textual Int64))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UsersDataSourcesDataSetsPatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'udsdspDataSourceId'+--+-- * 'udsdspPayload'+--+-- * 'udsdspUserId'+--+-- * 'udsdspDataSetId'+--+-- * 'udsdspCurrentTimeMillis'+usersDataSourcesDataSetsPatch+    :: Text -- ^ 'udsdspDataSourceId'+    -> DataSet -- ^ 'udsdspPayload'+    -> Text -- ^ 'udsdspUserId'+    -> Text -- ^ 'udsdspDataSetId'+    -> UsersDataSourcesDataSetsPatch+usersDataSourcesDataSetsPatch pUdsdspDataSourceId_ pUdsdspPayload_ pUdsdspUserId_ pUdsdspDataSetId_ =+    UsersDataSourcesDataSetsPatch+    { _udsdspDataSourceId = pUdsdspDataSourceId_+    , _udsdspPayload = pUdsdspPayload_+    , _udsdspUserId = pUdsdspUserId_+    , _udsdspDataSetId = pUdsdspDataSetId_+    , _udsdspCurrentTimeMillis = Nothing+    }++-- | The data stream ID of the data source that created the dataset.+udsdspDataSourceId :: Lens' UsersDataSourcesDataSetsPatch Text+udsdspDataSourceId+  = lens _udsdspDataSourceId+      (\ s a -> s{_udsdspDataSourceId = a})++-- | Multipart request metadata.+udsdspPayload :: Lens' UsersDataSourcesDataSetsPatch DataSet+udsdspPayload+  = lens _udsdspPayload+      (\ s a -> s{_udsdspPayload = a})++-- | Patch a dataset for the person identified. Use me to indicate the+-- authenticated user. Only me is supported at this time.+udsdspUserId :: Lens' UsersDataSourcesDataSetsPatch Text+udsdspUserId+  = lens _udsdspUserId (\ s a -> s{_udsdspUserId = a})++-- | Dataset identifier that is a composite of the minimum data point start+-- time and maximum data point end time represented as nanoseconds from the+-- epoch. The ID is formatted like: \"startTime-endTime\" where startTime+-- and endTime are 64 bit integers.+udsdspDataSetId :: Lens' UsersDataSourcesDataSetsPatch Text+udsdspDataSetId+  = lens _udsdspDataSetId+      (\ s a -> s{_udsdspDataSetId = a})++-- | The client\'s current time in milliseconds since epoch. Note that the+-- minStartTimeNs and maxEndTimeNs properties in the request body are in+-- nanoseconds instead of milliseconds.+udsdspCurrentTimeMillis :: Lens' UsersDataSourcesDataSetsPatch (Maybe Int64)+udsdspCurrentTimeMillis+  = lens _udsdspCurrentTimeMillis+      (\ s a -> s{_udsdspCurrentTimeMillis = a})+      . mapping _Coerce++instance GoogleRequest UsersDataSourcesDataSetsPatch+         where+        type Rs UsersDataSourcesDataSetsPatch = DataSet+        requestClient UsersDataSourcesDataSetsPatch{..}+          = go _udsdspUserId _udsdspDataSourceId+              _udsdspDataSetId+              _udsdspCurrentTimeMillis+              (Just AltJSON)+              _udsdspPayload+              fitnessService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy UsersDataSourcesDataSetsPatchResource)+                      mempty
+ gen/Network/Google/Resource/Fitness/Users/DataSources/Delete.hs view
@@ -0,0 +1,99 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Fitness.Users.DataSources.Delete+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Delete the data source if there are no datapoints associated with it+--+-- /See:/ <https://developers.google.com/fit/rest/ Fitness Reference> for @fitness.users.dataSources.delete@.+module Network.Google.Resource.Fitness.Users.DataSources.Delete+    (+    -- * REST Resource+      UsersDataSourcesDeleteResource++    -- * Creating a Request+    , usersDataSourcesDelete+    , UsersDataSourcesDelete++    -- * Request Lenses+    , udsdDataSourceId+    , udsdUserId+    ) where++import           Network.Google.Fitness.Types+import           Network.Google.Prelude++-- | A resource alias for @fitness.users.dataSources.delete@ method which the+-- 'UsersDataSourcesDelete' request conforms to.+type UsersDataSourcesDeleteResource =+     "fitness" :>+       "v1" :>+         "users" :>+           Capture "userId" Text :>+             "dataSources" :>+               Capture "dataSourceId" Text :>+                 QueryParam "alt" AltJSON :> Delete '[JSON] DataSource++-- | Delete the data source if there are no datapoints associated with it+--+-- /See:/ 'usersDataSourcesDelete' smart constructor.+data UsersDataSourcesDelete = UsersDataSourcesDelete+    { _udsdDataSourceId :: !Text+    , _udsdUserId       :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UsersDataSourcesDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'udsdDataSourceId'+--+-- * 'udsdUserId'+usersDataSourcesDelete+    :: Text -- ^ 'udsdDataSourceId'+    -> Text -- ^ 'udsdUserId'+    -> UsersDataSourcesDelete+usersDataSourcesDelete pUdsdDataSourceId_ pUdsdUserId_ =+    UsersDataSourcesDelete+    { _udsdDataSourceId = pUdsdDataSourceId_+    , _udsdUserId = pUdsdUserId_+    }++-- | The data stream ID of the data source to delete.+udsdDataSourceId :: Lens' UsersDataSourcesDelete Text+udsdDataSourceId+  = lens _udsdDataSourceId+      (\ s a -> s{_udsdDataSourceId = a})++-- | Retrieve a data source for the person identified. Use me to indicate the+-- authenticated user. Only me is supported at this time.+udsdUserId :: Lens' UsersDataSourcesDelete Text+udsdUserId+  = lens _udsdUserId (\ s a -> s{_udsdUserId = a})++instance GoogleRequest UsersDataSourcesDelete where+        type Rs UsersDataSourcesDelete = DataSource+        requestClient UsersDataSourcesDelete{..}+          = go _udsdUserId _udsdDataSourceId (Just AltJSON)+              fitnessService+          where go+                  = buildClient+                      (Proxy :: Proxy UsersDataSourcesDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Fitness/Users/DataSources/Get.hs view
@@ -0,0 +1,99 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Fitness.Users.DataSources.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a data source identified by a data stream ID.+--+-- /See:/ <https://developers.google.com/fit/rest/ Fitness Reference> for @fitness.users.dataSources.get@.+module Network.Google.Resource.Fitness.Users.DataSources.Get+    (+    -- * REST Resource+      UsersDataSourcesGetResource++    -- * Creating a Request+    , usersDataSourcesGet+    , UsersDataSourcesGet++    -- * Request Lenses+    , udsgDataSourceId+    , udsgUserId+    ) where++import           Network.Google.Fitness.Types+import           Network.Google.Prelude++-- | A resource alias for @fitness.users.dataSources.get@ method which the+-- 'UsersDataSourcesGet' request conforms to.+type UsersDataSourcesGetResource =+     "fitness" :>+       "v1" :>+         "users" :>+           Capture "userId" Text :>+             "dataSources" :>+               Capture "dataSourceId" Text :>+                 QueryParam "alt" AltJSON :> Get '[JSON] DataSource++-- | Returns a data source identified by a data stream ID.+--+-- /See:/ 'usersDataSourcesGet' smart constructor.+data UsersDataSourcesGet = UsersDataSourcesGet+    { _udsgDataSourceId :: !Text+    , _udsgUserId       :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UsersDataSourcesGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'udsgDataSourceId'+--+-- * 'udsgUserId'+usersDataSourcesGet+    :: Text -- ^ 'udsgDataSourceId'+    -> Text -- ^ 'udsgUserId'+    -> UsersDataSourcesGet+usersDataSourcesGet pUdsgDataSourceId_ pUdsgUserId_ =+    UsersDataSourcesGet+    { _udsgDataSourceId = pUdsgDataSourceId_+    , _udsgUserId = pUdsgUserId_+    }++-- | The data stream ID of the data source to retrieve.+udsgDataSourceId :: Lens' UsersDataSourcesGet Text+udsgDataSourceId+  = lens _udsgDataSourceId+      (\ s a -> s{_udsgDataSourceId = a})++-- | Retrieve a data source for the person identified. Use me to indicate the+-- authenticated user. Only me is supported at this time.+udsgUserId :: Lens' UsersDataSourcesGet Text+udsgUserId+  = lens _udsgUserId (\ s a -> s{_udsgUserId = a})++instance GoogleRequest UsersDataSourcesGet where+        type Rs UsersDataSourcesGet = DataSource+        requestClient UsersDataSourcesGet{..}+          = go _udsgUserId _udsgDataSourceId (Just AltJSON)+              fitnessService+          where go+                  = buildClient+                      (Proxy :: Proxy UsersDataSourcesGetResource)+                      mempty
+ gen/Network/Google/Resource/Fitness/Users/DataSources/List.hs view
@@ -0,0 +1,110 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Fitness.Users.DataSources.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists all data sources that are visible to the developer, using the+-- OAuth scopes provided. The list is not exhaustive: the user may have+-- private data sources that are only visible to other developers or calls+-- using other scopes.+--+-- /See:/ <https://developers.google.com/fit/rest/ Fitness Reference> for @fitness.users.dataSources.list@.+module Network.Google.Resource.Fitness.Users.DataSources.List+    (+    -- * REST Resource+      UsersDataSourcesListResource++    -- * Creating a Request+    , usersDataSourcesList+    , UsersDataSourcesList++    -- * Request Lenses+    , udslDataTypeName+    , udslUserId+    ) where++import           Network.Google.Fitness.Types+import           Network.Google.Prelude++-- | A resource alias for @fitness.users.dataSources.list@ method which the+-- 'UsersDataSourcesList' request conforms to.+type UsersDataSourcesListResource =+     "fitness" :>+       "v1" :>+         "users" :>+           Capture "userId" Text :>+             "dataSources" :>+               QueryParams "dataTypeName" Text :>+                 QueryParam "alt" AltJSON :>+                   Get '[JSON] ListDataSourcesResponse++-- | Lists all data sources that are visible to the developer, using the+-- OAuth scopes provided. The list is not exhaustive: the user may have+-- private data sources that are only visible to other developers or calls+-- using other scopes.+--+-- /See:/ 'usersDataSourcesList' smart constructor.+data UsersDataSourcesList = UsersDataSourcesList+    { _udslDataTypeName :: !(Maybe [Text])+    , _udslUserId       :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UsersDataSourcesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'udslDataTypeName'+--+-- * 'udslUserId'+usersDataSourcesList+    :: Text -- ^ 'udslUserId'+    -> UsersDataSourcesList+usersDataSourcesList pUdslUserId_ =+    UsersDataSourcesList+    { _udslDataTypeName = Nothing+    , _udslUserId = pUdslUserId_+    }++-- | The names of data types to include in the list. If not specified, all+-- data sources will be returned.+udslDataTypeName :: Lens' UsersDataSourcesList [Text]+udslDataTypeName+  = lens _udslDataTypeName+      (\ s a -> s{_udslDataTypeName = a})+      . _Default+      . _Coerce++-- | List data sources for the person identified. Use me to indicate the+-- authenticated user. Only me is supported at this time.+udslUserId :: Lens' UsersDataSourcesList Text+udslUserId+  = lens _udslUserId (\ s a -> s{_udslUserId = a})++instance GoogleRequest UsersDataSourcesList where+        type Rs UsersDataSourcesList =+             ListDataSourcesResponse+        requestClient UsersDataSourcesList{..}+          = go _udslUserId (_udslDataTypeName ^. _Default)+              (Just AltJSON)+              fitnessService+          where go+                  = buildClient+                      (Proxy :: Proxy UsersDataSourcesListResource)+                      mempty
+ gen/Network/Google/Resource/Fitness/Users/DataSources/Patch.hs view
@@ -0,0 +1,123 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Fitness.Users.DataSources.Patch+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a given data source. It is an error to modify the data source\'s+-- data stream ID, data type, type, stream name or device information apart+-- from the device version. Changing these fields would require a new+-- unique data stream ID and separate data source. Data sources are+-- identified by their data stream ID. This method supports patch+-- semantics.+--+-- /See:/ <https://developers.google.com/fit/rest/ Fitness Reference> for @fitness.users.dataSources.patch@.+module Network.Google.Resource.Fitness.Users.DataSources.Patch+    (+    -- * REST Resource+      UsersDataSourcesPatchResource++    -- * Creating a Request+    , usersDataSourcesPatch+    , UsersDataSourcesPatch++    -- * Request Lenses+    , udspDataSourceId+    , udspPayload+    , udspUserId+    ) where++import           Network.Google.Fitness.Types+import           Network.Google.Prelude++-- | A resource alias for @fitness.users.dataSources.patch@ method which the+-- 'UsersDataSourcesPatch' request conforms to.+type UsersDataSourcesPatchResource =+     "fitness" :>+       "v1" :>+         "users" :>+           Capture "userId" Text :>+             "dataSources" :>+               Capture "dataSourceId" Text :>+                 QueryParam "alt" AltJSON :>+                   ReqBody '[JSON] DataSource :>+                     Patch '[JSON] DataSource++-- | Updates a given data source. It is an error to modify the data source\'s+-- data stream ID, data type, type, stream name or device information apart+-- from the device version. Changing these fields would require a new+-- unique data stream ID and separate data source. Data sources are+-- identified by their data stream ID. This method supports patch+-- semantics.+--+-- /See:/ 'usersDataSourcesPatch' smart constructor.+data UsersDataSourcesPatch = UsersDataSourcesPatch+    { _udspDataSourceId :: !Text+    , _udspPayload      :: !DataSource+    , _udspUserId       :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UsersDataSourcesPatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'udspDataSourceId'+--+-- * 'udspPayload'+--+-- * 'udspUserId'+usersDataSourcesPatch+    :: Text -- ^ 'udspDataSourceId'+    -> DataSource -- ^ 'udspPayload'+    -> Text -- ^ 'udspUserId'+    -> UsersDataSourcesPatch+usersDataSourcesPatch pUdspDataSourceId_ pUdspPayload_ pUdspUserId_ =+    UsersDataSourcesPatch+    { _udspDataSourceId = pUdspDataSourceId_+    , _udspPayload = pUdspPayload_+    , _udspUserId = pUdspUserId_+    }++-- | The data stream ID of the data source to update.+udspDataSourceId :: Lens' UsersDataSourcesPatch Text+udspDataSourceId+  = lens _udspDataSourceId+      (\ s a -> s{_udspDataSourceId = a})++-- | Multipart request metadata.+udspPayload :: Lens' UsersDataSourcesPatch DataSource+udspPayload+  = lens _udspPayload (\ s a -> s{_udspPayload = a})++-- | Update the data source for the person identified. Use me to indicate the+-- authenticated user. Only me is supported at this time.+udspUserId :: Lens' UsersDataSourcesPatch Text+udspUserId+  = lens _udspUserId (\ s a -> s{_udspUserId = a})++instance GoogleRequest UsersDataSourcesPatch where+        type Rs UsersDataSourcesPatch = DataSource+        requestClient UsersDataSourcesPatch{..}+          = go _udspUserId _udspDataSourceId (Just AltJSON)+              _udspPayload+              fitnessService+          where go+                  = buildClient+                      (Proxy :: Proxy UsersDataSourcesPatchResource)+                      mempty
+ gen/Network/Google/Resource/Fitness/Users/DataSources/Update.hs view
@@ -0,0 +1,120 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Fitness.Users.DataSources.Update+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a given data source. It is an error to modify the data source\'s+-- data stream ID, data type, type, stream name or device information apart+-- from the device version. Changing these fields would require a new+-- unique data stream ID and separate data source. Data sources are+-- identified by their data stream ID.+--+-- /See:/ <https://developers.google.com/fit/rest/ Fitness Reference> for @fitness.users.dataSources.update@.+module Network.Google.Resource.Fitness.Users.DataSources.Update+    (+    -- * REST Resource+      UsersDataSourcesUpdateResource++    -- * Creating a Request+    , usersDataSourcesUpdate+    , UsersDataSourcesUpdate++    -- * Request Lenses+    , udsuDataSourceId+    , udsuPayload+    , udsuUserId+    ) where++import           Network.Google.Fitness.Types+import           Network.Google.Prelude++-- | A resource alias for @fitness.users.dataSources.update@ method which the+-- 'UsersDataSourcesUpdate' request conforms to.+type UsersDataSourcesUpdateResource =+     "fitness" :>+       "v1" :>+         "users" :>+           Capture "userId" Text :>+             "dataSources" :>+               Capture "dataSourceId" Text :>+                 QueryParam "alt" AltJSON :>+                   ReqBody '[JSON] DataSource :> Put '[JSON] DataSource++-- | Updates a given data source. It is an error to modify the data source\'s+-- data stream ID, data type, type, stream name or device information apart+-- from the device version. Changing these fields would require a new+-- unique data stream ID and separate data source. Data sources are+-- identified by their data stream ID.+--+-- /See:/ 'usersDataSourcesUpdate' smart constructor.+data UsersDataSourcesUpdate = UsersDataSourcesUpdate+    { _udsuDataSourceId :: !Text+    , _udsuPayload      :: !DataSource+    , _udsuUserId       :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UsersDataSourcesUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'udsuDataSourceId'+--+-- * 'udsuPayload'+--+-- * 'udsuUserId'+usersDataSourcesUpdate+    :: Text -- ^ 'udsuDataSourceId'+    -> DataSource -- ^ 'udsuPayload'+    -> Text -- ^ 'udsuUserId'+    -> UsersDataSourcesUpdate+usersDataSourcesUpdate pUdsuDataSourceId_ pUdsuPayload_ pUdsuUserId_ =+    UsersDataSourcesUpdate+    { _udsuDataSourceId = pUdsuDataSourceId_+    , _udsuPayload = pUdsuPayload_+    , _udsuUserId = pUdsuUserId_+    }++-- | The data stream ID of the data source to update.+udsuDataSourceId :: Lens' UsersDataSourcesUpdate Text+udsuDataSourceId+  = lens _udsuDataSourceId+      (\ s a -> s{_udsuDataSourceId = a})++-- | Multipart request metadata.+udsuPayload :: Lens' UsersDataSourcesUpdate DataSource+udsuPayload+  = lens _udsuPayload (\ s a -> s{_udsuPayload = a})++-- | Update the data source for the person identified. Use me to indicate the+-- authenticated user. Only me is supported at this time.+udsuUserId :: Lens' UsersDataSourcesUpdate Text+udsuUserId+  = lens _udsuUserId (\ s a -> s{_udsuUserId = a})++instance GoogleRequest UsersDataSourcesUpdate where+        type Rs UsersDataSourcesUpdate = DataSource+        requestClient UsersDataSourcesUpdate{..}+          = go _udsuUserId _udsuDataSourceId (Just AltJSON)+              _udsuPayload+              fitnessService+          where go+                  = buildClient+                      (Proxy :: Proxy UsersDataSourcesUpdateResource)+                      mempty
+ gen/Network/Google/Resource/Fitness/Users/Sessions/Delete.hs view
@@ -0,0 +1,112 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Fitness.Users.Sessions.Delete+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a session specified by the given session ID.+--+-- /See:/ <https://developers.google.com/fit/rest/ Fitness Reference> for @fitness.users.sessions.delete@.+module Network.Google.Resource.Fitness.Users.Sessions.Delete+    (+    -- * REST Resource+      UsersSessionsDeleteResource++    -- * Creating a Request+    , usersSessionsDelete+    , UsersSessionsDelete++    -- * Request Lenses+    , usdUserId+    , usdCurrentTimeMillis+    , usdSessionId+    ) where++import           Network.Google.Fitness.Types+import           Network.Google.Prelude++-- | A resource alias for @fitness.users.sessions.delete@ method which the+-- 'UsersSessionsDelete' request conforms to.+type UsersSessionsDeleteResource =+     "fitness" :>+       "v1" :>+         "users" :>+           Capture "userId" Text :>+             "sessions" :>+               Capture "sessionId" Text :>+                 QueryParam "currentTimeMillis" (Textual Int64) :>+                   QueryParam "alt" AltJSON :> Delete '[JSON] ()++-- | Deletes a session specified by the given session ID.+--+-- /See:/ 'usersSessionsDelete' smart constructor.+data UsersSessionsDelete = UsersSessionsDelete+    { _usdUserId            :: !Text+    , _usdCurrentTimeMillis :: !(Maybe (Textual Int64))+    , _usdSessionId         :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UsersSessionsDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'usdUserId'+--+-- * 'usdCurrentTimeMillis'+--+-- * 'usdSessionId'+usersSessionsDelete+    :: Text -- ^ 'usdUserId'+    -> Text -- ^ 'usdSessionId'+    -> UsersSessionsDelete+usersSessionsDelete pUsdUserId_ pUsdSessionId_ =+    UsersSessionsDelete+    { _usdUserId = pUsdUserId_+    , _usdCurrentTimeMillis = Nothing+    , _usdSessionId = pUsdSessionId_+    }++-- | Delete a session for the person identified. Use me to indicate the+-- authenticated user. Only me is supported at this time.+usdUserId :: Lens' UsersSessionsDelete Text+usdUserId+  = lens _usdUserId (\ s a -> s{_usdUserId = a})++-- | The client\'s current time in milliseconds since epoch.+usdCurrentTimeMillis :: Lens' UsersSessionsDelete (Maybe Int64)+usdCurrentTimeMillis+  = lens _usdCurrentTimeMillis+      (\ s a -> s{_usdCurrentTimeMillis = a})+      . mapping _Coerce++-- | The ID of the session to be deleted.+usdSessionId :: Lens' UsersSessionsDelete Text+usdSessionId+  = lens _usdSessionId (\ s a -> s{_usdSessionId = a})++instance GoogleRequest UsersSessionsDelete where+        type Rs UsersSessionsDelete = ()+        requestClient UsersSessionsDelete{..}+          = go _usdUserId _usdSessionId _usdCurrentTimeMillis+              (Just AltJSON)+              fitnessService+          where go+                  = buildClient+                      (Proxy :: Proxy UsersSessionsDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Fitness/Users/Sessions/List.hs view
@@ -0,0 +1,141 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Fitness.Users.Sessions.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists sessions previously created.+--+-- /See:/ <https://developers.google.com/fit/rest/ Fitness Reference> for @fitness.users.sessions.list@.+module Network.Google.Resource.Fitness.Users.Sessions.List+    (+    -- * REST Resource+      UsersSessionsListResource++    -- * Creating a Request+    , usersSessionsList+    , UsersSessionsList++    -- * Request Lenses+    , uslStartTime+    , uslUserId+    , uslEndTime+    , uslPageToken+    , uslIncludeDeleted+    ) where++import           Network.Google.Fitness.Types+import           Network.Google.Prelude++-- | A resource alias for @fitness.users.sessions.list@ method which the+-- 'UsersSessionsList' request conforms to.+type UsersSessionsListResource =+     "fitness" :>+       "v1" :>+         "users" :>+           Capture "userId" Text :>+             "sessions" :>+               QueryParam "startTime" Text :>+                 QueryParam "endTime" Text :>+                   QueryParam "pageToken" Text :>+                     QueryParam "includeDeleted" Bool :>+                       QueryParam "alt" AltJSON :>+                         Get '[JSON] ListSessionsResponse++-- | Lists sessions previously created.+--+-- /See:/ 'usersSessionsList' smart constructor.+data UsersSessionsList = UsersSessionsList+    { _uslStartTime      :: !(Maybe Text)+    , _uslUserId         :: !Text+    , _uslEndTime        :: !(Maybe Text)+    , _uslPageToken      :: !(Maybe Text)+    , _uslIncludeDeleted :: !(Maybe Bool)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UsersSessionsList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uslStartTime'+--+-- * 'uslUserId'+--+-- * 'uslEndTime'+--+-- * 'uslPageToken'+--+-- * 'uslIncludeDeleted'+usersSessionsList+    :: Text -- ^ 'uslUserId'+    -> UsersSessionsList+usersSessionsList pUslUserId_ =+    UsersSessionsList+    { _uslStartTime = Nothing+    , _uslUserId = pUslUserId_+    , _uslEndTime = Nothing+    , _uslPageToken = Nothing+    , _uslIncludeDeleted = Nothing+    }++-- | An RFC3339 timestamp. Only sessions ending between the start and end+-- times will be included in the response.+uslStartTime :: Lens' UsersSessionsList (Maybe Text)+uslStartTime+  = lens _uslStartTime (\ s a -> s{_uslStartTime = a})++-- | List sessions for the person identified. Use me to indicate the+-- authenticated user. Only me is supported at this time.+uslUserId :: Lens' UsersSessionsList Text+uslUserId+  = lens _uslUserId (\ s a -> s{_uslUserId = a})++-- | An RFC3339 timestamp. Only sessions ending between the start and end+-- times will be included in the response.+uslEndTime :: Lens' UsersSessionsList (Maybe Text)+uslEndTime+  = lens _uslEndTime (\ s a -> s{_uslEndTime = a})++-- | The continuation token, which is used to page through large result sets.+-- To get the next page of results, set this parameter to the value of+-- nextPageToken from the previous response.+uslPageToken :: Lens' UsersSessionsList (Maybe Text)+uslPageToken+  = lens _uslPageToken (\ s a -> s{_uslPageToken = a})++-- | If true, deleted sessions will be returned. When set to true, sessions+-- returned in this response will only have an ID and will not have any+-- other fields.+uslIncludeDeleted :: Lens' UsersSessionsList (Maybe Bool)+uslIncludeDeleted+  = lens _uslIncludeDeleted+      (\ s a -> s{_uslIncludeDeleted = a})++instance GoogleRequest UsersSessionsList where+        type Rs UsersSessionsList = ListSessionsResponse+        requestClient UsersSessionsList{..}+          = go _uslUserId _uslStartTime _uslEndTime+              _uslPageToken+              _uslIncludeDeleted+              (Just AltJSON)+              fitnessService+          where go+                  = buildClient+                      (Proxy :: Proxy UsersSessionsListResource)+                      mempty
+ gen/Network/Google/Resource/Fitness/Users/Sessions/Update.hs view
@@ -0,0 +1,125 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Fitness.Users.Sessions.Update+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates or insert a given session.+--+-- /See:/ <https://developers.google.com/fit/rest/ Fitness Reference> for @fitness.users.sessions.update@.+module Network.Google.Resource.Fitness.Users.Sessions.Update+    (+    -- * REST Resource+      UsersSessionsUpdateResource++    -- * Creating a Request+    , usersSessionsUpdate+    , UsersSessionsUpdate++    -- * Request Lenses+    , usuPayload+    , usuUserId+    , usuCurrentTimeMillis+    , usuSessionId+    ) where++import           Network.Google.Fitness.Types+import           Network.Google.Prelude++-- | A resource alias for @fitness.users.sessions.update@ method which the+-- 'UsersSessionsUpdate' request conforms to.+type UsersSessionsUpdateResource =+     "fitness" :>+       "v1" :>+         "users" :>+           Capture "userId" Text :>+             "sessions" :>+               Capture "sessionId" Text :>+                 QueryParam "currentTimeMillis" (Textual Int64) :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] Session :> Put '[JSON] Session++-- | Updates or insert a given session.+--+-- /See:/ 'usersSessionsUpdate' smart constructor.+data UsersSessionsUpdate = UsersSessionsUpdate+    { _usuPayload           :: !Session+    , _usuUserId            :: !Text+    , _usuCurrentTimeMillis :: !(Maybe (Textual Int64))+    , _usuSessionId         :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UsersSessionsUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'usuPayload'+--+-- * 'usuUserId'+--+-- * 'usuCurrentTimeMillis'+--+-- * 'usuSessionId'+usersSessionsUpdate+    :: Session -- ^ 'usuPayload'+    -> Text -- ^ 'usuUserId'+    -> Text -- ^ 'usuSessionId'+    -> UsersSessionsUpdate+usersSessionsUpdate pUsuPayload_ pUsuUserId_ pUsuSessionId_ =+    UsersSessionsUpdate+    { _usuPayload = pUsuPayload_+    , _usuUserId = pUsuUserId_+    , _usuCurrentTimeMillis = Nothing+    , _usuSessionId = pUsuSessionId_+    }++-- | Multipart request metadata.+usuPayload :: Lens' UsersSessionsUpdate Session+usuPayload+  = lens _usuPayload (\ s a -> s{_usuPayload = a})++-- | Create sessions for the person identified. Use me to indicate the+-- authenticated user. Only me is supported at this time.+usuUserId :: Lens' UsersSessionsUpdate Text+usuUserId+  = lens _usuUserId (\ s a -> s{_usuUserId = a})++-- | The client\'s current time in milliseconds since epoch.+usuCurrentTimeMillis :: Lens' UsersSessionsUpdate (Maybe Int64)+usuCurrentTimeMillis+  = lens _usuCurrentTimeMillis+      (\ s a -> s{_usuCurrentTimeMillis = a})+      . mapping _Coerce++-- | The ID of the session to be created.+usuSessionId :: Lens' UsersSessionsUpdate Text+usuSessionId+  = lens _usuSessionId (\ s a -> s{_usuSessionId = a})++instance GoogleRequest UsersSessionsUpdate where+        type Rs UsersSessionsUpdate = Session+        requestClient UsersSessionsUpdate{..}+          = go _usuUserId _usuSessionId _usuCurrentTimeMillis+              (Just AltJSON)+              _usuPayload+              fitnessService+          where go+                  = buildClient+                      (Proxy :: Proxy UsersSessionsUpdateResource)+                      mempty
+ gogol-fitness.cabal view
@@ -0,0 +1,58 @@+name:                  gogol-fitness+version:               0.0.1+synopsis:              Google Fitness SDK.+homepage:              https://github.com/brendanhay/gogol+bug-reports:           https://github.com/brendanhay/gogol/issues+license:               OtherLicense+license-file:          LICENSE+author:                Brendan Hay+maintainer:            Brendan Hay <brendan.g.hay@gmail.com>+copyright:             Copyright (c) 2015 Brendan Hay+category:              Network, Google, Cloud+build-type:            Simple+cabal-version:         >= 1.10+extra-source-files:    README.md++description:+    Google Fit API+    .+    /Warning:/ This is an experimental prototype/preview release which is still+    under exploratory development and not intended for public use, caveat emptor!+    .+    This library is compatible with version @v1@+    of the API.++source-repository head+    type:     git+    location: git://github.com/brendanhay/gogol.git++library+    default-language:  Haskell2010+    hs-source-dirs:    src gen++    ghc-options:       -Wall++    exposed-modules:+          Network.Google.Fitness+        , Network.Google.Fitness.Types+        , Network.Google.Resource.Fitness.Users.DataSet.Aggregate+        , Network.Google.Resource.Fitness.Users.DataSources.Create+        , Network.Google.Resource.Fitness.Users.DataSources.DataSets.Delete+        , Network.Google.Resource.Fitness.Users.DataSources.DataSets.Get+        , Network.Google.Resource.Fitness.Users.DataSources.DataSets.Patch+        , Network.Google.Resource.Fitness.Users.DataSources.Delete+        , Network.Google.Resource.Fitness.Users.DataSources.Get+        , Network.Google.Resource.Fitness.Users.DataSources.List+        , Network.Google.Resource.Fitness.Users.DataSources.Patch+        , Network.Google.Resource.Fitness.Users.DataSources.Update+        , Network.Google.Resource.Fitness.Users.Sessions.Delete+        , Network.Google.Resource.Fitness.Users.Sessions.List+        , Network.Google.Resource.Fitness.Users.Sessions.Update++    other-modules:+          Network.Google.Fitness.Types.Product+        , Network.Google.Fitness.Types.Sum++    build-depends:+          gogol-core == 0.0.1.*+        , base       >= 4.7 && < 5