-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Google Cloud Monitoring SDK.
--   
--   Accesses Google Cloud Monitoring data.
--   
--   <i>Warning:</i> 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 <tt>v2beta2</tt> of the API.
@package gogol-cloudmonitoring
@version 0.3.0


module Network.Google.CloudMonitoring.Types

-- | Default request referring to version <tt>v2beta2</tt> of the Cloud
--   Monitoring API. This contains the host and root path used as a
--   starting point for constructing service requests.
cloudMonitoringService :: ServiceConfig

-- | View and manage your data across Google Cloud Platform services
cloudPlatformScope :: Proxy '["https://www.googleapis.com/auth/cloud-platform"]

-- | 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"]

-- | A type in a metric contains information about how the metric is
--   collected and what its data points look like.
--   
--   <i>See:</i> <a>metricDescriptorTypeDescriptor</a> smart constructor.
data MetricDescriptorTypeDescriptor

-- | Creates a value of <a>MetricDescriptorTypeDescriptor</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mdtdMetricType</a></li>
--   <li><a>mdtdValueType</a></li>
--   </ul>
metricDescriptorTypeDescriptor :: MetricDescriptorTypeDescriptor

-- | The method of collecting data for the metric. See Metric types.
mdtdMetricType :: Lens' MetricDescriptorTypeDescriptor (Maybe Text)

-- | The data type of of individual points in the metric's time series. See
--   Metric value types.
mdtdValueType :: Lens' MetricDescriptorTypeDescriptor (Maybe Text)

-- | The response of cloudmonitoring.timeseries.list
--   
--   <i>See:</i> <a>listTimeseriesResponse</a> smart constructor.
data ListTimeseriesResponse

-- | Creates a value of <a>ListTimeseriesResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltrNextPageToken</a></li>
--   <li><a>ltrKind</a></li>
--   <li><a>ltrOldest</a></li>
--   <li><a>ltrYoungest</a></li>
--   <li><a>ltrTimeseries</a></li>
--   </ul>
listTimeseriesResponse :: ListTimeseriesResponse

-- | 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)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "cloudmonitoring#listTimeseriesResponse".
ltrKind :: Lens' ListTimeseriesResponse Text

-- | The oldest timestamp of the interval of this query as an RFC 3339
--   string.
ltrOldest :: Lens' ListTimeseriesResponse (Maybe UTCTime)

-- | The youngest timestamp of the interval of this query as an RFC 3339
--   string.
ltrYoungest :: Lens' ListTimeseriesResponse (Maybe UTCTime)

-- | The returned time series.
ltrTimeseries :: Lens' ListTimeseriesResponse [Timeseries]

-- | A metricDescriptor defines the name, label keys, and data type of a
--   particular metric.
--   
--   <i>See:</i> <a>metricDescriptor</a> smart constructor.
data MetricDescriptor

-- | Creates a value of <a>MetricDescriptor</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mdProject</a></li>
--   <li><a>mdTypeDescriptor</a></li>
--   <li><a>mdName</a></li>
--   <li><a>mdLabels</a></li>
--   <li><a>mdDescription</a></li>
--   </ul>
metricDescriptor :: MetricDescriptor

-- | The project ID to which the metric belongs.
mdProject :: Lens' MetricDescriptor (Maybe Text)

-- | Type description for this metric.
mdTypeDescriptor :: Lens' MetricDescriptor (Maybe MetricDescriptorTypeDescriptor)

-- | The name of this metric.
mdName :: Lens' MetricDescriptor (Maybe Text)

-- | Labels defined for this metric.
mdLabels :: Lens' MetricDescriptor [MetricDescriptorLabelDescriptor]

-- | Description of this metric.
mdDescription :: Lens' MetricDescriptor (Maybe Text)

-- | The request of cloudmonitoring.timeseries.write
--   
--   <i>See:</i> <a>writeTimeseriesRequest</a> smart constructor.
data WriteTimeseriesRequest

-- | Creates a value of <a>WriteTimeseriesRequest</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>wtrCommonLabels</a></li>
--   <li><a>wtrTimeseries</a></li>
--   </ul>
writeTimeseriesRequest :: WriteTimeseriesRequest

-- | The label's name.
wtrCommonLabels :: Lens' WriteTimeseriesRequest (Maybe WriteTimeseriesRequestCommonLabels)

-- | 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]

-- | The label's name.
--   
--   <i>See:</i> <a>writeTimeseriesRequestCommonLabels</a> smart
--   constructor.
data WriteTimeseriesRequestCommonLabels

-- | Creates a value of <a>WriteTimeseriesRequestCommonLabels</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>wtrclAddtional</a></li>
--   </ul>
writeTimeseriesRequestCommonLabels :: HashMap Text Text -> WriteTimeseriesRequestCommonLabels

-- | The label's name.
wtrclAddtional :: Lens' WriteTimeseriesRequestCommonLabels (HashMap Text Text)

-- | 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.
--   
--   <i>See:</i> <a>metricDescriptorLabelDescriptor</a> smart constructor.
data MetricDescriptorLabelDescriptor

-- | Creates a value of <a>MetricDescriptorLabelDescriptor</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mdldKey</a></li>
--   <li><a>mdldDescription</a></li>
--   </ul>
metricDescriptorLabelDescriptor :: MetricDescriptorLabelDescriptor

-- | Label key.
mdldKey :: Lens' MetricDescriptorLabelDescriptor (Maybe Text)

-- | Label description.
mdldDescription :: Lens' MetricDescriptorLabelDescriptor (Maybe Text)

-- | 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.
--   
--   <i>See:</i> <a>pointDistributionUnderflowBucket</a> smart constructor.
data PointDistributionUnderflowBucket

-- | Creates a value of <a>PointDistributionUnderflowBucket</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pdubUpperBound</a></li>
--   <li><a>pdubCount</a></li>
--   </ul>
pointDistributionUnderflowBucket :: PointDistributionUnderflowBucket

-- | The upper bound of the value interval of this bucket (exclusive).
pdubUpperBound :: Lens' PointDistributionUnderflowBucket (Maybe Double)

-- | The number of events whose values are in the interval defined by this
--   bucket.
pdubCount :: Lens' PointDistributionUnderflowBucket (Maybe Int64)

