packages feed

gogol-cloudmonitoring (empty) → 0.1.0

raw patch · 14 files changed

+3274/−0 lines, 14 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-cloudmonitoring++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version++`0.1.0`+++## Description++A client library for the Google Cloud Monitoring.+++## Contribute++For any problems, comments, or feedback please create an issue [here on GitHub](https://github.com/brendanhay/gogol/issues).++> _Note:_ this library is an auto-generated Haskell package. Please see `gogol-gen` for more information.+++## Licence++`gogol-cloudmonitoring` 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/CloudMonitoring.hs view
@@ -0,0 +1,229 @@+{-# LANGUAGE DataKinds         #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TypeOperators     #-}++{-# OPTIONS_GHC -fno-warn-unused-imports    #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}++-- |+-- Module      : Network.Google.CloudMonitoring+-- Copyright   : (c) 2015-2016 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)+--+-- Accesses Google Cloud Monitoring data.+--+-- /See:/ <https://cloud.google.com/monitoring/v2beta2/ Cloud Monitoring API Reference>+module Network.Google.CloudMonitoring+    (+    -- * Service Configuration+      cloudMonitoringService++    -- * OAuth Scopes+    , cloudPlatformScope+    , monitoringScope++    -- * API Declaration+    , CloudMonitoringAPI++    -- * Resources++    -- ** cloudmonitoring.metricDescriptors.create+    , module Network.Google.Resource.CloudMonitoring.MetricDescriptors.Create++    -- ** cloudmonitoring.metricDescriptors.delete+    , module Network.Google.Resource.CloudMonitoring.MetricDescriptors.Delete++    -- ** cloudmonitoring.metricDescriptors.list+    , module Network.Google.Resource.CloudMonitoring.MetricDescriptors.List++    -- ** cloudmonitoring.timeseries.list+    , module Network.Google.Resource.CloudMonitoring.Timeseries.List++    -- ** cloudmonitoring.timeseries.write+    , module Network.Google.Resource.CloudMonitoring.Timeseries.Write++    -- ** cloudmonitoring.timeseriesDescriptors.list+    , module Network.Google.Resource.CloudMonitoring.TimeseriesDescriptors.List++    -- * Types++    -- ** MetricDescriptorTypeDescriptor+    , MetricDescriptorTypeDescriptor+    , metricDescriptorTypeDescriptor+    , mdtdMetricType+    , mdtdValueType++    -- ** ListTimeseriesResponse+    , ListTimeseriesResponse+    , listTimeseriesResponse+    , ltrNextPageToken+    , ltrKind+    , ltrOldest+    , ltrYoungest+    , ltrTimeseries++    -- ** MetricDescriptor+    , MetricDescriptor+    , metricDescriptor+    , mdProject+    , mdTypeDescriptor+    , mdName+    , mdLabels+    , mdDescription++    -- ** WriteTimeseriesRequest+    , WriteTimeseriesRequest+    , writeTimeseriesRequest+    , wtrCommonLabels+    , wtrTimeseries++    -- ** WriteTimeseriesRequestCommonLabels+    , WriteTimeseriesRequestCommonLabels+    , writeTimeseriesRequestCommonLabels+    , wtrclAddtional++    -- ** MetricDescriptorLabelDescriptor+    , MetricDescriptorLabelDescriptor+    , metricDescriptorLabelDescriptor+    , mdldKey+    , mdldDescription++    -- ** PointDistributionUnderflowBucket+    , PointDistributionUnderflowBucket+    , pointDistributionUnderflowBucket+    , pdubUpperBound+    , pdubCount++    -- ** TimeseriesListAggregator+    , TimeseriesListAggregator (..)++    -- ** ListMetricDescriptorsResponse+    , ListMetricDescriptorsResponse+    , listMetricDescriptorsResponse+    , lmdrMetrics+    , lmdrNextPageToken+    , lmdrKind++    -- ** ListTimeseriesDescriptorsRequest+    , ListTimeseriesDescriptorsRequest+    , listTimeseriesDescriptorsRequest+    , ltdrKind++    -- ** TimeseriesDescriptorLabels+    , TimeseriesDescriptorLabels+    , timeseriesDescriptorLabels+    , tdlAddtional++    -- ** PointDistributionBucket+    , PointDistributionBucket+    , pointDistributionBucket+    , pdbUpperBound+    , pdbCount+    , pdbLowerBound++    -- ** WriteTimeseriesResponse+    , WriteTimeseriesResponse+    , writeTimeseriesResponse+    , wtrKind++    -- ** TimeseriesDescriptorLabel+    , TimeseriesDescriptorLabel+    , timeseriesDescriptorLabel+    , tdlValue+    , tdlKey++    -- ** PointDistribution+    , PointDistribution+    , pointDistribution+    , pdOverflowBucket+    , pdBuckets+    , pdUnderflowBucket++    -- ** Point+    , Point+    , point+    , pBoolValue+    , pStart+    , pDoubleValue+    , pStringValue+    , pDistributionValue+    , pEnd+    , pInt64Value++    -- ** PointDistributionOverflowBucket+    , PointDistributionOverflowBucket+    , pointDistributionOverflowBucket+    , pdobCount+    , pdobLowerBound++    -- ** ListTimeseriesDescriptorsResponse+    , ListTimeseriesDescriptorsResponse+    , listTimeseriesDescriptorsResponse+    , lNextPageToken+    , lKind+    , lOldest+    , lYoungest+    , lTimeseries++    -- ** ListMetricDescriptorsRequest+    , ListMetricDescriptorsRequest+    , listMetricDescriptorsRequest+    , lisKind++    -- ** TimeseriesPoint+    , TimeseriesPoint+    , timeseriesPoint+    , tpPoint+    , tpTimeseriesDesc++    -- ** TimeseriesDescriptorsListAggregator+    , TimeseriesDescriptorsListAggregator (..)++    -- ** DeleteMetricDescriptorResponse+    , DeleteMetricDescriptorResponse+    , deleteMetricDescriptorResponse+    , dmdrKind++    -- ** ListTimeseriesRequest+    , ListTimeseriesRequest+    , listTimeseriesRequest+    , ltrtKind++    -- ** TimeseriesDescriptor+    , TimeseriesDescriptor+    , timeseriesDescriptor+    , tdProject+    , tdMetric+    , tdLabels++    -- ** Timeseries+    , Timeseries+    , timeseries+    , tPoints+    , tTimeseriesDesc+    ) where++import           Network.Google.CloudMonitoring.Types+import           Network.Google.Prelude+import           Network.Google.Resource.CloudMonitoring.MetricDescriptors.Create+import           Network.Google.Resource.CloudMonitoring.MetricDescriptors.Delete+import           Network.Google.Resource.CloudMonitoring.MetricDescriptors.List+import           Network.Google.Resource.CloudMonitoring.Timeseries.List+import           Network.Google.Resource.CloudMonitoring.Timeseries.Write+import           Network.Google.Resource.CloudMonitoring.TimeseriesDescriptors.List++{- $resources+TODO+-}++-- | Represents the entirety of the methods and resources available for the Cloud Monitoring API service.+type CloudMonitoringAPI =+     MetricDescriptorsListResource :<|>+       MetricDescriptorsCreateResource+       :<|> MetricDescriptorsDeleteResource+       :<|> TimeseriesDescriptorsListResource+       :<|> TimeseriesListResource+       :<|> TimeseriesWriteResource
+ gen/Network/Google/CloudMonitoring/Types.hs view
@@ -0,0 +1,200 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Network.Google.CloudMonitoring.Types+-- Copyright   : (c) 2015-2016 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.CloudMonitoring.Types+    (+    -- * Service Configuration+      cloudMonitoringService++    -- * OAuth Scopes+    , cloudPlatformScope+    , monitoringScope++    -- * MetricDescriptorTypeDescriptor+    , MetricDescriptorTypeDescriptor+    , metricDescriptorTypeDescriptor+    , mdtdMetricType+    , mdtdValueType++    -- * ListTimeseriesResponse+    , ListTimeseriesResponse+    , listTimeseriesResponse+    , ltrNextPageToken+    , ltrKind+    , ltrOldest+    , ltrYoungest+    , ltrTimeseries++    -- * MetricDescriptor+    , MetricDescriptor+    , metricDescriptor+    , mdProject+    , mdTypeDescriptor+    , mdName+    , mdLabels+    , mdDescription++    -- * WriteTimeseriesRequest+    , WriteTimeseriesRequest+    , writeTimeseriesRequest+    , wtrCommonLabels+    , wtrTimeseries++    -- * WriteTimeseriesRequestCommonLabels+    , WriteTimeseriesRequestCommonLabels+    , writeTimeseriesRequestCommonLabels+    , wtrclAddtional++    -- * MetricDescriptorLabelDescriptor+    , MetricDescriptorLabelDescriptor+    , metricDescriptorLabelDescriptor+    , mdldKey+    , mdldDescription++    -- * PointDistributionUnderflowBucket+    , PointDistributionUnderflowBucket+    , pointDistributionUnderflowBucket+    , pdubUpperBound+    , pdubCount++    -- * TimeseriesListAggregator+    , TimeseriesListAggregator (..)++    -- * ListMetricDescriptorsResponse+    , ListMetricDescriptorsResponse+    , listMetricDescriptorsResponse+    , lmdrMetrics+    , lmdrNextPageToken+    , lmdrKind++    -- * ListTimeseriesDescriptorsRequest+    , ListTimeseriesDescriptorsRequest+    , listTimeseriesDescriptorsRequest+    , ltdrKind++    -- * TimeseriesDescriptorLabels+    , TimeseriesDescriptorLabels+    , timeseriesDescriptorLabels+    , tdlAddtional++    -- * PointDistributionBucket+    , PointDistributionBucket+    , pointDistributionBucket+    , pdbUpperBound+    , pdbCount+    , pdbLowerBound++    -- * WriteTimeseriesResponse+    , WriteTimeseriesResponse+    , writeTimeseriesResponse+    , wtrKind++    -- * TimeseriesDescriptorLabel+    , TimeseriesDescriptorLabel+    , timeseriesDescriptorLabel+    , tdlValue+    , tdlKey++    -- * PointDistribution+    , PointDistribution+    , pointDistribution+    , pdOverflowBucket+    , pdBuckets+    , pdUnderflowBucket++    -- * Point+    , Point+    , point+    , pBoolValue+    , pStart+    , pDoubleValue+    , pStringValue+    , pDistributionValue+    , pEnd+    , pInt64Value++    -- * PointDistributionOverflowBucket+    , PointDistributionOverflowBucket+    , pointDistributionOverflowBucket+    , pdobCount+    , pdobLowerBound++    -- * ListTimeseriesDescriptorsResponse+    , ListTimeseriesDescriptorsResponse+    , listTimeseriesDescriptorsResponse+    , lNextPageToken+    , lKind+    , lOldest+    , lYoungest+    , lTimeseries++    -- * ListMetricDescriptorsRequest+    , ListMetricDescriptorsRequest+    , listMetricDescriptorsRequest+    , lisKind++    -- * TimeseriesPoint+    , TimeseriesPoint+    , timeseriesPoint+    , tpPoint+    , tpTimeseriesDesc++    -- * TimeseriesDescriptorsListAggregator+    , TimeseriesDescriptorsListAggregator (..)++    -- * DeleteMetricDescriptorResponse+    , DeleteMetricDescriptorResponse+    , deleteMetricDescriptorResponse+    , dmdrKind++    -- * ListTimeseriesRequest+    , ListTimeseriesRequest+    , listTimeseriesRequest+    , ltrtKind++    -- * TimeseriesDescriptor+    , TimeseriesDescriptor+    , timeseriesDescriptor+    , tdProject+    , tdMetric+    , tdLabels++    -- * Timeseries+    , Timeseries+    , timeseries+    , tPoints+    , tTimeseriesDesc+    ) where++import           Network.Google.CloudMonitoring.Types.Product+import           Network.Google.CloudMonitoring.Types.Sum+import           Network.Google.Prelude++-- | Default request referring to version 'v2beta2' of the Cloud Monitoring API. This contains the host and root path used as a starting point for constructing service requests.+cloudMonitoringService :: ServiceConfig+cloudMonitoringService+  = defaultService+      (ServiceId "cloudmonitoring:v2beta2")+      "www.googleapis.com"++-- | View and manage your data across Google Cloud Platform services+cloudPlatformScope :: Proxy '["https://www.googleapis.com/auth/cloud-platform"]+cloudPlatformScope = Proxy;++-- | View and write monitoring data for all of your Google and third-party+-- Cloud and API projects+monitoringScope :: Proxy '["https://www.googleapis.com/auth/monitoring"]+monitoringScope = Proxy;
+ gen/Network/Google/CloudMonitoring/Types/Product.hs view
@@ -0,0 +1,1333 @@+{-# 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.CloudMonitoring.Types.Product+-- Copyright   : (c) 2015-2016 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.CloudMonitoring.Types.Product where++import           Network.Google.CloudMonitoring.Types.Sum+import           Network.Google.Prelude++-- | A type in a metric contains information about how the metric is+-- collected and what its data points look like.+--+-- /See:/ 'metricDescriptorTypeDescriptor' smart constructor.+data MetricDescriptorTypeDescriptor = MetricDescriptorTypeDescriptor'+    { _mdtdMetricType :: !(Maybe Text)+    , _mdtdValueType  :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MetricDescriptorTypeDescriptor' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mdtdMetricType'+--+-- * 'mdtdValueType'+metricDescriptorTypeDescriptor+    :: MetricDescriptorTypeDescriptor+metricDescriptorTypeDescriptor =+    MetricDescriptorTypeDescriptor'+    { _mdtdMetricType = Nothing+    , _mdtdValueType = Nothing+    }++-- | The method of collecting data for the metric. See Metric types.+mdtdMetricType :: Lens' MetricDescriptorTypeDescriptor (Maybe Text)+mdtdMetricType+  = lens _mdtdMetricType+      (\ s a -> s{_mdtdMetricType = a})++-- | The data type of of individual points in the metric\'s time series. See+-- Metric value types.+mdtdValueType :: Lens' MetricDescriptorTypeDescriptor (Maybe Text)+mdtdValueType+  = lens _mdtdValueType+      (\ s a -> s{_mdtdValueType = a})++instance FromJSON MetricDescriptorTypeDescriptor+         where+        parseJSON+          = withObject "MetricDescriptorTypeDescriptor"+              (\ o ->+                 MetricDescriptorTypeDescriptor' <$>+                   (o .:? "metricType") <*> (o .:? "valueType"))++instance ToJSON MetricDescriptorTypeDescriptor where+        toJSON MetricDescriptorTypeDescriptor'{..}+          = object+              (catMaybes+                 [("metricType" .=) <$> _mdtdMetricType,+                  ("valueType" .=) <$> _mdtdValueType])++-- | The response of cloudmonitoring.timeseries.list+--+-- /See:/ 'listTimeseriesResponse' smart constructor.+data ListTimeseriesResponse = ListTimeseriesResponse'+    { _ltrNextPageToken :: !(Maybe Text)+    , _ltrKind          :: !Text+    , _ltrOldest        :: !(Maybe DateTime')+    , _ltrYoungest      :: !(Maybe DateTime')+    , _ltrTimeseries    :: !(Maybe [Timeseries])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListTimeseriesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ltrNextPageToken'+--+-- * 'ltrKind'+--+-- * 'ltrOldest'+--+-- * 'ltrYoungest'+--+-- * 'ltrTimeseries'+listTimeseriesResponse+    :: ListTimeseriesResponse+listTimeseriesResponse =+    ListTimeseriesResponse'+    { _ltrNextPageToken = Nothing+    , _ltrKind = "cloudmonitoring#listTimeseriesResponse"+    , _ltrOldest = Nothing+    , _ltrYoungest = Nothing+    , _ltrTimeseries = Nothing+    }++-- | Pagination token. If present, indicates that additional results are+-- available for retrieval. To access the results past the pagination+-- limit, set the pageToken query parameter to this value. All of the+-- points of a time series will be returned before returning any point of+-- the subsequent time series.+ltrNextPageToken :: Lens' ListTimeseriesResponse (Maybe Text)+ltrNextPageToken+  = lens _ltrNextPageToken+      (\ s a -> s{_ltrNextPageToken = a})++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"cloudmonitoring#listTimeseriesResponse\".+ltrKind :: Lens' ListTimeseriesResponse Text+ltrKind = lens _ltrKind (\ s a -> s{_ltrKind = a})++-- | The oldest timestamp of the interval of this query as an RFC 3339+-- string.+ltrOldest :: Lens' ListTimeseriesResponse (Maybe UTCTime)+ltrOldest+  = lens _ltrOldest (\ s a -> s{_ltrOldest = a}) .+      mapping _DateTime++-- | The youngest timestamp of the interval of this query as an RFC 3339+-- string.+ltrYoungest :: Lens' ListTimeseriesResponse (Maybe UTCTime)+ltrYoungest+  = lens _ltrYoungest (\ s a -> s{_ltrYoungest = a}) .+      mapping _DateTime++-- | The returned time series.+ltrTimeseries :: Lens' ListTimeseriesResponse [Timeseries]+ltrTimeseries+  = lens _ltrTimeseries+      (\ s a -> s{_ltrTimeseries = a})+      . _Default+      . _Coerce++instance FromJSON ListTimeseriesResponse where+        parseJSON+          = withObject "ListTimeseriesResponse"+              (\ o ->+                 ListTimeseriesResponse' <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!=+                        "cloudmonitoring#listTimeseriesResponse")+                     <*> (o .:? "oldest")+                     <*> (o .:? "youngest")+                     <*> (o .:? "timeseries" .!= mempty))++instance ToJSON ListTimeseriesResponse where+        toJSON ListTimeseriesResponse'{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _ltrNextPageToken,+                  Just ("kind" .= _ltrKind),+                  ("oldest" .=) <$> _ltrOldest,+                  ("youngest" .=) <$> _ltrYoungest,+                  ("timeseries" .=) <$> _ltrTimeseries])++-- | A metricDescriptor defines the name, label keys, and data type of a+-- particular metric.+--+-- /See:/ 'metricDescriptor' smart constructor.+data MetricDescriptor = MetricDescriptor'+    { _mdProject        :: !(Maybe Text)+    , _mdTypeDescriptor :: !(Maybe MetricDescriptorTypeDescriptor)+    , _mdName           :: !(Maybe Text)+    , _mdLabels         :: !(Maybe [MetricDescriptorLabelDescriptor])+    , _mdDescription    :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MetricDescriptor' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mdProject'+--+-- * 'mdTypeDescriptor'+--+-- * 'mdName'+--+-- * 'mdLabels'+--+-- * 'mdDescription'+metricDescriptor+    :: MetricDescriptor+metricDescriptor =+    MetricDescriptor'+    { _mdProject = Nothing+    , _mdTypeDescriptor = Nothing+    , _mdName = Nothing+    , _mdLabels = Nothing+    , _mdDescription = Nothing+    }++-- | The project ID to which the metric belongs.+mdProject :: Lens' MetricDescriptor (Maybe Text)+mdProject+  = lens _mdProject (\ s a -> s{_mdProject = a})++-- | Type description for this metric.+mdTypeDescriptor :: Lens' MetricDescriptor (Maybe MetricDescriptorTypeDescriptor)+mdTypeDescriptor+  = lens _mdTypeDescriptor+      (\ s a -> s{_mdTypeDescriptor = a})++-- | The name of this metric.+mdName :: Lens' MetricDescriptor (Maybe Text)+mdName = lens _mdName (\ s a -> s{_mdName = a})++-- | Labels defined for this metric.+mdLabels :: Lens' MetricDescriptor [MetricDescriptorLabelDescriptor]+mdLabels+  = lens _mdLabels (\ s a -> s{_mdLabels = a}) .+      _Default+      . _Coerce++-- | Description of this metric.+mdDescription :: Lens' MetricDescriptor (Maybe Text)+mdDescription+  = lens _mdDescription+      (\ s a -> s{_mdDescription = a})++instance FromJSON MetricDescriptor where+        parseJSON+          = withObject "MetricDescriptor"+              (\ o ->+                 MetricDescriptor' <$>+                   (o .:? "project") <*> (o .:? "typeDescriptor") <*>+                     (o .:? "name")+                     <*> (o .:? "labels" .!= mempty)+                     <*> (o .:? "description"))++instance ToJSON MetricDescriptor where+        toJSON MetricDescriptor'{..}+          = object+              (catMaybes+                 [("project" .=) <$> _mdProject,+                  ("typeDescriptor" .=) <$> _mdTypeDescriptor,+                  ("name" .=) <$> _mdName, ("labels" .=) <$> _mdLabels,+                  ("description" .=) <$> _mdDescription])++-- | The request of cloudmonitoring.timeseries.write+--+-- /See:/ 'writeTimeseriesRequest' smart constructor.+data WriteTimeseriesRequest = WriteTimeseriesRequest'+    { _wtrCommonLabels :: !(Maybe WriteTimeseriesRequestCommonLabels)+    , _wtrTimeseries   :: !(Maybe [TimeseriesPoint])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'WriteTimeseriesRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'wtrCommonLabels'+--+-- * 'wtrTimeseries'+writeTimeseriesRequest+    :: WriteTimeseriesRequest+writeTimeseriesRequest =+    WriteTimeseriesRequest'+    { _wtrCommonLabels = Nothing+    , _wtrTimeseries = Nothing+    }++-- | The label\'s name.+wtrCommonLabels :: Lens' WriteTimeseriesRequest (Maybe WriteTimeseriesRequestCommonLabels)+wtrCommonLabels+  = lens _wtrCommonLabels+      (\ s a -> s{_wtrCommonLabels = a})++-- | Provide time series specific labels and the data points for each time+-- series. The labels in timeseries and the common_labels should form a+-- complete list of labels that required by the metric.+wtrTimeseries :: Lens' WriteTimeseriesRequest [TimeseriesPoint]+wtrTimeseries+  = lens _wtrTimeseries+      (\ s a -> s{_wtrTimeseries = a})+      . _Default+      . _Coerce++instance FromJSON WriteTimeseriesRequest where+        parseJSON+          = withObject "WriteTimeseriesRequest"+              (\ o ->+                 WriteTimeseriesRequest' <$>+                   (o .:? "commonLabels") <*>+                     (o .:? "timeseries" .!= mempty))++instance ToJSON WriteTimeseriesRequest where+        toJSON WriteTimeseriesRequest'{..}+          = object+              (catMaybes+                 [("commonLabels" .=) <$> _wtrCommonLabels,+                  ("timeseries" .=) <$> _wtrTimeseries])++-- | The label\'s name.+--+-- /See:/ 'writeTimeseriesRequestCommonLabels' smart constructor.+newtype WriteTimeseriesRequestCommonLabels = WriteTimeseriesRequestCommonLabels'+    { _wtrclAddtional :: HashMap Text Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'WriteTimeseriesRequestCommonLabels' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'wtrclAddtional'+writeTimeseriesRequestCommonLabels+    :: HashMap Text Text -- ^ 'wtrclAddtional'+    -> WriteTimeseriesRequestCommonLabels+writeTimeseriesRequestCommonLabels pWtrclAddtional_ =+    WriteTimeseriesRequestCommonLabels'+    { _wtrclAddtional = _Coerce # pWtrclAddtional_+    }++-- | The label\'s name.+wtrclAddtional :: Lens' WriteTimeseriesRequestCommonLabels (HashMap Text Text)+wtrclAddtional+  = lens _wtrclAddtional+      (\ s a -> s{_wtrclAddtional = a})+      . _Coerce++instance FromJSON WriteTimeseriesRequestCommonLabels+         where+        parseJSON+          = withObject "WriteTimeseriesRequestCommonLabels"+              (\ o ->+                 WriteTimeseriesRequestCommonLabels' <$>+                   (parseJSONObject o))++instance ToJSON WriteTimeseriesRequestCommonLabels+         where+        toJSON = toJSON . _wtrclAddtional++-- | A label in a metric is a description of this metric, including the key+-- of this description (what the description is), and the value for this+-- description.+--+-- /See:/ 'metricDescriptorLabelDescriptor' smart constructor.+data MetricDescriptorLabelDescriptor = MetricDescriptorLabelDescriptor'+    { _mdldKey         :: !(Maybe Text)+    , _mdldDescription :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MetricDescriptorLabelDescriptor' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mdldKey'+--+-- * 'mdldDescription'+metricDescriptorLabelDescriptor+    :: MetricDescriptorLabelDescriptor+metricDescriptorLabelDescriptor =+    MetricDescriptorLabelDescriptor'+    { _mdldKey = Nothing+    , _mdldDescription = Nothing+    }++-- | Label key.+mdldKey :: Lens' MetricDescriptorLabelDescriptor (Maybe Text)+mdldKey = lens _mdldKey (\ s a -> s{_mdldKey = a})++-- | Label description.+mdldDescription :: Lens' MetricDescriptorLabelDescriptor (Maybe Text)+mdldDescription+  = lens _mdldDescription+      (\ s a -> s{_mdldDescription = a})++instance FromJSON MetricDescriptorLabelDescriptor+         where+        parseJSON+          = withObject "MetricDescriptorLabelDescriptor"+              (\ o ->+                 MetricDescriptorLabelDescriptor' <$>+                   (o .:? "key") <*> (o .:? "description"))++instance ToJSON MetricDescriptorLabelDescriptor where+        toJSON MetricDescriptorLabelDescriptor'{..}+          = object+              (catMaybes+                 [("key" .=) <$> _mdldKey,+                  ("description" .=) <$> _mdldDescription])++-- | The underflow bucket is a special bucket that does not have the+-- lowerBound field; it includes all of the events that are less than its+-- upper bound.+--+-- /See:/ 'pointDistributionUnderflowBucket' smart constructor.+data PointDistributionUnderflowBucket = PointDistributionUnderflowBucket'+    { _pdubUpperBound :: !(Maybe (Textual Double))+    , _pdubCount      :: !(Maybe (Textual Int64))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PointDistributionUnderflowBucket' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pdubUpperBound'+--+-- * 'pdubCount'+pointDistributionUnderflowBucket+    :: PointDistributionUnderflowBucket+pointDistributionUnderflowBucket =+    PointDistributionUnderflowBucket'+    { _pdubUpperBound = Nothing+    , _pdubCount = Nothing+    }++-- | The upper bound of the value interval of this bucket (exclusive).+pdubUpperBound :: Lens' PointDistributionUnderflowBucket (Maybe Double)+pdubUpperBound+  = lens _pdubUpperBound+      (\ s a -> s{_pdubUpperBound = a})+      . mapping _Coerce++-- | The number of events whose values are in the interval defined by this+-- bucket.+pdubCount :: Lens' PointDistributionUnderflowBucket (Maybe Int64)+pdubCount+  = lens _pdubCount (\ s a -> s{_pdubCount = a}) .+      mapping _Coerce++instance FromJSON PointDistributionUnderflowBucket+         where+        parseJSON+          = withObject "PointDistributionUnderflowBucket"+              (\ o ->+                 PointDistributionUnderflowBucket' <$>+                   (o .:? "upperBound") <*> (o .:? "count"))++instance ToJSON PointDistributionUnderflowBucket+         where+        toJSON PointDistributionUnderflowBucket'{..}+          = object+              (catMaybes+                 [("upperBound" .=) <$> _pdubUpperBound,+                  ("count" .=) <$> _pdubCount])++-- | The response of cloudmonitoring.metricDescriptors.list.+--+-- /See:/ 'listMetricDescriptorsResponse' smart constructor.+data ListMetricDescriptorsResponse = ListMetricDescriptorsResponse'+    { _lmdrMetrics       :: !(Maybe [MetricDescriptor])+    , _lmdrNextPageToken :: !(Maybe Text)+    , _lmdrKind          :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListMetricDescriptorsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lmdrMetrics'+--+-- * 'lmdrNextPageToken'+--+-- * 'lmdrKind'+listMetricDescriptorsResponse+    :: ListMetricDescriptorsResponse+listMetricDescriptorsResponse =+    ListMetricDescriptorsResponse'+    { _lmdrMetrics = Nothing+    , _lmdrNextPageToken = Nothing+    , _lmdrKind = "cloudmonitoring#listMetricDescriptorsResponse"+    }++-- | The returned metric descriptors.+lmdrMetrics :: Lens' ListMetricDescriptorsResponse [MetricDescriptor]+lmdrMetrics+  = lens _lmdrMetrics (\ s a -> s{_lmdrMetrics = a}) .+      _Default+      . _Coerce++-- | Pagination token. If present, indicates that additional results are+-- available for retrieval. To access the results past the pagination+-- limit, pass this value to the pageToken query parameter.+lmdrNextPageToken :: Lens' ListMetricDescriptorsResponse (Maybe Text)+lmdrNextPageToken+  = lens _lmdrNextPageToken+      (\ s a -> s{_lmdrNextPageToken = a})++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"cloudmonitoring#listMetricDescriptorsResponse\".+lmdrKind :: Lens' ListMetricDescriptorsResponse Text+lmdrKind = lens _lmdrKind (\ s a -> s{_lmdrKind = a})++instance FromJSON ListMetricDescriptorsResponse where+        parseJSON+          = withObject "ListMetricDescriptorsResponse"+              (\ o ->+                 ListMetricDescriptorsResponse' <$>+                   (o .:? "metrics" .!= mempty) <*>+                     (o .:? "nextPageToken")+                     <*>+                     (o .:? "kind" .!=+                        "cloudmonitoring#listMetricDescriptorsResponse"))++instance ToJSON ListMetricDescriptorsResponse where+        toJSON ListMetricDescriptorsResponse'{..}+          = object+              (catMaybes+                 [("metrics" .=) <$> _lmdrMetrics,+                  ("nextPageToken" .=) <$> _lmdrNextPageToken,+                  Just ("kind" .= _lmdrKind)])++-- | The request of cloudmonitoring.timeseriesDescriptors.list+--+-- /See:/ 'listTimeseriesDescriptorsRequest' smart constructor.+newtype ListTimeseriesDescriptorsRequest = ListTimeseriesDescriptorsRequest'+    { _ltdrKind :: Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListTimeseriesDescriptorsRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ltdrKind'+listTimeseriesDescriptorsRequest+    :: ListTimeseriesDescriptorsRequest+listTimeseriesDescriptorsRequest =+    ListTimeseriesDescriptorsRequest'+    { _ltdrKind = "cloudmonitoring#listTimeseriesDescriptorsRequest"+    }++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"cloudmonitoring#listTimeseriesDescriptorsRequest\".+ltdrKind :: Lens' ListTimeseriesDescriptorsRequest Text+ltdrKind = lens _ltdrKind (\ s a -> s{_ltdrKind = a})++instance FromJSON ListTimeseriesDescriptorsRequest+         where+        parseJSON+          = withObject "ListTimeseriesDescriptorsRequest"+              (\ o ->+                 ListTimeseriesDescriptorsRequest' <$>+                   (o .:? "kind" .!=+                      "cloudmonitoring#listTimeseriesDescriptorsRequest"))++instance ToJSON ListTimeseriesDescriptorsRequest+         where+        toJSON ListTimeseriesDescriptorsRequest'{..}+          = object (catMaybes [Just ("kind" .= _ltdrKind)])++-- | The label\'s name.+--+-- /See:/ 'timeseriesDescriptorLabels' smart constructor.+newtype TimeseriesDescriptorLabels = TimeseriesDescriptorLabels'+    { _tdlAddtional :: HashMap Text Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TimeseriesDescriptorLabels' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tdlAddtional'+timeseriesDescriptorLabels+    :: HashMap Text Text -- ^ 'tdlAddtional'+    -> TimeseriesDescriptorLabels+timeseriesDescriptorLabels pTdlAddtional_ =+    TimeseriesDescriptorLabels'+    { _tdlAddtional = _Coerce # pTdlAddtional_+    }++-- | The label\'s name.+tdlAddtional :: Lens' TimeseriesDescriptorLabels (HashMap Text Text)+tdlAddtional+  = lens _tdlAddtional (\ s a -> s{_tdlAddtional = a})+      . _Coerce++instance FromJSON TimeseriesDescriptorLabels where+        parseJSON+          = withObject "TimeseriesDescriptorLabels"+              (\ o ->+                 TimeseriesDescriptorLabels' <$> (parseJSONObject o))++instance ToJSON TimeseriesDescriptorLabels where+        toJSON = toJSON . _tdlAddtional++-- | The histogram\'s bucket. Buckets that form the histogram of a+-- distribution value. If the upper bound of a bucket, say U1, does not+-- equal the lower bound of the next bucket, say L2, this means that there+-- is no event in [U1, L2).+--+-- /See:/ 'pointDistributionBucket' smart constructor.+data PointDistributionBucket = PointDistributionBucket'+    { _pdbUpperBound :: !(Maybe (Textual Double))+    , _pdbCount      :: !(Maybe (Textual Int64))+    , _pdbLowerBound :: !(Maybe (Textual Double))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PointDistributionBucket' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pdbUpperBound'+--+-- * 'pdbCount'+--+-- * 'pdbLowerBound'+pointDistributionBucket+    :: PointDistributionBucket+pointDistributionBucket =+    PointDistributionBucket'+    { _pdbUpperBound = Nothing+    , _pdbCount = Nothing+    , _pdbLowerBound = Nothing+    }++-- | The upper bound of the value interval of this bucket (exclusive).+pdbUpperBound :: Lens' PointDistributionBucket (Maybe Double)+pdbUpperBound+  = lens _pdbUpperBound+      (\ s a -> s{_pdbUpperBound = a})+      . mapping _Coerce++-- | The number of events whose values are in the interval defined by this+-- bucket.+pdbCount :: Lens' PointDistributionBucket (Maybe Int64)+pdbCount+  = lens _pdbCount (\ s a -> s{_pdbCount = a}) .+      mapping _Coerce++-- | The lower bound of the value interval of this bucket (inclusive).+pdbLowerBound :: Lens' PointDistributionBucket (Maybe Double)+pdbLowerBound+  = lens _pdbLowerBound+      (\ s a -> s{_pdbLowerBound = a})+      . mapping _Coerce++instance FromJSON PointDistributionBucket where+        parseJSON+          = withObject "PointDistributionBucket"+              (\ o ->+                 PointDistributionBucket' <$>+                   (o .:? "upperBound") <*> (o .:? "count") <*>+                     (o .:? "lowerBound"))++instance ToJSON PointDistributionBucket where+        toJSON PointDistributionBucket'{..}+          = object+              (catMaybes+                 [("upperBound" .=) <$> _pdbUpperBound,+                  ("count" .=) <$> _pdbCount,+                  ("lowerBound" .=) <$> _pdbLowerBound])++-- | The response of cloudmonitoring.timeseries.write+--+-- /See:/ 'writeTimeseriesResponse' smart constructor.+newtype WriteTimeseriesResponse = WriteTimeseriesResponse'+    { _wtrKind :: Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'WriteTimeseriesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'wtrKind'+writeTimeseriesResponse+    :: WriteTimeseriesResponse+writeTimeseriesResponse =+    WriteTimeseriesResponse'+    { _wtrKind = "cloudmonitoring#writeTimeseriesResponse"+    }++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"cloudmonitoring#writeTimeseriesResponse\".+wtrKind :: Lens' WriteTimeseriesResponse Text+wtrKind = lens _wtrKind (\ s a -> s{_wtrKind = a})++instance FromJSON WriteTimeseriesResponse where+        parseJSON+          = withObject "WriteTimeseriesResponse"+              (\ o ->+                 WriteTimeseriesResponse' <$>+                   (o .:? "kind" .!=+                      "cloudmonitoring#writeTimeseriesResponse"))++instance ToJSON WriteTimeseriesResponse where+        toJSON WriteTimeseriesResponse'{..}+          = object (catMaybes [Just ("kind" .= _wtrKind)])++--+-- /See:/ 'timeseriesDescriptorLabel' smart constructor.+data TimeseriesDescriptorLabel = TimeseriesDescriptorLabel'+    { _tdlValue :: !(Maybe Text)+    , _tdlKey   :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TimeseriesDescriptorLabel' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tdlValue'+--+-- * 'tdlKey'+timeseriesDescriptorLabel+    :: TimeseriesDescriptorLabel+timeseriesDescriptorLabel =+    TimeseriesDescriptorLabel'+    { _tdlValue = Nothing+    , _tdlKey = Nothing+    }++-- | The label\'s value.+tdlValue :: Lens' TimeseriesDescriptorLabel (Maybe Text)+tdlValue = lens _tdlValue (\ s a -> s{_tdlValue = a})++-- | The label\'s name.+tdlKey :: Lens' TimeseriesDescriptorLabel (Maybe Text)+tdlKey = lens _tdlKey (\ s a -> s{_tdlKey = a})++instance FromJSON TimeseriesDescriptorLabel where+        parseJSON+          = withObject "TimeseriesDescriptorLabel"+              (\ o ->+                 TimeseriesDescriptorLabel' <$>+                   (o .:? "value") <*> (o .:? "key"))++instance ToJSON TimeseriesDescriptorLabel where+        toJSON TimeseriesDescriptorLabel'{..}+          = object+              (catMaybes+                 [("value" .=) <$> _tdlValue, ("key" .=) <$> _tdlKey])++-- | Distribution data point value type. When writing distribution points,+-- try to be consistent with the boundaries of your buckets. If you must+-- modify the bucket boundaries, then do so by merging, partitioning, or+-- appending rather than skewing them.+--+-- /See:/ 'pointDistribution' smart constructor.+data PointDistribution = PointDistribution'+    { _pdOverflowBucket  :: !(Maybe PointDistributionOverflowBucket)+    , _pdBuckets         :: !(Maybe [PointDistributionBucket])+    , _pdUnderflowBucket :: !(Maybe PointDistributionUnderflowBucket)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PointDistribution' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pdOverflowBucket'+--+-- * 'pdBuckets'+--+-- * 'pdUnderflowBucket'+pointDistribution+    :: PointDistribution+pointDistribution =+    PointDistribution'+    { _pdOverflowBucket = Nothing+    , _pdBuckets = Nothing+    , _pdUnderflowBucket = Nothing+    }++-- | The overflow bucket.+pdOverflowBucket :: Lens' PointDistribution (Maybe PointDistributionOverflowBucket)+pdOverflowBucket+  = lens _pdOverflowBucket+      (\ s a -> s{_pdOverflowBucket = a})++-- | The finite buckets.+pdBuckets :: Lens' PointDistribution [PointDistributionBucket]+pdBuckets+  = lens _pdBuckets (\ s a -> s{_pdBuckets = a}) .+      _Default+      . _Coerce++-- | The underflow bucket.+pdUnderflowBucket :: Lens' PointDistribution (Maybe PointDistributionUnderflowBucket)+pdUnderflowBucket+  = lens _pdUnderflowBucket+      (\ s a -> s{_pdUnderflowBucket = a})++instance FromJSON PointDistribution where+        parseJSON+          = withObject "PointDistribution"+              (\ o ->+                 PointDistribution' <$>+                   (o .:? "overflowBucket") <*>+                     (o .:? "buckets" .!= mempty)+                     <*> (o .:? "underflowBucket"))++instance ToJSON PointDistribution where+        toJSON PointDistribution'{..}+          = object+              (catMaybes+                 [("overflowBucket" .=) <$> _pdOverflowBucket,+                  ("buckets" .=) <$> _pdBuckets,+                  ("underflowBucket" .=) <$> _pdUnderflowBucket])++-- | Point is a single point in a time series. It consists of a start time,+-- an end time, and a value.+--+-- /See:/ 'point' smart constructor.+data Point = Point'+    { _pBoolValue         :: !(Maybe Bool)+    , _pStart             :: !(Maybe DateTime')+    , _pDoubleValue       :: !(Maybe (Textual Double))+    , _pStringValue       :: !(Maybe Text)+    , _pDistributionValue :: !(Maybe PointDistribution)+    , _pEnd               :: !(Maybe DateTime')+    , _pInt64Value        :: !(Maybe (Textual Int64))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Point' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pBoolValue'+--+-- * 'pStart'+--+-- * 'pDoubleValue'+--+-- * 'pStringValue'+--+-- * 'pDistributionValue'+--+-- * 'pEnd'+--+-- * 'pInt64Value'+point+    :: Point+point =+    Point'+    { _pBoolValue = Nothing+    , _pStart = Nothing+    , _pDoubleValue = Nothing+    , _pStringValue = Nothing+    , _pDistributionValue = Nothing+    , _pEnd = Nothing+    , _pInt64Value = Nothing+    }++-- | The value of this data point. Either \"true\" or \"false\".+pBoolValue :: Lens' Point (Maybe Bool)+pBoolValue+  = lens _pBoolValue (\ s a -> s{_pBoolValue = a})++-- | The interval [start, end] is the time period to which the point\'s value+-- applies. For gauge metrics, whose values are instantaneous measurements,+-- this interval should be empty (start should equal end). For cumulative+-- metrics (of which deltas and rates are special cases), the interval+-- should be non-empty. Both start and end are RFC 3339 strings.+pStart :: Lens' Point (Maybe UTCTime)+pStart+  = lens _pStart (\ s a -> s{_pStart = a}) .+      mapping _DateTime++-- | The value of this data point as a double-precision floating-point+-- number.+pDoubleValue :: Lens' Point (Maybe Double)+pDoubleValue+  = lens _pDoubleValue (\ s a -> s{_pDoubleValue = a})+      . mapping _Coerce++-- | The value of this data point in string format.+pStringValue :: Lens' Point (Maybe Text)+pStringValue+  = lens _pStringValue (\ s a -> s{_pStringValue = a})++-- | The value of this data point as a distribution. A distribution value can+-- contain a list of buckets and\/or an underflowBucket and an+-- overflowBucket. The values of these points can be used to create a+-- histogram.+pDistributionValue :: Lens' Point (Maybe PointDistribution)+pDistributionValue+  = lens _pDistributionValue+      (\ s a -> s{_pDistributionValue = a})++-- | The interval [start, end] is the time period to which the point\'s value+-- applies. For gauge metrics, whose values are instantaneous measurements,+-- this interval should be empty (start should equal end). For cumulative+-- metrics (of which deltas and rates are special cases), the interval+-- should be non-empty. Both start and end are RFC 3339 strings.+pEnd :: Lens' Point (Maybe UTCTime)+pEnd+  = lens _pEnd (\ s a -> s{_pEnd = a}) .+      mapping _DateTime++-- | The value of this data point as a 64-bit integer.+pInt64Value :: Lens' Point (Maybe Int64)+pInt64Value+  = lens _pInt64Value (\ s a -> s{_pInt64Value = a}) .+      mapping _Coerce++instance FromJSON Point where+        parseJSON+          = withObject "Point"+              (\ o ->+                 Point' <$>+                   (o .:? "boolValue") <*> (o .:? "start") <*>+                     (o .:? "doubleValue")+                     <*> (o .:? "stringValue")+                     <*> (o .:? "distributionValue")+                     <*> (o .:? "end")+                     <*> (o .:? "int64Value"))++instance ToJSON Point where+        toJSON Point'{..}+          = object+              (catMaybes+                 [("boolValue" .=) <$> _pBoolValue,+                  ("start" .=) <$> _pStart,+                  ("doubleValue" .=) <$> _pDoubleValue,+                  ("stringValue" .=) <$> _pStringValue,+                  ("distributionValue" .=) <$> _pDistributionValue,+                  ("end" .=) <$> _pEnd,+                  ("int64Value" .=) <$> _pInt64Value])++-- | The overflow bucket is a special bucket that does not have the+-- upperBound field; it includes all of the events that are no less than+-- its lower bound.+--+-- /See:/ 'pointDistributionOverflowBucket' smart constructor.+data PointDistributionOverflowBucket = PointDistributionOverflowBucket'+    { _pdobCount      :: !(Maybe (Textual Int64))+    , _pdobLowerBound :: !(Maybe (Textual Double))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PointDistributionOverflowBucket' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pdobCount'+--+-- * 'pdobLowerBound'+pointDistributionOverflowBucket+    :: PointDistributionOverflowBucket+pointDistributionOverflowBucket =+    PointDistributionOverflowBucket'+    { _pdobCount = Nothing+    , _pdobLowerBound = Nothing+    }++-- | The number of events whose values are in the interval defined by this+-- bucket.+pdobCount :: Lens' PointDistributionOverflowBucket (Maybe Int64)+pdobCount+  = lens _pdobCount (\ s a -> s{_pdobCount = a}) .+      mapping _Coerce++-- | The lower bound of the value interval of this bucket (inclusive).+pdobLowerBound :: Lens' PointDistributionOverflowBucket (Maybe Double)+pdobLowerBound+  = lens _pdobLowerBound+      (\ s a -> s{_pdobLowerBound = a})+      . mapping _Coerce++instance FromJSON PointDistributionOverflowBucket+         where+        parseJSON+          = withObject "PointDistributionOverflowBucket"+              (\ o ->+                 PointDistributionOverflowBucket' <$>+                   (o .:? "count") <*> (o .:? "lowerBound"))++instance ToJSON PointDistributionOverflowBucket where+        toJSON PointDistributionOverflowBucket'{..}+          = object+              (catMaybes+                 [("count" .=) <$> _pdobCount,+                  ("lowerBound" .=) <$> _pdobLowerBound])++-- | The response of cloudmonitoring.timeseriesDescriptors.list+--+-- /See:/ 'listTimeseriesDescriptorsResponse' smart constructor.+data ListTimeseriesDescriptorsResponse = ListTimeseriesDescriptorsResponse'+    { _lNextPageToken :: !(Maybe Text)+    , _lKind          :: !Text+    , _lOldest        :: !(Maybe DateTime')+    , _lYoungest      :: !(Maybe DateTime')+    , _lTimeseries    :: !(Maybe [TimeseriesDescriptor])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListTimeseriesDescriptorsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lNextPageToken'+--+-- * 'lKind'+--+-- * 'lOldest'+--+-- * 'lYoungest'+--+-- * 'lTimeseries'+listTimeseriesDescriptorsResponse+    :: ListTimeseriesDescriptorsResponse+listTimeseriesDescriptorsResponse =+    ListTimeseriesDescriptorsResponse'+    { _lNextPageToken = Nothing+    , _lKind = "cloudmonitoring#listTimeseriesDescriptorsResponse"+    , _lOldest = Nothing+    , _lYoungest = Nothing+    , _lTimeseries = Nothing+    }++-- | Pagination token. If present, indicates that additional results are+-- available for retrieval. To access the results past the pagination+-- limit, set this value to the pageToken query parameter.+lNextPageToken :: Lens' ListTimeseriesDescriptorsResponse (Maybe Text)+lNextPageToken+  = lens _lNextPageToken+      (\ s a -> s{_lNextPageToken = a})++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"cloudmonitoring#listTimeseriesDescriptorsResponse\".+lKind :: Lens' ListTimeseriesDescriptorsResponse Text+lKind = lens _lKind (\ s a -> s{_lKind = a})++-- | The oldest timestamp of the interval of this query, as an RFC 3339+-- string.+lOldest :: Lens' ListTimeseriesDescriptorsResponse (Maybe UTCTime)+lOldest+  = lens _lOldest (\ s a -> s{_lOldest = a}) .+      mapping _DateTime++-- | The youngest timestamp of the interval of this query, as an RFC 3339+-- string.+lYoungest :: Lens' ListTimeseriesDescriptorsResponse (Maybe UTCTime)+lYoungest+  = lens _lYoungest (\ s a -> s{_lYoungest = a}) .+      mapping _DateTime++-- | The returned time series descriptors.+lTimeseries :: Lens' ListTimeseriesDescriptorsResponse [TimeseriesDescriptor]+lTimeseries+  = lens _lTimeseries (\ s a -> s{_lTimeseries = a}) .+      _Default+      . _Coerce++instance FromJSON ListTimeseriesDescriptorsResponse+         where+        parseJSON+          = withObject "ListTimeseriesDescriptorsResponse"+              (\ o ->+                 ListTimeseriesDescriptorsResponse' <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!=+                        "cloudmonitoring#listTimeseriesDescriptorsResponse")+                     <*> (o .:? "oldest")+                     <*> (o .:? "youngest")+                     <*> (o .:? "timeseries" .!= mempty))++instance ToJSON ListTimeseriesDescriptorsResponse+         where+        toJSON ListTimeseriesDescriptorsResponse'{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _lNextPageToken,+                  Just ("kind" .= _lKind), ("oldest" .=) <$> _lOldest,+                  ("youngest" .=) <$> _lYoungest,+                  ("timeseries" .=) <$> _lTimeseries])++-- | The request of cloudmonitoring.metricDescriptors.list.+--+-- /See:/ 'listMetricDescriptorsRequest' smart constructor.+newtype ListMetricDescriptorsRequest = ListMetricDescriptorsRequest'+    { _lisKind :: Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListMetricDescriptorsRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lisKind'+listMetricDescriptorsRequest+    :: ListMetricDescriptorsRequest+listMetricDescriptorsRequest =+    ListMetricDescriptorsRequest'+    { _lisKind = "cloudmonitoring#listMetricDescriptorsRequest"+    }++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"cloudmonitoring#listMetricDescriptorsRequest\".+lisKind :: Lens' ListMetricDescriptorsRequest Text+lisKind = lens _lisKind (\ s a -> s{_lisKind = a})++instance FromJSON ListMetricDescriptorsRequest where+        parseJSON+          = withObject "ListMetricDescriptorsRequest"+              (\ o ->+                 ListMetricDescriptorsRequest' <$>+                   (o .:? "kind" .!=+                      "cloudmonitoring#listMetricDescriptorsRequest"))++instance ToJSON ListMetricDescriptorsRequest where+        toJSON ListMetricDescriptorsRequest'{..}+          = object (catMaybes [Just ("kind" .= _lisKind)])++-- | When writing time series, TimeseriesPoint should be used instead of+-- Timeseries, to enforce single point for each time series in the+-- timeseries.write request.+--+-- /See:/ 'timeseriesPoint' smart constructor.+data TimeseriesPoint = TimeseriesPoint'+    { _tpPoint          :: !(Maybe Point)+    , _tpTimeseriesDesc :: !(Maybe TimeseriesDescriptor)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TimeseriesPoint' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tpPoint'+--+-- * 'tpTimeseriesDesc'+timeseriesPoint+    :: TimeseriesPoint+timeseriesPoint =+    TimeseriesPoint'+    { _tpPoint = Nothing+    , _tpTimeseriesDesc = Nothing+    }++-- | The data point in this time series snapshot.+tpPoint :: Lens' TimeseriesPoint (Maybe Point)+tpPoint = lens _tpPoint (\ s a -> s{_tpPoint = a})++-- | The descriptor of this time series.+tpTimeseriesDesc :: Lens' TimeseriesPoint (Maybe TimeseriesDescriptor)+tpTimeseriesDesc+  = lens _tpTimeseriesDesc+      (\ s a -> s{_tpTimeseriesDesc = a})++instance FromJSON TimeseriesPoint where+        parseJSON+          = withObject "TimeseriesPoint"+              (\ o ->+                 TimeseriesPoint' <$>+                   (o .:? "point") <*> (o .:? "timeseriesDesc"))++instance ToJSON TimeseriesPoint where+        toJSON TimeseriesPoint'{..}+          = object+              (catMaybes+                 [("point" .=) <$> _tpPoint,+                  ("timeseriesDesc" .=) <$> _tpTimeseriesDesc])++-- | The response of cloudmonitoring.metricDescriptors.delete.+--+-- /See:/ 'deleteMetricDescriptorResponse' smart constructor.+newtype DeleteMetricDescriptorResponse = DeleteMetricDescriptorResponse'+    { _dmdrKind :: Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeleteMetricDescriptorResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dmdrKind'+deleteMetricDescriptorResponse+    :: DeleteMetricDescriptorResponse+deleteMetricDescriptorResponse =+    DeleteMetricDescriptorResponse'+    { _dmdrKind = "cloudmonitoring#deleteMetricDescriptorResponse"+    }++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"cloudmonitoring#deleteMetricDescriptorResponse\".+dmdrKind :: Lens' DeleteMetricDescriptorResponse Text+dmdrKind = lens _dmdrKind (\ s a -> s{_dmdrKind = a})++instance FromJSON DeleteMetricDescriptorResponse+         where+        parseJSON+          = withObject "DeleteMetricDescriptorResponse"+              (\ o ->+                 DeleteMetricDescriptorResponse' <$>+                   (o .:? "kind" .!=+                      "cloudmonitoring#deleteMetricDescriptorResponse"))++instance ToJSON DeleteMetricDescriptorResponse where+        toJSON DeleteMetricDescriptorResponse'{..}+          = object (catMaybes [Just ("kind" .= _dmdrKind)])++-- | The request of cloudmonitoring.timeseries.list+--+-- /See:/ 'listTimeseriesRequest' smart constructor.+newtype ListTimeseriesRequest = ListTimeseriesRequest'+    { _ltrtKind :: Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListTimeseriesRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ltrtKind'+listTimeseriesRequest+    :: ListTimeseriesRequest+listTimeseriesRequest =+    ListTimeseriesRequest'+    { _ltrtKind = "cloudmonitoring#listTimeseriesRequest"+    }++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"cloudmonitoring#listTimeseriesRequest\".+ltrtKind :: Lens' ListTimeseriesRequest Text+ltrtKind = lens _ltrtKind (\ s a -> s{_ltrtKind = a})++instance FromJSON ListTimeseriesRequest where+        parseJSON+          = withObject "ListTimeseriesRequest"+              (\ o ->+                 ListTimeseriesRequest' <$>+                   (o .:? "kind" .!=+                      "cloudmonitoring#listTimeseriesRequest"))++instance ToJSON ListTimeseriesRequest where+        toJSON ListTimeseriesRequest'{..}+          = object (catMaybes [Just ("kind" .= _ltrtKind)])++-- | TimeseriesDescriptor identifies a single time series.+--+-- /See:/ 'timeseriesDescriptor' smart constructor.+data TimeseriesDescriptor = TimeseriesDescriptor'+    { _tdProject :: !(Maybe Text)+    , _tdMetric  :: !(Maybe Text)+    , _tdLabels  :: !(Maybe TimeseriesDescriptorLabels)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TimeseriesDescriptor' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tdProject'+--+-- * 'tdMetric'+--+-- * 'tdLabels'+timeseriesDescriptor+    :: TimeseriesDescriptor+timeseriesDescriptor =+    TimeseriesDescriptor'+    { _tdProject = Nothing+    , _tdMetric = Nothing+    , _tdLabels = Nothing+    }++-- | The Developers Console project number to which this time series belongs.+tdProject :: Lens' TimeseriesDescriptor (Maybe Text)+tdProject+  = lens _tdProject (\ s a -> s{_tdProject = a})++-- | The name of the metric.+tdMetric :: Lens' TimeseriesDescriptor (Maybe Text)+tdMetric = lens _tdMetric (\ s a -> s{_tdMetric = a})++-- | The label\'s name.+tdLabels :: Lens' TimeseriesDescriptor (Maybe TimeseriesDescriptorLabels)+tdLabels = lens _tdLabels (\ s a -> s{_tdLabels = a})++instance FromJSON TimeseriesDescriptor where+        parseJSON+          = withObject "TimeseriesDescriptor"+              (\ o ->+                 TimeseriesDescriptor' <$>+                   (o .:? "project") <*> (o .:? "metric") <*>+                     (o .:? "labels"))++instance ToJSON TimeseriesDescriptor where+        toJSON TimeseriesDescriptor'{..}+          = object+              (catMaybes+                 [("project" .=) <$> _tdProject,+                  ("metric" .=) <$> _tdMetric,+                  ("labels" .=) <$> _tdLabels])++-- | The monitoring data is organized as metrics and stored as data points+-- that are recorded over time. Each data point represents information like+-- the CPU utilization of your virtual machine. A historical record of+-- these data points is called a time series.+--+-- /See:/ 'timeseries' smart constructor.+data Timeseries = Timeseries'+    { _tPoints         :: !(Maybe [Point])+    , _tTimeseriesDesc :: !(Maybe TimeseriesDescriptor)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Timeseries' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tPoints'+--+-- * 'tTimeseriesDesc'+timeseries+    :: Timeseries+timeseries =+    Timeseries'+    { _tPoints = Nothing+    , _tTimeseriesDesc = Nothing+    }++-- | The data points of this time series. The points are listed in order of+-- their end timestamp, from younger to older.+tPoints :: Lens' Timeseries [Point]+tPoints+  = lens _tPoints (\ s a -> s{_tPoints = a}) . _Default+      . _Coerce++-- | The descriptor of this time series.+tTimeseriesDesc :: Lens' Timeseries (Maybe TimeseriesDescriptor)+tTimeseriesDesc+  = lens _tTimeseriesDesc+      (\ s a -> s{_tTimeseriesDesc = a})++instance FromJSON Timeseries where+        parseJSON+          = withObject "Timeseries"+              (\ o ->+                 Timeseries' <$>+                   (o .:? "points" .!= mempty) <*>+                     (o .:? "timeseriesDesc"))++instance ToJSON Timeseries where+        toJSON Timeseries'{..}+          = object+              (catMaybes+                 [("points" .=) <$> _tPoints,+                  ("timeseriesDesc" .=) <$> _tTimeseriesDesc])
+ gen/Network/Google/CloudMonitoring/Types/Sum.hs view
@@ -0,0 +1,93 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE LambdaCase         #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Network.Google.CloudMonitoring.Types.Sum+-- Copyright   : (c) 2015-2016 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.CloudMonitoring.Types.Sum where++import           Network.Google.Prelude++-- | The aggregation function that will reduce the data points in each window+-- to a single point. This parameter is only valid for non-cumulative+-- metrics with a value type of INT64 or DOUBLE.+data TimeseriesListAggregator+    = Max+      -- ^ @max@+    | Mean+      -- ^ @mean@+    | Min+      -- ^ @min@+    | Sum+      -- ^ @sum@+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable TimeseriesListAggregator++instance FromHttpApiData TimeseriesListAggregator where+    parseQueryParam = \case+        "max" -> Right Max+        "mean" -> Right Mean+        "min" -> Right Min+        "sum" -> Right Sum+        x -> Left ("Unable to parse TimeseriesListAggregator from: " <> x)++instance ToHttpApiData TimeseriesListAggregator where+    toQueryParam = \case+        Max -> "max"+        Mean -> "mean"+        Min -> "min"+        Sum -> "sum"++instance FromJSON TimeseriesListAggregator where+    parseJSON = parseJSONText "TimeseriesListAggregator"++instance ToJSON TimeseriesListAggregator where+    toJSON = toJSONText++-- | The aggregation function that will reduce the data points in each window+-- to a single point. This parameter is only valid for non-cumulative+-- metrics with a value type of INT64 or DOUBLE.+data TimeseriesDescriptorsListAggregator+    = TDLAMax+      -- ^ @max@+    | TDLAMean+      -- ^ @mean@+    | TDLAMin+      -- ^ @min@+    | TDLASum+      -- ^ @sum@+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable TimeseriesDescriptorsListAggregator++instance FromHttpApiData TimeseriesDescriptorsListAggregator where+    parseQueryParam = \case+        "max" -> Right TDLAMax+        "mean" -> Right TDLAMean+        "min" -> Right TDLAMin+        "sum" -> Right TDLASum+        x -> Left ("Unable to parse TimeseriesDescriptorsListAggregator from: " <> x)++instance ToHttpApiData TimeseriesDescriptorsListAggregator where+    toQueryParam = \case+        TDLAMax -> "max"+        TDLAMean -> "mean"+        TDLAMin -> "min"+        TDLASum -> "sum"++instance FromJSON TimeseriesDescriptorsListAggregator where+    parseJSON = parseJSONText "TimeseriesDescriptorsListAggregator"++instance ToJSON TimeseriesDescriptorsListAggregator where+    toJSON = toJSONText
+ gen/Network/Google/Resource/CloudMonitoring/MetricDescriptors/Create.hs view
@@ -0,0 +1,102 @@+{-# 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.CloudMonitoring.MetricDescriptors.Create+-- Copyright   : (c) 2015-2016 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)+--+-- Create a new metric.+--+-- /See:/ <https://cloud.google.com/monitoring/v2beta2/ Cloud Monitoring API Reference> for @cloudmonitoring.metricDescriptors.create@.+module Network.Google.Resource.CloudMonitoring.MetricDescriptors.Create+    (+    -- * REST Resource+      MetricDescriptorsCreateResource++    -- * Creating a Request+    , metricDescriptorsCreate+    , MetricDescriptorsCreate++    -- * Request Lenses+    , mdcProject+    , mdcPayload+    ) where++import           Network.Google.CloudMonitoring.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudmonitoring.metricDescriptors.create@ method which the+-- 'MetricDescriptorsCreate' request conforms to.+type MetricDescriptorsCreateResource =+     "cloudmonitoring" :>+       "v2beta2" :>+         "projects" :>+           Capture "project" Text :>+             "metricDescriptors" :>+               QueryParam "alt" AltJSON :>+                 ReqBody '[JSON] MetricDescriptor :>+                   Post '[JSON] MetricDescriptor++-- | Create a new metric.+--+-- /See:/ 'metricDescriptorsCreate' smart constructor.+data MetricDescriptorsCreate = MetricDescriptorsCreate'+    { _mdcProject :: !Text+    , _mdcPayload :: !MetricDescriptor+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MetricDescriptorsCreate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mdcProject'+--+-- * 'mdcPayload'+metricDescriptorsCreate+    :: Text -- ^ 'mdcProject'+    -> MetricDescriptor -- ^ 'mdcPayload'+    -> MetricDescriptorsCreate+metricDescriptorsCreate pMdcProject_ pMdcPayload_ =+    MetricDescriptorsCreate'+    { _mdcProject = pMdcProject_+    , _mdcPayload = pMdcPayload_+    }++-- | The project id. The value can be the numeric project ID or string-based+-- project name.+mdcProject :: Lens' MetricDescriptorsCreate Text+mdcProject+  = lens _mdcProject (\ s a -> s{_mdcProject = a})++-- | Multipart request metadata.+mdcPayload :: Lens' MetricDescriptorsCreate MetricDescriptor+mdcPayload+  = lens _mdcPayload (\ s a -> s{_mdcPayload = a})++instance GoogleRequest MetricDescriptorsCreate where+        type Rs MetricDescriptorsCreate = MetricDescriptor+        type Scopes MetricDescriptorsCreate =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/monitoring"]+        requestClient MetricDescriptorsCreate'{..}+          = go _mdcProject (Just AltJSON) _mdcPayload+              cloudMonitoringService+          where go+                  = buildClient+                      (Proxy :: Proxy MetricDescriptorsCreateResource)+                      mempty
+ gen/Network/Google/Resource/CloudMonitoring/MetricDescriptors/Delete.hs view
@@ -0,0 +1,102 @@+{-# 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.CloudMonitoring.MetricDescriptors.Delete+-- Copyright   : (c) 2015-2016 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 an existing metric.+--+-- /See:/ <https://cloud.google.com/monitoring/v2beta2/ Cloud Monitoring API Reference> for @cloudmonitoring.metricDescriptors.delete@.+module Network.Google.Resource.CloudMonitoring.MetricDescriptors.Delete+    (+    -- * REST Resource+      MetricDescriptorsDeleteResource++    -- * Creating a Request+    , metricDescriptorsDelete+    , MetricDescriptorsDelete++    -- * Request Lenses+    , mddProject+    , mddMetric+    ) where++import           Network.Google.CloudMonitoring.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudmonitoring.metricDescriptors.delete@ method which the+-- 'MetricDescriptorsDelete' request conforms to.+type MetricDescriptorsDeleteResource =+     "cloudmonitoring" :>+       "v2beta2" :>+         "projects" :>+           Capture "project" Text :>+             "metricDescriptors" :>+               Capture "metric" Text :>+                 QueryParam "alt" AltJSON :>+                   Delete '[JSON] DeleteMetricDescriptorResponse++-- | Delete an existing metric.+--+-- /See:/ 'metricDescriptorsDelete' smart constructor.+data MetricDescriptorsDelete = MetricDescriptorsDelete'+    { _mddProject :: !Text+    , _mddMetric  :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MetricDescriptorsDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mddProject'+--+-- * 'mddMetric'+metricDescriptorsDelete+    :: Text -- ^ 'mddProject'+    -> Text -- ^ 'mddMetric'+    -> MetricDescriptorsDelete+metricDescriptorsDelete pMddProject_ pMddMetric_ =+    MetricDescriptorsDelete'+    { _mddProject = pMddProject_+    , _mddMetric = pMddMetric_+    }++-- | The project ID to which the metric belongs.+mddProject :: Lens' MetricDescriptorsDelete Text+mddProject+  = lens _mddProject (\ s a -> s{_mddProject = a})++-- | Name of the metric.+mddMetric :: Lens' MetricDescriptorsDelete Text+mddMetric+  = lens _mddMetric (\ s a -> s{_mddMetric = a})++instance GoogleRequest MetricDescriptorsDelete where+        type Rs MetricDescriptorsDelete =+             DeleteMetricDescriptorResponse+        type Scopes MetricDescriptorsDelete =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/monitoring"]+        requestClient MetricDescriptorsDelete'{..}+          = go _mddProject _mddMetric (Just AltJSON)+              cloudMonitoringService+          where go+                  = buildClient+                      (Proxy :: Proxy MetricDescriptorsDeleteResource)+                      mempty
+ gen/Network/Google/Resource/CloudMonitoring/MetricDescriptors/List.hs view
@@ -0,0 +1,154 @@+{-# 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.CloudMonitoring.MetricDescriptors.List+-- Copyright   : (c) 2015-2016 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)+--+-- List metric descriptors that match the query. If the query is not set,+-- then all of the metric descriptors will be returned. Large responses+-- will be paginated, use the nextPageToken returned in the response to+-- request subsequent pages of results by setting the pageToken query+-- parameter to the value of the nextPageToken.+--+-- /See:/ <https://cloud.google.com/monitoring/v2beta2/ Cloud Monitoring API Reference> for @cloudmonitoring.metricDescriptors.list@.+module Network.Google.Resource.CloudMonitoring.MetricDescriptors.List+    (+    -- * REST Resource+      MetricDescriptorsListResource++    -- * Creating a Request+    , metricDescriptorsList+    , MetricDescriptorsList++    -- * Request Lenses+    , mdlProject+    , mdlCount+    , mdlPayload+    , mdlQuery+    , mdlPageToken+    ) where++import           Network.Google.CloudMonitoring.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudmonitoring.metricDescriptors.list@ method which the+-- 'MetricDescriptorsList' request conforms to.+type MetricDescriptorsListResource =+     "cloudmonitoring" :>+       "v2beta2" :>+         "projects" :>+           Capture "project" Text :>+             "metricDescriptors" :>+               QueryParam "count" (Textual Int32) :>+                 QueryParam "query" Text :>+                   QueryParam "pageToken" Text :>+                     QueryParam "alt" AltJSON :>+                       ReqBody '[JSON] ListMetricDescriptorsRequest :>+                         Get '[JSON] ListMetricDescriptorsResponse++-- | List metric descriptors that match the query. If the query is not set,+-- then all of the metric descriptors will be returned. Large responses+-- will be paginated, use the nextPageToken returned in the response to+-- request subsequent pages of results by setting the pageToken query+-- parameter to the value of the nextPageToken.+--+-- /See:/ 'metricDescriptorsList' smart constructor.+data MetricDescriptorsList = MetricDescriptorsList'+    { _mdlProject   :: !Text+    , _mdlCount     :: !(Textual Int32)+    , _mdlPayload   :: !ListMetricDescriptorsRequest+    , _mdlQuery     :: !(Maybe Text)+    , _mdlPageToken :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MetricDescriptorsList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mdlProject'+--+-- * 'mdlCount'+--+-- * 'mdlPayload'+--+-- * 'mdlQuery'+--+-- * 'mdlPageToken'+metricDescriptorsList+    :: Text -- ^ 'mdlProject'+    -> ListMetricDescriptorsRequest -- ^ 'mdlPayload'+    -> MetricDescriptorsList+metricDescriptorsList pMdlProject_ pMdlPayload_ =+    MetricDescriptorsList'+    { _mdlProject = pMdlProject_+    , _mdlCount = 100+    , _mdlPayload = pMdlPayload_+    , _mdlQuery = Nothing+    , _mdlPageToken = Nothing+    }++-- | The project id. The value can be the numeric project ID or string-based+-- project name.+mdlProject :: Lens' MetricDescriptorsList Text+mdlProject+  = lens _mdlProject (\ s a -> s{_mdlProject = a})++-- | Maximum number of metric descriptors per page. Used for pagination. If+-- not specified, count = 100.+mdlCount :: Lens' MetricDescriptorsList Int32+mdlCount+  = lens _mdlCount (\ s a -> s{_mdlCount = a}) .+      _Coerce++-- | Multipart request metadata.+mdlPayload :: Lens' MetricDescriptorsList ListMetricDescriptorsRequest+mdlPayload+  = lens _mdlPayload (\ s a -> s{_mdlPayload = a})++-- | The query used to search against existing metrics. Separate keywords+-- with a space; the service joins all keywords with AND, meaning that all+-- keywords must match for a metric to be returned. If this field is+-- omitted, all metrics are returned. If an empty string is passed with+-- this field, no metrics are returned.+mdlQuery :: Lens' MetricDescriptorsList (Maybe Text)+mdlQuery = lens _mdlQuery (\ s a -> s{_mdlQuery = a})++-- | The pagination token, which is used to page through large result sets.+-- Set this value to the value of the nextPageToken to retrieve the next+-- page of results.+mdlPageToken :: Lens' MetricDescriptorsList (Maybe Text)+mdlPageToken+  = lens _mdlPageToken (\ s a -> s{_mdlPageToken = a})++instance GoogleRequest MetricDescriptorsList where+        type Rs MetricDescriptorsList =+             ListMetricDescriptorsResponse+        type Scopes MetricDescriptorsList =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/monitoring"]+        requestClient MetricDescriptorsList'{..}+          = go _mdlProject (Just _mdlCount) _mdlQuery+              _mdlPageToken+              (Just AltJSON)+              _mdlPayload+              cloudMonitoringService+          where go+                  = buildClient+                      (Proxy :: Proxy MetricDescriptorsListResource)+                      mempty
+ gen/Network/Google/Resource/CloudMonitoring/Timeseries/List.hs view
@@ -0,0 +1,243 @@+{-# 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.CloudMonitoring.Timeseries.List+-- Copyright   : (c) 2015-2016 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)+--+-- List the data points of the time series that match the metric and labels+-- values and that have data points in the interval. Large responses are+-- paginated; use the nextPageToken returned in the response to request+-- subsequent pages of results by setting the pageToken query parameter to+-- the value of the nextPageToken.+--+-- /See:/ <https://cloud.google.com/monitoring/v2beta2/ Cloud Monitoring API Reference> for @cloudmonitoring.timeseries.list@.+module Network.Google.Resource.CloudMonitoring.Timeseries.List+    (+    -- * REST Resource+      TimeseriesListResource++    -- * Creating a Request+    , timeseriesList+    , TimeseriesList++    -- * Request Lenses+    , tlWindow+    , tlProject+    , tlCount+    , tlPayload+    , tlAggregator+    , tlTimespan+    , tlMetric+    , tlOldest+    , tlLabels+    , tlPageToken+    , tlYoungest+    ) where++import           Network.Google.CloudMonitoring.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudmonitoring.timeseries.list@ method which the+-- 'TimeseriesList' request conforms to.+type TimeseriesListResource =+     "cloudmonitoring" :>+       "v2beta2" :>+         "projects" :>+           Capture "project" Text :>+             "timeseries" :>+               Capture "metric" Text :>+                 QueryParam "youngest" Text :>+                   QueryParam "window" Text :>+                     QueryParam "count" (Textual Int32) :>+                       QueryParam "aggregator" TimeseriesListAggregator :>+                         QueryParam "timespan" Text :>+                           QueryParam "oldest" Text :>+                             QueryParams "labels" Text :>+                               QueryParam "pageToken" Text :>+                                 QueryParam "alt" AltJSON :>+                                   ReqBody '[JSON] ListTimeseriesRequest :>+                                     Get '[JSON] ListTimeseriesResponse++-- | List the data points of the time series that match the metric and labels+-- values and that have data points in the interval. Large responses are+-- paginated; use the nextPageToken returned in the response to request+-- subsequent pages of results by setting the pageToken query parameter to+-- the value of the nextPageToken.+--+-- /See:/ 'timeseriesList' smart constructor.+data TimeseriesList = TimeseriesList'+    { _tlWindow     :: !(Maybe Text)+    , _tlProject    :: !Text+    , _tlCount      :: !(Textual Int32)+    , _tlPayload    :: !ListTimeseriesRequest+    , _tlAggregator :: !(Maybe TimeseriesListAggregator)+    , _tlTimespan   :: !(Maybe Text)+    , _tlMetric     :: !Text+    , _tlOldest     :: !(Maybe Text)+    , _tlLabels     :: !(Maybe [Text])+    , _tlPageToken  :: !(Maybe Text)+    , _tlYoungest   :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TimeseriesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tlWindow'+--+-- * 'tlProject'+--+-- * 'tlCount'+--+-- * 'tlPayload'+--+-- * 'tlAggregator'+--+-- * 'tlTimespan'+--+-- * 'tlMetric'+--+-- * 'tlOldest'+--+-- * 'tlLabels'+--+-- * 'tlPageToken'+--+-- * 'tlYoungest'+timeseriesList+    :: Text -- ^ 'tlProject'+    -> ListTimeseriesRequest -- ^ 'tlPayload'+    -> Text -- ^ 'tlMetric'+    -> Text -- ^ 'tlYoungest'+    -> TimeseriesList+timeseriesList pTlProject_ pTlPayload_ pTlMetric_ pTlYoungest_ =+    TimeseriesList'+    { _tlWindow = Nothing+    , _tlProject = pTlProject_+    , _tlCount = 6000+    , _tlPayload = pTlPayload_+    , _tlAggregator = Nothing+    , _tlTimespan = Nothing+    , _tlMetric = pTlMetric_+    , _tlOldest = Nothing+    , _tlLabels = Nothing+    , _tlPageToken = Nothing+    , _tlYoungest = pTlYoungest_+    }++-- | The sampling window. At most one data point will be returned for each+-- window in the requested time interval. This parameter is only valid for+-- non-cumulative metric types. Units: - m: minute - h: hour - d: day - w:+-- week Examples: 3m, 4w. Only one unit is allowed, for example: 2w3d is+-- not allowed; you should use 17d instead.+tlWindow :: Lens' TimeseriesList (Maybe Text)+tlWindow = lens _tlWindow (\ s a -> s{_tlWindow = a})++-- | The project ID to which this time series belongs. The value can be the+-- numeric project ID or string-based project name.+tlProject :: Lens' TimeseriesList Text+tlProject+  = lens _tlProject (\ s a -> s{_tlProject = a})++-- | Maximum number of data points per page, which is used for pagination of+-- results.+tlCount :: Lens' TimeseriesList Int32+tlCount+  = lens _tlCount (\ s a -> s{_tlCount = a}) . _Coerce++-- | Multipart request metadata.+tlPayload :: Lens' TimeseriesList ListTimeseriesRequest+tlPayload+  = lens _tlPayload (\ s a -> s{_tlPayload = a})++-- | The aggregation function that will reduce the data points in each window+-- to a single point. This parameter is only valid for non-cumulative+-- metrics with a value type of INT64 or DOUBLE.+tlAggregator :: Lens' TimeseriesList (Maybe TimeseriesListAggregator)+tlAggregator+  = lens _tlAggregator (\ s a -> s{_tlAggregator = a})++-- | Length of the time interval to query, which is an alternative way to+-- declare the interval: (youngest - timespan, youngest]. The timespan and+-- oldest parameters should not be used together. Units: - s: second - m:+-- minute - h: hour - d: day - w: week Examples: 2s, 3m, 4w. Only one unit+-- is allowed, for example: 2w3d is not allowed; you should use 17d+-- instead. If neither oldest nor timespan is specified, the default time+-- interval will be (youngest - 4 hours, youngest].+tlTimespan :: Lens' TimeseriesList (Maybe Text)+tlTimespan+  = lens _tlTimespan (\ s a -> s{_tlTimespan = a})++-- | Metric names are protocol-free URLs as listed in the Supported Metrics+-- page. For example,+-- compute.googleapis.com\/instance\/disk\/read_ops_count.+tlMetric :: Lens' TimeseriesList Text+tlMetric = lens _tlMetric (\ s a -> s{_tlMetric = a})++-- | Start of the time interval (exclusive), which is expressed as an RFC+-- 3339 timestamp. If neither oldest nor timespan is specified, the default+-- time interval will be (youngest - 4 hours, youngest]+tlOldest :: Lens' TimeseriesList (Maybe Text)+tlOldest = lens _tlOldest (\ s a -> s{_tlOldest = a})++-- | A collection of labels for the matching time series, which are+-- represented as: - key==value: key equals the value - key=~value: key+-- regex matches the value - key!=value: key does not equal the value -+-- key!~value: key regex does not match the value For example, to list all+-- of the time series descriptors for the region us-central1, you could+-- specify: label=cloud.googleapis.com%2Flocation=~us-central1.*+tlLabels :: Lens' TimeseriesList [Text]+tlLabels+  = lens _tlLabels (\ s a -> s{_tlLabels = a}) .+      _Default+      . _Coerce++-- | The pagination token, which is used to page through large result sets.+-- Set this value to the value of the nextPageToken to retrieve the next+-- page of results.+tlPageToken :: Lens' TimeseriesList (Maybe Text)+tlPageToken+  = lens _tlPageToken (\ s a -> s{_tlPageToken = a})++-- | End of the time interval (inclusive), which is expressed as an RFC 3339+-- timestamp.+tlYoungest :: Lens' TimeseriesList Text+tlYoungest+  = lens _tlYoungest (\ s a -> s{_tlYoungest = a})++instance GoogleRequest TimeseriesList where+        type Rs TimeseriesList = ListTimeseriesResponse+        type Scopes TimeseriesList =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/monitoring"]+        requestClient TimeseriesList'{..}+          = go _tlProject _tlMetric (Just _tlYoungest)+              _tlWindow+              (Just _tlCount)+              _tlAggregator+              _tlTimespan+              _tlOldest+              (_tlLabels ^. _Default)+              _tlPageToken+              (Just AltJSON)+              _tlPayload+              cloudMonitoringService+          where go+                  = buildClient (Proxy :: Proxy TimeseriesListResource)+                      mempty
+ gen/Network/Google/Resource/CloudMonitoring/Timeseries/Write.hs view
@@ -0,0 +1,114 @@+{-# 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.CloudMonitoring.Timeseries.Write+-- Copyright   : (c) 2015-2016 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)+--+-- Put data points to one or more time series for one or more metrics. If a+-- time series does not exist, a new time series will be created. It is not+-- allowed to write a time series point that is older than the existing+-- youngest point of that time series. Points that are older than the+-- existing youngest point of that time series will be discarded silently.+-- Therefore, users should make sure that points of a time series are+-- written sequentially in the order of their end time.+--+-- /See:/ <https://cloud.google.com/monitoring/v2beta2/ Cloud Monitoring API Reference> for @cloudmonitoring.timeseries.write@.+module Network.Google.Resource.CloudMonitoring.Timeseries.Write+    (+    -- * REST Resource+      TimeseriesWriteResource++    -- * Creating a Request+    , timeseriesWrite+    , TimeseriesWrite++    -- * Request Lenses+    , twProject+    , twPayload+    ) where++import           Network.Google.CloudMonitoring.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudmonitoring.timeseries.write@ method which the+-- 'TimeseriesWrite' request conforms to.+type TimeseriesWriteResource =+     "cloudmonitoring" :>+       "v2beta2" :>+         "projects" :>+           Capture "project" Text :>+             "timeseries:write" :>+               QueryParam "alt" AltJSON :>+                 ReqBody '[JSON] WriteTimeseriesRequest :>+                   Post '[JSON] WriteTimeseriesResponse++-- | Put data points to one or more time series for one or more metrics. If a+-- time series does not exist, a new time series will be created. It is not+-- allowed to write a time series point that is older than the existing+-- youngest point of that time series. Points that are older than the+-- existing youngest point of that time series will be discarded silently.+-- Therefore, users should make sure that points of a time series are+-- written sequentially in the order of their end time.+--+-- /See:/ 'timeseriesWrite' smart constructor.+data TimeseriesWrite = TimeseriesWrite'+    { _twProject :: !Text+    , _twPayload :: !WriteTimeseriesRequest+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TimeseriesWrite' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'twProject'+--+-- * 'twPayload'+timeseriesWrite+    :: Text -- ^ 'twProject'+    -> WriteTimeseriesRequest -- ^ 'twPayload'+    -> TimeseriesWrite+timeseriesWrite pTwProject_ pTwPayload_ =+    TimeseriesWrite'+    { _twProject = pTwProject_+    , _twPayload = pTwPayload_+    }++-- | The project ID. The value can be the numeric project ID or string-based+-- project name.+twProject :: Lens' TimeseriesWrite Text+twProject+  = lens _twProject (\ s a -> s{_twProject = a})++-- | Multipart request metadata.+twPayload :: Lens' TimeseriesWrite WriteTimeseriesRequest+twPayload+  = lens _twPayload (\ s a -> s{_twPayload = a})++instance GoogleRequest TimeseriesWrite where+        type Rs TimeseriesWrite = WriteTimeseriesResponse+        type Scopes TimeseriesWrite =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/monitoring"]+        requestClient TimeseriesWrite'{..}+          = go _twProject (Just AltJSON) _twPayload+              cloudMonitoringService+          where go+                  = buildClient+                      (Proxy :: Proxy TimeseriesWriteResource)+                      mempty
+ gen/Network/Google/Resource/CloudMonitoring/TimeseriesDescriptors/List.hs view
@@ -0,0 +1,256 @@+{-# 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.CloudMonitoring.TimeseriesDescriptors.List+-- Copyright   : (c) 2015-2016 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)+--+-- List the descriptors of the time series that match the metric and labels+-- values and that have data points in the interval. Large responses are+-- paginated; use the nextPageToken returned in the response to request+-- subsequent pages of results by setting the pageToken query parameter to+-- the value of the nextPageToken.+--+-- /See:/ <https://cloud.google.com/monitoring/v2beta2/ Cloud Monitoring API Reference> for @cloudmonitoring.timeseriesDescriptors.list@.+module Network.Google.Resource.CloudMonitoring.TimeseriesDescriptors.List+    (+    -- * REST Resource+      TimeseriesDescriptorsListResource++    -- * Creating a Request+    , timeseriesDescriptorsList+    , TimeseriesDescriptorsList++    -- * Request Lenses+    , tdlWindow+    , tdlProject+    , tdlCount+    , tdlPayload+    , tdlAggregator+    , tdlTimespan+    , tdlMetric+    , tdlOldest+    , tdlLabels+    , tdlPageToken+    , tdlYoungest+    ) where++import           Network.Google.CloudMonitoring.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudmonitoring.timeseriesDescriptors.list@ method which the+-- 'TimeseriesDescriptorsList' request conforms to.+type TimeseriesDescriptorsListResource =+     "cloudmonitoring" :>+       "v2beta2" :>+         "projects" :>+           Capture "project" Text :>+             "timeseriesDescriptors" :>+               Capture "metric" Text :>+                 QueryParam "youngest" Text :>+                   QueryParam "window" Text :>+                     QueryParam "count" (Textual Int32) :>+                       QueryParam "aggregator"+                         TimeseriesDescriptorsListAggregator+                         :>+                         QueryParam "timespan" Text :>+                           QueryParam "oldest" Text :>+                             QueryParams "labels" Text :>+                               QueryParam "pageToken" Text :>+                                 QueryParam "alt" AltJSON :>+                                   ReqBody '[JSON]+                                     ListTimeseriesDescriptorsRequest+                                     :>+                                     Get '[JSON]+                                       ListTimeseriesDescriptorsResponse++-- | List the descriptors of the time series that match the metric and labels+-- values and that have data points in the interval. Large responses are+-- paginated; use the nextPageToken returned in the response to request+-- subsequent pages of results by setting the pageToken query parameter to+-- the value of the nextPageToken.+--+-- /See:/ 'timeseriesDescriptorsList' smart constructor.+data TimeseriesDescriptorsList = TimeseriesDescriptorsList'+    { _tdlWindow     :: !(Maybe Text)+    , _tdlProject    :: !Text+    , _tdlCount      :: !(Textual Int32)+    , _tdlPayload    :: !ListTimeseriesDescriptorsRequest+    , _tdlAggregator :: !(Maybe TimeseriesDescriptorsListAggregator)+    , _tdlTimespan   :: !(Maybe Text)+    , _tdlMetric     :: !Text+    , _tdlOldest     :: !(Maybe Text)+    , _tdlLabels     :: !(Maybe [Text])+    , _tdlPageToken  :: !(Maybe Text)+    , _tdlYoungest   :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TimeseriesDescriptorsList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tdlWindow'+--+-- * 'tdlProject'+--+-- * 'tdlCount'+--+-- * 'tdlPayload'+--+-- * 'tdlAggregator'+--+-- * 'tdlTimespan'+--+-- * 'tdlMetric'+--+-- * 'tdlOldest'+--+-- * 'tdlLabels'+--+-- * 'tdlPageToken'+--+-- * 'tdlYoungest'+timeseriesDescriptorsList+    :: Text -- ^ 'tdlProject'+    -> ListTimeseriesDescriptorsRequest -- ^ 'tdlPayload'+    -> Text -- ^ 'tdlMetric'+    -> Text -- ^ 'tdlYoungest'+    -> TimeseriesDescriptorsList+timeseriesDescriptorsList pTdlProject_ pTdlPayload_ pTdlMetric_ pTdlYoungest_ =+    TimeseriesDescriptorsList'+    { _tdlWindow = Nothing+    , _tdlProject = pTdlProject_+    , _tdlCount = 100+    , _tdlPayload = pTdlPayload_+    , _tdlAggregator = Nothing+    , _tdlTimespan = Nothing+    , _tdlMetric = pTdlMetric_+    , _tdlOldest = Nothing+    , _tdlLabels = Nothing+    , _tdlPageToken = Nothing+    , _tdlYoungest = pTdlYoungest_+    }++-- | The sampling window. At most one data point will be returned for each+-- window in the requested time interval. This parameter is only valid for+-- non-cumulative metric types. Units: - m: minute - h: hour - d: day - w:+-- week Examples: 3m, 4w. Only one unit is allowed, for example: 2w3d is+-- not allowed; you should use 17d instead.+tdlWindow :: Lens' TimeseriesDescriptorsList (Maybe Text)+tdlWindow+  = lens _tdlWindow (\ s a -> s{_tdlWindow = a})++-- | The project ID to which this time series belongs. The value can be the+-- numeric project ID or string-based project name.+tdlProject :: Lens' TimeseriesDescriptorsList Text+tdlProject+  = lens _tdlProject (\ s a -> s{_tdlProject = a})++-- | Maximum number of time series descriptors per page. Used for pagination.+-- If not specified, count = 100.+tdlCount :: Lens' TimeseriesDescriptorsList Int32+tdlCount+  = lens _tdlCount (\ s a -> s{_tdlCount = a}) .+      _Coerce++-- | Multipart request metadata.+tdlPayload :: Lens' TimeseriesDescriptorsList ListTimeseriesDescriptorsRequest+tdlPayload+  = lens _tdlPayload (\ s a -> s{_tdlPayload = a})++-- | The aggregation function that will reduce the data points in each window+-- to a single point. This parameter is only valid for non-cumulative+-- metrics with a value type of INT64 or DOUBLE.+tdlAggregator :: Lens' TimeseriesDescriptorsList (Maybe TimeseriesDescriptorsListAggregator)+tdlAggregator+  = lens _tdlAggregator+      (\ s a -> s{_tdlAggregator = a})++-- | Length of the time interval to query, which is an alternative way to+-- declare the interval: (youngest - timespan, youngest]. The timespan and+-- oldest parameters should not be used together. Units: - s: second - m:+-- minute - h: hour - d: day - w: week Examples: 2s, 3m, 4w. Only one unit+-- is allowed, for example: 2w3d is not allowed; you should use 17d+-- instead. If neither oldest nor timespan is specified, the default time+-- interval will be (youngest - 4 hours, youngest].+tdlTimespan :: Lens' TimeseriesDescriptorsList (Maybe Text)+tdlTimespan+  = lens _tdlTimespan (\ s a -> s{_tdlTimespan = a})++-- | Metric names are protocol-free URLs as listed in the Supported Metrics+-- page. For example,+-- compute.googleapis.com\/instance\/disk\/read_ops_count.+tdlMetric :: Lens' TimeseriesDescriptorsList Text+tdlMetric+  = lens _tdlMetric (\ s a -> s{_tdlMetric = a})++-- | Start of the time interval (exclusive), which is expressed as an RFC+-- 3339 timestamp. If neither oldest nor timespan is specified, the default+-- time interval will be (youngest - 4 hours, youngest]+tdlOldest :: Lens' TimeseriesDescriptorsList (Maybe Text)+tdlOldest+  = lens _tdlOldest (\ s a -> s{_tdlOldest = a})++-- | A collection of labels for the matching time series, which are+-- represented as: - key==value: key equals the value - key=~value: key+-- regex matches the value - key!=value: key does not equal the value -+-- key!~value: key regex does not match the value For example, to list all+-- of the time series descriptors for the region us-central1, you could+-- specify: label=cloud.googleapis.com%2Flocation=~us-central1.*+tdlLabels :: Lens' TimeseriesDescriptorsList [Text]+tdlLabels+  = lens _tdlLabels (\ s a -> s{_tdlLabels = a}) .+      _Default+      . _Coerce++-- | The pagination token, which is used to page through large result sets.+-- Set this value to the value of the nextPageToken to retrieve the next+-- page of results.+tdlPageToken :: Lens' TimeseriesDescriptorsList (Maybe Text)+tdlPageToken+  = lens _tdlPageToken (\ s a -> s{_tdlPageToken = a})++-- | End of the time interval (inclusive), which is expressed as an RFC 3339+-- timestamp.+tdlYoungest :: Lens' TimeseriesDescriptorsList Text+tdlYoungest+  = lens _tdlYoungest (\ s a -> s{_tdlYoungest = a})++instance GoogleRequest TimeseriesDescriptorsList+         where+        type Rs TimeseriesDescriptorsList =+             ListTimeseriesDescriptorsResponse+        type Scopes TimeseriesDescriptorsList =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/monitoring"]+        requestClient TimeseriesDescriptorsList'{..}+          = go _tdlProject _tdlMetric (Just _tdlYoungest)+              _tdlWindow+              (Just _tdlCount)+              _tdlAggregator+              _tdlTimespan+              _tdlOldest+              (_tdlLabels ^. _Default)+              _tdlPageToken+              (Just AltJSON)+              _tdlPayload+              cloudMonitoringService+          where go+                  = buildClient+                      (Proxy :: Proxy TimeseriesDescriptorsListResource)+                      mempty
+ gogol-cloudmonitoring.cabal view
@@ -0,0 +1,51 @@+name:                  gogol-cloudmonitoring+version:               0.1.0+synopsis:              Google Cloud Monitoring 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-2016 Brendan Hay+category:              Network, Google, Cloud+build-type:            Simple+cabal-version:         >= 1.10+extra-source-files:    README.md++description:+    Accesses Google Cloud Monitoring data.+    .+    /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 @v2beta2@+    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.CloudMonitoring+        , Network.Google.CloudMonitoring.Types+        , Network.Google.Resource.CloudMonitoring.MetricDescriptors.Create+        , Network.Google.Resource.CloudMonitoring.MetricDescriptors.Delete+        , Network.Google.Resource.CloudMonitoring.MetricDescriptors.List+        , Network.Google.Resource.CloudMonitoring.Timeseries.List+        , Network.Google.Resource.CloudMonitoring.Timeseries.Write+        , Network.Google.Resource.CloudMonitoring.TimeseriesDescriptors.List++    other-modules:+          Network.Google.CloudMonitoring.Types.Product+        , Network.Google.CloudMonitoring.Types.Sum++    build-depends:+          gogol-core == 0.1.0.*+        , base       >= 4.7 && < 5