-- | 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

-- | <pre>
--   max
--   </pre>
Max :: TimeseriesListAggregator

-- | <pre>
--   mean
--   </pre>
Mean :: TimeseriesListAggregator

-- | <pre>
--   min
--   </pre>
Min :: TimeseriesListAggregator

-- | <pre>
--   sum
--   </pre>
Sum :: TimeseriesListAggregator

-- | The response of cloudmonitoring.metricDescriptors.list.
--   
--   <i>See:</i> <a>listMetricDescriptorsResponse</a> smart constructor.
data ListMetricDescriptorsResponse

-- | Creates a value of <a>ListMetricDescriptorsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lmdrMetrics</a></li>
--   <li><a>lmdrNextPageToken</a></li>
--   <li><a>lmdrKind</a></li>
--   </ul>
listMetricDescriptorsResponse :: ListMetricDescriptorsResponse

-- | The returned metric descriptors.
lmdrMetrics :: Lens' ListMetricDescriptorsResponse [MetricDescriptor]

-- | 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)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "cloudmonitoring#listMetricDescriptorsResponse".
lmdrKind :: Lens' ListMetricDescriptorsResponse Text

-- | The request of cloudmonitoring.timeseriesDescriptors.list
--   
--   <i>See:</i> <a>listTimeseriesDescriptorsRequest</a> smart constructor.
data ListTimeseriesDescriptorsRequest

-- | Creates a value of <a>ListTimeseriesDescriptorsRequest</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltdrKind</a></li>
--   </ul>
listTimeseriesDescriptorsRequest :: ListTimeseriesDescriptorsRequest

-- | Identifies what kind of resource this is. Value: the fixed string
--   "cloudmonitoring#listTimeseriesDescriptorsRequest".
ltdrKind :: Lens' ListTimeseriesDescriptorsRequest Text

-- | The label's name.
--   
--   <i>See:</i> <a>timeseriesDescriptorLabels</a> smart constructor.
data TimeseriesDescriptorLabels

-- | Creates a value of <a>TimeseriesDescriptorLabels</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tdlAddtional</a></li>
--   </ul>
timeseriesDescriptorLabels :: HashMap Text Text -> TimeseriesDescriptorLabels

-- | The label's name.
tdlAddtional :: Lens' TimeseriesDescriptorLabels (HashMap Text Text)

-- | 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).
--   
--   <i>See:</i> <a>pointDistributionBucket</a> smart constructor.
data PointDistributionBucket

-- | Creates a value of <a>PointDistributionBucket</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pdbUpperBound</a></li>
--   <li><a>pdbCount</a></li>
--   <li><a>pdbLowerBound</a></li>
--   </ul>
pointDistributionBucket :: PointDistributionBucket

-- | The upper bound of the value interval of this bucket (exclusive).
pdbUpperBound :: Lens' PointDistributionBucket (Maybe Double)

-- | The number of events whose values are in the interval defined by this
--   bucket.
pdbCount :: Lens' PointDistributionBucket (Maybe Int64)

-- | The lower bound of the value interval of this bucket (inclusive).
pdbLowerBound :: Lens' PointDistributionBucket (Maybe Double)

-- | The response of cloudmonitoring.timeseries.write
--   
--   <i>See:</i> <a>writeTimeseriesResponse</a> smart constructor.
data WriteTimeseriesResponse

-- | Creates a value of <a>WriteTimeseriesResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>wtrKind</a></li>
--   </ul>
writeTimeseriesResponse :: WriteTimeseriesResponse

-- | Identifies what kind of resource this is. Value: the fixed string
--   "cloudmonitoring#writeTimeseriesResponse".
wtrKind :: Lens' WriteTimeseriesResponse Text
data TimeseriesDescriptorLabel

-- | Creates a value of <a>TimeseriesDescriptorLabel</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tdlValue</a></li>
--   <li><a>tdlKey</a></li>
--   </ul>
timeseriesDescriptorLabel :: TimeseriesDescriptorLabel

-- | The label's value.
tdlValue :: Lens' TimeseriesDescriptorLabel (Maybe Text)

-- | The label's name.
tdlKey :: Lens' TimeseriesDescriptorLabel (Maybe Text)

-- | 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.
--   
--   <i>See:</i> <a>pointDistribution</a> smart constructor.
data PointDistribution

-- | Creates a value of <a>PointDistribution</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pdOverflowBucket</a></li>
--   <li><a>pdBuckets</a></li>
--   <li><a>pdUnderflowBucket</a></li>
--   </ul>
pointDistribution :: PointDistribution

-- | The overflow bucket.
pdOverflowBucket :: Lens' PointDistribution (Maybe PointDistributionOverflowBucket)

-- | The finite buckets.
pdBuckets :: Lens' PointDistribution [PointDistributionBucket]

-- | The underflow bucket.
pdUnderflowBucket :: Lens' PointDistribution (Maybe PointDistributionUnderflowBucket)

-- | Point is a single point in a time series. It consists of a start time,
--   an end time, and a value.
--   
--   <i>See:</i> <a>point</a> smart constructor.
data Point

-- | Creates a value of <a>Point</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pBoolValue</a></li>
--   <li><a>pStart</a></li>
--   <li><a>pDoubleValue</a></li>
--   <li><a>pStringValue</a></li>
--   <li><a>pDistributionValue</a></li>
--   <li><a>pEnd</a></li>
--   <li><a>pInt64Value</a></li>
--   </ul>
point :: Point

-- | The value of this data point. Either "true" or "false".
pBoolValue :: Lens' Point (Maybe Bool)

-- | 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)

-- | The value of this data point as a double-precision floating-point
--   number.
pDoubleValue :: Lens' Point (Maybe Double)

-- | The value of this data point in string format.
pStringValue :: Lens' Point (Maybe Text)

-- | 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)

-- | 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)

-- | The value of this data point as a 64-bit integer.
pInt64Value :: Lens' Point (Maybe Int64)

-- | 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.
--   
--   <i>See:</i> <a>pointDistributionOverflowBucket</a> smart constructor.
data PointDistributionOverflowBucket

-- | Creates a value of <a>PointDistributionOverflowBucket</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pdobCount</a></li>
--   <li><a>pdobLowerBound</a></li>
--   </ul>
pointDistributionOverflowBucket :: PointDistributionOverflowBucket

-- | The number of events whose values are in the interval defined by this
--   bucket.
pdobCount :: Lens' PointDistributionOverflowBucket (Maybe Int64)

-- | The lower bound of the value interval of this bucket (inclusive).
pdobLowerBound :: Lens' PointDistributionOverflowBucket (Maybe Double)

-- | The response of cloudmonitoring.timeseriesDescriptors.list
--   
--   <i>See:</i> <a>listTimeseriesDescriptorsResponse</a> smart
--   constructor.
data ListTimeseriesDescriptorsResponse

-- | Creates a value of <a>ListTimeseriesDescriptorsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lNextPageToken</a></li>
--   <li><a>lKind</a></li>
--   <li><a>lOldest</a></li>
--   <li><a>lYoungest</a></li>
--   <li><a>lTimeseries</a></li>
--   </ul>
listTimeseriesDescriptorsResponse :: ListTimeseriesDescriptorsResponse

-- | 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)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "cloudmonitoring#listTimeseriesDescriptorsResponse".
lKind :: Lens' ListTimeseriesDescriptorsResponse Text

-- | The oldest timestamp of the interval of this query, as an RFC 3339
--   string.
lOldest :: Lens' ListTimeseriesDescriptorsResponse (Maybe UTCTime)

-- | The youngest timestamp of the interval of this query, as an RFC 3339
--   string.
lYoungest :: Lens' ListTimeseriesDescriptorsResponse (Maybe UTCTime)

-- | The returned time series descriptors.
lTimeseries :: Lens' ListTimeseriesDescriptorsResponse [TimeseriesDescriptor]

-- | The request of cloudmonitoring.metricDescriptors.list.
--   
--   <i>See:</i> <a>listMetricDescriptorsRequest</a> smart constructor.
data ListMetricDescriptorsRequest

-- | Creates a value of <a>ListMetricDescriptorsRequest</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lisKind</a></li>
--   </ul>
listMetricDescriptorsRequest :: ListMetricDescriptorsRequest

-- | Identifies what kind of resource this is. Value: the fixed string
--   "cloudmonitoring#listMetricDescriptorsRequest".
lisKind :: Lens' ListMetricDescriptorsRequest Text

-- | When writing time series, TimeseriesPoint should be used instead of
--   Timeseries, to enforce single point for each time series in the
--   timeseries.write request.
--   
--   <i>See:</i> <a>timeseriesPoint</a> smart constructor.
data TimeseriesPoint

-- | Creates a value of <a>TimeseriesPoint</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tpPoint</a></li>
--   <li><a>tpTimeseriesDesc</a></li>
--   </ul>
timeseriesPoint :: TimeseriesPoint

-- | The data point in this time series snapshot.
tpPoint :: Lens' TimeseriesPoint (Maybe Point)

-- | The descriptor of this time series.
tpTimeseriesDesc :: Lens' TimeseriesPoint (Maybe TimeseriesDescriptor)

-- | 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

-- | <pre>
--   max
--   </pre>
TDLAMax :: TimeseriesDescriptorsListAggregator

-- | <pre>
--   mean
--   </pre>
TDLAMean :: TimeseriesDescriptorsListAggregator

-- | <pre>
--   min
--   </pre>
TDLAMin :: TimeseriesDescriptorsListAggregator

-- | <pre>
--   sum
--   </pre>
TDLASum :: TimeseriesDescriptorsListAggregator

-- | The response of cloudmonitoring.metricDescriptors.delete.
--   
--   <i>See:</i> <a>deleteMetricDescriptorResponse</a> smart constructor.
data DeleteMetricDescriptorResponse

-- | Creates a value of <a>DeleteMetricDescriptorResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dmdrKind</a></li>
--   </ul>
deleteMetricDescriptorResponse :: DeleteMetricDescriptorResponse

-- | Identifies what kind of resource this is. Value: the fixed string
--   "cloudmonitoring#deleteMetricDescriptorResponse".
dmdrKind :: Lens' DeleteMetricDescriptorResponse Text

-- | The request of cloudmonitoring.timeseries.list
--   
--   <i>See:</i> <a>listTimeseriesRequest</a> smart constructor.
data ListTimeseriesRequest

-- | Creates a value of <a>ListTimeseriesRequest</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltrtKind</a></li>
--   </ul>
listTimeseriesRequest :: ListTimeseriesRequest

-- | Identifies what kind of resource this is. Value: the fixed string
--   "cloudmonitoring#listTimeseriesRequest".
ltrtKind :: Lens' ListTimeseriesRequest Text

-- | TimeseriesDescriptor identifies a single time series.
--   
--   <i>See:</i> <a>timeseriesDescriptor</a> smart constructor.
data TimeseriesDescriptor

-- | Creates a value of <a>TimeseriesDescriptor</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tdProject</a></li>
--   <li><a>tdMetric</a></li>
--   <li><a>tdLabels</a></li>
--   </ul>
timeseriesDescriptor :: TimeseriesDescriptor

-- | The Developers Console project number to which this time series
--   belongs.
tdProject :: Lens' TimeseriesDescriptor (Maybe Text)

-- | The name of the metric.
tdMetric :: Lens' TimeseriesDescriptor (Maybe Text)

-- | The label's name.
tdLabels :: Lens' TimeseriesDescriptor (Maybe TimeseriesDescriptorLabels)

-- | 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.
--   
--   <i>See:</i> <a>timeseries</a> smart constructor.
data Timeseries

-- | Creates a value of <a>Timeseries</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tPoints</a></li>
--   <li><a>tTimeseriesDesc</a></li>
--   </ul>
timeseries :: Timeseries

-- | 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]

-- | The descriptor of this time series.
tTimeseriesDesc :: Lens' Timeseries (Maybe TimeseriesDescriptor)


-- | Create a new metric.
--   
--   <i>See:</i> <a>Cloud Monitoring API Reference</a> for
--   <tt>cloudmonitoring.metricDescriptors.create</tt>.
module Network.Google.Resource.CloudMonitoring.MetricDescriptors.Create

-- | A resource alias for <tt>cloudmonitoring.metricDescriptors.create</tt>
--   method which the <a>MetricDescriptorsCreate</a> request conforms to.
type MetricDescriptorsCreateResource = "cloudmonitoring" :> ("v2beta2" :> ("projects" :> (Capture "project" Text :> ("metricDescriptors" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] MetricDescriptor :> Post '[JSON] MetricDescriptor))))))

-- | Creates a value of <a>MetricDescriptorsCreate</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mdcProject</a></li>
--   <li><a>mdcPayload</a></li>
--   </ul>
metricDescriptorsCreate :: Text -> MetricDescriptor -> MetricDescriptorsCreate

-- | Create a new metric.
--   
--   <i>See:</i> <a>metricDescriptorsCreate</a> smart constructor.
data MetricDescriptorsCreate

-- | The project id. The value can be the numeric project ID or
--   string-based project name.
mdcProject :: Lens' MetricDescriptorsCreate Text

-- | Multipart request metadata.
mdcPayload :: Lens' MetricDescriptorsCreate MetricDescriptor
instance GHC.Generics.Generic Network.Google.Resource.CloudMonitoring.MetricDescriptors.Create.MetricDescriptorsCreate
instance Data.Data.Data Network.Google.Resource.CloudMonitoring.MetricDescriptors.Create.MetricDescriptorsCreate
instance GHC.Show.Show Network.Google.Resource.CloudMonitoring.MetricDescriptors.Create.MetricDescriptorsCreate
instance GHC.Classes.Eq Network.Google.Resource.CloudMonitoring.MetricDescriptors.Create.MetricDescriptorsCreate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.CloudMonitoring.MetricDescriptors.Create.MetricDescriptorsCreate


-- | Delete an existing metric.
--   
--   <i>See:</i> <a>Cloud Monitoring API Reference</a> for
--   <tt>cloudmonitoring.metricDescriptors.delete</tt>.
module Network.Google.Resource.CloudMonitoring.MetricDescriptors.Delete

-- | A resource alias for <tt>cloudmonitoring.metricDescriptors.delete</tt>
--   method which the <a>MetricDescriptorsDelete</a> request conforms to.
type MetricDescriptorsDeleteResource = "cloudmonitoring" :> ("v2beta2" :> ("projects" :> (Capture "project" Text :> ("metricDescriptors" :> (Capture "metric" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] DeleteMetricDescriptorResponse))))))

-- | Creates a value of <a>MetricDescriptorsDelete</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mddProject</a></li>
--   <li><a>mddMetric</a></li>
--   </ul>
metricDescriptorsDelete :: Text -> Text -> MetricDescriptorsDelete

-- | Delete an existing metric.
--   
--   <i>See:</i> <a>metricDescriptorsDelete</a> smart constructor.
data MetricDescriptorsDelete

-- | The project ID to which the metric belongs.
mddProject :: Lens' MetricDescriptorsDelete Text

-- | Name of the metric.
mddMetric :: Lens' MetricDescriptorsDelete Text
instance GHC.Generics.Generic Network.Google.Resource.CloudMonitoring.MetricDescriptors.Delete.MetricDescriptorsDelete
instance Data.Data.Data Network.Google.Resource.CloudMonitoring.MetricDescriptors.Delete.MetricDescriptorsDelete
instance GHC.Show.Show Network.Google.Resource.CloudMonitoring.MetricDescriptors.Delete.MetricDescriptorsDelete
instance GHC.Classes.Eq Network.Google.Resource.CloudMonitoring.MetricDescriptors.Delete.MetricDescriptorsDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.CloudMonitoring.MetricDescriptors.Delete.MetricDescriptorsDelete


-- | 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.
--   
--   <i>See:</i> <a>Cloud Monitoring API Reference</a> for
--   <tt>cloudmonitoring.metricDescriptors.list</tt>.
module Network.Google.Resource.CloudMonitoring.MetricDescriptors.List

-- | A resource alias for <tt>cloudmonitoring.metricDescriptors.list</tt>
--   method which the <a>MetricDescriptorsList</a> 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)))))))))

-- | Creates a value of <a>MetricDescriptorsList</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mdlProject</a></li>
--   <li><a>mdlCount</a></li>
--   <li><a>mdlPayload</a></li>
--   <li><a>mdlQuery</a></li>
--   <li><a>mdlPageToken</a></li>
--   </ul>
metricDescriptorsList :: Text -> ListMetricDescriptorsRequest -> MetricDescriptorsList

-- | 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.
--   
--   <i>See:</i> <a>metricDescriptorsList</a> smart constructor.
data MetricDescriptorsList

-- | The project id. The value can be the numeric project ID or
--   string-based project name.
mdlProject :: Lens' MetricDescriptorsList Text

-- | Maximum number of metric descriptors per page. Used for pagination. If
--   not specified, count = 100.
mdlCount :: Lens' MetricDescriptorsList Int32

-- | Multipart request metadata.
mdlPayload :: Lens' MetricDescriptorsList ListMetricDescriptorsRequest

-- | 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)

-- | 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)
instance GHC.Generics.Generic Network.Google.Resource.CloudMonitoring.MetricDescriptors.List.MetricDescriptorsList
instance Data.Data.Data Network.Google.Resource.CloudMonitoring.MetricDescriptors.List.MetricDescriptorsList
instance GHC.Show.Show Network.Google.Resource.CloudMonitoring.MetricDescriptors.List.MetricDescriptorsList
instance GHC.Classes.Eq Network.Google.Resource.CloudMonitoring.MetricDescriptors.List.MetricDescriptorsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.CloudMonitoring.MetricDescriptors.List.MetricDescriptorsList


-- | 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.
--   
--   <i>See:</i> <a>Cloud Monitoring API Reference</a> for
--   <tt>cloudmonitoring.timeseries.list</tt>.
module Network.Google.Resource.CloudMonitoring.Timeseries.List

-- | A resource alias for <tt>cloudmonitoring.timeseries.list</tt> method
--   which the <a>TimeseriesList</a> 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)))))))))))))))

-- | Creates a value of <a>TimeseriesList</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tlWindow</a></li>
--   <li><a>tlProject</a></li>
--   <li><a>tlCount</a></li>
--   <li><a>tlPayload</a></li>
--   <li><a>tlAggregator</a></li>
--   <li><a>tlTimespan</a></li>
--   <li><a>tlMetric</a></li>
--   <li><a>tlOldest</a></li>
--   <li><a>tlLabels</a></li>
--   <li><a>tlPageToken</a></li>
--   <li><a>tlYoungest</a></li>
--   </ul>
timeseriesList :: Text -> ListTimeseriesRequest -> Text -> Text -> TimeseriesList

-- | 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.
--   
--   <i>See:</i> <a>timeseriesList</a> smart constructor.
data TimeseriesList

-- | 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)

-- | 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

-- | Maximum number of data points per page, which is used for pagination
--   of results.
tlCount :: Lens' TimeseriesList Int32

-- | Multipart request metadata.
tlPayload :: Lens' TimeseriesList ListTimeseriesRequest

-- | 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)

-- | 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)

-- | 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

-- | 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)

-- | 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]

-- | 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)

-- | End of the time interval (inclusive), which is expressed as an RFC
--   3339 timestamp.
tlYoungest :: Lens' TimeseriesList Text
instance GHC.Generics.Generic Network.Google.Resource.CloudMonitoring.Timeseries.List.TimeseriesList
instance Data.Data.Data Network.Google.Resource.CloudMonitoring.Timeseries.List.TimeseriesList
instance GHC.Show.Show Network.Google.Resource.CloudMonitoring.Timeseries.List.TimeseriesList
instance GHC.Classes.Eq Network.Google.Resource.CloudMonitoring.Timeseries.List.TimeseriesList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.CloudMonitoring.Timeseries.List.TimeseriesList


-- | 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.
--   
--   <i>See:</i> <a>Cloud Monitoring API Reference</a> for
--   <tt>cloudmonitoring.timeseries.write</tt>.
module Network.Google.Resource.CloudMonitoring.Timeseries.Write

-- | A resource alias for <tt>cloudmonitoring.timeseries.write</tt> method
--   which the <a>TimeseriesWrite</a> request conforms to.
type TimeseriesWriteResource = "cloudmonitoring" :> ("v2beta2" :> ("projects" :> (Capture "project" Text :> ("timeseries:write" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] WriteTimeseriesRequest :> Post '[JSON] WriteTimeseriesResponse))))))

-- | Creates a value of <a>TimeseriesWrite</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>twProject</a></li>
--   <li><a>twPayload</a></li>
--   </ul>
timeseriesWrite :: Text -> WriteTimeseriesRequest -> TimeseriesWrite

-- | 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.
--   
--   <i>See:</i> <a>timeseriesWrite</a> smart constructor.
data TimeseriesWrite

-- | The project ID. The value can be the numeric project ID or
--   string-based project name.
twProject :: Lens' TimeseriesWrite Text

-- | Multipart request metadata.
twPayload :: Lens' TimeseriesWrite WriteTimeseriesRequest
instance GHC.Generics.Generic Network.Google.Resource.CloudMonitoring.Timeseries.Write.TimeseriesWrite
instance Data.Data.Data Network.Google.Resource.CloudMonitoring.Timeseries.Write.TimeseriesWrite
instance GHC.Show.Show Network.Google.Resource.CloudMonitoring.Timeseries.Write.TimeseriesWrite
instance GHC.Classes.Eq Network.Google.Resource.CloudMonitoring.Timeseries.Write.TimeseriesWrite
instance Network.Google.Types.GoogleRequest Network.Google.Resource.CloudMonitoring.Timeseries.Write.TimeseriesWrite


-- | 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.
--   
--   <i>See:</i> <a>Cloud Monitoring API Reference</a> for
--   <tt>cloudmonitoring.timeseriesDescriptors.list</tt>.
module Network.Google.Resource.CloudMonitoring.TimeseriesDescriptors.List

-- | A resource alias for
--   <tt>cloudmonitoring.timeseriesDescriptors.list</tt> method which the
--   <a>TimeseriesDescriptorsList</a> 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)))))))))))))))

-- | Creates a value of <a>TimeseriesDescriptorsList</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tdlWindow</a></li>
--   <li><a>tdlProject</a></li>
--   <li><a>tdlCount</a></li>
--   <li><a>tdlPayload</a></li>
--   <li><a>tdlAggregator</a></li>
--   <li><a>tdlTimespan</a></li>
--   <li><a>tdlMetric</a></li>
--   <li><a>tdlOldest</a></li>
--   <li><a>tdlLabels</a></li>
--   <li><a>tdlPageToken</a></li>
--   <li><a>tdlYoungest</a></li>
--   </ul>
timeseriesDescriptorsList :: Text -> ListTimeseriesDescriptorsRequest -> Text -> Text -> TimeseriesDescriptorsList

-- | 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.
--   
--   <i>See:</i> <a>timeseriesDescriptorsList</a> smart constructor.
data TimeseriesDescriptorsList

-- | 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)

-- | 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

-- | Maximum number of time series descriptors per page. Used for
--   pagination. If not specified, count = 100.
tdlCount :: Lens' TimeseriesDescriptorsList Int32

-- | Multipart request metadata.
tdlPayload :: Lens' TimeseriesDescriptorsList ListTimeseriesDescriptorsRequest

-- | 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)

-- | 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)

-- | 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

-- | 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)

-- | 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]

-- | 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)

-- | End of the time interval (inclusive), which is expressed as an RFC
--   3339 timestamp.
tdlYoungest :: Lens' TimeseriesDescriptorsList Text
instance GHC.Generics.Generic Network.Google.Resource.CloudMonitoring.TimeseriesDescriptors.List.TimeseriesDescriptorsList
instance Data.Data.Data Network.Google.Resource.CloudMonitoring.TimeseriesDescriptors.List.TimeseriesDescriptorsList
instance GHC.Show.Show Network.Google.Resource.CloudMonitoring.TimeseriesDescriptors.List.TimeseriesDescriptorsList
instance GHC.Classes.Eq Network.Google.Resource.CloudMonitoring.TimeseriesDescriptors.List.TimeseriesDescriptorsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.CloudMonitoring.TimeseriesDescriptors.List.TimeseriesDescriptorsList


-- | Accesses Google Cloud Monitoring data.
--   
--   <i>See:</i> <a>Cloud Monitoring API Reference</a>
module Network.Google.CloudMonitoring

-- | Default request referring to version <tt>v2beta2</tt> of the Cloud
--   Monitoring API. This contains the host and root path used as a
--   starting point for constructing service requests.
cloudMonitoringService :: ServiceConfig

-- | View and manage your data across Google Cloud Platform services
cloudPlatformScope :: Proxy '["https://www.googleapis.com/auth/cloud-platform"]

-- | 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"]

-- | Represents the entirety of the methods and resources available for the
--   Cloud Monitoring API service.
type CloudMonitoringAPI = MetricDescriptorsListResource :<|> (MetricDescriptorsCreateResource :<|> (MetricDescriptorsDeleteResource :<|> (TimeseriesDescriptorsListResource :<|> (TimeseriesListResource :<|> TimeseriesWriteResource))))

-- | A type in a metric contains information about how the metric is
--   collected and what its data points look like.
--   
--   <i>See:</i> <a>metricDescriptorTypeDescriptor</a> smart constructor.
data MetricDescriptorTypeDescriptor

-- | Creates a value of <a>MetricDescriptorTypeDescriptor</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mdtdMetricType</a></li>
--   <li><a>mdtdValueType</a></li>
--   </ul>
metricDescriptorTypeDescriptor :: MetricDescriptorTypeDescriptor

-- | The method of collecting data for the metric. See Metric types.
mdtdMetricType :: Lens' MetricDescriptorTypeDescriptor (Maybe Text)

-- | The data type of of individual points in the metric's time series. See
--   Metric value types.
mdtdValueType :: Lens' MetricDescriptorTypeDescriptor (Maybe Text)

-- | The response of cloudmonitoring.timeseries.list
--   
--   <i>See:</i> <a>listTimeseriesResponse</a> smart constructor.
data ListTimeseriesResponse

-- | Creates a value of <a>ListTimeseriesResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltrNextPageToken</a></li>
--   <li><a>ltrKind</a></li>
--   <li><a>ltrOldest</a></li>
--   <li><a>ltrYoungest</a></li>
--   <li><a>ltrTimeseries</a></li>
--   </ul>
listTimeseriesResponse :: ListTimeseriesResponse

-- | 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)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "cloudmonitoring#listTimeseriesResponse".
ltrKind :: Lens' ListTimeseriesResponse Text

-- | The oldest timestamp of the interval of this query as an RFC 3339
--   string.
ltrOldest :: Lens' ListTimeseriesResponse (Maybe UTCTime)

-- | The youngest timestamp of the interval of this query as an RFC 3339
--   string.
ltrYoungest :: Lens' ListTimeseriesResponse (Maybe UTCTime)

-- | The returned time series.
ltrTimeseries :: Lens' ListTimeseriesResponse [Timeseries]

-- | A metricDescriptor defines the name, label keys, and data type of a
--   particular metric.
--   
--   <i>See:</i> <a>metricDescriptor</a> smart constructor.
data MetricDescriptor

-- | Creates a value of <a>MetricDescriptor</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mdProject</a></li>
--   <li><a>mdTypeDescriptor</a></li>
--   <li><a>mdName</a></li>
--   <li><a>mdLabels</a></li>
--   <li><a>mdDescription</a></li>
--   </ul>
metricDescriptor :: MetricDescriptor

-- | The project ID to which the metric belongs.
mdProject :: Lens' MetricDescriptor (Maybe Text)

-- | Type description for this metric.
mdTypeDescriptor :: Lens' MetricDescriptor (Maybe MetricDescriptorTypeDescriptor)

-- | The name of this metric.
mdName :: Lens' MetricDescriptor (Maybe Text)

-- | Labels defined for this metric.
mdLabels :: Lens' MetricDescriptor [MetricDescriptorLabelDescriptor]

-- | Description of this metric.
mdDescription :: Lens' MetricDescriptor (Maybe Text)

-- | The request of cloudmonitoring.timeseries.write
--   
--   <i>See:</i> <a>writeTimeseriesRequest</a> smart constructor.
data WriteTimeseriesRequest

-- | Creates a value of <a>WriteTimeseriesRequest</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>wtrCommonLabels</a></li>
--   <li><a>wtrTimeseries</a></li>
--   </ul>
writeTimeseriesRequest :: WriteTimeseriesRequest

-- | The label's name.
wtrCommonLabels :: Lens' WriteTimeseriesRequest (Maybe WriteTimeseriesRequestCommonLabels)

-- | 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]

-- | The label's name.
--   
--   <i>See:</i> <a>writeTimeseriesRequestCommonLabels</a> smart
--   constructor.
data WriteTimeseriesRequestCommonLabels

-- | Creates a value of <a>WriteTimeseriesRequestCommonLabels</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>wtrclAddtional</a></li>
--   </ul>
writeTimeseriesRequestCommonLabels :: HashMap Text Text -> WriteTimeseriesRequestCommonLabels

-- | The label's name.
wtrclAddtional :: Lens' WriteTimeseriesRequestCommonLabels (HashMap Text Text)

-- | 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.
--   
--   <i>See:</i> <a>metricDescriptorLabelDescriptor</a> smart constructor.
data MetricDescriptorLabelDescriptor

-- | Creates a value of <a>MetricDescriptorLabelDescriptor</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mdldKey</a></li>
--   <li><a>mdldDescription</a></li>
--   </ul>
metricDescriptorLabelDescriptor :: MetricDescriptorLabelDescriptor

-- | Label key.
mdldKey :: Lens' MetricDescriptorLabelDescriptor (Maybe Text)

-- | Label description.
mdldDescription :: Lens' MetricDescriptorLabelDescriptor (Maybe Text)

-- | 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.
--   
--   <i>See:</i> <a>pointDistributionUnderflowBucket</a> smart constructor.
data PointDistributionUnderflowBucket

-- | Creates a value of <a>PointDistributionUnderflowBucket</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pdubUpperBound</a></li>
--   <li><a>pdubCount</a></li>
--   </ul>
pointDistributionUnderflowBucket :: PointDistributionUnderflowBucket

-- | The upper bound of the value interval of this bucket (exclusive).
pdubUpperBound :: Lens' PointDistributionUnderflowBucket (Maybe Double)

-- | The number of events whose values are in the interval defined by this
--   bucket.
pdubCount :: Lens' PointDistributionUnderflowBucket (Maybe Int64)

-- | 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

-- | <pre>
--   max
--   </pre>
Max :: TimeseriesListAggregator

-- | <pre>
--   mean
--   </pre>
Mean :: TimeseriesListAggregator

-- | <pre>
--   min
--   </pre>
Min :: TimeseriesListAggregator

-- | <pre>
--   sum
--   </pre>
Sum :: TimeseriesListAggregator

-- | The response of cloudmonitoring.metricDescriptors.list.
--   
--   <i>See:</i> <a>listMetricDescriptorsResponse</a> smart constructor.
data ListMetricDescriptorsResponse

-- | Creates a value of <a>ListMetricDescriptorsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lmdrMetrics</a></li>
--   <li><a>lmdrNextPageToken</a></li>
--   <li><a>lmdrKind</a></li>
--   </ul>
listMetricDescriptorsResponse :: ListMetricDescriptorsResponse

-- | The returned metric descriptors.
lmdrMetrics :: Lens' ListMetricDescriptorsResponse [MetricDescriptor]

-- | 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)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "cloudmonitoring#listMetricDescriptorsResponse".
lmdrKind :: Lens' ListMetricDescriptorsResponse Text

-- | The request of cloudmonitoring.timeseriesDescriptors.list
--   
--   <i>See:</i> <a>listTimeseriesDescriptorsRequest</a> smart constructor.
data ListTimeseriesDescriptorsRequest

-- | Creates a value of <a>ListTimeseriesDescriptorsRequest</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltdrKind</a></li>
--   </ul>
listTimeseriesDescriptorsRequest :: ListTimeseriesDescriptorsRequest

-- | Identifies what kind of resource this is. Value: the fixed string
--   "cloudmonitoring#listTimeseriesDescriptorsRequest".
ltdrKind :: Lens' ListTimeseriesDescriptorsRequest Text

-- | The label's name.
--   
--   <i>See:</i> <a>timeseriesDescriptorLabels</a> smart constructor.
data TimeseriesDescriptorLabels

-- | Creates a value of <a>TimeseriesDescriptorLabels</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tdlAddtional</a></li>
--   </ul>
timeseriesDescriptorLabels :: HashMap Text Text -> TimeseriesDescriptorLabels

-- | The label's name.
tdlAddtional :: Lens' TimeseriesDescriptorLabels (HashMap Text Text)

-- | 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).
--   
--   <i>See:</i> <a>pointDistributionBucket</a> smart constructor.
data PointDistributionBucket

-- | Creates a value of <a>PointDistributionBucket</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pdbUpperBound</a></li>
--   <li><a>pdbCount</a></li>
--   <li><a>pdbLowerBound</a></li>
--   </ul>
pointDistributionBucket :: PointDistributionBucket

-- | The upper bound of the value interval of this bucket (exclusive).
pdbUpperBound :: Lens' PointDistributionBucket (Maybe Double)

-- | The number of events whose values are in the interval defined by this
--   bucket.
pdbCount :: Lens' PointDistributionBucket (Maybe Int64)

-- | The lower bound of the value interval of this bucket (inclusive).
pdbLowerBound :: Lens' PointDistributionBucket (Maybe Double)

-- | The response of cloudmonitoring.timeseries.write
--   
--   <i>See:</i> <a>writeTimeseriesResponse</a> smart constructor.
data WriteTimeseriesResponse

-- | Creates a value of <a>WriteTimeseriesResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>wtrKind</a></li>
--   </ul>
writeTimeseriesResponse :: WriteTimeseriesResponse

-- | Identifies what kind of resource this is. Value: the fixed string
--   "cloudmonitoring#writeTimeseriesResponse".
wtrKind :: Lens' WriteTimeseriesResponse Text
data TimeseriesDescriptorLabel

-- | Creates a value of <a>TimeseriesDescriptorLabel</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tdlValue</a></li>
--   <li><a>tdlKey</a></li>
--   </ul>
timeseriesDescriptorLabel :: TimeseriesDescriptorLabel

-- | The label's value.
tdlValue :: Lens' TimeseriesDescriptorLabel (Maybe Text)

-- | The label's name.
tdlKey :: Lens' TimeseriesDescriptorLabel (Maybe Text)

-- | 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.
--   
--   <i>See:</i> <a>pointDistribution</a> smart constructor.
data PointDistribution

-- | Creates a value of <a>PointDistribution</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pdOverflowBucket</a></li>
--   <li><a>pdBuckets</a></li>
--   <li><a>pdUnderflowBucket</a></li>
--   </ul>
pointDistribution :: PointDistribution

-- | The overflow bucket.
pdOverflowBucket :: Lens' PointDistribution (Maybe PointDistributionOverflowBucket)

-- | The finite buckets.
pdBuckets :: Lens' PointDistribution [PointDistributionBucket]

-- | The underflow bucket.
pdUnderflowBucket :: Lens' PointDistribution (Maybe PointDistributionUnderflowBucket)

-- | Point is a single point in a time series. It consists of a start time,
--   an end time, and a value.
--   
--   <i>See:</i> <a>point</a> smart constructor.
data Point

-- | Creates a value of <a>Point</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pBoolValue</a></li>
--   <li><a>pStart</a></li>
--   <li><a>pDoubleValue</a></li>
--   <li><a>pStringValue</a></li>
--   <li><a>pDistributionValue</a></li>
--   <li><a>pEnd</a></li>
--   <li><a>pInt64Value</a></li>
--   </ul>
point :: Point

-- | The value of this data point. Either "true" or "false".
pBoolValue :: Lens' Point (Maybe Bool)

-- | 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)

-- | The value of this data point as a double-precision floating-point
--   number.
pDoubleValue :: Lens' Point (Maybe Double)

-- | The value of this data point in string format.
pStringValue :: Lens' Point (Maybe Text)

-- | 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)

-- | 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)

-- | The value of this data point as a 64-bit integer.
pInt64Value :: Lens' Point (Maybe Int64)

-- | 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.
--   
--   <i>See:</i> <a>pointDistributionOverflowBucket</a> smart constructor.
data PointDistributionOverflowBucket

-- | Creates a value of <a>PointDistributionOverflowBucket</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pdobCount</a></li>
--   <li><a>pdobLowerBound</a></li>
--   </ul>
pointDistributionOverflowBucket :: PointDistributionOverflowBucket

-- | The number of events whose values are in the interval defined by this
--   bucket.
pdobCount :: Lens' PointDistributionOverflowBucket (Maybe Int64)

-- | The lower bound of the value interval of this bucket (inclusive).
pdobLowerBound :: Lens' PointDistributionOverflowBucket (Maybe Double)

-- | The response of cloudmonitoring.timeseriesDescriptors.list
--   
--   <i>See:</i> <a>listTimeseriesDescriptorsResponse</a> smart
--   constructor.
data ListTimeseriesDescriptorsResponse

-- | Creates a value of <a>ListTimeseriesDescriptorsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lNextPageToken</a></li>
--   <li><a>lKind</a></li>
--   <li><a>lOldest</a></li>
--   <li><a>lYoungest</a></li>
--   <li><a>lTimeseries</a></li>
--   </ul>
listTimeseriesDescriptorsResponse :: ListTimeseriesDescriptorsResponse

-- | 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)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "cloudmonitoring#listTimeseriesDescriptorsResponse".
lKind :: Lens' ListTimeseriesDescriptorsResponse Text

-- | The oldest timestamp of the interval of this query, as an RFC 3339
--   string.
lOldest :: Lens' ListTimeseriesDescriptorsResponse (Maybe UTCTime)

-- | The youngest timestamp of the interval of this query, as an RFC 3339
--   string.
lYoungest :: Lens' ListTimeseriesDescriptorsResponse (Maybe UTCTime)

-- | The returned time series descriptors.
lTimeseries :: Lens' ListTimeseriesDescriptorsResponse [TimeseriesDescriptor]

-- | The request of cloudmonitoring.metricDescriptors.list.
--   
--   <i>See:</i> <a>listMetricDescriptorsRequest</a> smart constructor.
data ListMetricDescriptorsRequest

-- | Creates a value of <a>ListMetricDescriptorsRequest</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lisKind</a></li>
--   </ul>
listMetricDescriptorsRequest :: ListMetricDescriptorsRequest

-- | Identifies what kind of resource this is. Value: the fixed string
--   "cloudmonitoring#listMetricDescriptorsRequest".
lisKind :: Lens' ListMetricDescriptorsRequest Text

-- | When writing time series, TimeseriesPoint should be used instead of
--   Timeseries, to enforce single point for each time series in the
--   timeseries.write request.
--   
--   <i>See:</i> <a>timeseriesPoint</a> smart constructor.
data TimeseriesPoint

-- | Creates a value of <a>TimeseriesPoint</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tpPoint</a></li>
--   <li><a>tpTimeseriesDesc</a></li>
--   </ul>
timeseriesPoint :: TimeseriesPoint

-- | The data point in this time series snapshot.
tpPoint :: Lens' TimeseriesPoint (Maybe Point)

-- | The descriptor of this time series.
tpTimeseriesDesc :: Lens' TimeseriesPoint (Maybe TimeseriesDescriptor)

-- | 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

-- | <pre>
--   max
--   </pre>
TDLAMax :: TimeseriesDescriptorsListAggregator

-- | <pre>
--   mean
--   </pre>
TDLAMean :: TimeseriesDescriptorsListAggregator

-- | <pre>
--   min
--   </pre>
TDLAMin :: TimeseriesDescriptorsListAggregator

-- | <pre>
--   sum
--   </pre>
TDLASum :: TimeseriesDescriptorsListAggregator

-- | The response of cloudmonitoring.metricDescriptors.delete.
--   
--   <i>See:</i> <a>deleteMetricDescriptorResponse</a> smart constructor.
data DeleteMetricDescriptorResponse

-- | Creates a value of <a>DeleteMetricDescriptorResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dmdrKind</a></li>
--   </ul>
deleteMetricDescriptorResponse :: DeleteMetricDescriptorResponse

-- | Identifies what kind of resource this is. Value: the fixed string
--   "cloudmonitoring#deleteMetricDescriptorResponse".
dmdrKind :: Lens' DeleteMetricDescriptorResponse Text

-- | The request of cloudmonitoring.timeseries.list
--   
--   <i>See:</i> <a>listTimeseriesRequest</a> smart constructor.
data ListTimeseriesRequest

-- | Creates a value of <a>ListTimeseriesRequest</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltrtKind</a></li>
--   </ul>
listTimeseriesRequest :: ListTimeseriesRequest

-- | Identifies what kind of resource this is. Value: the fixed string
--   "cloudmonitoring#listTimeseriesRequest".
ltrtKind :: Lens' ListTimeseriesRequest Text

-- | TimeseriesDescriptor identifies a single time series.
--   
--   <i>See:</i> <a>timeseriesDescriptor</a> smart constructor.
data TimeseriesDescriptor

-- | Creates a value of <a>TimeseriesDescriptor</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tdProject</a></li>
--   <li><a>tdMetric</a></li>
--   <li><a>tdLabels</a></li>
--   </ul>
timeseriesDescriptor :: TimeseriesDescriptor

-- | The Developers Console project number to which this time series
--   belongs.
tdProject :: Lens' TimeseriesDescriptor (Maybe Text)

-- | The name of the metric.
tdMetric :: Lens' TimeseriesDescriptor (Maybe Text)

-- | The label's name.
tdLabels :: Lens' TimeseriesDescriptor (Maybe TimeseriesDescriptorLabels)

-- | 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.
--   
--   <i>See:</i> <a>timeseries</a> smart constructor.
data Timeseries

-- | Creates a value of <a>Timeseries</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tPoints</a></li>
--   <li><a>tTimeseriesDesc</a></li>
--   </ul>
timeseries :: Timeseries

-- | 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]

-- | The descriptor of this time series.
tTimeseriesDesc :: Lens' Timeseries (Maybe TimeseriesDescriptor)
