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


-- | Google Stackdriver Monitoring SDK.
--   
--   Manages your Stackdriver Monitoring data and configurations. Most
--   projects must be associated with a Stackdriver account, with a few
--   exceptions as noted on the individual method pages.
--   
--   <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>v3</tt> of the API.
@package gogol-monitoring
@version 0.3.0


module Network.Google.Monitoring.Types

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

-- | View monitoring data for all of your Google Cloud and third-party
--   projects
monitoringReadScope :: Proxy '["https://www.googleapis.com/auth/monitoring.read"]

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

-- | Publish metric data to your Google Cloud projects
monitoringWriteScope :: Proxy '["https://www.googleapis.com/auth/monitoring.write"]

-- | Whether the measurement is an integer, a floating-point number, etc.
--   Some combinations of metric_kind and value_type might not be
--   supported.
data MetricDescriptorValueType

-- | <tt>VALUE_TYPE_UNSPECIFIED</tt> Do not use this default value.
MDVTValueTypeUnspecified :: MetricDescriptorValueType

-- | <tt>BOOL</tt> The value is a boolean. This value type can be used only
--   if the metric kind is GAUGE.
MDVTBool :: MetricDescriptorValueType

-- | <tt>INT64</tt> The value is a signed 64-bit integer.
MDVTINT64 :: MetricDescriptorValueType

-- | <tt>DOUBLE</tt> The value is a double precision floating point number.
MDVTDouble :: MetricDescriptorValueType

-- | <tt>STRING</tt> The value is a text string. This value type can be
--   used only if the metric kind is GAUGE.
MDVTString :: MetricDescriptorValueType

-- | <tt>DISTRIBUTION</tt> The value is a Distribution.
MDVTDistribution :: MetricDescriptorValueType

-- | <tt>MONEY</tt> The value is money.
MDVTMoney :: MetricDescriptorValueType

-- | An object that describes the schema of a MonitoredResource object
--   using a type name and a set of labels. For example, the monitored
--   resource descriptor for Google Compute Engine VM instances has a type
--   of "gce_instance" and specifies the use of the labels "instance_id"
--   and "zone" to identify particular VM instances.Different APIs can
--   support different monitored resource types. APIs generally provide a
--   list method that returns the monitored resource descriptors used by
--   the API.
--   
--   <i>See:</i> <a>monitoredResourceDescriptor</a> smart constructor.
data MonitoredResourceDescriptor

-- | Creates a value of <a>MonitoredResourceDescriptor</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>mrdName</a></li>
--   <li><a>mrdDisplayName</a></li>
--   <li><a>mrdLabels</a></li>
--   <li><a>mrdType</a></li>
--   <li><a>mrdDescription</a></li>
--   </ul>
monitoredResourceDescriptor :: MonitoredResourceDescriptor

-- | Optional. The resource name of the monitored resource descriptor:
--   "projects/{project_id}/monitoredResourceDescriptors/{type}" where
--   {type} is the value of the type field in this object and {project_id}
--   is a project ID that provides API-specific context for accessing the
--   type. APIs that do not use project information can use the resource
--   name format "monitoredResourceDescriptors/{type}".
mrdName :: Lens' MonitoredResourceDescriptor (Maybe Text)

-- | Optional. A concise name for the monitored resource type that might be
--   displayed in user interfaces. It should be a Title Cased Noun Phrase,
--   without any article or other determiners. For example, "Google Cloud
--   SQL Database".
mrdDisplayName :: Lens' MonitoredResourceDescriptor (Maybe Text)

-- | Required. A set of labels used to describe instances of this monitored
--   resource type. For example, an individual Google Cloud SQL database is
--   identified by values for the labels "database_id" and "zone".
mrdLabels :: Lens' MonitoredResourceDescriptor [LabelDescriptor]

-- | Required. The monitored resource type. For example, the type
--   "cloudsql_database" represents databases in Google Cloud SQL. The
--   maximum length of this value is 256 characters.
mrdType :: Lens' MonitoredResourceDescriptor (Maybe Text)

-- | Optional. A detailed description of the monitored resource type that
--   might be used in documentation.
mrdDescription :: Lens' MonitoredResourceDescriptor (Maybe Text)

-- | The type of measurement.
data CollectdValueDataSourceType

-- | <tt>UNSPECIFIED_DATA_SOURCE_TYPE</tt> An unspecified data source type.
--   This corresponds to
--   google.api.MetricDescriptor.MetricKind.METRIC_KIND_UNSPECIFIED.
UnspecifiedDataSourceType :: CollectdValueDataSourceType

-- | <tt>GAUGE</tt> An instantaneous measurement of a varying quantity.
--   This corresponds to google.api.MetricDescriptor.MetricKind.GAUGE.
Gauge :: CollectdValueDataSourceType

-- | <tt>COUNTER</tt> A cumulative value over time. This corresponds to
--   google.api.MetricDescriptor.MetricKind.CUMULATIVE.
Counter :: CollectdValueDataSourceType

-- | <tt>DERIVE</tt> A rate of change of the measurement.
Derive :: CollectdValueDataSourceType

-- | <tt>ABSOLUTE</tt> An amount of change since the last measurement
--   interval. This corresponds to
--   google.api.MetricDescriptor.MetricKind.DELTA.
Absolute :: CollectdValueDataSourceType

-- | The ListTimeSeries response.
--   
--   <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>ltsrNextPageToken</a></li>
--   <li><a>ltsrTimeSeries</a></li>
--   </ul>
listTimeSeriesResponse :: ListTimeSeriesResponse

-- | If there are more results than have been returned, then this field is
--   set to a non-empty value. To see the additional results, use that
--   value as pageToken in the next call to this method.
ltsrNextPageToken :: Lens' ListTimeSeriesResponse (Maybe Text)

-- | One or more time series that match the filter included in the request.
ltsrTimeSeries :: Lens' ListTimeSeriesResponse [TimeSeries]

-- | The MetricAssociations response.
--   
--   <i>See:</i> <a>listMetricAssociationsResponse</a> smart constructor.
data ListMetricAssociationsResponse

-- | Creates a value of <a>ListMetricAssociationsResponse</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>lmarNextPageToken</a></li>
--   <li><a>lmarMetricAssociations</a></li>
--   </ul>
listMetricAssociationsResponse :: ListMetricAssociationsResponse

-- | If there are more results than have been returned, then this field is
--   set to a non-empty value. To see the additional results, use that
--   value as pageToken in the next call to this method.
lmarNextPageToken :: Lens' ListMetricAssociationsResponse (Maybe Text)

-- | The MetricAssociations that match the specified filters.
lmarMetricAssociations :: Lens' ListMetricAssociationsResponse [MetricAssociation]

-- | Defines a metric type and its schema. Once a metric descriptor is
--   created, deleting or altering it stops data collection and makes the
--   metric type's existing data unusable.
--   
--   <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>mdMetricKind</a></li>
--   <li><a>mdName</a></li>
--   <li><a>mdDisplayName</a></li>
--   <li><a>mdLabels</a></li>
--   <li><a>mdType</a></li>
--   <li><a>mdValueType</a></li>
--   <li><a>mdDescription</a></li>
--   <li><a>mdUnit</a></li>
--   </ul>
metricDescriptor :: MetricDescriptor

-- | Whether the metric records instantaneous values, changes to a value,
--   etc. Some combinations of metric_kind and value_type might not be
--   supported.
mdMetricKind :: Lens' MetricDescriptor (Maybe MetricDescriptorMetricKind)

-- | The resource name of the metric descriptor. Depending on the
--   implementation, the name typically includes: (1) the parent resource
--   name that defines the scope of the metric type or of its data; and (2)
--   the metric's URL-encoded type, which also appears in the type field of
--   this descriptor. For example, following is the resource name of a
--   custom metric within the GCP project my-project-id:
--   "projects/my-project-id/metricDescriptors/custom.googleapis.com%2Finvoice%2Fpaid%2Famount"
mdName :: Lens' MetricDescriptor (Maybe Text)

-- | A concise name for the metric, which can be displayed in user
--   interfaces. Use sentence case without an ending period, for example
--   "Request count".
mdDisplayName :: Lens' MetricDescriptor (Maybe Text)

-- | The set of labels that can be used to describe a specific instance of
--   this metric type. For example, the
--   appengine.googleapis.com/http/server/response_latencies metric type
--   has a label for the HTTP response code, response_code, so you can look
--   at latencies for successful responses or just for responses that
--   failed.
mdLabels :: Lens' MetricDescriptor [LabelDescriptor]

-- | The metric type, including its DNS name prefix. The type is not
--   URL-encoded. All user-defined custom metric types have the DNS name
--   custom.googleapis.com. Metric types should use a natural hierarchical
--   grouping. For example: "custom.googleapis.com/invoice/paid/amount"
--   "appengine.googleapis.com/http/server/response_latencies"
mdType :: Lens' MetricDescriptor (Maybe Text)

-- | Whether the measurement is an integer, a floating-point number, etc.
--   Some combinations of metric_kind and value_type might not be
--   supported.
mdValueType :: Lens' MetricDescriptor (Maybe MetricDescriptorValueType)

-- | A detailed description of the metric, which can be used in
--   documentation.
mdDescription :: Lens' MetricDescriptor (Maybe Text)

-- | The unit in which the metric value is reported. It is only applicable
--   if the value_type is INT64, DOUBLE, or DISTRIBUTION. The supported
--   units are a subset of The Unified Code for Units of Measure
--   (http://unitsofmeasure.org/ucum.html) standard:Basic units (UNIT) bit
--   bit By byte s second min minute h hour d dayPrefixes (PREFIX) k kilo
--   (10**3) M mega (10**6) G giga (10**9) T tera (10**12) P peta (10**15)
--   E exa (10**18) Z zetta (10**21) Y yotta (10**24) m milli (10**-3) u
--   micro (10**-6) n nano (10**-9) p pico (10**-12) f femto (10**-15) a
--   atto (10**-18) z zepto (10**-21) y yocto (10**-24) Ki kibi (2**10) Mi
--   mebi (2**20) Gi gibi (2**30) Ti tebi (2**40)GrammarThe grammar
--   includes the dimensionless unit 1, such as 1/s.The grammar also
--   includes these connectors: / division (as an infix operator, e.g.
--   1/s). . multiplication (as an infix operator, e.g. GBy.d)The grammar
--   for a unit is as follows: Expression = Component { "." Component } {
--   "/" Component } ; Component = [ PREFIX ] UNIT [ Annotation ] |
--   Annotation | "1" ; Annotation = "{" NAME "}" ; Notes: Annotation is
--   just a comment if it follows a UNIT and is equivalent to 1 if it is
--   used alone. For examples, {requests}/s == 1/s, By{transmitted}/s ==
--   By/s. NAME is a sequence of non-blank printable ASCII characters not
--   containing '{' or '}'.
mdUnit :: Lens' MetricDescriptor (Maybe Text)

-- | The description of a dynamic collection of monitored resources. Each
--   group has a filter that is matched against monitored resources and
--   their associated metadata. If a group's filter matches an available
--   monitored resource, then that resource is a member of that group.
--   Groups can contain any number of monitored resources, and each
--   monitored resource can be a member of any number of groups.Groups can
--   be nested in parent-child hierarchies. The parentName field identifies
--   an optional parent for each group. If a group has a parent, then the
--   only monitored resources available to be matched by the group's filter
--   are the resources contained in the parent group. In other words, a
--   group contains the monitored resources that match its filter and the
--   filters of all the group's ancestors. A group without a parent can
--   contain any monitored resource.For example, consider an infrastructure
--   running a set of instances with two user-defined tags: "environment"
--   and "role". A parent group has a filter, environment="production". A
--   child of that parent group has a filter, role="transcoder". The parent
--   group contains all instances in the production environment, regardless
--   of their roles. The child group contains instances that have the
--   transcoder role and are in the production environment.The monitored
--   resources contained in a group can change at any moment, depending on
--   what resources exist and what filters are associated with the group
--   and its ancestors.
--   
--   <i>See:</i> <a>group'</a> smart constructor.
data Group

-- | Creates a value of <a>Group</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>gName</a></li>
--   <li><a>gDisplayName</a></li>
--   <li><a>gFilter</a></li>
--   <li><a>gIsCluster</a></li>
--   <li><a>gParentName</a></li>
--   </ul>
group' :: Group

-- | Output only. The name of this group. The format is
--   "projects/{project_id_or_number}/groups/{group_id}". When creating a
--   group, this field is ignored and a new name is created consisting of
--   the project specified in the call to CreateGroup and a unique
--   {group_id} that is generated automatically.
gName :: Lens' Group (Maybe Text)

-- | A user-assigned name for this group, used only for display purposes.
gDisplayName :: Lens' Group (Maybe Text)

-- | The filter used to determine which monitored resources belong to this
--   group.
gFilter :: Lens' Group (Maybe Text)

-- | If true, the members of this group are considered to be a cluster. The
--   system can perform additional analysis on groups that are clusters.
gIsCluster :: Lens' Group (Maybe Bool)

-- | The name of the group's parent, if it has one. The format is
--   "projects/{project_id_or_number}/groups/{group_id}". For groups with
--   no parent, parentName is the empty string, "".
gParentName :: Lens' Group (Maybe Text)

-- | A single strongly-typed value.
--   
--   <i>See:</i> <a>typedValue</a> smart constructor.
data TypedValue

-- | Creates a value of <a>TypedValue</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>tvBoolValue</a></li>
--   <li><a>tvDoubleValue</a></li>
--   <li><a>tvStringValue</a></li>
--   <li><a>tvDistributionValue</a></li>
--   <li><a>tvInt64Value</a></li>
--   </ul>
typedValue :: TypedValue

-- | A Boolean value: true or false.
tvBoolValue :: Lens' TypedValue (Maybe Bool)

-- | A 64-bit double-precision floating-point number. Its magnitude is
--   approximately ±10±300 and it has 16 significant digits of precision.
tvDoubleValue :: Lens' TypedValue (Maybe Double)

-- | A variable-length string value.
tvStringValue :: Lens' TypedValue (Maybe Text)

-- | A distribution value.
tvDistributionValue :: Lens' TypedValue (Maybe Distribution)

-- | A 64-bit integer. Its range is approximately ±9.2x1018.
tvInt64Value :: Lens' TypedValue (Maybe Int64)

-- | Required. Values for all of the labels listed in the associated
--   monitored resource descriptor. For example, Cloud SQL databases use
--   the labels "database_id" and "zone".
--   
--   <i>See:</i> <a>monitoredResourceLabels</a> smart constructor.
data MonitoredResourceLabels

-- | Creates a value of <a>MonitoredResourceLabels</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>mrlAddtional</a></li>
--   </ul>
monitoredResourceLabels :: HashMap Text Text -> MonitoredResourceLabels
mrlAddtional :: Lens' MonitoredResourceLabels (HashMap Text Text)

-- | SourceContext represents information about the source of a protobuf
--   element, like the file in which it is defined.
--   
--   <i>See:</i> <a>sourceContext</a> smart constructor.
data SourceContext

-- | Creates a value of <a>SourceContext</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>scFileName</a></li>
--   </ul>
sourceContext :: SourceContext

-- | The path-qualified name of the .proto file that contained the
--   associated protobuf element. For example:
--   "google/protobuf/source_context.proto".
scFileName :: Lens' SourceContext (Maybe Text)

-- | Distribution contains summary statistics for a population of values
--   and, optionally, a histogram representing the distribution of those
--   values across a specified set of histogram buckets.The summary
--   statistics are the count, mean, sum of the squared deviation from the
--   mean, the minimum, and the maximum of the set of population of
--   values.The histogram is based on a sequence of buckets and gives a
--   count of values that fall into each bucket. The boundaries of the
--   buckets are given either explicitly or by specifying parameters for a
--   method of computing them (buckets of fixed width or buckets of
--   exponentially increasing width).Although it is not forbidden, it is
--   generally a bad idea to include non-finite values (infinities or NaNs)
--   in the population of values, as this will render the mean and
--   sum_of_squared_deviation fields meaningless.
--   
--   <i>See:</i> <a>distribution</a> smart constructor.
data Distribution

-- | Creates a value of <a>Distribution</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>dSumOfSquaredDeviation</a></li>
--   <li><a>dMean</a></li>
--   <li><a>dCount</a></li>
--   <li><a>dBucketCounts</a></li>
--   <li><a>dRange</a></li>
--   <li><a>dBucketOptions</a></li>
--   </ul>
distribution :: Distribution

-- | The sum of squared deviations from the mean of the values in the
--   population. For values x_i this is: Sum[i=1..n]((x_i - mean)^2) Knuth,
--   "The Art of Computer Programming", Vol. 2, page 323, 3rd edition
--   describes Welford's method for accumulating this sum in one pass.If
--   count is zero then this field must be zero.
dSumOfSquaredDeviation :: Lens' Distribution (Maybe Double)

-- | The arithmetic mean of the values in the population. If count is zero
--   then this field must be zero.
dMean :: Lens' Distribution (Maybe Double)

-- | The number of values in the population. Must be non-negative.
dCount :: Lens' Distribution (Maybe Int64)

-- | If bucket_options is given, then the sum of the values in
--   bucket_counts must equal the value in count. If bucket_options is not
--   given, no bucket_counts fields may be given.Bucket counts are given in
--   order under the numbering scheme described above (the underflow bucket
--   has number 0; the finite buckets, if any, have numbers 1 through N-2;
--   the overflow bucket has number N-1).The size of bucket_counts must be
--   no greater than N as defined in bucket_options.Any suffix of trailing
--   zero bucket_count fields may be omitted.
dBucketCounts :: Lens' Distribution [Int64]

-- | If specified, contains the range of the population values. The field
--   must not be present if the count is zero. This field is presently
--   ignored by the Stackdriver Monitoring API v3.
dRange :: Lens' Distribution (Maybe Range)

-- | Defines the histogram bucket boundaries.
dBucketOptions :: Lens' Distribution (Maybe BucketOptions)

-- | A single field of a message type.
--   
--   <i>See:</i> <a>field</a> smart constructor.
data Field

-- | Creates a value of <a>Field</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>fKind</a></li>
--   <li><a>fOneofIndex</a></li>
--   <li><a>fName</a></li>
--   <li><a>fJSONName</a></li>
--   <li><a>fCardinality</a></li>
--   <li><a>fOptions</a></li>
--   <li><a>fPacked</a></li>
--   <li><a>fDefaultValue</a></li>
--   <li><a>fNumber</a></li>
--   <li><a>fTypeURL</a></li>
--   </ul>
field :: Field

-- | The field type.
fKind :: Lens' Field (Maybe FieldKind)

-- | The index of the field type in Type.oneofs, for message or enumeration
--   types. The first type has index 1; zero means the type is not in the
--   list.
fOneofIndex :: Lens' Field (Maybe Int32)

-- | The field name.
fName :: Lens' Field (Maybe Text)

-- | The field JSON name.
fJSONName :: Lens' Field (Maybe Text)

-- | The field cardinality.
fCardinality :: Lens' Field (Maybe FieldCardinality)

-- | The protocol buffer options.
fOptions :: Lens' Field [Option]

-- | Whether to use alternative packed wire representation.
fPacked :: Lens' Field (Maybe Bool)

-- | The string value of the default value of this field. Proto2 syntax
--   only.
fDefaultValue :: Lens' Field (Maybe Text)

-- | The field number.
fNumber :: Lens' Field (Maybe Int32)

-- | The field type URL, without the scheme, for message or enumeration
--   types. Example: "type.googleapis.com/google.protobuf.Timestamp".
fTypeURL :: Lens' Field (Maybe Text)

-- | The field type.
data FieldKind

-- | <tt>TYPE_UNKNOWN</tt> Field type unknown.
TypeUnknown :: FieldKind

-- | <tt>TYPE_DOUBLE</tt> Field type double.
TypeDouble :: FieldKind

-- | <tt>TYPE_FLOAT</tt> Field type float.
TypeFloat :: FieldKind

-- | <tt>TYPE_INT64</tt> Field type int64.
TypeINT64 :: FieldKind

-- | <tt>TYPE_UINT64</tt> Field type uint64.
TypeUINT64 :: FieldKind

-- | <tt>TYPE_INT32</tt> Field type int32.
TypeINT32 :: FieldKind

-- | <tt>TYPE_FIXED64</tt> Field type fixed64.
TypeFIXED64 :: FieldKind

-- | <tt>TYPE_FIXED32</tt> Field type fixed32.
TypeFIXED32 :: FieldKind

-- | <tt>TYPE_BOOL</tt> Field type bool.
TypeBool :: FieldKind

-- | <tt>TYPE_STRING</tt> Field type string.
TypeString :: FieldKind

-- | <tt>TYPE_GROUP</tt> Field type group. Proto2 syntax only, and
--   deprecated.
TypeGroup :: FieldKind

-- | <tt>TYPE_MESSAGE</tt> Field type message.
TypeMessage :: FieldKind

-- | <tt>TYPE_BYTES</tt> Field type bytes.
TypeBytes :: FieldKind

-- | <tt>TYPE_UINT32</tt> Field type uint32.
TypeUINT32 :: FieldKind

-- | <tt>TYPE_ENUM</tt> Field type enum.
TypeEnum :: FieldKind

-- | <tt>TYPE_SFIXED32</tt> Field type sfixed32.
TypeSFIXED32 :: FieldKind

-- | <tt>TYPE_SFIXED64</tt> Field type sfixed64.
TypeSFIXED64 :: FieldKind

-- | <tt>TYPE_SINT32</tt> Field type sint32.
TypeSINT32 :: FieldKind

-- | <tt>TYPE_SINT64</tt> Field type sint64.
TypeSINT64 :: FieldKind

-- | A Vital Signs MetricAssociation, representing the inclusion of its
--   referenced metric type within its parent category.
--   
--   <i>See:</i> <a>metricAssociation</a> smart constructor.
data MetricAssociation

-- | Creates a value of <a>MetricAssociation</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>maMetricType</a></li>
--   <li><a>maName</a></li>
--   <li><a>maIsDefault</a></li>
--   </ul>
metricAssociation :: MetricAssociation

-- | Resource name of the metric. It must be the full resource name. For
--   example, "compute.googleapis.com/instance/cpu/utilization".
maMetricType :: Lens' MetricAssociation (Maybe Text)

-- | Resource name for the metric association.
maName :: Lens' MetricAssociation (Maybe Text)

-- | A flag to indicate whether this association is part of Stackdriver's
--   default taxonomy.
maIsDefault :: Lens' MetricAssociation (Maybe Bool)

-- | A generic empty message that you can re-use to avoid defining
--   duplicated empty messages in your APIs. A typical example is to use it
--   as the request or the response type of an API method. For instance:
--   service Foo { rpc Bar(google.protobuf.Empty) returns
--   (google.protobuf.Empty); } The JSON representation for Empty is empty
--   JSON object {}.
--   
--   <i>See:</i> <a>empty</a> smart constructor.
data Empty

-- | Creates a value of <a>Empty</a> with the minimum fields required to
--   make a request.
empty :: Empty

-- | The ListGroups response.
--   
--   <i>See:</i> <a>listGroupsResponse</a> smart constructor.
data ListGroupsResponse

-- | Creates a value of <a>ListGroupsResponse</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>lgrNextPageToken</a></li>
--   <li><a>lgrGroup</a></li>
--   </ul>
listGroupsResponse :: ListGroupsResponse

-- | If there are more results than have been returned, then this field is
--   set to a non-empty value. To see the additional results, use that
--   value as pageToken in the next call to this method.
lgrNextPageToken :: Lens' ListGroupsResponse (Maybe Text)

-- | The groups that match the specified filters.
lgrGroup :: Lens' ListGroupsResponse [Group]

-- | The ListMetricDescriptors response.
--   
--   <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>lmdrMetricDescriptors</a></li>
--   <li><a>lmdrNextPageToken</a></li>
--   </ul>
listMetricDescriptorsResponse :: ListMetricDescriptorsResponse

-- | The metric descriptors that are available to the project and that
--   match the value of filter, if present.
lmdrMetricDescriptors :: Lens' ListMetricDescriptorsResponse [MetricDescriptor]

-- | If there are more results than have been returned, then this field is
--   set to a non-empty value. To see the additional results, use that
--   value as pageToken in the next call to this method.
lmdrNextPageToken :: Lens' ListMetricDescriptorsResponse (Maybe Text)

-- | The option's value packed in an Any message. If the value is a
--   primitive, the corresponding wrapper type defined in
--   google/protobuf/wrappers.proto should be used. If the value is an
--   enum, it should be stored as an int32 value using the
--   google.protobuf.Int32Value type.
--   
--   <i>See:</i> <a>optionValue</a> smart constructor.
data OptionValue

-- | Creates a value of <a>OptionValue</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>ovAddtional</a></li>
--   </ul>
optionValue :: HashMap Text JSONValue -> OptionValue

-- | Properties of the object. Contains field 'type with type URL.
ovAddtional :: Lens' OptionValue (HashMap Text JSONValue)

-- | A Vital Signs Category.
--   
--   <i>See:</i> <a>category</a> smart constructor.
data Category

-- | Creates a value of <a>Category</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>cShortName</a></li>
--   <li><a>cName</a></li>
--   <li><a>cDisplayName</a></li>
--   <li><a>cDescription</a></li>
--   <li><a>cIsDefault</a></li>
--   </ul>
category :: Category

-- | Unique usually one-word name for this category. e.g. latency or
--   custom:goodness
cShortName :: Lens' Category (Maybe Text)

-- | Resource name for the category. e.g. projects/91091/categories/latency
--   or projects/91091/categories/custom:goodness
cName :: Lens' Category (Maybe Text)

-- | A human-readable name for the category.
cDisplayName :: Lens' Category (Maybe Text)

-- | A human-readable description for the category. The description can be
--   longer and contain more details.
cDescription :: Lens' Category (Maybe Text)

-- | A flag to indicate whether this category is part of Stackdriver's
--   default taxonomy.
cIsDefault :: Lens' Category (Maybe Bool)

-- | The CreateTimeSeries request.
--   
--   <i>See:</i> <a>createTimeSeriesRequest</a> smart constructor.
data CreateTimeSeriesRequest

-- | Creates a value of <a>CreateTimeSeriesRequest</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>ctsrTimeSeries</a></li>
--   </ul>
createTimeSeriesRequest :: CreateTimeSeriesRequest

-- | The new data to be added to a list of time series. Adds at most one
--   data point to each of several time series. The new data point must be
--   more recent than any other point in its time series. Each TimeSeries
--   value must fully specify a unique time series by supplying all label
--   values for the metric and the monitored resource.
ctsrTimeSeries :: Lens' CreateTimeSeriesRequest [TimeSeries]

-- | The ListMonitoredResourcDescriptors response.
--   
--   <i>See:</i> <a>listMonitoredResourceDescriptorsResponse</a> smart
--   constructor.
data ListMonitoredResourceDescriptorsResponse

-- | Creates a value of <a>ListMonitoredResourceDescriptorsResponse</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>lmrdrNextPageToken</a></li>
--   <li><a>lmrdrResourceDescriptors</a></li>
--   </ul>
listMonitoredResourceDescriptorsResponse :: ListMonitoredResourceDescriptorsResponse

-- | If there are more results than have been returned, then this field is
--   set to a non-empty value. To see the additional results, use that
--   value as pageToken in the next call to this method.
lmrdrNextPageToken :: Lens' ListMonitoredResourceDescriptorsResponse (Maybe Text)

-- | The monitored resource descriptors that are available to this project
--   and that match filter, if present.
lmrdrResourceDescriptors :: Lens' ListMonitoredResourceDescriptorsResponse [MonitoredResourceDescriptor]

-- | The type of data that can be assigned to the label.
data LabelDescriptorValueType

-- | <tt>STRING</tt> A variable-length string. This is the default.
String :: LabelDescriptorValueType

-- | <tt>BOOL</tt> Boolean; true or false.
Bool :: LabelDescriptorValueType

-- | <tt>INT64</tt> A 64-bit signed integer.
INT64 :: LabelDescriptorValueType

-- | A set of buckets with arbitrary widths.Defines size(bounds) + 1 (= N)
--   buckets with these boundaries for bucket i:Upper bound (0 &lt;= i &lt;
--   N-1): boundsi Lower bound (1 &lt;= i &lt; N); boundsi - 1There must be
--   at least one element in bounds. If bounds has only one element, there
--   are no finite buckets, and that single element is the common boundary
--   of the overflow and underflow buckets.
--   
--   <i>See:</i> <a>explicit</a> smart constructor.
data Explicit

-- | Creates a value of <a>Explicit</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>eBounds</a></li>
--   </ul>
explicit :: Explicit

-- | The values must be monotonically increasing.
eBounds :: Lens' Explicit [Double]

-- | The set of label values that uniquely identify this metric. All labels
--   listed in the MetricDescriptor must be assigned values.
--   
--   <i>See:</i> <a>metricLabels</a> smart constructor.
data MetricLabels

-- | Creates a value of <a>MetricLabels</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>mlAddtional</a></li>
--   </ul>
metricLabels :: HashMap Text Text -> MetricLabels
mlAddtional :: Lens' MetricLabels (HashMap Text Text)

-- | The measurement metadata. Example: "process_id" -&gt; 12345
--   
--   <i>See:</i> <a>collectdPayloadMetadata</a> smart constructor.
data CollectdPayloadMetadata

-- | Creates a value of <a>CollectdPayloadMetadata</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>cpmAddtional</a></li>
--   </ul>
collectdPayloadMetadata :: HashMap Text TypedValue -> CollectdPayloadMetadata
cpmAddtional :: Lens' CollectdPayloadMetadata (HashMap Text TypedValue)

-- | A single data point from a collectd-based plugin.
--   
--   <i>See:</i> <a>collectdValue</a> smart constructor.
data CollectdValue

-- | Creates a value of <a>CollectdValue</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>cvDataSourceName</a></li>
--   <li><a>cvDataSourceType</a></li>
--   <li><a>cvValue</a></li>
--   </ul>
collectdValue :: CollectdValue

-- | The data source for the collectd value. For example there are two data
--   sources for network measurements: "rx" and "tx".
cvDataSourceName :: Lens' CollectdValue (Maybe Text)

-- | The type of measurement.
cvDataSourceType :: Lens' CollectdValue (Maybe CollectdValueDataSourceType)

-- | The measurement value.
cvValue :: Lens' CollectdValue (Maybe TypedValue)

-- | The CreateCollectdTimeSeries request.
--   
--   <i>See:</i> <a>createCollectdTimeSeriesRequest</a> smart constructor.
data CreateCollectdTimeSeriesRequest

-- | Creates a value of <a>CreateCollectdTimeSeriesRequest</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>cctsrCollectdPayloads</a></li>
--   <li><a>cctsrResource</a></li>
--   <li><a>cctsrCollectdVersion</a></li>
--   </ul>
createCollectdTimeSeriesRequest :: CreateCollectdTimeSeriesRequest

-- | The collectd payloads representing the time series data. You must not
--   include more than a single point for each time series, so no two
--   payloads can have the same values for all of the fields plugin,
--   plugin_instance, type, and type_instance.
cctsrCollectdPayloads :: Lens' CreateCollectdTimeSeriesRequest [CollectdPayload]

-- | The monitored resource associated with the time series.
cctsrResource :: Lens' CreateCollectdTimeSeriesRequest (Maybe MonitoredResource)

-- | The version of collectd that collected the data. Example:
--   "5.3.0-192.el6".
cctsrCollectdVersion :: Lens' CreateCollectdTimeSeriesRequest (Maybe Text)

-- | The source syntax.
data TypeSyntax

-- | <tt>SYNTAX_PROTO2</tt> Syntax proto2.
SyntaxPROTO2 :: TypeSyntax

-- | <tt>SYNTAX_PROTO3</tt> Syntax proto3.
SyntaxPROTO3 :: TypeSyntax

-- | A single data point in a time series.
--   
--   <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>pValue</a></li>
--   <li><a>pInterval</a></li>
--   </ul>
point :: Point

-- | The value of the data point.
pValue :: Lens' Point (Maybe TypedValue)

-- | The time interval to which the data point applies. For GAUGE metrics,
--   only the end time of the interval is used. For DELTA metrics, the
--   start and end time should specify a non-zero interval, with subsequent
--   points specifying contiguous and non-overlapping intervals. For
--   CUMULATIVE metrics, the start and end time should specify a non-zero
--   interval, with subsequent points specifying the same start time and
--   increasing end times, until an event resets the cumulative value to
--   zero and sets a new start time for the following points.
pInterval :: Lens' Point (Maybe TimeInterval)

-- | A collection of data points sent from a collectd-based plugin. See the
--   collectd documentation for more information.
--   
--   <i>See:</i> <a>collectdPayload</a> smart constructor.
data CollectdPayload

-- | Creates a value of <a>CollectdPayload</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>cpStartTime</a></li>
--   <li><a>cpPluginInstance</a></li>
--   <li><a>cpValues</a></li>
--   <li><a>cpTypeInstance</a></li>
--   <li><a>cpEndTime</a></li>
--   <li><a>cpMetadata</a></li>
--   <li><a>cpType</a></li>
--   <li><a>cpPlugin</a></li>
--   </ul>
collectdPayload :: CollectdPayload

-- | The start time of the interval.
cpStartTime :: Lens' CollectdPayload (Maybe UTCTime)

-- | The instance name of the plugin Example: "hdcl".
cpPluginInstance :: Lens' CollectdPayload (Maybe Text)

-- | The measured values during this time interval. Each value must have a
--   different dataSourceName.
cpValues :: Lens' CollectdPayload [CollectdValue]

-- | The measurement type instance. Example: "used".
cpTypeInstance :: Lens' CollectdPayload (Maybe Text)

-- | The end time of the interval.
cpEndTime :: Lens' CollectdPayload (Maybe UTCTime)

-- | The measurement metadata. Example: "process_id" -&gt; 12345
cpMetadata :: Lens' CollectdPayload (Maybe CollectdPayloadMetadata)

-- | The measurement type. Example: "memory".
cpType :: Lens' CollectdPayload (Maybe Text)

-- | The name of the plugin. Example: "disk".
cpPlugin :: Lens' CollectdPayload (Maybe Text)

-- | A specific metric, identified by specifying values for all of the
--   labels of a MetricDescriptor.
--   
--   <i>See:</i> <a>metric</a> smart constructor.
data Metric

-- | Creates a value of <a>Metric</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>mLabels</a></li>
--   <li><a>mType</a></li>
--   </ul>
metric :: Metric

-- | The set of label values that uniquely identify this metric. All labels
--   listed in the MetricDescriptor must be assigned values.
mLabels :: Lens' Metric (Maybe MetricLabels)

-- | An existing metric type, see google.api.MetricDescriptor. For example,
--   custom.googleapis.com/invoice/paid/amount.
mType :: Lens' Metric (Maybe Text)

-- | Specify a sequence of buckets that have a width that is proportional
--   to the value of the lower bound. Each bucket represents a constant
--   relative uncertainty on a specific value in the bucket.Defines
--   num_finite_buckets + 2 (= N) buckets with these boundaries for bucket
--   i:Upper bound (0 &lt;= i &lt; N-1): scale * (growth_factor ^ i). Lower
--   bound (1 &lt;= i &lt; N): scale * (growth_factor ^ (i - 1)).
--   
--   <i>See:</i> <a>exponential</a> smart constructor.
data Exponential

-- | Creates a value of <a>Exponential</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>eGrowthFactor</a></li>
--   <li><a>eScale</a></li>
--   <li><a>eNumFiniteBuckets</a></li>
--   </ul>
exponential :: Exponential

-- | Must be greater than 1.
eGrowthFactor :: Lens' Exponential (Maybe Double)

-- | Must be greater than 0.
eScale :: Lens' Exponential (Maybe Double)

-- | Must be greater than 0.
eNumFiniteBuckets :: Lens' Exponential (Maybe Int32)

-- | The ListCategories response.
--   
--   <i>See:</i> <a>listCategoriesResponse</a> smart constructor.
data ListCategoriesResponse

-- | Creates a value of <a>ListCategoriesResponse</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>lcrNextPageToken</a></li>
--   <li><a>lcrCategory</a></li>
--   </ul>
listCategoriesResponse :: ListCategoriesResponse

-- | If there are more results than have been returned, then this field is
--   set to a non-empty value. To see the additional results, use that
--   value as pageToken in the next call to this method.
lcrNextPageToken :: Lens' ListCategoriesResponse (Maybe Text)

-- | The Categories that match the specified filters.
lcrCategory :: Lens' ListCategoriesResponse [Category]

-- | The range of the population values.
--   
--   <i>See:</i> <a>range</a> smart constructor.
data Range

-- | Creates a value of <a>Range</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>rMax</a></li>
--   <li><a>rMin</a></li>
--   </ul>
range :: Range

-- | The maximum of the population values.
rMax :: Lens' Range (Maybe Double)

-- | The minimum of the population values.
rMin :: Lens' Range (Maybe Double)

-- | An object representing a resource that can be used for monitoring,
--   logging, billing, or other purposes. Examples include virtual machine
--   instances, databases, and storage devices such as disks. The type
--   field identifies a MonitoredResourceDescriptor object that describes
--   the resource's schema. Information in the labels field identifies the
--   actual resource and its attributes according to the schema. For
--   example, a particular Compute Engine VM instance could be represented
--   by the following object, because the MonitoredResourceDescriptor for
--   "gce_instance" has labels "instance_id" and "zone": { "type":
--   "gce_instance", "labels": { "instance_id": "12345678901234", "zone":
--   "us-central1-a" }}
--   
--   <i>See:</i> <a>monitoredResource</a> smart constructor.
data MonitoredResource

-- | Creates a value of <a>MonitoredResource</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>mrLabels</a></li>
--   <li><a>mrType</a></li>
--   </ul>
monitoredResource :: MonitoredResource

-- | Required. Values for all of the labels listed in the associated
--   monitored resource descriptor. For example, Cloud SQL databases use
--   the labels "database_id" and "zone".
mrLabels :: Lens' MonitoredResource (Maybe MonitoredResourceLabels)

-- | Required. The monitored resource type. This field must match the type
--   field of a MonitoredResourceDescriptor object. For example, the type
--   of a Cloud SQL database is "cloudsql_database".
mrType :: Lens' MonitoredResource (Maybe Text)

-- | V1 error format.
data Xgafv

-- | <tt>1</tt> v1 error format
X1 :: Xgafv

-- | <tt>2</tt> v2 error format
X2 :: Xgafv

-- | A time interval extending just after a start time through an end time.
--   If the start time is the same as the end time, then the interval
--   represents a single point in time.
--   
--   <i>See:</i> <a>timeInterval</a> smart constructor.
data TimeInterval

-- | Creates a value of <a>TimeInterval</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>tiStartTime</a></li>
--   <li><a>tiEndTime</a></li>
--   </ul>
timeInterval :: TimeInterval

-- | Optional. The beginning of the time interval. The default value for
--   the start time is the end time. The start time must not be later than
--   the end time.
tiStartTime :: Lens' TimeInterval (Maybe UTCTime)

-- | Required. The end of the time interval.
tiEndTime :: Lens' TimeInterval (Maybe UTCTime)

-- | The metric kind of the time series. When listing time series, this
--   metric kind might be different from the metric kind of the associated
--   metric if this time series is an alignment or reduction of other time
--   series.When creating a time series, this field is optional. If
--   present, it must be the same as the metric kind of the associated
--   metric. If the associated metric's descriptor must be auto-created,
--   then this field specifies the metric kind of the new descriptor and
--   must be either GAUGE (the default) or CUMULATIVE.
data TimeSeriesMetricKind

-- | <tt>METRIC_KIND_UNSPECIFIED</tt> Do not use this default value.
TSMKMetricKindUnspecified :: TimeSeriesMetricKind

-- | <tt>GAUGE</tt> An instantaneous measurement of a value.
TSMKGauge :: TimeSeriesMetricKind

-- | <tt>DELTA</tt> The change in a value during a time interval.
TSMKDelta :: TimeSeriesMetricKind

-- | <tt>CUMULATIVE</tt> A value accumulated over a time interval.
--   Cumulative measurements in a time series should have the same start
--   time and increasing end times, until an event resets the cumulative
--   value to zero and sets a new start time for the following points.
TSMKCumulative :: TimeSeriesMetricKind

-- | The ListGroupMembers response.
--   
--   <i>See:</i> <a>listGroupMembersResponse</a> smart constructor.
data ListGroupMembersResponse

-- | Creates a value of <a>ListGroupMembersResponse</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>lgmrNextPageToken</a></li>
--   <li><a>lgmrMembers</a></li>
--   <li><a>lgmrTotalSize</a></li>
--   </ul>
listGroupMembersResponse :: ListGroupMembersResponse

-- | If there are more results than have been returned, then this field is
--   set to a non-empty value. To see the additional results, use that
--   value as pageToken in the next call to this method.
lgmrNextPageToken :: Lens' ListGroupMembersResponse (Maybe Text)

-- | A set of monitored resources in the group.
lgmrMembers :: Lens' ListGroupMembersResponse [MonitoredResource]

-- | The total number of elements matching this request.
lgmrTotalSize :: Lens' ListGroupMembersResponse (Maybe Int32)

-- | A description of a label.
--   
--   <i>See:</i> <a>labelDescriptor</a> smart constructor.
data LabelDescriptor

-- | Creates a value of <a>LabelDescriptor</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>ldKey</a></li>
--   <li><a>ldValueType</a></li>
--   <li><a>ldDescription</a></li>
--   </ul>
labelDescriptor :: LabelDescriptor

-- | The label key.
ldKey :: Lens' LabelDescriptor (Maybe Text)

-- | The type of data that can be assigned to the label.
ldValueType :: Lens' LabelDescriptor (Maybe LabelDescriptorValueType)

-- | A human-readable description for the label.
ldDescription :: Lens' LabelDescriptor (Maybe Text)

-- | The value type of the time series. When listing time series, this
--   value type might be different from the value type of the associated
--   metric if this time series is an alignment or reduction of other time
--   series.When creating a time series, this field is optional. If
--   present, it must be the same as the type of the data in the points
--   field.
data TimeSeriesValueType

-- | <tt>VALUE_TYPE_UNSPECIFIED</tt> Do not use this default value.
TSVTValueTypeUnspecified :: TimeSeriesValueType

-- | <tt>BOOL</tt> The value is a boolean. This value type can be used only
--   if the metric kind is GAUGE.
TSVTBool :: TimeSeriesValueType

-- | <tt>INT64</tt> The value is a signed 64-bit integer.
TSVTINT64 :: TimeSeriesValueType

-- | <tt>DOUBLE</tt> The value is a double precision floating point number.
TSVTDouble :: TimeSeriesValueType

-- | <tt>STRING</tt> The value is a text string. This value type can be
--   used only if the metric kind is GAUGE.
TSVTString :: TimeSeriesValueType

-- | <tt>DISTRIBUTION</tt> The value is a Distribution.
TSVTDistribution :: TimeSeriesValueType

-- | <tt>MONEY</tt> The value is money.
TSVTMoney :: TimeSeriesValueType

-- | Specify a sequence of buckets that all have the same width (except
--   overflow and underflow). Each bucket represents a constant absolute
--   uncertainty on the specific value in the bucket.Defines
--   num_finite_buckets + 2 (= N) buckets with these boundaries for bucket
--   i:Upper bound (0 &lt;= i &lt; N-1): offset + (width * i). Lower bound
--   (1 &lt;= i &lt; N): offset + (width * (i - 1)).
--   
--   <i>See:</i> <a>linear</a> smart constructor.
data Linear

-- | Creates a value of <a>Linear</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>lOffSet</a></li>
--   <li><a>lWidth</a></li>
--   <li><a>lNumFiniteBuckets</a></li>
--   </ul>
linear :: Linear

-- | Lower bound of the first bucket.
lOffSet :: Lens' Linear (Maybe Double)

-- | Must be greater than 0.
lWidth :: Lens' Linear (Maybe Double)

-- | Must be greater than 0.
lNumFiniteBuckets :: Lens' Linear (Maybe Int32)

-- | The field cardinality.
data FieldCardinality

-- | <tt>CARDINALITY_UNKNOWN</tt> For fields with unknown cardinality.
CardinalityUnknown :: FieldCardinality

-- | <tt>CARDINALITY_OPTIONAL</tt> For optional fields.
CardinalityOptional :: FieldCardinality

-- | <tt>CARDINALITY_REQUIRED</tt> For required fields. Proto2 syntax only.
CardinalityRequired :: FieldCardinality

-- | <tt>CARDINALITY_REPEATED</tt> For repeated fields.
CardinalityRepeated :: FieldCardinality

-- | A protocol buffer message type.
--   
--   <i>See:</i> <a>type'</a> smart constructor.
data Type

-- | Creates a value of <a>Type</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>tSourceContext</a></li>
--   <li><a>tOneofs</a></li>
--   <li><a>tName</a></li>
--   <li><a>tOptions</a></li>
--   <li><a>tFields</a></li>
--   <li><a>tSyntax</a></li>
--   </ul>
type' :: Type

-- | The source context.
tSourceContext :: Lens' Type (Maybe SourceContext)

-- | The list of types appearing in oneof definitions in this type.
tOneofs :: Lens' Type [Text]

-- | The fully qualified message name.
tName :: Lens' Type (Maybe Text)

-- | The protocol buffer options.
tOptions :: Lens' Type [Option]

-- | The list of fields.
tFields :: Lens' Type [Field]

-- | The source syntax.
tSyntax :: Lens' Type (Maybe TypeSyntax)

-- | Whether the metric records instantaneous values, changes to a value,
--   etc. Some combinations of metric_kind and value_type might not be
--   supported.
data MetricDescriptorMetricKind

-- | <tt>METRIC_KIND_UNSPECIFIED</tt> Do not use this default value.
MDMKMetricKindUnspecified :: MetricDescriptorMetricKind

-- | <tt>GAUGE</tt> An instantaneous measurement of a value.
MDMKGauge :: MetricDescriptorMetricKind

-- | <tt>DELTA</tt> The change in a value during a time interval.
MDMKDelta :: MetricDescriptorMetricKind

-- | <tt>CUMULATIVE</tt> A value accumulated over a time interval.
--   Cumulative measurements in a time series should have the same start
--   time and increasing end times, until an event resets the cumulative
--   value to zero and sets a new start time for the following points.
MDMKCumulative :: MetricDescriptorMetricKind

-- | A protocol buffer option, which can be attached to a message, field,
--   enumeration, etc.
--   
--   <i>See:</i> <a>option</a> smart constructor.
data Option

-- | Creates a value of <a>Option</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>oValue</a></li>
--   <li><a>oName</a></li>
--   </ul>
option :: Option

-- | The option's value packed in an Any message. If the value is a
--   primitive, the corresponding wrapper type defined in
--   google/protobuf/wrappers.proto should be used. If the value is an
--   enum, it should be stored as an int32 value using the
--   google.protobuf.Int32Value type.
oValue :: Lens' Option (Maybe OptionValue)

-- | The option's name. For protobuf built-in options (options defined in
--   descriptor.proto), this is the short name. For example, "map_entry".
--   For custom options, it should be the fully-qualified name. For
--   example, "google.api.http".
oName :: Lens' Option (Maybe Text)

-- | A Distribution may optionally contain a histogram of the values in the
--   population. The histogram is given in bucket_counts as counts of
--   values that fall into one of a sequence of non-overlapping buckets.
--   The sequence of buckets is described by bucket_options.A bucket
--   specifies an inclusive lower bound and exclusive upper bound for the
--   values that are counted for that bucket. The upper bound of a bucket
--   is strictly greater than the lower bound.The sequence of N buckets for
--   a Distribution consists of an underflow bucket (number 0), zero or
--   more finite buckets (number 1 through N - 2) and an overflow bucket
--   (number N - 1). The buckets are contiguous: the lower bound of bucket
--   i (i &gt; 0) is the same as the upper bound of bucket i - 1. The
--   buckets span the whole range of finite values: lower bound of the
--   underflow bucket is -infinity and the upper bound of the overflow
--   bucket is +infinity. The finite buckets are so-called because both
--   bounds are finite.BucketOptions describes bucket boundaries in one of
--   three ways. Two describe the boundaries by giving parameters for a
--   formula to generate boundaries and one gives the bucket boundaries
--   explicitly.If bucket_options is not given, then no bucket_counts may
--   be given.
--   
--   <i>See:</i> <a>bucketOptions</a> smart constructor.
data BucketOptions

-- | Creates a value of <a>BucketOptions</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>boExponentialBuckets</a></li>
--   <li><a>boLinearBuckets</a></li>
--   <li><a>boExplicitBuckets</a></li>
--   </ul>
bucketOptions :: BucketOptions

-- | The exponential buckets.
boExponentialBuckets :: Lens' BucketOptions (Maybe Exponential)

-- | The linear bucket.
boLinearBuckets :: Lens' BucketOptions (Maybe Linear)

-- | The explicit buckets.
boExplicitBuckets :: Lens' BucketOptions (Maybe Explicit)

-- | A collection of data points that describes the time-varying values of
--   a metric. A time series is identified by a combination of a
--   fully-specified monitored resource and a fully-specified metric. This
--   type is used for both listing and creating 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>tsPoints</a></li>
--   <li><a>tsMetricKind</a></li>
--   <li><a>tsMetric</a></li>
--   <li><a>tsResource</a></li>
--   <li><a>tsValueType</a></li>
--   </ul>
timeSeries :: TimeSeries

-- | The data points of this time series. When listing time series, the
--   order of the points is specified by the list method.When creating a
--   time series, this field must contain exactly one point and the point's
--   type must be the same as the value type of the associated metric. If
--   the associated metric's descriptor must be auto-created, then the
--   value type of the descriptor is determined by the point's type, which
--   must be BOOL, INT64, DOUBLE, or DISTRIBUTION.
tsPoints :: Lens' TimeSeries [Point]

-- | The metric kind of the time series. When listing time series, this
--   metric kind might be different from the metric kind of the associated
--   metric if this time series is an alignment or reduction of other time
--   series.When creating a time series, this field is optional. If
--   present, it must be the same as the metric kind of the associated
--   metric. If the associated metric's descriptor must be auto-created,
--   then this field specifies the metric kind of the new descriptor and
--   must be either GAUGE (the default) or CUMULATIVE.
tsMetricKind :: Lens' TimeSeries (Maybe TimeSeriesMetricKind)

-- | The associated metric. A fully-specified metric used to identify the
--   time series.
tsMetric :: Lens' TimeSeries (Maybe Metric)

-- | The associated resource. A fully-specified monitored resource used to
--   identify the time series.
tsResource :: Lens' TimeSeries (Maybe MonitoredResource)

-- | The value type of the time series. When listing time series, this
--   value type might be different from the value type of the associated
--   metric if this time series is an alignment or reduction of other time
--   series.When creating a time series, this field is optional. If
--   present, it must be the same as the type of the data in the points
--   field.
tsValueType :: Lens' TimeSeries (Maybe TimeSeriesValueType)


-- | List all Categories for a host project.
--   
--   <i>See:</i> <a>Stackdriver Monitoring API Reference</a> for
--   <tt>monitoring.categories.list</tt>.
module Network.Google.Resource.Monitoring.Categories.List

-- | A resource alias for <tt>monitoring.categories.list</tt> method which
--   the <a>CategoriesList</a> request conforms to.
type CategoriesListResource = "v3" :> ("categories" :> (QueryParam "parent" Text :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "filter" Text :> (QueryParam "pageToken" Text :> (QueryParam "pageSize" (Textual Int32) :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ListCategoriesResponse)))))))))))))

-- | Creates a value of <a>CategoriesList</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>clParent</a></li>
--   <li><a>clXgafv</a></li>
--   <li><a>clUploadProtocol</a></li>
--   <li><a>clPp</a></li>
--   <li><a>clAccessToken</a></li>
--   <li><a>clUploadType</a></li>
--   <li><a>clBearerToken</a></li>
--   <li><a>clFilter</a></li>
--   <li><a>clPageToken</a></li>
--   <li><a>clPageSize</a></li>
--   <li><a>clCallback</a></li>
--   </ul>
categoriesList :: CategoriesList

-- | List all Categories for a host project.
--   
--   <i>See:</i> <a>categoriesList</a> smart constructor.
data CategoriesList

-- | Resource parent of the project to get. Resource parent form is
--   projects/{project_id_or_number}.
clParent :: Lens' CategoriesList (Maybe Text)

-- | V1 error format.
clXgafv :: Lens' CategoriesList (Maybe Xgafv)

-- | Upload protocol for media (e.g. "raw", "multipart").
clUploadProtocol :: Lens' CategoriesList (Maybe Text)

-- | Pretty-print response.
clPp :: Lens' CategoriesList Bool

-- | OAuth access token.
clAccessToken :: Lens' CategoriesList (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
clUploadType :: Lens' CategoriesList (Maybe Text)

-- | OAuth bearer token.
clBearerToken :: Lens' CategoriesList (Maybe Text)

-- | A filter that specifies what Categories to return.
clFilter :: Lens' CategoriesList (Maybe Text)

-- | If this field is not empty then it must contain the nextPageToken
--   value returned by a previous call to this method. Using this field
--   causes the method to return additional results from the previous
--   method call.
clPageToken :: Lens' CategoriesList (Maybe Text)

-- | A positive number that is the maximum number of results to return.
--   When 0, use default page size.
clPageSize :: Lens' CategoriesList (Maybe Int32)

-- | JSONP
clCallback :: Lens' CategoriesList (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Monitoring.Categories.List.CategoriesList
instance Data.Data.Data Network.Google.Resource.Monitoring.Categories.List.CategoriesList
instance GHC.Show.Show Network.Google.Resource.Monitoring.Categories.List.CategoriesList
instance GHC.Classes.Eq Network.Google.Resource.Monitoring.Categories.List.CategoriesList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Monitoring.Categories.List.CategoriesList


-- | List the MetricAssociations in a given Category.
--   
--   <i>See:</i> <a>Stackdriver Monitoring API Reference</a> for
--   <tt>monitoring.categories.metricAssociations.list</tt>.
module Network.Google.Resource.Monitoring.Categories.MetricAssociations.List

-- | A resource alias for
--   <tt>monitoring.categories.metricAssociations.list</tt> method which
--   the <a>CategoriesMetricAssociationsList</a> request conforms to.
type CategoriesMetricAssociationsListResource = "v3" :> (Capture "parent" Text :> ("metricAssociations" :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "filter" Text :> (QueryParam "pageToken" Text :> (QueryParam "pageSize" (Textual Int32) :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ListMetricAssociationsResponse)))))))))))))

-- | Creates a value of <a>CategoriesMetricAssociationsList</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>cmalParent</a></li>
--   <li><a>cmalXgafv</a></li>
--   <li><a>cmalUploadProtocol</a></li>
--   <li><a>cmalPp</a></li>
--   <li><a>cmalAccessToken</a></li>
--   <li><a>cmalUploadType</a></li>
--   <li><a>cmalBearerToken</a></li>
--   <li><a>cmalFilter</a></li>
--   <li><a>cmalPageToken</a></li>
--   <li><a>cmalPageSize</a></li>
--   <li><a>cmalCallback</a></li>
--   </ul>
categoriesMetricAssociationsList :: Text -> CategoriesMetricAssociationsList

-- | List the MetricAssociations in a given Category.
--   
--   <i>See:</i> <a>categoriesMetricAssociationsList</a> smart constructor.
data CategoriesMetricAssociationsList

-- | Resource parent of the category to get. Resource parent form is
--   projects/{project_id_or_number}/categories/{short_name}.
cmalParent :: Lens' CategoriesMetricAssociationsList Text

-- | V1 error format.
cmalXgafv :: Lens' CategoriesMetricAssociationsList (Maybe Xgafv)

-- | Upload protocol for media (e.g. "raw", "multipart").
cmalUploadProtocol :: Lens' CategoriesMetricAssociationsList (Maybe Text)

-- | Pretty-print response.
cmalPp :: Lens' CategoriesMetricAssociationsList Bool

-- | OAuth access token.
cmalAccessToken :: Lens' CategoriesMetricAssociationsList (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
cmalUploadType :: Lens' CategoriesMetricAssociationsList (Maybe Text)

-- | OAuth bearer token.
cmalBearerToken :: Lens' CategoriesMetricAssociationsList (Maybe Text)

-- | A filter that specifies what MetricAssociations to return.
cmalFilter :: Lens' CategoriesMetricAssociationsList (Maybe Text)

-- | If this field is not empty then it must contain the nextPageToken
--   value returned by a previous call to this method. Using this field
--   causes the method to return additional results from the previous
--   method call.
cmalPageToken :: Lens' CategoriesMetricAssociationsList (Maybe Text)

-- | A positive number that is the maximum number of results to return.
--   When 0, use default page size.
cmalPageSize :: Lens' CategoriesMetricAssociationsList (Maybe Int32)

-- | JSONP
cmalCallback :: Lens' CategoriesMetricAssociationsList (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Monitoring.Categories.MetricAssociations.List.CategoriesMetricAssociationsList
instance Data.Data.Data Network.Google.Resource.Monitoring.Categories.MetricAssociations.List.CategoriesMetricAssociationsList
instance GHC.Show.Show Network.Google.Resource.Monitoring.Categories.MetricAssociations.List.CategoriesMetricAssociationsList
instance GHC.Classes.Eq Network.Google.Resource.Monitoring.Categories.MetricAssociations.List.CategoriesMetricAssociationsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Monitoring.Categories.MetricAssociations.List.CategoriesMetricAssociationsList


-- | Create a new Category.
--   
--   <i>See:</i> <a>Stackdriver Monitoring API Reference</a> for
--   <tt>monitoring.projects.categories.create</tt>.
module Network.Google.Resource.Monitoring.Projects.Categories.Create

-- | A resource alias for <tt>monitoring.projects.categories.create</tt>
--   method which the <a>ProjectsCategoriesCreate</a> request conforms to.
type ProjectsCategoriesCreateResource = "v3" :> (Capture "parent" Text :> ("categories" :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Category :> Post '[JSON] Category)))))))))))

-- | Creates a value of <a>ProjectsCategoriesCreate</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>pccParent</a></li>
--   <li><a>pccXgafv</a></li>
--   <li><a>pccUploadProtocol</a></li>
--   <li><a>pccPp</a></li>
--   <li><a>pccAccessToken</a></li>
--   <li><a>pccUploadType</a></li>
--   <li><a>pccPayload</a></li>
--   <li><a>pccBearerToken</a></li>
--   <li><a>pccCallback</a></li>
--   </ul>
projectsCategoriesCreate :: Text -> Category -> ProjectsCategoriesCreate

-- | Create a new Category.
--   
--   <i>See:</i> <a>projectsCategoriesCreate</a> smart constructor.
data ProjectsCategoriesCreate

-- | Resource parent of the project to get. Resource parent form is
--   projects/{project_id_or_number}.
pccParent :: Lens' ProjectsCategoriesCreate Text

-- | V1 error format.
pccXgafv :: Lens' ProjectsCategoriesCreate (Maybe Xgafv)

-- | Upload protocol for media (e.g. "raw", "multipart").
pccUploadProtocol :: Lens' ProjectsCategoriesCreate (Maybe Text)

-- | Pretty-print response.
pccPp :: Lens' ProjectsCategoriesCreate Bool

-- | OAuth access token.
pccAccessToken :: Lens' ProjectsCategoriesCreate (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
pccUploadType :: Lens' ProjectsCategoriesCreate (Maybe Text)

-- | Multipart request metadata.
pccPayload :: Lens' ProjectsCategoriesCreate Category

-- | OAuth bearer token.
pccBearerToken :: Lens' ProjectsCategoriesCreate (Maybe Text)

-- | JSONP
pccCallback :: Lens' ProjectsCategoriesCreate (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Monitoring.Projects.Categories.Create.ProjectsCategoriesCreate
instance Data.Data.Data Network.Google.Resource.Monitoring.Projects.Categories.Create.ProjectsCategoriesCreate
instance GHC.Show.Show Network.Google.Resource.Monitoring.Projects.Categories.Create.ProjectsCategoriesCreate
instance GHC.Classes.Eq Network.Google.Resource.Monitoring.Projects.Categories.Create.ProjectsCategoriesCreate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Monitoring.Projects.Categories.Create.ProjectsCategoriesCreate


-- | Delete a Category.
--   
--   <i>See:</i> <a>Stackdriver Monitoring API Reference</a> for
--   <tt>monitoring.projects.categories.delete</tt>.
module Network.Google.Resource.Monitoring.Projects.Categories.Delete

-- | A resource alias for <tt>monitoring.projects.categories.delete</tt>
--   method which the <a>ProjectsCategoriesDelete</a> request conforms to.
type ProjectsCategoriesDeleteResource = "v3" :> (Capture "name" Text :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] Empty)))))))))

-- | Creates a value of <a>ProjectsCategoriesDelete</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>pcdXgafv</a></li>
--   <li><a>pcdUploadProtocol</a></li>
--   <li><a>pcdPp</a></li>
--   <li><a>pcdAccessToken</a></li>
--   <li><a>pcdUploadType</a></li>
--   <li><a>pcdBearerToken</a></li>
--   <li><a>pcdName</a></li>
--   <li><a>pcdCallback</a></li>
--   </ul>
projectsCategoriesDelete :: Text -> ProjectsCategoriesDelete

-- | Delete a Category.
--   
--   <i>See:</i> <a>projectsCategoriesDelete</a> smart constructor.
data ProjectsCategoriesDelete

-- | V1 error format.
pcdXgafv :: Lens' ProjectsCategoriesDelete (Maybe Xgafv)

-- | Upload protocol for media (e.g. "raw", "multipart").
pcdUploadProtocol :: Lens' ProjectsCategoriesDelete (Maybe Text)

-- | Pretty-print response.
pcdPp :: Lens' ProjectsCategoriesDelete Bool

-- | OAuth access token.
pcdAccessToken :: Lens' ProjectsCategoriesDelete (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
pcdUploadType :: Lens' ProjectsCategoriesDelete (Maybe Text)

-- | OAuth bearer token.
pcdBearerToken :: Lens' ProjectsCategoriesDelete (Maybe Text)

-- | Resource name of category to delete. Resource name form is
--   projects/{project_id_or_number}/categories/{short_name}.
pcdName :: Lens' ProjectsCategoriesDelete Text

-- | JSONP
pcdCallback :: Lens' ProjectsCategoriesDelete (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Monitoring.Projects.Categories.Delete.ProjectsCategoriesDelete
instance Data.Data.Data Network.Google.Resource.Monitoring.Projects.Categories.Delete.ProjectsCategoriesDelete
instance GHC.Show.Show Network.Google.Resource.Monitoring.Projects.Categories.Delete.ProjectsCategoriesDelete
instance GHC.Classes.Eq Network.Google.Resource.Monitoring.Projects.Categories.Delete.ProjectsCategoriesDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Monitoring.Projects.Categories.Delete.ProjectsCategoriesDelete


-- | List all Categories for a host project.
--   
--   <i>See:</i> <a>Stackdriver Monitoring API Reference</a> for
--   <tt>monitoring.projects.categories.list</tt>.
module Network.Google.Resource.Monitoring.Projects.Categories.List

-- | A resource alias for <tt>monitoring.projects.categories.list</tt>
--   method which the <a>ProjectsCategoriesList</a> request conforms to.
type ProjectsCategoriesListResource = "v3" :> (Capture "parent" Text :> ("categories" :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "filter" Text :> (QueryParam "pageToken" Text :> (QueryParam "pageSize" (Textual Int32) :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ListCategoriesResponse)))))))))))))

-- | Creates a value of <a>ProjectsCategoriesList</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>pclParent</a></li>
--   <li><a>pclXgafv</a></li>
--   <li><a>pclUploadProtocol</a></li>
--   <li><a>pclPp</a></li>
--   <li><a>pclAccessToken</a></li>
--   <li><a>pclUploadType</a></li>
--   <li><a>pclBearerToken</a></li>
--   <li><a>pclFilter</a></li>
--   <li><a>pclPageToken</a></li>
--   <li><a>pclPageSize</a></li>
--   <li><a>pclCallback</a></li>
--   </ul>
projectsCategoriesList :: Text -> ProjectsCategoriesList

-- | List all Categories for a host project.
--   
--   <i>See:</i> <a>projectsCategoriesList</a> smart constructor.
data ProjectsCategoriesList

-- | Resource parent of the project to get. Resource parent form is
--   projects/{project_id_or_number}.
pclParent :: Lens' ProjectsCategoriesList Text

-- | V1 error format.
pclXgafv :: Lens' ProjectsCategoriesList (Maybe Xgafv)

-- | Upload protocol for media (e.g. "raw", "multipart").
pclUploadProtocol :: Lens' ProjectsCategoriesList (Maybe Text)

-- | Pretty-print response.
pclPp :: Lens' ProjectsCategoriesList Bool

-- | OAuth access token.
pclAccessToken :: Lens' ProjectsCategoriesList (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
pclUploadType :: Lens' ProjectsCategoriesList (Maybe Text)

-- | OAuth bearer token.
pclBearerToken :: Lens' ProjectsCategoriesList (Maybe Text)

-- | A filter that specifies what Categories to return.
pclFilter :: Lens' ProjectsCategoriesList (Maybe Text)

-- | If this field is not empty then it must contain the nextPageToken
--   value returned by a previous call to this method. Using this field
--   causes the method to return additional results from the previous
--   method call.
pclPageToken :: Lens' ProjectsCategoriesList (Maybe Text)

-- | A positive number that is the maximum number of results to return.
--   When 0, use default page size.
pclPageSize :: Lens' ProjectsCategoriesList (Maybe Int32)

-- | JSONP
pclCallback :: Lens' ProjectsCategoriesList (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Monitoring.Projects.Categories.List.ProjectsCategoriesList
instance Data.Data.Data Network.Google.Resource.Monitoring.Projects.Categories.List.ProjectsCategoriesList
instance GHC.Show.Show Network.Google.Resource.Monitoring.Projects.Categories.List.ProjectsCategoriesList
instance GHC.Classes.Eq Network.Google.Resource.Monitoring.Projects.Categories.List.ProjectsCategoriesList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Monitoring.Projects.Categories.List.ProjectsCategoriesList


-- | Create a MetricAssociation.
--   
--   <i>See:</i> <a>Stackdriver Monitoring API Reference</a> for
--   <tt>monitoring.projects.categories.metricAssociations.create</tt>.
module Network.Google.Resource.Monitoring.Projects.Categories.MetricAssociations.Create

-- | A resource alias for
--   <tt>monitoring.projects.categories.metricAssociations.create</tt>
--   method which the <a>ProjectsCategoriesMetricAssociationsCreate</a>
--   request conforms to.
type ProjectsCategoriesMetricAssociationsCreateResource = "v3" :> (Capture "parent" Text :> ("metricAssociations" :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] MetricAssociation :> Post '[JSON] MetricAssociation)))))))))))

-- | Creates a value of <a>ProjectsCategoriesMetricAssociationsCreate</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>pcmacParent</a></li>
--   <li><a>pcmacXgafv</a></li>
--   <li><a>pcmacUploadProtocol</a></li>
--   <li><a>pcmacPp</a></li>
--   <li><a>pcmacAccessToken</a></li>
--   <li><a>pcmacUploadType</a></li>
--   <li><a>pcmacPayload</a></li>
--   <li><a>pcmacBearerToken</a></li>
--   <li><a>pcmacCallback</a></li>
--   </ul>
projectsCategoriesMetricAssociationsCreate :: Text -> MetricAssociation -> ProjectsCategoriesMetricAssociationsCreate

-- | Create a MetricAssociation.
--   
--   <i>See:</i> <a>projectsCategoriesMetricAssociationsCreate</a> smart
--   constructor.
data ProjectsCategoriesMetricAssociationsCreate

-- | Resource parent of the category to get. Resource parent form is
--   projects/{project_id_or_number}/categories/{short_name}.
pcmacParent :: Lens' ProjectsCategoriesMetricAssociationsCreate Text

-- | V1 error format.
pcmacXgafv :: Lens' ProjectsCategoriesMetricAssociationsCreate (Maybe Xgafv)

-- | Upload protocol for media (e.g. "raw", "multipart").
pcmacUploadProtocol :: Lens' ProjectsCategoriesMetricAssociationsCreate (Maybe Text)

-- | Pretty-print response.
pcmacPp :: Lens' ProjectsCategoriesMetricAssociationsCreate Bool

-- | OAuth access token.
pcmacAccessToken :: Lens' ProjectsCategoriesMetricAssociationsCreate (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
pcmacUploadType :: Lens' ProjectsCategoriesMetricAssociationsCreate (Maybe Text)

-- | Multipart request metadata.
pcmacPayload :: Lens' ProjectsCategoriesMetricAssociationsCreate MetricAssociation

-- | OAuth bearer token.
pcmacBearerToken :: Lens' ProjectsCategoriesMetricAssociationsCreate (Maybe Text)

-- | JSONP
pcmacCallback :: Lens' ProjectsCategoriesMetricAssociationsCreate (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Monitoring.Projects.Categories.MetricAssociations.Create.ProjectsCategoriesMetricAssociationsCreate
instance Data.Data.Data Network.Google.Resource.Monitoring.Projects.Categories.MetricAssociations.Create.ProjectsCategoriesMetricAssociationsCreate
instance GHC.Show.Show Network.Google.Resource.Monitoring.Projects.Categories.MetricAssociations.Create.ProjectsCategoriesMetricAssociationsCreate
instance GHC.Classes.Eq Network.Google.Resource.Monitoring.Projects.Categories.MetricAssociations.Create.ProjectsCategoriesMetricAssociationsCreate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Monitoring.Projects.Categories.MetricAssociations.Create.ProjectsCategoriesMetricAssociationsCreate


-- | Delete a MetricAssociation.
--   
--   <i>See:</i> <a>Stackdriver Monitoring API Reference</a> for
--   <tt>monitoring.projects.categories.metricAssociations.delete</tt>.
module Network.Google.Resource.Monitoring.Projects.Categories.MetricAssociations.Delete

-- | A resource alias for
--   <tt>monitoring.projects.categories.metricAssociations.delete</tt>
--   method which the <a>ProjectsCategoriesMetricAssociationsDelete</a>
--   request conforms to.
type ProjectsCategoriesMetricAssociationsDeleteResource = "v3" :> (Capture "name" Text :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] Empty)))))))))

-- | Creates a value of <a>ProjectsCategoriesMetricAssociationsDelete</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>pcmadXgafv</a></li>
--   <li><a>pcmadUploadProtocol</a></li>
--   <li><a>pcmadPp</a></li>
--   <li><a>pcmadAccessToken</a></li>
--   <li><a>pcmadUploadType</a></li>
--   <li><a>pcmadBearerToken</a></li>
--   <li><a>pcmadName</a></li>
--   <li><a>pcmadCallback</a></li>
--   </ul>
projectsCategoriesMetricAssociationsDelete :: Text -> ProjectsCategoriesMetricAssociationsDelete

-- | Delete a MetricAssociation.
--   
--   <i>See:</i> <a>projectsCategoriesMetricAssociationsDelete</a> smart
--   constructor.
data ProjectsCategoriesMetricAssociationsDelete

-- | V1 error format.
pcmadXgafv :: Lens' ProjectsCategoriesMetricAssociationsDelete (Maybe Xgafv)

-- | Upload protocol for media (e.g. "raw", "multipart").
pcmadUploadProtocol :: Lens' ProjectsCategoriesMetricAssociationsDelete (Maybe Text)

-- | Pretty-print response.
pcmadPp :: Lens' ProjectsCategoriesMetricAssociationsDelete Bool

-- | OAuth access token.
pcmadAccessToken :: Lens' ProjectsCategoriesMetricAssociationsDelete (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
pcmadUploadType :: Lens' ProjectsCategoriesMetricAssociationsDelete (Maybe Text)

-- | OAuth bearer token.
pcmadBearerToken :: Lens' ProjectsCategoriesMetricAssociationsDelete (Maybe Text)

-- | Resource name of metric association to delete. Resource name form is
--   projects/{project_id_or_number}/
--   categories/{short_name}/metricAssociations/{metric_name}.
pcmadName :: Lens' ProjectsCategoriesMetricAssociationsDelete Text

-- | JSONP
pcmadCallback :: Lens' ProjectsCategoriesMetricAssociationsDelete (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Monitoring.Projects.Categories.MetricAssociations.Delete.ProjectsCategoriesMetricAssociationsDelete
instance Data.Data.Data Network.Google.Resource.Monitoring.Projects.Categories.MetricAssociations.Delete.ProjectsCategoriesMetricAssociationsDelete
instance GHC.Show.Show Network.Google.Resource.Monitoring.Projects.Categories.MetricAssociations.Delete.ProjectsCategoriesMetricAssociationsDelete
instance GHC.Classes.Eq Network.Google.Resource.Monitoring.Projects.Categories.MetricAssociations.Delete.ProjectsCategoriesMetricAssociationsDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Monitoring.Projects.Categories.MetricAssociations.Delete.ProjectsCategoriesMetricAssociationsDelete


-- | List the MetricAssociations in a given Category.
--   
--   <i>See:</i> <a>Stackdriver Monitoring API Reference</a> for
--   <tt>monitoring.projects.categories.metricAssociations.list</tt>.
module Network.Google.Resource.Monitoring.Projects.Categories.MetricAssociations.List

-- | A resource alias for
--   <tt>monitoring.projects.categories.metricAssociations.list</tt> method
--   which the <a>ProjectsCategoriesMetricAssociationsList</a> request
--   conforms to.
type ProjectsCategoriesMetricAssociationsListResource = "v3" :> (Capture "parent" Text :> ("metricAssociations" :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "filter" Text :> (QueryParam "pageToken" Text :> (QueryParam "pageSize" (Textual Int32) :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ListMetricAssociationsResponse)))))))))))))

-- | Creates a value of <a>ProjectsCategoriesMetricAssociationsList</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>pcmalParent</a></li>
--   <li><a>pcmalXgafv</a></li>
--   <li><a>pcmalUploadProtocol</a></li>
--   <li><a>pcmalPp</a></li>
--   <li><a>pcmalAccessToken</a></li>
--   <li><a>pcmalUploadType</a></li>
--   <li><a>pcmalBearerToken</a></li>
--   <li><a>pcmalFilter</a></li>
--   <li><a>pcmalPageToken</a></li>
--   <li><a>pcmalPageSize</a></li>
--   <li><a>pcmalCallback</a></li>
--   </ul>
projectsCategoriesMetricAssociationsList :: Text -> ProjectsCategoriesMetricAssociationsList

-- | List the MetricAssociations in a given Category.
--   
--   <i>See:</i> <a>projectsCategoriesMetricAssociationsList</a> smart
--   constructor.
data ProjectsCategoriesMetricAssociationsList

-- | Resource parent of the category to get. Resource parent form is
--   projects/{project_id_or_number}/categories/{short_name}.
pcmalParent :: Lens' ProjectsCategoriesMetricAssociationsList Text

-- | V1 error format.
pcmalXgafv :: Lens' ProjectsCategoriesMetricAssociationsList (Maybe Xgafv)

-- | Upload protocol for media (e.g. "raw", "multipart").
pcmalUploadProtocol :: Lens' ProjectsCategoriesMetricAssociationsList (Maybe Text)

-- | Pretty-print response.
pcmalPp :: Lens' ProjectsCategoriesMetricAssociationsList Bool

-- | OAuth access token.
pcmalAccessToken :: Lens' ProjectsCategoriesMetricAssociationsList (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
pcmalUploadType :: Lens' ProjectsCategoriesMetricAssociationsList (Maybe Text)

-- | OAuth bearer token.
pcmalBearerToken :: Lens' ProjectsCategoriesMetricAssociationsList (Maybe Text)

-- | A filter that specifies what MetricAssociations to return.
pcmalFilter :: Lens' ProjectsCategoriesMetricAssociationsList (Maybe Text)

-- | If this field is not empty then it must contain the nextPageToken
--   value returned by a previous call to this method. Using this field
--   causes the method to return additional results from the previous
--   method call.
pcmalPageToken :: Lens' ProjectsCategoriesMetricAssociationsList (Maybe Text)

-- | A positive number that is the maximum number of results to return.
--   When 0, use default page size.
pcmalPageSize :: Lens' ProjectsCategoriesMetricAssociationsList (Maybe Int32)

-- | JSONP
pcmalCallback :: Lens' ProjectsCategoriesMetricAssociationsList (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Monitoring.Projects.Categories.MetricAssociations.List.ProjectsCategoriesMetricAssociationsList
instance Data.Data.Data Network.Google.Resource.Monitoring.Projects.Categories.MetricAssociations.List.ProjectsCategoriesMetricAssociationsList
instance GHC.Show.Show Network.Google.Resource.Monitoring.Projects.Categories.MetricAssociations.List.ProjectsCategoriesMetricAssociationsList
instance GHC.Classes.Eq Network.Google.Resource.Monitoring.Projects.Categories.MetricAssociations.List.ProjectsCategoriesMetricAssociationsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Monitoring.Projects.Categories.MetricAssociations.List.ProjectsCategoriesMetricAssociationsList


-- | Stackdriver Monitoring Agent only: Creates a new time series. This
--   method is only for use by the Stackdriver Monitoring Agent. Use
--   projects.timeSeries.create instead.
--   
--   <i>See:</i> <a>Stackdriver Monitoring API Reference</a> for
--   <tt>monitoring.projects.collectdTimeSeries.create</tt>.
module Network.Google.Resource.Monitoring.Projects.CollectdTimeSeries.Create

-- | A resource alias for
--   <tt>monitoring.projects.collectdTimeSeries.create</tt> method which
--   the <a>ProjectsCollectdTimeSeriesCreate</a> request conforms to.
type ProjectsCollectdTimeSeriesCreateResource = "v3" :> (Capture "name" Text :> ("collectdTimeSeries" :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] CreateCollectdTimeSeriesRequest :> Post '[JSON] Empty)))))))))))

-- | Creates a value of <a>ProjectsCollectdTimeSeriesCreate</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>pctscXgafv</a></li>
--   <li><a>pctscUploadProtocol</a></li>
--   <li><a>pctscPp</a></li>
--   <li><a>pctscAccessToken</a></li>
--   <li><a>pctscUploadType</a></li>
--   <li><a>pctscPayload</a></li>
--   <li><a>pctscBearerToken</a></li>
--   <li><a>pctscName</a></li>
--   <li><a>pctscCallback</a></li>
--   </ul>
projectsCollectdTimeSeriesCreate :: CreateCollectdTimeSeriesRequest -> Text -> ProjectsCollectdTimeSeriesCreate

-- | Stackdriver Monitoring Agent only: Creates a new time series. This
--   method is only for use by the Stackdriver Monitoring Agent. Use
--   projects.timeSeries.create instead.
--   
--   <i>See:</i> <a>projectsCollectdTimeSeriesCreate</a> smart constructor.
data ProjectsCollectdTimeSeriesCreate

-- | V1 error format.
pctscXgafv :: Lens' ProjectsCollectdTimeSeriesCreate (Maybe Xgafv)

-- | Upload protocol for media (e.g. "raw", "multipart").
pctscUploadProtocol :: Lens' ProjectsCollectdTimeSeriesCreate (Maybe Text)

-- | Pretty-print response.
pctscPp :: Lens' ProjectsCollectdTimeSeriesCreate Bool

-- | OAuth access token.
pctscAccessToken :: Lens' ProjectsCollectdTimeSeriesCreate (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
pctscUploadType :: Lens' ProjectsCollectdTimeSeriesCreate (Maybe Text)

-- | Multipart request metadata.
pctscPayload :: Lens' ProjectsCollectdTimeSeriesCreate CreateCollectdTimeSeriesRequest

-- | OAuth bearer token.
pctscBearerToken :: Lens' ProjectsCollectdTimeSeriesCreate (Maybe Text)

-- | The project in which to create the time series. The format is
--   "projects/PROJECT_ID_OR_NUMBER".
pctscName :: Lens' ProjectsCollectdTimeSeriesCreate Text

-- | JSONP
pctscCallback :: Lens' ProjectsCollectdTimeSeriesCreate (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Monitoring.Projects.CollectdTimeSeries.Create.ProjectsCollectdTimeSeriesCreate
instance Data.Data.Data Network.Google.Resource.Monitoring.Projects.CollectdTimeSeries.Create.ProjectsCollectdTimeSeriesCreate
instance GHC.Show.Show Network.Google.Resource.Monitoring.Projects.CollectdTimeSeries.Create.ProjectsCollectdTimeSeriesCreate
instance GHC.Classes.Eq Network.Google.Resource.Monitoring.Projects.CollectdTimeSeries.Create.ProjectsCollectdTimeSeriesCreate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Monitoring.Projects.CollectdTimeSeries.Create.ProjectsCollectdTimeSeriesCreate


-- | Creates a new group.
--   
--   <i>See:</i> <a>Stackdriver Monitoring API Reference</a> for
--   <tt>monitoring.projects.groups.create</tt>.
module Network.Google.Resource.Monitoring.Projects.Groups.Create

-- | A resource alias for <tt>monitoring.projects.groups.create</tt> method
--   which the <a>ProjectsGroupsCreate</a> request conforms to.
type ProjectsGroupsCreateResource = "v3" :> (Capture "name" Text :> ("groups" :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "validateOnly" Bool :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Group :> Post '[JSON] Group))))))))))))

-- | Creates a value of <a>ProjectsGroupsCreate</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>pgcXgafv</a></li>
--   <li><a>pgcValidateOnly</a></li>
--   <li><a>pgcUploadProtocol</a></li>
--   <li><a>pgcPp</a></li>
--   <li><a>pgcAccessToken</a></li>
--   <li><a>pgcUploadType</a></li>
--   <li><a>pgcPayload</a></li>
--   <li><a>pgcBearerToken</a></li>
--   <li><a>pgcName</a></li>
--   <li><a>pgcCallback</a></li>
--   </ul>
projectsGroupsCreate :: Group -> Text -> ProjectsGroupsCreate

-- | Creates a new group.
--   
--   <i>See:</i> <a>projectsGroupsCreate</a> smart constructor.
data ProjectsGroupsCreate

-- | V1 error format.
pgcXgafv :: Lens' ProjectsGroupsCreate (Maybe Xgafv)

-- | If true, validate this request but do not create the group.
pgcValidateOnly :: Lens' ProjectsGroupsCreate (Maybe Bool)

-- | Upload protocol for media (e.g. "raw", "multipart").
pgcUploadProtocol :: Lens' ProjectsGroupsCreate (Maybe Text)

-- | Pretty-print response.
pgcPp :: Lens' ProjectsGroupsCreate Bool

-- | OAuth access token.
pgcAccessToken :: Lens' ProjectsGroupsCreate (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
pgcUploadType :: Lens' ProjectsGroupsCreate (Maybe Text)

-- | Multipart request metadata.
pgcPayload :: Lens' ProjectsGroupsCreate Group

-- | OAuth bearer token.
pgcBearerToken :: Lens' ProjectsGroupsCreate (Maybe Text)

-- | The project in which to create the group. The format is
--   "projects/{project_id_or_number}".
pgcName :: Lens' ProjectsGroupsCreate Text

-- | JSONP
pgcCallback :: Lens' ProjectsGroupsCreate (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Monitoring.Projects.Groups.Create.ProjectsGroupsCreate
instance Data.Data.Data Network.Google.Resource.Monitoring.Projects.Groups.Create.ProjectsGroupsCreate
instance GHC.Show.Show Network.Google.Resource.Monitoring.Projects.Groups.Create.ProjectsGroupsCreate
instance GHC.Classes.Eq Network.Google.Resource.Monitoring.Projects.Groups.Create.ProjectsGroupsCreate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Monitoring.Projects.Groups.Create.ProjectsGroupsCreate


-- | Deletes an existing group.
--   
--   <i>See:</i> <a>Stackdriver Monitoring API Reference</a> for
--   <tt>monitoring.projects.groups.delete</tt>.
module Network.Google.Resource.Monitoring.Projects.Groups.Delete

-- | A resource alias for <tt>monitoring.projects.groups.delete</tt> method
--   which the <a>ProjectsGroupsDelete</a> request conforms to.
type ProjectsGroupsDeleteResource = "v3" :> (Capture "name" Text :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] Empty)))))))))

-- | Creates a value of <a>ProjectsGroupsDelete</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>pgdXgafv</a></li>
--   <li><a>pgdUploadProtocol</a></li>
--   <li><a>pgdPp</a></li>
--   <li><a>pgdAccessToken</a></li>
--   <li><a>pgdUploadType</a></li>
--   <li><a>pgdBearerToken</a></li>
--   <li><a>pgdName</a></li>
--   <li><a>pgdCallback</a></li>
--   </ul>
projectsGroupsDelete :: Text -> ProjectsGroupsDelete

-- | Deletes an existing group.
--   
--   <i>See:</i> <a>projectsGroupsDelete</a> smart constructor.
data ProjectsGroupsDelete

-- | V1 error format.
pgdXgafv :: Lens' ProjectsGroupsDelete (Maybe Xgafv)

-- | Upload protocol for media (e.g. "raw", "multipart").
pgdUploadProtocol :: Lens' ProjectsGroupsDelete (Maybe Text)

-- | Pretty-print response.
pgdPp :: Lens' ProjectsGroupsDelete Bool

-- | OAuth access token.
pgdAccessToken :: Lens' ProjectsGroupsDelete (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
pgdUploadType :: Lens' ProjectsGroupsDelete (Maybe Text)

-- | OAuth bearer token.
pgdBearerToken :: Lens' ProjectsGroupsDelete (Maybe Text)

-- | The group to delete. The format is
--   "projects/{project_id_or_number}/groups/{group_id}".
pgdName :: Lens' ProjectsGroupsDelete Text

-- | JSONP
pgdCallback :: Lens' ProjectsGroupsDelete (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Monitoring.Projects.Groups.Delete.ProjectsGroupsDelete
instance Data.Data.Data Network.Google.Resource.Monitoring.Projects.Groups.Delete.ProjectsGroupsDelete
instance GHC.Show.Show Network.Google.Resource.Monitoring.Projects.Groups.Delete.ProjectsGroupsDelete
instance GHC.Classes.Eq Network.Google.Resource.Monitoring.Projects.Groups.Delete.ProjectsGroupsDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Monitoring.Projects.Groups.Delete.ProjectsGroupsDelete


-- | Gets a single group.
--   
--   <i>See:</i> <a>Stackdriver Monitoring API Reference</a> for
--   <tt>monitoring.projects.groups.get</tt>.
module Network.Google.Resource.Monitoring.Projects.Groups.Get

-- | A resource alias for <tt>monitoring.projects.groups.get</tt> method
--   which the <a>ProjectsGroupsGet</a> request conforms to.
type ProjectsGroupsGetResource = "v3" :> (Capture "name" Text :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Group)))))))))

-- | Creates a value of <a>ProjectsGroupsGet</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>pggXgafv</a></li>
--   <li><a>pggUploadProtocol</a></li>
--   <li><a>pggPp</a></li>
--   <li><a>pggAccessToken</a></li>
--   <li><a>pggUploadType</a></li>
--   <li><a>pggBearerToken</a></li>
--   <li><a>pggName</a></li>
--   <li><a>pggCallback</a></li>
--   </ul>
projectsGroupsGet :: Text -> ProjectsGroupsGet

-- | Gets a single group.
--   
--   <i>See:</i> <a>projectsGroupsGet</a> smart constructor.
data ProjectsGroupsGet

-- | V1 error format.
pggXgafv :: Lens' ProjectsGroupsGet (Maybe Xgafv)

-- | Upload protocol for media (e.g. "raw", "multipart").
pggUploadProtocol :: Lens' ProjectsGroupsGet (Maybe Text)

-- | Pretty-print response.
pggPp :: Lens' ProjectsGroupsGet Bool

-- | OAuth access token.
pggAccessToken :: Lens' ProjectsGroupsGet (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
pggUploadType :: Lens' ProjectsGroupsGet (Maybe Text)

-- | OAuth bearer token.
pggBearerToken :: Lens' ProjectsGroupsGet (Maybe Text)

-- | The group to retrieve. The format is
--   "projects/{project_id_or_number}/groups/{group_id}".
pggName :: Lens' ProjectsGroupsGet Text

-- | JSONP
pggCallback :: Lens' ProjectsGroupsGet (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Monitoring.Projects.Groups.Get.ProjectsGroupsGet
instance Data.Data.Data Network.Google.Resource.Monitoring.Projects.Groups.Get.ProjectsGroupsGet
instance GHC.Show.Show Network.Google.Resource.Monitoring.Projects.Groups.Get.ProjectsGroupsGet
instance GHC.Classes.Eq Network.Google.Resource.Monitoring.Projects.Groups.Get.ProjectsGroupsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Monitoring.Projects.Groups.Get.ProjectsGroupsGet


-- | Lists the existing groups.
--   
--   <i>See:</i> <a>Stackdriver Monitoring API Reference</a> for
--   <tt>monitoring.projects.groups.list</tt>.
module Network.Google.Resource.Monitoring.Projects.Groups.List

-- | A resource alias for <tt>monitoring.projects.groups.list</tt> method
--   which the <a>ProjectsGroupsList</a> request conforms to.
type ProjectsGroupsListResource = "v3" :> (Capture "name" Text :> ("groups" :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "upload_protocol" Text :> (QueryParam "childrenOfGroup" Text :> (QueryParam "pp" Bool :> (QueryParam "descendantsOfGroup" Text :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "pageToken" Text :> (QueryParam "pageSize" (Textual Int32) :> (QueryParam "ancestorsOfGroup" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ListGroupsResponse)))))))))))))))

-- | Creates a value of <a>ProjectsGroupsList</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>pglXgafv</a></li>
--   <li><a>pglUploadProtocol</a></li>
--   <li><a>pglChildrenOfGroup</a></li>
--   <li><a>pglPp</a></li>
--   <li><a>pglDescendantsOfGroup</a></li>
--   <li><a>pglAccessToken</a></li>
--   <li><a>pglUploadType</a></li>
--   <li><a>pglBearerToken</a></li>
--   <li><a>pglName</a></li>
--   <li><a>pglPageToken</a></li>
--   <li><a>pglPageSize</a></li>
--   <li><a>pglAncestorsOfGroup</a></li>
--   <li><a>pglCallback</a></li>
--   </ul>
projectsGroupsList :: Text -> ProjectsGroupsList

-- | Lists the existing groups.
--   
--   <i>See:</i> <a>projectsGroupsList</a> smart constructor.
data ProjectsGroupsList

-- | V1 error format.
pglXgafv :: Lens' ProjectsGroupsList (Maybe Xgafv)

-- | Upload protocol for media (e.g. "raw", "multipart").
pglUploadProtocol :: Lens' ProjectsGroupsList (Maybe Text)

-- | A group name: "projects/{project_id_or_number}/groups/{group_id}".
--   Returns groups whose parentName field contains the group name. If no
--   groups have this parent, the results are empty.
pglChildrenOfGroup :: Lens' ProjectsGroupsList (Maybe Text)

-- | Pretty-print response.
pglPp :: Lens' ProjectsGroupsList Bool

-- | A group name: "projects/{project_id_or_number}/groups/{group_id}".
--   Returns the descendants of the specified group. This is a superset of
--   the results returned by the childrenOfGroup filter, and includes
--   children-of-children, and so forth.
pglDescendantsOfGroup :: Lens' ProjectsGroupsList (Maybe Text)

-- | OAuth access token.
pglAccessToken :: Lens' ProjectsGroupsList (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
pglUploadType :: Lens' ProjectsGroupsList (Maybe Text)

-- | OAuth bearer token.
pglBearerToken :: Lens' ProjectsGroupsList (Maybe Text)

-- | The project whose groups are to be listed. The format is
--   "projects/{project_id_or_number}".
pglName :: Lens' ProjectsGroupsList Text

-- | If this field is not empty then it must contain the nextPageToken
--   value returned by a previous call to this method. Using this field
--   causes the method to return additional results from the previous
--   method call.
pglPageToken :: Lens' ProjectsGroupsList (Maybe Text)

-- | A positive number that is the maximum number of results to return.
pglPageSize :: Lens' ProjectsGroupsList (Maybe Int32)

-- | A group name: "projects/{project_id_or_number}/groups/{group_id}".
--   Returns groups that are ancestors of the specified group. The groups
--   are returned in order, starting with the immediate parent and ending
--   with the most distant ancestor. If the specified group has no
--   immediate parent, the results are empty.
pglAncestorsOfGroup :: Lens' ProjectsGroupsList (Maybe Text)

-- | JSONP
pglCallback :: Lens' ProjectsGroupsList (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Monitoring.Projects.Groups.List.ProjectsGroupsList
instance Data.Data.Data Network.Google.Resource.Monitoring.Projects.Groups.List.ProjectsGroupsList
instance GHC.Show.Show Network.Google.Resource.Monitoring.Projects.Groups.List.ProjectsGroupsList
instance GHC.Classes.Eq Network.Google.Resource.Monitoring.Projects.Groups.List.ProjectsGroupsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Monitoring.Projects.Groups.List.ProjectsGroupsList


-- | Lists the monitored resources that are members of a group.
--   
--   <i>See:</i> <a>Stackdriver Monitoring API Reference</a> for
--   <tt>monitoring.projects.groups.members.list</tt>.
module Network.Google.Resource.Monitoring.Projects.Groups.Members.List

-- | A resource alias for <tt>monitoring.projects.groups.members.list</tt>
--   method which the <a>ProjectsGroupsMembersList</a> request conforms to.
type ProjectsGroupsMembersListResource = "v3" :> (Capture "name" Text :> ("members" :> (QueryParam "interval.startTime" DateTime' :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "filter" Text :> (QueryParam "pageToken" Text :> (QueryParam "interval.endTime" DateTime' :> (QueryParam "pageSize" (Textual Int32) :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ListGroupMembersResponse)))))))))))))))

-- | Creates a value of <a>ProjectsGroupsMembersList</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>pgmlIntervalStartTime</a></li>
--   <li><a>pgmlXgafv</a></li>
--   <li><a>pgmlUploadProtocol</a></li>
--   <li><a>pgmlPp</a></li>
--   <li><a>pgmlAccessToken</a></li>
--   <li><a>pgmlUploadType</a></li>
--   <li><a>pgmlBearerToken</a></li>
--   <li><a>pgmlName</a></li>
--   <li><a>pgmlFilter</a></li>
--   <li><a>pgmlPageToken</a></li>
--   <li><a>pgmlIntervalEndTime</a></li>
--   <li><a>pgmlPageSize</a></li>
--   <li><a>pgmlCallback</a></li>
--   </ul>
projectsGroupsMembersList :: Text -> ProjectsGroupsMembersList

-- | Lists the monitored resources that are members of a group.
--   
--   <i>See:</i> <a>projectsGroupsMembersList</a> smart constructor.
data ProjectsGroupsMembersList

-- | Optional. The beginning of the time interval. The default value for
--   the start time is the end time. The start time must not be later than
--   the end time.
pgmlIntervalStartTime :: Lens' ProjectsGroupsMembersList (Maybe UTCTime)

-- | V1 error format.
pgmlXgafv :: Lens' ProjectsGroupsMembersList (Maybe Xgafv)

-- | Upload protocol for media (e.g. "raw", "multipart").
pgmlUploadProtocol :: Lens' ProjectsGroupsMembersList (Maybe Text)

-- | Pretty-print response.
pgmlPp :: Lens' ProjectsGroupsMembersList Bool

-- | OAuth access token.
pgmlAccessToken :: Lens' ProjectsGroupsMembersList (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
pgmlUploadType :: Lens' ProjectsGroupsMembersList (Maybe Text)

-- | OAuth bearer token.
pgmlBearerToken :: Lens' ProjectsGroupsMembersList (Maybe Text)

-- | The group whose members are listed. The format is
--   "projects/{project_id_or_number}/groups/{group_id}".
pgmlName :: Lens' ProjectsGroupsMembersList Text

-- | An optional list filter describing the members to be returned. The
--   filter may reference the type, labels, and metadata of monitored
--   resources that comprise the group. For example, to return only
--   resources representing Compute Engine VM instances, use this filter:
--   resource.type = "gce_instance"
pgmlFilter :: Lens' ProjectsGroupsMembersList (Maybe Text)

-- | If this field is not empty then it must contain the nextPageToken
--   value returned by a previous call to this method. Using this field
--   causes the method to return additional results from the previous
--   method call.
pgmlPageToken :: Lens' ProjectsGroupsMembersList (Maybe Text)

-- | Required. The end of the time interval.
pgmlIntervalEndTime :: Lens' ProjectsGroupsMembersList (Maybe UTCTime)

-- | A positive number that is the maximum number of results to return.
pgmlPageSize :: Lens' ProjectsGroupsMembersList (Maybe Int32)

-- | JSONP
pgmlCallback :: Lens' ProjectsGroupsMembersList (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Monitoring.Projects.Groups.Members.List.ProjectsGroupsMembersList
instance Data.Data.Data Network.Google.Resource.Monitoring.Projects.Groups.Members.List.ProjectsGroupsMembersList
instance GHC.Show.Show Network.Google.Resource.Monitoring.Projects.Groups.Members.List.ProjectsGroupsMembersList
instance GHC.Classes.Eq Network.Google.Resource.Monitoring.Projects.Groups.Members.List.ProjectsGroupsMembersList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Monitoring.Projects.Groups.Members.List.ProjectsGroupsMembersList


-- | Updates an existing group. You can change any group attributes except
--   name.
--   
--   <i>See:</i> <a>Stackdriver Monitoring API Reference</a> for
--   <tt>monitoring.projects.groups.update</tt>.
module Network.Google.Resource.Monitoring.Projects.Groups.Update

-- | A resource alias for <tt>monitoring.projects.groups.update</tt> method
--   which the <a>ProjectsGroupsUpdate</a> request conforms to.
type ProjectsGroupsUpdateResource = "v3" :> (Capture "name" Text :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "validateOnly" Bool :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Group :> Put '[JSON] Group)))))))))))

-- | Creates a value of <a>ProjectsGroupsUpdate</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>pguXgafv</a></li>
--   <li><a>pguValidateOnly</a></li>
--   <li><a>pguUploadProtocol</a></li>
--   <li><a>pguPp</a></li>
--   <li><a>pguAccessToken</a></li>
--   <li><a>pguUploadType</a></li>
--   <li><a>pguPayload</a></li>
--   <li><a>pguBearerToken</a></li>
--   <li><a>pguName</a></li>
--   <li><a>pguCallback</a></li>
--   </ul>
projectsGroupsUpdate :: Group -> Text -> ProjectsGroupsUpdate

-- | Updates an existing group. You can change any group attributes except
--   name.
--   
--   <i>See:</i> <a>projectsGroupsUpdate</a> smart constructor.
data ProjectsGroupsUpdate

-- | V1 error format.
pguXgafv :: Lens' ProjectsGroupsUpdate (Maybe Xgafv)

-- | If true, validate this request but do not update the existing group.
pguValidateOnly :: Lens' ProjectsGroupsUpdate (Maybe Bool)

-- | Upload protocol for media (e.g. "raw", "multipart").
pguUploadProtocol :: Lens' ProjectsGroupsUpdate (Maybe Text)

-- | Pretty-print response.
pguPp :: Lens' ProjectsGroupsUpdate Bool

-- | OAuth access token.
pguAccessToken :: Lens' ProjectsGroupsUpdate (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
pguUploadType :: Lens' ProjectsGroupsUpdate (Maybe Text)

-- | Multipart request metadata.
pguPayload :: Lens' ProjectsGroupsUpdate Group

-- | OAuth bearer token.
pguBearerToken :: Lens' ProjectsGroupsUpdate (Maybe Text)

-- | Output only. The name of this group. The format is
--   "projects/{project_id_or_number}/groups/{group_id}". When creating a
--   group, this field is ignored and a new name is created consisting of
--   the project specified in the call to CreateGroup and a unique
--   {group_id} that is generated automatically.
pguName :: Lens' ProjectsGroupsUpdate Text

-- | JSONP
pguCallback :: Lens' ProjectsGroupsUpdate (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Monitoring.Projects.Groups.Update.ProjectsGroupsUpdate
instance Data.Data.Data Network.Google.Resource.Monitoring.Projects.Groups.Update.ProjectsGroupsUpdate
instance GHC.Show.Show Network.Google.Resource.Monitoring.Projects.Groups.Update.ProjectsGroupsUpdate
instance GHC.Classes.Eq Network.Google.Resource.Monitoring.Projects.Groups.Update.ProjectsGroupsUpdate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Monitoring.Projects.Groups.Update.ProjectsGroupsUpdate


-- | Creates a new metric descriptor. User-created metric descriptors
--   define custom metrics.
--   
--   <i>See:</i> <a>Stackdriver Monitoring API Reference</a> for
--   <tt>monitoring.projects.metricDescriptors.create</tt>.
module Network.Google.Resource.Monitoring.Projects.MetricDescriptors.Create

-- | A resource alias for
--   <tt>monitoring.projects.metricDescriptors.create</tt> method which the
--   <a>ProjectsMetricDescriptorsCreate</a> request conforms to.
type ProjectsMetricDescriptorsCreateResource = "v3" :> (Capture "name" Text :> ("metricDescriptors" :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] MetricDescriptor :> Post '[JSON] MetricDescriptor)))))))))))

-- | Creates a value of <a>ProjectsMetricDescriptorsCreate</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>pmdcXgafv</a></li>
--   <li><a>pmdcUploadProtocol</a></li>
--   <li><a>pmdcPp</a></li>
--   <li><a>pmdcAccessToken</a></li>
--   <li><a>pmdcUploadType</a></li>
--   <li><a>pmdcPayload</a></li>
--   <li><a>pmdcBearerToken</a></li>
--   <li><a>pmdcName</a></li>
--   <li><a>pmdcCallback</a></li>
--   </ul>
projectsMetricDescriptorsCreate :: MetricDescriptor -> Text -> ProjectsMetricDescriptorsCreate

-- | Creates a new metric descriptor. User-created metric descriptors
--   define custom metrics.
--   
--   <i>See:</i> <a>projectsMetricDescriptorsCreate</a> smart constructor.
data ProjectsMetricDescriptorsCreate

-- | V1 error format.
pmdcXgafv :: Lens' ProjectsMetricDescriptorsCreate (Maybe Xgafv)

-- | Upload protocol for media (e.g. "raw", "multipart").
pmdcUploadProtocol :: Lens' ProjectsMetricDescriptorsCreate (Maybe Text)

-- | Pretty-print response.
pmdcPp :: Lens' ProjectsMetricDescriptorsCreate Bool

-- | OAuth access token.
pmdcAccessToken :: Lens' ProjectsMetricDescriptorsCreate (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
pmdcUploadType :: Lens' ProjectsMetricDescriptorsCreate (Maybe Text)

-- | Multipart request metadata.
pmdcPayload :: Lens' ProjectsMetricDescriptorsCreate MetricDescriptor

-- | OAuth bearer token.
pmdcBearerToken :: Lens' ProjectsMetricDescriptorsCreate (Maybe Text)

-- | The project on which to execute the request. The format is
--   "projects/{project_id_or_number}".
pmdcName :: Lens' ProjectsMetricDescriptorsCreate Text

-- | JSONP
pmdcCallback :: Lens' ProjectsMetricDescriptorsCreate (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Monitoring.Projects.MetricDescriptors.Create.ProjectsMetricDescriptorsCreate
instance Data.Data.Data Network.Google.Resource.Monitoring.Projects.MetricDescriptors.Create.ProjectsMetricDescriptorsCreate
instance GHC.Show.Show Network.Google.Resource.Monitoring.Projects.MetricDescriptors.Create.ProjectsMetricDescriptorsCreate
instance GHC.Classes.Eq Network.Google.Resource.Monitoring.Projects.MetricDescriptors.Create.ProjectsMetricDescriptorsCreate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Monitoring.Projects.MetricDescriptors.Create.ProjectsMetricDescriptorsCreate


-- | Deletes a metric descriptor. Only user-created custom metrics can be
--   deleted.
--   
--   <i>See:</i> <a>Stackdriver Monitoring API Reference</a> for
--   <tt>monitoring.projects.metricDescriptors.delete</tt>.
module Network.Google.Resource.Monitoring.Projects.MetricDescriptors.Delete

-- | A resource alias for
--   <tt>monitoring.projects.metricDescriptors.delete</tt> method which the
--   <a>ProjectsMetricDescriptorsDelete</a> request conforms to.
type ProjectsMetricDescriptorsDeleteResource = "v3" :> (Capture "name" Text :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] Empty)))))))))

-- | Creates a value of <a>ProjectsMetricDescriptorsDelete</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>pmddXgafv</a></li>
--   <li><a>pmddUploadProtocol</a></li>
--   <li><a>pmddPp</a></li>
--   <li><a>pmddAccessToken</a></li>
--   <li><a>pmddUploadType</a></li>
--   <li><a>pmddBearerToken</a></li>
--   <li><a>pmddName</a></li>
--   <li><a>pmddCallback</a></li>
--   </ul>
projectsMetricDescriptorsDelete :: Text -> ProjectsMetricDescriptorsDelete

-- | Deletes a metric descriptor. Only user-created custom metrics can be
--   deleted.
--   
--   <i>See:</i> <a>projectsMetricDescriptorsDelete</a> smart constructor.
data ProjectsMetricDescriptorsDelete

-- | V1 error format.
pmddXgafv :: Lens' ProjectsMetricDescriptorsDelete (Maybe Xgafv)

-- | Upload protocol for media (e.g. "raw", "multipart").
pmddUploadProtocol :: Lens' ProjectsMetricDescriptorsDelete (Maybe Text)

-- | Pretty-print response.
pmddPp :: Lens' ProjectsMetricDescriptorsDelete Bool

-- | OAuth access token.
pmddAccessToken :: Lens' ProjectsMetricDescriptorsDelete (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
pmddUploadType :: Lens' ProjectsMetricDescriptorsDelete (Maybe Text)

-- | OAuth bearer token.
pmddBearerToken :: Lens' ProjectsMetricDescriptorsDelete (Maybe Text)

-- | The metric descriptor on which to execute the request. The format is
--   "projects/{project_id_or_number}/metricDescriptors/{metric_id}". An
--   example of {metric_id} is: "custom.googleapis.com/my_test_metric".
pmddName :: Lens' ProjectsMetricDescriptorsDelete Text

-- | JSONP
pmddCallback :: Lens' ProjectsMetricDescriptorsDelete (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Monitoring.Projects.MetricDescriptors.Delete.ProjectsMetricDescriptorsDelete
instance Data.Data.Data Network.Google.Resource.Monitoring.Projects.MetricDescriptors.Delete.ProjectsMetricDescriptorsDelete
instance GHC.Show.Show Network.Google.Resource.Monitoring.Projects.MetricDescriptors.Delete.ProjectsMetricDescriptorsDelete
instance GHC.Classes.Eq Network.Google.Resource.Monitoring.Projects.MetricDescriptors.Delete.ProjectsMetricDescriptorsDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Monitoring.Projects.MetricDescriptors.Delete.ProjectsMetricDescriptorsDelete


-- | Gets a single metric descriptor. This method does not require a
--   Stackdriver account.
--   
--   <i>See:</i> <a>Stackdriver Monitoring API Reference</a> for
--   <tt>monitoring.projects.metricDescriptors.get</tt>.
module Network.Google.Resource.Monitoring.Projects.MetricDescriptors.Get

-- | A resource alias for
--   <tt>monitoring.projects.metricDescriptors.get</tt> method which the
--   <a>ProjectsMetricDescriptorsGet</a> request conforms to.
type ProjectsMetricDescriptorsGetResource = "v3" :> (Capture "name" Text :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] MetricDescriptor)))))))))

-- | Creates a value of <a>ProjectsMetricDescriptorsGet</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>pmdgXgafv</a></li>
--   <li><a>pmdgUploadProtocol</a></li>
--   <li><a>pmdgPp</a></li>
--   <li><a>pmdgAccessToken</a></li>
--   <li><a>pmdgUploadType</a></li>
--   <li><a>pmdgBearerToken</a></li>
--   <li><a>pmdgName</a></li>
--   <li><a>pmdgCallback</a></li>
--   </ul>
projectsMetricDescriptorsGet :: Text -> ProjectsMetricDescriptorsGet

-- | Gets a single metric descriptor. This method does not require a
--   Stackdriver account.
--   
--   <i>See:</i> <a>projectsMetricDescriptorsGet</a> smart constructor.
data ProjectsMetricDescriptorsGet

-- | V1 error format.
pmdgXgafv :: Lens' ProjectsMetricDescriptorsGet (Maybe Xgafv)

-- | Upload protocol for media (e.g. "raw", "multipart").
pmdgUploadProtocol :: Lens' ProjectsMetricDescriptorsGet (Maybe Text)

-- | Pretty-print response.
pmdgPp :: Lens' ProjectsMetricDescriptorsGet Bool

-- | OAuth access token.
pmdgAccessToken :: Lens' ProjectsMetricDescriptorsGet (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
pmdgUploadType :: Lens' ProjectsMetricDescriptorsGet (Maybe Text)

-- | OAuth bearer token.
pmdgBearerToken :: Lens' ProjectsMetricDescriptorsGet (Maybe Text)

-- | The metric descriptor on which to execute the request. The format is
--   "projects/{project_id_or_number}/metricDescriptors/{metric_id}". An
--   example value of {metric_id} is
--   "compute.googleapis.com/instance/disk/read_bytes_count".
pmdgName :: Lens' ProjectsMetricDescriptorsGet Text

-- | JSONP
pmdgCallback :: Lens' ProjectsMetricDescriptorsGet (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Monitoring.Projects.MetricDescriptors.Get.ProjectsMetricDescriptorsGet
instance Data.Data.Data Network.Google.Resource.Monitoring.Projects.MetricDescriptors.Get.ProjectsMetricDescriptorsGet
instance GHC.Show.Show Network.Google.Resource.Monitoring.Projects.MetricDescriptors.Get.ProjectsMetricDescriptorsGet
instance GHC.Classes.Eq Network.Google.Resource.Monitoring.Projects.MetricDescriptors.Get.ProjectsMetricDescriptorsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Monitoring.Projects.MetricDescriptors.Get.ProjectsMetricDescriptorsGet


-- | Lists metric descriptors that match a filter. This method does not
--   require a Stackdriver account.
--   
--   <i>See:</i> <a>Stackdriver Monitoring API Reference</a> for
--   <tt>monitoring.projects.metricDescriptors.list</tt>.
module Network.Google.Resource.Monitoring.Projects.MetricDescriptors.List

-- | A resource alias for
--   <tt>monitoring.projects.metricDescriptors.list</tt> method which the
--   <a>ProjectsMetricDescriptorsList</a> request conforms to.
type ProjectsMetricDescriptorsListResource = "v3" :> (Capture "name" Text :> ("metricDescriptors" :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "filter" Text :> (QueryParam "pageToken" Text :> (QueryParam "pageSize" (Textual Int32) :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ListMetricDescriptorsResponse)))))))))))))

-- | Creates a value of <a>ProjectsMetricDescriptorsList</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>pmdlXgafv</a></li>
--   <li><a>pmdlUploadProtocol</a></li>
--   <li><a>pmdlPp</a></li>
--   <li><a>pmdlAccessToken</a></li>
--   <li><a>pmdlUploadType</a></li>
--   <li><a>pmdlBearerToken</a></li>
--   <li><a>pmdlName</a></li>
--   <li><a>pmdlFilter</a></li>
--   <li><a>pmdlPageToken</a></li>
--   <li><a>pmdlPageSize</a></li>
--   <li><a>pmdlCallback</a></li>
--   </ul>
projectsMetricDescriptorsList :: Text -> ProjectsMetricDescriptorsList

-- | Lists metric descriptors that match a filter. This method does not
--   require a Stackdriver account.
--   
--   <i>See:</i> <a>projectsMetricDescriptorsList</a> smart constructor.
data ProjectsMetricDescriptorsList

-- | V1 error format.
pmdlXgafv :: Lens' ProjectsMetricDescriptorsList (Maybe Xgafv)

-- | Upload protocol for media (e.g. "raw", "multipart").
pmdlUploadProtocol :: Lens' ProjectsMetricDescriptorsList (Maybe Text)

-- | Pretty-print response.
pmdlPp :: Lens' ProjectsMetricDescriptorsList Bool

-- | OAuth access token.
pmdlAccessToken :: Lens' ProjectsMetricDescriptorsList (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
pmdlUploadType :: Lens' ProjectsMetricDescriptorsList (Maybe Text)

-- | OAuth bearer token.
pmdlBearerToken :: Lens' ProjectsMetricDescriptorsList (Maybe Text)

-- | The project on which to execute the request. The format is
--   "projects/{project_id_or_number}".
pmdlName :: Lens' ProjectsMetricDescriptorsList Text

-- | If this field is empty, all custom and system-defined metric
--   descriptors are returned. Otherwise, the filter specifies which metric
--   descriptors are to be returned. For example, the following filter
--   matches all custom metrics: metric.type =
--   starts_with("custom.googleapis.com/")
pmdlFilter :: Lens' ProjectsMetricDescriptorsList (Maybe Text)

-- | If this field is not empty then it must contain the nextPageToken
--   value returned by a previous call to this method. Using this field
--   causes the method to return additional results from the previous
--   method call.
pmdlPageToken :: Lens' ProjectsMetricDescriptorsList (Maybe Text)

-- | A positive number that is the maximum number of results to return.
pmdlPageSize :: Lens' ProjectsMetricDescriptorsList (Maybe Int32)

-- | JSONP
pmdlCallback :: Lens' ProjectsMetricDescriptorsList (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Monitoring.Projects.MetricDescriptors.List.ProjectsMetricDescriptorsList
instance Data.Data.Data Network.Google.Resource.Monitoring.Projects.MetricDescriptors.List.ProjectsMetricDescriptorsList
instance GHC.Show.Show Network.Google.Resource.Monitoring.Projects.MetricDescriptors.List.ProjectsMetricDescriptorsList
instance GHC.Classes.Eq Network.Google.Resource.Monitoring.Projects.MetricDescriptors.List.ProjectsMetricDescriptorsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Monitoring.Projects.MetricDescriptors.List.ProjectsMetricDescriptorsList


-- | Gets a single monitored resource descriptor. This method does not
--   require a Stackdriver account.
--   
--   <i>See:</i> <a>Stackdriver Monitoring API Reference</a> for
--   <tt>monitoring.projects.monitoredResourceDescriptors.get</tt>.
module Network.Google.Resource.Monitoring.Projects.MonitoredResourceDescriptors.Get

-- | A resource alias for
--   <tt>monitoring.projects.monitoredResourceDescriptors.get</tt> method
--   which the <a>ProjectsMonitoredResourceDescriptorsGet</a> request
--   conforms to.
type ProjectsMonitoredResourceDescriptorsGetResource = "v3" :> (Capture "name" Text :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] MonitoredResourceDescriptor)))))))))

-- | Creates a value of <a>ProjectsMonitoredResourceDescriptorsGet</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>pmrdgXgafv</a></li>
--   <li><a>pmrdgUploadProtocol</a></li>
--   <li><a>pmrdgPp</a></li>
--   <li><a>pmrdgAccessToken</a></li>
--   <li><a>pmrdgUploadType</a></li>
--   <li><a>pmrdgBearerToken</a></li>
--   <li><a>pmrdgName</a></li>
--   <li><a>pmrdgCallback</a></li>
--   </ul>
projectsMonitoredResourceDescriptorsGet :: Text -> ProjectsMonitoredResourceDescriptorsGet

-- | Gets a single monitored resource descriptor. This method does not
--   require a Stackdriver account.
--   
--   <i>See:</i> <a>projectsMonitoredResourceDescriptorsGet</a> smart
--   constructor.
data ProjectsMonitoredResourceDescriptorsGet

-- | V1 error format.
pmrdgXgafv :: Lens' ProjectsMonitoredResourceDescriptorsGet (Maybe Xgafv)

-- | Upload protocol for media (e.g. "raw", "multipart").
pmrdgUploadProtocol :: Lens' ProjectsMonitoredResourceDescriptorsGet (Maybe Text)

-- | Pretty-print response.
pmrdgPp :: Lens' ProjectsMonitoredResourceDescriptorsGet Bool

-- | OAuth access token.
pmrdgAccessToken :: Lens' ProjectsMonitoredResourceDescriptorsGet (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
pmrdgUploadType :: Lens' ProjectsMonitoredResourceDescriptorsGet (Maybe Text)

-- | OAuth bearer token.
pmrdgBearerToken :: Lens' ProjectsMonitoredResourceDescriptorsGet (Maybe Text)

-- | The monitored resource descriptor to get. The format is
--   "projects/{project_id_or_number}/monitoredResourceDescriptors/{resource_type}".
--   The {resource_type} is a predefined type, such as cloudsql_database.
pmrdgName :: Lens' ProjectsMonitoredResourceDescriptorsGet Text

-- | JSONP
pmrdgCallback :: Lens' ProjectsMonitoredResourceDescriptorsGet (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Monitoring.Projects.MonitoredResourceDescriptors.Get.ProjectsMonitoredResourceDescriptorsGet
instance Data.Data.Data Network.Google.Resource.Monitoring.Projects.MonitoredResourceDescriptors.Get.ProjectsMonitoredResourceDescriptorsGet
instance GHC.Show.Show Network.Google.Resource.Monitoring.Projects.MonitoredResourceDescriptors.Get.ProjectsMonitoredResourceDescriptorsGet
instance GHC.Classes.Eq Network.Google.Resource.Monitoring.Projects.MonitoredResourceDescriptors.Get.ProjectsMonitoredResourceDescriptorsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Monitoring.Projects.MonitoredResourceDescriptors.Get.ProjectsMonitoredResourceDescriptorsGet


-- | Lists monitored resource descriptors that match a filter. This method
--   does not require a Stackdriver account.
--   
--   <i>See:</i> <a>Stackdriver Monitoring API Reference</a> for
--   <tt>monitoring.projects.monitoredResourceDescriptors.list</tt>.
module Network.Google.Resource.Monitoring.Projects.MonitoredResourceDescriptors.List

-- | A resource alias for
--   <tt>monitoring.projects.monitoredResourceDescriptors.list</tt> method
--   which the <a>ProjectsMonitoredResourceDescriptorsList</a> request
--   conforms to.
type ProjectsMonitoredResourceDescriptorsListResource = "v3" :> (Capture "name" Text :> ("monitoredResourceDescriptors" :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "filter" Text :> (QueryParam "pageToken" Text :> (QueryParam "pageSize" (Textual Int32) :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ListMonitoredResourceDescriptorsResponse)))))))))))))

-- | Creates a value of <a>ProjectsMonitoredResourceDescriptorsList</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>pmrdlXgafv</a></li>
--   <li><a>pmrdlUploadProtocol</a></li>
--   <li><a>pmrdlPp</a></li>
--   <li><a>pmrdlAccessToken</a></li>
--   <li><a>pmrdlUploadType</a></li>
--   <li><a>pmrdlBearerToken</a></li>
--   <li><a>pmrdlName</a></li>
--   <li><a>pmrdlFilter</a></li>
--   <li><a>pmrdlPageToken</a></li>
--   <li><a>pmrdlPageSize</a></li>
--   <li><a>pmrdlCallback</a></li>
--   </ul>
projectsMonitoredResourceDescriptorsList :: Text -> ProjectsMonitoredResourceDescriptorsList

-- | Lists monitored resource descriptors that match a filter. This method
--   does not require a Stackdriver account.
--   
--   <i>See:</i> <a>projectsMonitoredResourceDescriptorsList</a> smart
--   constructor.
data ProjectsMonitoredResourceDescriptorsList

-- | V1 error format.
pmrdlXgafv :: Lens' ProjectsMonitoredResourceDescriptorsList (Maybe Xgafv)

-- | Upload protocol for media (e.g. "raw", "multipart").
pmrdlUploadProtocol :: Lens' ProjectsMonitoredResourceDescriptorsList (Maybe Text)

-- | Pretty-print response.
pmrdlPp :: Lens' ProjectsMonitoredResourceDescriptorsList Bool

-- | OAuth access token.
pmrdlAccessToken :: Lens' ProjectsMonitoredResourceDescriptorsList (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
pmrdlUploadType :: Lens' ProjectsMonitoredResourceDescriptorsList (Maybe Text)

-- | OAuth bearer token.
pmrdlBearerToken :: Lens' ProjectsMonitoredResourceDescriptorsList (Maybe Text)

-- | The project on which to execute the request. The format is
--   "projects/{project_id_or_number}".
pmrdlName :: Lens' ProjectsMonitoredResourceDescriptorsList Text

-- | An optional filter describing the descriptors to be returned. The
--   filter can reference the descriptor's type and labels. For example,
--   the following filter returns only Google Compute Engine descriptors
--   that have an id label: resource.type = starts_with("gce_") AND
--   resource.label:id
pmrdlFilter :: Lens' ProjectsMonitoredResourceDescriptorsList (Maybe Text)

-- | If this field is not empty then it must contain the nextPageToken
--   value returned by a previous call to this method. Using this field
--   causes the method to return additional results from the previous
--   method call.
pmrdlPageToken :: Lens' ProjectsMonitoredResourceDescriptorsList (Maybe Text)

-- | A positive number that is the maximum number of results to return.
pmrdlPageSize :: Lens' ProjectsMonitoredResourceDescriptorsList (Maybe Int32)

-- | JSONP
pmrdlCallback :: Lens' ProjectsMonitoredResourceDescriptorsList (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Monitoring.Projects.MonitoredResourceDescriptors.List.ProjectsMonitoredResourceDescriptorsList
instance Data.Data.Data Network.Google.Resource.Monitoring.Projects.MonitoredResourceDescriptors.List.ProjectsMonitoredResourceDescriptorsList
instance GHC.Show.Show Network.Google.Resource.Monitoring.Projects.MonitoredResourceDescriptors.List.ProjectsMonitoredResourceDescriptorsList
instance GHC.Classes.Eq Network.Google.Resource.Monitoring.Projects.MonitoredResourceDescriptors.List.ProjectsMonitoredResourceDescriptorsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Monitoring.Projects.MonitoredResourceDescriptors.List.ProjectsMonitoredResourceDescriptorsList


-- | Creates or adds data to one or more time series. The response is empty
--   if all time series in the request were written. If any time series
--   could not be written, a corresponding failure message is included in
--   the error response.
--   
--   <i>See:</i> <a>Stackdriver Monitoring API Reference</a> for
--   <tt>monitoring.projects.timeSeries.create</tt>.
module Network.Google.Resource.Monitoring.Projects.TimeSeries.Create

-- | A resource alias for <tt>monitoring.projects.timeSeries.create</tt>
--   method which the <a>ProjectsTimeSeriesCreate</a> request conforms to.
type ProjectsTimeSeriesCreateResource = "v3" :> (Capture "name" Text :> ("timeSeries" :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] CreateTimeSeriesRequest :> Post '[JSON] Empty)))))))))))

-- | Creates a value of <a>ProjectsTimeSeriesCreate</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>ptscXgafv</a></li>
--   <li><a>ptscUploadProtocol</a></li>
--   <li><a>ptscPp</a></li>
--   <li><a>ptscAccessToken</a></li>
--   <li><a>ptscUploadType</a></li>
--   <li><a>ptscPayload</a></li>
--   <li><a>ptscBearerToken</a></li>
--   <li><a>ptscName</a></li>
--   <li><a>ptscCallback</a></li>
--   </ul>
projectsTimeSeriesCreate :: CreateTimeSeriesRequest -> Text -> ProjectsTimeSeriesCreate

-- | Creates or adds data to one or more time series. The response is empty
--   if all time series in the request were written. If any time series
--   could not be written, a corresponding failure message is included in
--   the error response.
--   
--   <i>See:</i> <a>projectsTimeSeriesCreate</a> smart constructor.
data ProjectsTimeSeriesCreate

-- | V1 error format.
ptscXgafv :: Lens' ProjectsTimeSeriesCreate (Maybe Xgafv)

-- | Upload protocol for media (e.g. "raw", "multipart").
ptscUploadProtocol :: Lens' ProjectsTimeSeriesCreate (Maybe Text)

-- | Pretty-print response.
ptscPp :: Lens' ProjectsTimeSeriesCreate Bool

-- | OAuth access token.
ptscAccessToken :: Lens' ProjectsTimeSeriesCreate (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
ptscUploadType :: Lens' ProjectsTimeSeriesCreate (Maybe Text)

-- | Multipart request metadata.
ptscPayload :: Lens' ProjectsTimeSeriesCreate CreateTimeSeriesRequest

-- | OAuth bearer token.
ptscBearerToken :: Lens' ProjectsTimeSeriesCreate (Maybe Text)

-- | The project on which to execute the request. The format is
--   "projects/{project_id_or_number}".
ptscName :: Lens' ProjectsTimeSeriesCreate Text

-- | JSONP
ptscCallback :: Lens' ProjectsTimeSeriesCreate (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Monitoring.Projects.TimeSeries.Create.ProjectsTimeSeriesCreate
instance Data.Data.Data Network.Google.Resource.Monitoring.Projects.TimeSeries.Create.ProjectsTimeSeriesCreate
instance GHC.Show.Show Network.Google.Resource.Monitoring.Projects.TimeSeries.Create.ProjectsTimeSeriesCreate
instance GHC.Classes.Eq Network.Google.Resource.Monitoring.Projects.TimeSeries.Create.ProjectsTimeSeriesCreate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Monitoring.Projects.TimeSeries.Create.ProjectsTimeSeriesCreate


-- | Lists time series that match a filter. This method does not require a
--   Stackdriver account.
--   
--   <i>See:</i> <a>Stackdriver Monitoring API Reference</a> for
--   <tt>monitoring.projects.timeSeries.list</tt>.
module Network.Google.Resource.Monitoring.Projects.TimeSeries.List

-- | A resource alias for <tt>monitoring.projects.timeSeries.list</tt>
--   method which the <a>ProjectsTimeSeriesList</a> request conforms to.
type ProjectsTimeSeriesListResource = "v3" :> (Capture "name" Text :> ("timeSeries" :> (QueryParam "interval.startTime" DateTime' :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "upload_protocol" Text :> (QueryParam "orderBy" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "aggregation.perSeriesAligner" Text :> (QueryParam "bearer_token" Text :> (QueryParams "aggregation.groupByFields" Text :> (QueryParam "view" Text :> (QueryParam "aggregation.crossSeriesReducer" Text :> (QueryParam "filter" Text :> (QueryParam "aggregation.alignmentPeriod" Duration :> (QueryParam "pageToken" Text :> (QueryParam "interval.endTime" DateTime' :> (QueryParam "pageSize" (Textual Int32) :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ListTimeSeriesResponse)))))))))))))))))))))

-- | Creates a value of <a>ProjectsTimeSeriesList</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>ptslIntervalStartTime</a></li>
--   <li><a>ptslXgafv</a></li>
--   <li><a>ptslUploadProtocol</a></li>
--   <li><a>ptslOrderBy</a></li>
--   <li><a>ptslPp</a></li>
--   <li><a>ptslAccessToken</a></li>
--   <li><a>ptslUploadType</a></li>
--   <li><a>ptslAggregationPerSeriesAligner</a></li>
--   <li><a>ptslBearerToken</a></li>
--   <li><a>ptslName</a></li>
--   <li><a>ptslAggregationGroupByFields</a></li>
--   <li><a>ptslView</a></li>
--   <li><a>ptslAggregationCrossSeriesReducer</a></li>
--   <li><a>ptslFilter</a></li>
--   <li><a>ptslAggregationAlignmentPeriod</a></li>
--   <li><a>ptslPageToken</a></li>
--   <li><a>ptslIntervalEndTime</a></li>
--   <li><a>ptslPageSize</a></li>
--   <li><a>ptslCallback</a></li>
--   </ul>
projectsTimeSeriesList :: Text -> ProjectsTimeSeriesList

-- | Lists time series that match a filter. This method does not require a
--   Stackdriver account.
--   
--   <i>See:</i> <a>projectsTimeSeriesList</a> smart constructor.
data ProjectsTimeSeriesList

-- | Optional. The beginning of the time interval. The default value for
--   the start time is the end time. The start time must not be later than
--   the end time.
ptslIntervalStartTime :: Lens' ProjectsTimeSeriesList (Maybe UTCTime)

-- | V1 error format.
ptslXgafv :: Lens' ProjectsTimeSeriesList (Maybe Xgafv)

-- | Upload protocol for media (e.g. "raw", "multipart").
ptslUploadProtocol :: Lens' ProjectsTimeSeriesList (Maybe Text)

-- | Specifies the order in which the points of the time series should be
--   returned. By default, results are not ordered. Currently, this field
--   must be left blank.
ptslOrderBy :: Lens' ProjectsTimeSeriesList (Maybe Text)

-- | Pretty-print response.
ptslPp :: Lens' ProjectsTimeSeriesList Bool

-- | OAuth access token.
ptslAccessToken :: Lens' ProjectsTimeSeriesList (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
ptslUploadType :: Lens' ProjectsTimeSeriesList (Maybe Text)

-- | The approach to be used to align individual time series. Not all
--   alignment functions may be applied to all time series, depending on
--   the metric type and value type of the original time series. Alignment
--   may change the metric type or the value type of the time series.Time
--   series data must be aligned in order to perform cross-time series
--   reduction. If crossSeriesReducer is specified, then perSeriesAligner
--   must be specified and not equal ALIGN_NONE and alignmentPeriod must be
--   specified; otherwise, an error is returned.
ptslAggregationPerSeriesAligner :: Lens' ProjectsTimeSeriesList (Maybe Text)

-- | OAuth bearer token.
ptslBearerToken :: Lens' ProjectsTimeSeriesList (Maybe Text)

-- | The project on which to execute the request. The format is
--   "projects/{project_id_or_number}".
ptslName :: Lens' ProjectsTimeSeriesList Text

-- | The set of fields to preserve when crossSeriesReducer is specified.
--   The groupByFields determine how the time series are partitioned into
--   subsets prior to applying the aggregation function. Each subset
--   contains time series that have the same value for each of the grouping
--   fields. Each individual time series is a member of exactly one subset.
--   The crossSeriesReducer is applied to each subset of time series. It is
--   not possible to reduce across different resource types, so this field
--   implicitly contains resource.type. Fields not specified in
--   groupByFields are aggregated away. If groupByFields is not specified
--   and all the time series have the same resource type, then the time
--   series are aggregated into a single output time series. If
--   crossSeriesReducer is not defined, this field is ignored.
ptslAggregationGroupByFields :: Lens' ProjectsTimeSeriesList [Text]

-- | Specifies which information is returned about the time series.
ptslView :: Lens' ProjectsTimeSeriesList (Maybe Text)

-- | The approach to be used to combine time series. Not all reducer
--   functions may be applied to all time series, depending on the metric
--   type and the value type of the original time series. Reduction may
--   change the metric type of value type of the time series.Time series
--   data must be aligned in order to perform cross-time series reduction.
--   If crossSeriesReducer is specified, then perSeriesAligner must be
--   specified and not equal ALIGN_NONE and alignmentPeriod must be
--   specified; otherwise, an error is returned.
ptslAggregationCrossSeriesReducer :: Lens' ProjectsTimeSeriesList (Maybe Text)

-- | A monitoring filter that specifies which time series should be
--   returned. The filter must specify a single metric type, and can
--   additionally specify metric labels and other information. For example:
--   metric.type = "compute.googleapis.com/instance/cpu/usage_time" AND
--   metric.label.instance_name = "my-instance-name"
ptslFilter :: Lens' ProjectsTimeSeriesList (Maybe Text)

-- | The alignment period for per-time series alignment. If present,
--   alignmentPeriod must be at least 60 seconds. After per-time series
--   alignment, each time series will contain data points only on the
--   period boundaries. If perSeriesAligner is not specified or equals
--   ALIGN_NONE, then this field is ignored. If perSeriesAligner is
--   specified and does not equal ALIGN_NONE, then this field must be
--   defined; otherwise an error is returned.
ptslAggregationAlignmentPeriod :: Lens' ProjectsTimeSeriesList (Maybe Scientific)

-- | If this field is not empty then it must contain the nextPageToken
--   value returned by a previous call to this method. Using this field
--   causes the method to return additional results from the previous
--   method call.
ptslPageToken :: Lens' ProjectsTimeSeriesList (Maybe Text)

-- | Required. The end of the time interval.
ptslIntervalEndTime :: Lens' ProjectsTimeSeriesList (Maybe UTCTime)

-- | A positive number that is the maximum number of results to return.
--   When view field sets to FULL, it limits the number of Points server
--   will return; if view field is HEADERS, it limits the number of
--   TimeSeries server will return.
ptslPageSize :: Lens' ProjectsTimeSeriesList (Maybe Int32)

-- | JSONP
ptslCallback :: Lens' ProjectsTimeSeriesList (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Monitoring.Projects.TimeSeries.List.ProjectsTimeSeriesList
instance Data.Data.Data Network.Google.Resource.Monitoring.Projects.TimeSeries.List.ProjectsTimeSeriesList
instance GHC.Show.Show Network.Google.Resource.Monitoring.Projects.TimeSeries.List.ProjectsTimeSeriesList
instance GHC.Classes.Eq Network.Google.Resource.Monitoring.Projects.TimeSeries.List.ProjectsTimeSeriesList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Monitoring.Projects.TimeSeries.List.ProjectsTimeSeriesList


-- | Manages your Stackdriver Monitoring data and configurations. Most
--   projects must be associated with a Stackdriver account, with a few
--   exceptions as noted on the individual method pages.
--   
--   <i>See:</i> <a>Stackdriver Monitoring API Reference</a>
module Network.Google.Monitoring

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

-- | View monitoring data for all of your Google Cloud and third-party
--   projects
monitoringReadScope :: Proxy '["https://www.googleapis.com/auth/monitoring.read"]

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

-- | Publish metric data to your Google Cloud projects
monitoringWriteScope :: Proxy '["https://www.googleapis.com/auth/monitoring.write"]

-- | Represents the entirety of the methods and resources available for the
--   Stackdriver Monitoring API service.
type MonitoringAPI = CategoriesMetricAssociationsListResource :<|> (CategoriesListResource :<|> (ProjectsMetricDescriptorsListResource :<|> (ProjectsMetricDescriptorsGetResource :<|> (ProjectsMetricDescriptorsCreateResource :<|> (ProjectsMetricDescriptorsDeleteResource :<|> (ProjectsGroupsMembersListResource :<|> (ProjectsGroupsListResource :<|> (ProjectsGroupsGetResource :<|> (ProjectsGroupsCreateResource :<|> (ProjectsGroupsDeleteResource :<|> (ProjectsGroupsUpdateResource :<|> (ProjectsCollectdTimeSeriesCreateResource :<|> (ProjectsCategoriesMetricAssociationsListResource :<|> (ProjectsCategoriesMetricAssociationsCreateResource :<|> (ProjectsCategoriesMetricAssociationsDeleteResource :<|> (ProjectsCategoriesListResource :<|> (ProjectsCategoriesCreateResource :<|> (ProjectsCategoriesDeleteResource :<|> (ProjectsMonitoredResourceDescriptorsListResource :<|> (ProjectsMonitoredResourceDescriptorsGetResource :<|> (ProjectsTimeSeriesListResource :<|> ProjectsTimeSeriesCreateResource)))))))))))))))))))))

-- | Whether the measurement is an integer, a floating-point number, etc.
--   Some combinations of metric_kind and value_type might not be
--   supported.
data MetricDescriptorValueType

-- | <tt>VALUE_TYPE_UNSPECIFIED</tt> Do not use this default value.
MDVTValueTypeUnspecified :: MetricDescriptorValueType

-- | <tt>BOOL</tt> The value is a boolean. This value type can be used only
--   if the metric kind is GAUGE.
MDVTBool :: MetricDescriptorValueType

-- | <tt>INT64</tt> The value is a signed 64-bit integer.
MDVTINT64 :: MetricDescriptorValueType

-- | <tt>DOUBLE</tt> The value is a double precision floating point number.
MDVTDouble :: MetricDescriptorValueType

-- | <tt>STRING</tt> The value is a text string. This value type can be
--   used only if the metric kind is GAUGE.
MDVTString :: MetricDescriptorValueType

-- | <tt>DISTRIBUTION</tt> The value is a Distribution.
MDVTDistribution :: MetricDescriptorValueType

-- | <tt>MONEY</tt> The value is money.
MDVTMoney :: MetricDescriptorValueType

-- | An object that describes the schema of a MonitoredResource object
--   using a type name and a set of labels. For example, the monitored
--   resource descriptor for Google Compute Engine VM instances has a type
--   of "gce_instance" and specifies the use of the labels "instance_id"
--   and "zone" to identify particular VM instances.Different APIs can
--   support different monitored resource types. APIs generally provide a
--   list method that returns the monitored resource descriptors used by
--   the API.
--   
--   <i>See:</i> <a>monitoredResourceDescriptor</a> smart constructor.
data MonitoredResourceDescriptor

-- | Creates a value of <a>MonitoredResourceDescriptor</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>mrdName</a></li>
--   <li><a>mrdDisplayName</a></li>
--   <li><a>mrdLabels</a></li>
--   <li><a>mrdType</a></li>
--   <li><a>mrdDescription</a></li>
--   </ul>
monitoredResourceDescriptor :: MonitoredResourceDescriptor

-- | Optional. The resource name of the monitored resource descriptor:
--   "projects/{project_id}/monitoredResourceDescriptors/{type}" where
--   {type} is the value of the type field in this object and {project_id}
--   is a project ID that provides API-specific context for accessing the
--   type. APIs that do not use project information can use the resource
--   name format "monitoredResourceDescriptors/{type}".
mrdName :: Lens' MonitoredResourceDescriptor (Maybe Text)

-- | Optional. A concise name for the monitored resource type that might be
--   displayed in user interfaces. It should be a Title Cased Noun Phrase,
--   without any article or other determiners. For example, "Google Cloud
--   SQL Database".
mrdDisplayName :: Lens' MonitoredResourceDescriptor (Maybe Text)

-- | Required. A set of labels used to describe instances of this monitored
--   resource type. For example, an individual Google Cloud SQL database is
--   identified by values for the labels "database_id" and "zone".
mrdLabels :: Lens' MonitoredResourceDescriptor [LabelDescriptor]

-- | Required. The monitored resource type. For example, the type
--   "cloudsql_database" represents databases in Google Cloud SQL. The
--   maximum length of this value is 256 characters.
mrdType :: Lens' MonitoredResourceDescriptor (Maybe Text)

-- | Optional. A detailed description of the monitored resource type that
--   might be used in documentation.
mrdDescription :: Lens' MonitoredResourceDescriptor (Maybe Text)

-- | The type of measurement.
data CollectdValueDataSourceType

-- | <tt>UNSPECIFIED_DATA_SOURCE_TYPE</tt> An unspecified data source type.
--   This corresponds to
--   google.api.MetricDescriptor.MetricKind.METRIC_KIND_UNSPECIFIED.
UnspecifiedDataSourceType :: CollectdValueDataSourceType

-- | <tt>GAUGE</tt> An instantaneous measurement of a varying quantity.
--   This corresponds to google.api.MetricDescriptor.MetricKind.GAUGE.
Gauge :: CollectdValueDataSourceType

-- | <tt>COUNTER</tt> A cumulative value over time. This corresponds to
--   google.api.MetricDescriptor.MetricKind.CUMULATIVE.
Counter :: CollectdValueDataSourceType

-- | <tt>DERIVE</tt> A rate of change of the measurement.
Derive :: CollectdValueDataSourceType

-- | <tt>ABSOLUTE</tt> An amount of change since the last measurement
--   interval. This corresponds to
--   google.api.MetricDescriptor.MetricKind.DELTA.
Absolute :: CollectdValueDataSourceType

-- | The ListTimeSeries response.
--   
--   <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>ltsrNextPageToken</a></li>
--   <li><a>ltsrTimeSeries</a></li>
--   </ul>
listTimeSeriesResponse :: ListTimeSeriesResponse

-- | If there are more results than have been returned, then this field is
--   set to a non-empty value. To see the additional results, use that
--   value as pageToken in the next call to this method.
ltsrNextPageToken :: Lens' ListTimeSeriesResponse (Maybe Text)

-- | One or more time series that match the filter included in the request.
ltsrTimeSeries :: Lens' ListTimeSeriesResponse [TimeSeries]

-- | The MetricAssociations response.
--   
--   <i>See:</i> <a>listMetricAssociationsResponse</a> smart constructor.
data ListMetricAssociationsResponse

-- | Creates a value of <a>ListMetricAssociationsResponse</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>lmarNextPageToken</a></li>
--   <li><a>lmarMetricAssociations</a></li>
--   </ul>
listMetricAssociationsResponse :: ListMetricAssociationsResponse

-- | If there are more results than have been returned, then this field is
--   set to a non-empty value. To see the additional results, use that
--   value as pageToken in the next call to this method.
lmarNextPageToken :: Lens' ListMetricAssociationsResponse (Maybe Text)

-- | The MetricAssociations that match the specified filters.
lmarMetricAssociations :: Lens' ListMetricAssociationsResponse [MetricAssociation]

-- | Defines a metric type and its schema. Once a metric descriptor is
--   created, deleting or altering it stops data collection and makes the
--   metric type's existing data unusable.
--   
--   <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>mdMetricKind</a></li>
--   <li><a>mdName</a></li>
--   <li><a>mdDisplayName</a></li>
--   <li><a>mdLabels</a></li>
--   <li><a>mdType</a></li>
--   <li><a>mdValueType</a></li>
--   <li><a>mdDescription</a></li>
--   <li><a>mdUnit</a></li>
--   </ul>
metricDescriptor :: MetricDescriptor

-- | Whether the metric records instantaneous values, changes to a value,
--   etc. Some combinations of metric_kind and value_type might not be
--   supported.
mdMetricKind :: Lens' MetricDescriptor (Maybe MetricDescriptorMetricKind)

-- | The resource name of the metric descriptor. Depending on the
--   implementation, the name typically includes: (1) the parent resource
--   name that defines the scope of the metric type or of its data; and (2)
--   the metric's URL-encoded type, which also appears in the type field of
--   this descriptor. For example, following is the resource name of a
--   custom metric within the GCP project my-project-id:
--   "projects/my-project-id/metricDescriptors/custom.googleapis.com%2Finvoice%2Fpaid%2Famount"
mdName :: Lens' MetricDescriptor (Maybe Text)

-- | A concise name for the metric, which can be displayed in user
--   interfaces. Use sentence case without an ending period, for example
--   "Request count".
mdDisplayName :: Lens' MetricDescriptor (Maybe Text)

-- | The set of labels that can be used to describe a specific instance of
--   this metric type. For example, the
--   appengine.googleapis.com/http/server/response_latencies metric type
--   has a label for the HTTP response code, response_code, so you can look
--   at latencies for successful responses or just for responses that
--   failed.
mdLabels :: Lens' MetricDescriptor [LabelDescriptor]

-- | The metric type, including its DNS name prefix. The type is not
--   URL-encoded. All user-defined custom metric types have the DNS name
--   custom.googleapis.com. Metric types should use a natural hierarchical
--   grouping. For example: "custom.googleapis.com/invoice/paid/amount"
--   "appengine.googleapis.com/http/server/response_latencies"
mdType :: Lens' MetricDescriptor (Maybe Text)

-- | Whether the measurement is an integer, a floating-point number, etc.
--   Some combinations of metric_kind and value_type might not be
--   supported.
mdValueType :: Lens' MetricDescriptor (Maybe MetricDescriptorValueType)

-- | A detailed description of the metric, which can be used in
--   documentation.
mdDescription :: Lens' MetricDescriptor (Maybe Text)

-- | The unit in which the metric value is reported. It is only applicable
--   if the value_type is INT64, DOUBLE, or DISTRIBUTION. The supported
--   units are a subset of The Unified Code for Units of Measure
--   (http://unitsofmeasure.org/ucum.html) standard:Basic units (UNIT) bit
--   bit By byte s second min minute h hour d dayPrefixes (PREFIX) k kilo
--   (10**3) M mega (10**6) G giga (10**9) T tera (10**12) P peta (10**15)
--   E exa (10**18) Z zetta (10**21) Y yotta (10**24) m milli (10**-3) u
--   micro (10**-6) n nano (10**-9) p pico (10**-12) f femto (10**-15) a
--   atto (10**-18) z zepto (10**-21) y yocto (10**-24) Ki kibi (2**10) Mi
--   mebi (2**20) Gi gibi (2**30) Ti tebi (2**40)GrammarThe grammar
--   includes the dimensionless unit 1, such as 1/s.The grammar also
--   includes these connectors: / division (as an infix operator, e.g.
--   1/s). . multiplication (as an infix operator, e.g. GBy.d)The grammar
--   for a unit is as follows: Expression = Component { "." Component } {
--   "/" Component } ; Component = [ PREFIX ] UNIT [ Annotation ] |
--   Annotation | "1" ; Annotation = "{" NAME "}" ; Notes: Annotation is
--   just a comment if it follows a UNIT and is equivalent to 1 if it is
--   used alone. For examples, {requests}/s == 1/s, By{transmitted}/s ==
--   By/s. NAME is a sequence of non-blank printable ASCII characters not
--   containing '{' or '}'.
mdUnit :: Lens' MetricDescriptor (Maybe Text)

-- | The description of a dynamic collection of monitored resources. Each
--   group has a filter that is matched against monitored resources and
--   their associated metadata. If a group's filter matches an available
--   monitored resource, then that resource is a member of that group.
--   Groups can contain any number of monitored resources, and each
--   monitored resource can be a member of any number of groups.Groups can
--   be nested in parent-child hierarchies. The parentName field identifies
--   an optional parent for each group. If a group has a parent, then the
--   only monitored resources available to be matched by the group's filter
--   are the resources contained in the parent group. In other words, a
--   group contains the monitored resources that match its filter and the
--   filters of all the group's ancestors. A group without a parent can
--   contain any monitored resource.For example, consider an infrastructure
--   running a set of instances with two user-defined tags: "environment"
--   and "role". A parent group has a filter, environment="production". A
--   child of that parent group has a filter, role="transcoder". The parent
--   group contains all instances in the production environment, regardless
--   of their roles. The child group contains instances that have the
--   transcoder role and are in the production environment.The monitored
--   resources contained in a group can change at any moment, depending on
--   what resources exist and what filters are associated with the group
--   and its ancestors.
--   
--   <i>See:</i> <a>group'</a> smart constructor.
data Group

-- | Creates a value of <a>Group</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>gName</a></li>
--   <li><a>gDisplayName</a></li>
--   <li><a>gFilter</a></li>
--   <li><a>gIsCluster</a></li>
--   <li><a>gParentName</a></li>
--   </ul>
group' :: Group

-- | Output only. The name of this group. The format is
--   "projects/{project_id_or_number}/groups/{group_id}". When creating a
--   group, this field is ignored and a new name is created consisting of
--   the project specified in the call to CreateGroup and a unique
--   {group_id} that is generated automatically.
gName :: Lens' Group (Maybe Text)

-- | A user-assigned name for this group, used only for display purposes.
gDisplayName :: Lens' Group (Maybe Text)

-- | The filter used to determine which monitored resources belong to this
--   group.
gFilter :: Lens' Group (Maybe Text)

-- | If true, the members of this group are considered to be a cluster. The
--   system can perform additional analysis on groups that are clusters.
gIsCluster :: Lens' Group (Maybe Bool)

-- | The name of the group's parent, if it has one. The format is
--   "projects/{project_id_or_number}/groups/{group_id}". For groups with
--   no parent, parentName is the empty string, "".
gParentName :: Lens' Group (Maybe Text)

-- | A single strongly-typed value.
--   
--   <i>See:</i> <a>typedValue</a> smart constructor.
data TypedValue

-- | Creates a value of <a>TypedValue</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>tvBoolValue</a></li>
--   <li><a>tvDoubleValue</a></li>
--   <li><a>tvStringValue</a></li>
--   <li><a>tvDistributionValue</a></li>
--   <li><a>tvInt64Value</a></li>
--   </ul>
typedValue :: TypedValue

-- | A Boolean value: true or false.
tvBoolValue :: Lens' TypedValue (Maybe Bool)

-- | A 64-bit double-precision floating-point number. Its magnitude is
--   approximately ±10±300 and it has 16 significant digits of precision.
tvDoubleValue :: Lens' TypedValue (Maybe Double)

-- | A variable-length string value.
tvStringValue :: Lens' TypedValue (Maybe Text)

-- | A distribution value.
tvDistributionValue :: Lens' TypedValue (Maybe Distribution)

-- | A 64-bit integer. Its range is approximately ±9.2x1018.
tvInt64Value :: Lens' TypedValue (Maybe Int64)

-- | Required. Values for all of the labels listed in the associated
--   monitored resource descriptor. For example, Cloud SQL databases use
--   the labels "database_id" and "zone".
--   
--   <i>See:</i> <a>monitoredResourceLabels</a> smart constructor.
data MonitoredResourceLabels

-- | Creates a value of <a>MonitoredResourceLabels</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>mrlAddtional</a></li>
--   </ul>
monitoredResourceLabels :: HashMap Text Text -> MonitoredResourceLabels
mrlAddtional :: Lens' MonitoredResourceLabels (HashMap Text Text)

-- | SourceContext represents information about the source of a protobuf
--   element, like the file in which it is defined.
--   
--   <i>See:</i> <a>sourceContext</a> smart constructor.
data SourceContext

-- | Creates a value of <a>SourceContext</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>scFileName</a></li>
--   </ul>
sourceContext :: SourceContext

-- | The path-qualified name of the .proto file that contained the
--   associated protobuf element. For example:
--   "google/protobuf/source_context.proto".
scFileName :: Lens' SourceContext (Maybe Text)

-- | Distribution contains summary statistics for a population of values
--   and, optionally, a histogram representing the distribution of those
--   values across a specified set of histogram buckets.The summary
--   statistics are the count, mean, sum of the squared deviation from the
--   mean, the minimum, and the maximum of the set of population of
--   values.The histogram is based on a sequence of buckets and gives a
--   count of values that fall into each bucket. The boundaries of the
--   buckets are given either explicitly or by specifying parameters for a
--   method of computing them (buckets of fixed width or buckets of
--   exponentially increasing width).Although it is not forbidden, it is
--   generally a bad idea to include non-finite values (infinities or NaNs)
--   in the population of values, as this will render the mean and
--   sum_of_squared_deviation fields meaningless.
--   
--   <i>See:</i> <a>distribution</a> smart constructor.
data Distribution

-- | Creates a value of <a>Distribution</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>dSumOfSquaredDeviation</a></li>
--   <li><a>dMean</a></li>
--   <li><a>dCount</a></li>
--   <li><a>dBucketCounts</a></li>
--   <li><a>dRange</a></li>
--   <li><a>dBucketOptions</a></li>
--   </ul>
distribution :: Distribution

-- | The sum of squared deviations from the mean of the values in the
--   population. For values x_i this is: Sum[i=1..n]((x_i - mean)^2) Knuth,
--   "The Art of Computer Programming", Vol. 2, page 323, 3rd edition
--   describes Welford's method for accumulating this sum in one pass.If
--   count is zero then this field must be zero.
dSumOfSquaredDeviation :: Lens' Distribution (Maybe Double)

-- | The arithmetic mean of the values in the population. If count is zero
--   then this field must be zero.
dMean :: Lens' Distribution (Maybe Double)

-- | The number of values in the population. Must be non-negative.
dCount :: Lens' Distribution (Maybe Int64)

-- | If bucket_options is given, then the sum of the values in
--   bucket_counts must equal the value in count. If bucket_options is not
--   given, no bucket_counts fields may be given.Bucket counts are given in
--   order under the numbering scheme described above (the underflow bucket
--   has number 0; the finite buckets, if any, have numbers 1 through N-2;
--   the overflow bucket has number N-1).The size of bucket_counts must be
--   no greater than N as defined in bucket_options.Any suffix of trailing
--   zero bucket_count fields may be omitted.
dBucketCounts :: Lens' Distribution [Int64]

-- | If specified, contains the range of the population values. The field
--   must not be present if the count is zero. This field is presently
--   ignored by the Stackdriver Monitoring API v3.
dRange :: Lens' Distribution (Maybe Range)

-- | Defines the histogram bucket boundaries.
dBucketOptions :: Lens' Distribution (Maybe BucketOptions)

-- | A single field of a message type.
--   
--   <i>See:</i> <a>field</a> smart constructor.
data Field

-- | Creates a value of <a>Field</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>fKind</a></li>
--   <li><a>fOneofIndex</a></li>
--   <li><a>fName</a></li>
--   <li><a>fJSONName</a></li>
--   <li><a>fCardinality</a></li>
--   <li><a>fOptions</a></li>
--   <li><a>fPacked</a></li>
--   <li><a>fDefaultValue</a></li>
--   <li><a>fNumber</a></li>
--   <li><a>fTypeURL</a></li>
--   </ul>
field :: Field

-- | The field type.
fKind :: Lens' Field (Maybe FieldKind)

-- | The index of the field type in Type.oneofs, for message or enumeration
--   types. The first type has index 1; zero means the type is not in the
--   list.
fOneofIndex :: Lens' Field (Maybe Int32)

-- | The field name.
fName :: Lens' Field (Maybe Text)

-- | The field JSON name.
fJSONName :: Lens' Field (Maybe Text)

-- | The field cardinality.
fCardinality :: Lens' Field (Maybe FieldCardinality)

-- | The protocol buffer options.
fOptions :: Lens' Field [Option]

-- | Whether to use alternative packed wire representation.
fPacked :: Lens' Field (Maybe Bool)

-- | The string value of the default value of this field. Proto2 syntax
--   only.
fDefaultValue :: Lens' Field (Maybe Text)

-- | The field number.
fNumber :: Lens' Field (Maybe Int32)

-- | The field type URL, without the scheme, for message or enumeration
--   types. Example: "type.googleapis.com/google.protobuf.Timestamp".
fTypeURL :: Lens' Field (Maybe Text)

-- | The field type.
data FieldKind

-- | <tt>TYPE_UNKNOWN</tt> Field type unknown.
TypeUnknown :: FieldKind

-- | <tt>TYPE_DOUBLE</tt> Field type double.
TypeDouble :: FieldKind

-- | <tt>TYPE_FLOAT</tt> Field type float.
TypeFloat :: FieldKind

-- | <tt>TYPE_INT64</tt> Field type int64.
TypeINT64 :: FieldKind

-- | <tt>TYPE_UINT64</tt> Field type uint64.
TypeUINT64 :: FieldKind

-- | <tt>TYPE_INT32</tt> Field type int32.
TypeINT32 :: FieldKind

-- | <tt>TYPE_FIXED64</tt> Field type fixed64.
TypeFIXED64 :: FieldKind

-- | <tt>TYPE_FIXED32</tt> Field type fixed32.
TypeFIXED32 :: FieldKind

-- | <tt>TYPE_BOOL</tt> Field type bool.
TypeBool :: FieldKind

-- | <tt>TYPE_STRING</tt> Field type string.
TypeString :: FieldKind

-- | <tt>TYPE_GROUP</tt> Field type group. Proto2 syntax only, and
--   deprecated.
TypeGroup :: FieldKind

-- | <tt>TYPE_MESSAGE</tt> Field type message.
TypeMessage :: FieldKind

-- | <tt>TYPE_BYTES</tt> Field type bytes.
TypeBytes :: FieldKind

-- | <tt>TYPE_UINT32</tt> Field type uint32.
TypeUINT32 :: FieldKind

-- | <tt>TYPE_ENUM</tt> Field type enum.
TypeEnum :: FieldKind

-- | <tt>TYPE_SFIXED32</tt> Field type sfixed32.
TypeSFIXED32 :: FieldKind

-- | <tt>TYPE_SFIXED64</tt> Field type sfixed64.
TypeSFIXED64 :: FieldKind

-- | <tt>TYPE_SINT32</tt> Field type sint32.
TypeSINT32 :: FieldKind

-- | <tt>TYPE_SINT64</tt> Field type sint64.
TypeSINT64 :: FieldKind

-- | A Vital Signs MetricAssociation, representing the inclusion of its
--   referenced metric type within its parent category.
--   
--   <i>See:</i> <a>metricAssociation</a> smart constructor.
data MetricAssociation

-- | Creates a value of <a>MetricAssociation</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>maMetricType</a></li>
--   <li><a>maName</a></li>
--   <li><a>maIsDefault</a></li>
--   </ul>
metricAssociation :: MetricAssociation

-- | Resource name of the metric. It must be the full resource name. For
--   example, "compute.googleapis.com/instance/cpu/utilization".
maMetricType :: Lens' MetricAssociation (Maybe Text)

-- | Resource name for the metric association.
maName :: Lens' MetricAssociation (Maybe Text)

-- | A flag to indicate whether this association is part of Stackdriver's
--   default taxonomy.
maIsDefault :: Lens' MetricAssociation (Maybe Bool)

-- | A generic empty message that you can re-use to avoid defining
--   duplicated empty messages in your APIs. A typical example is to use it
--   as the request or the response type of an API method. For instance:
--   service Foo { rpc Bar(google.protobuf.Empty) returns
--   (google.protobuf.Empty); } The JSON representation for Empty is empty
--   JSON object {}.
--   
--   <i>See:</i> <a>empty</a> smart constructor.
data Empty

-- | Creates a value of <a>Empty</a> with the minimum fields required to
--   make a request.
empty :: Empty

-- | The ListGroups response.
--   
--   <i>See:</i> <a>listGroupsResponse</a> smart constructor.
data ListGroupsResponse

-- | Creates a value of <a>ListGroupsResponse</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>lgrNextPageToken</a></li>
--   <li><a>lgrGroup</a></li>
--   </ul>
listGroupsResponse :: ListGroupsResponse

-- | If there are more results than have been returned, then this field is
--   set to a non-empty value. To see the additional results, use that
--   value as pageToken in the next call to this method.
lgrNextPageToken :: Lens' ListGroupsResponse (Maybe Text)

-- | The groups that match the specified filters.
lgrGroup :: Lens' ListGroupsResponse [Group]

-- | The ListMetricDescriptors response.
--   
--   <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>lmdrMetricDescriptors</a></li>
--   <li><a>lmdrNextPageToken</a></li>
--   </ul>
listMetricDescriptorsResponse :: ListMetricDescriptorsResponse

-- | The metric descriptors that are available to the project and that
--   match the value of filter, if present.
lmdrMetricDescriptors :: Lens' ListMetricDescriptorsResponse [MetricDescriptor]

-- | If there are more results than have been returned, then this field is
--   set to a non-empty value. To see the additional results, use that
--   value as pageToken in the next call to this method.
lmdrNextPageToken :: Lens' ListMetricDescriptorsResponse (Maybe Text)

-- | The option's value packed in an Any message. If the value is a
--   primitive, the corresponding wrapper type defined in
--   google/protobuf/wrappers.proto should be used. If the value is an
--   enum, it should be stored as an int32 value using the
--   google.protobuf.Int32Value type.
--   
--   <i>See:</i> <a>optionValue</a> smart constructor.
data OptionValue

-- | Creates a value of <a>OptionValue</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>ovAddtional</a></li>
--   </ul>
optionValue :: HashMap Text JSONValue -> OptionValue

-- | Properties of the object. Contains field 'type with type URL.
ovAddtional :: Lens' OptionValue (HashMap Text JSONValue)

-- | A Vital Signs Category.
--   
--   <i>See:</i> <a>category</a> smart constructor.
data Category

-- | Creates a value of <a>Category</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>cShortName</a></li>
--   <li><a>cName</a></li>
--   <li><a>cDisplayName</a></li>
--   <li><a>cDescription</a></li>
--   <li><a>cIsDefault</a></li>
--   </ul>
category :: Category

-- | Unique usually one-word name for this category. e.g. latency or
--   custom:goodness
cShortName :: Lens' Category (Maybe Text)

-- | Resource name for the category. e.g. projects/91091/categories/latency
--   or projects/91091/categories/custom:goodness
cName :: Lens' Category (Maybe Text)

-- | A human-readable name for the category.
cDisplayName :: Lens' Category (Maybe Text)

-- | A human-readable description for the category. The description can be
--   longer and contain more details.
cDescription :: Lens' Category (Maybe Text)

-- | A flag to indicate whether this category is part of Stackdriver's
--   default taxonomy.
cIsDefault :: Lens' Category (Maybe Bool)

-- | The CreateTimeSeries request.
--   
--   <i>See:</i> <a>createTimeSeriesRequest</a> smart constructor.
data CreateTimeSeriesRequest

-- | Creates a value of <a>CreateTimeSeriesRequest</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>ctsrTimeSeries</a></li>
--   </ul>
createTimeSeriesRequest :: CreateTimeSeriesRequest

-- | The new data to be added to a list of time series. Adds at most one
--   data point to each of several time series. The new data point must be
--   more recent than any other point in its time series. Each TimeSeries
--   value must fully specify a unique time series by supplying all label
--   values for the metric and the monitored resource.
ctsrTimeSeries :: Lens' CreateTimeSeriesRequest [TimeSeries]

-- | The ListMonitoredResourcDescriptors response.
--   
--   <i>See:</i> <a>listMonitoredResourceDescriptorsResponse</a> smart
--   constructor.
data ListMonitoredResourceDescriptorsResponse

-- | Creates a value of <a>ListMonitoredResourceDescriptorsResponse</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>lmrdrNextPageToken</a></li>
--   <li><a>lmrdrResourceDescriptors</a></li>
--   </ul>
listMonitoredResourceDescriptorsResponse :: ListMonitoredResourceDescriptorsResponse

-- | If there are more results than have been returned, then this field is
--   set to a non-empty value. To see the additional results, use that
--   value as pageToken in the next call to this method.
lmrdrNextPageToken :: Lens' ListMonitoredResourceDescriptorsResponse (Maybe Text)

-- | The monitored resource descriptors that are available to this project
--   and that match filter, if present.
lmrdrResourceDescriptors :: Lens' ListMonitoredResourceDescriptorsResponse [MonitoredResourceDescriptor]

-- | The type of data that can be assigned to the label.
data LabelDescriptorValueType

-- | <tt>STRING</tt> A variable-length string. This is the default.
String :: LabelDescriptorValueType

-- | <tt>BOOL</tt> Boolean; true or false.
Bool :: LabelDescriptorValueType

-- | <tt>INT64</tt> A 64-bit signed integer.
INT64 :: LabelDescriptorValueType

-- | A set of buckets with arbitrary widths.Defines size(bounds) + 1 (= N)
--   buckets with these boundaries for bucket i:Upper bound (0 &lt;= i &lt;
--   N-1): boundsi Lower bound (1 &lt;= i &lt; N); boundsi - 1There must be
--   at least one element in bounds. If bounds has only one element, there
--   are no finite buckets, and that single element is the common boundary
--   of the overflow and underflow buckets.
--   
--   <i>See:</i> <a>explicit</a> smart constructor.
data Explicit

-- | Creates a value of <a>Explicit</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>eBounds</a></li>
--   </ul>
explicit :: Explicit

-- | The values must be monotonically increasing.
eBounds :: Lens' Explicit [Double]

-- | The set of label values that uniquely identify this metric. All labels
--   listed in the MetricDescriptor must be assigned values.
--   
--   <i>See:</i> <a>metricLabels</a> smart constructor.
data MetricLabels

-- | Creates a value of <a>MetricLabels</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>mlAddtional</a></li>
--   </ul>
metricLabels :: HashMap Text Text -> MetricLabels
mlAddtional :: Lens' MetricLabels (HashMap Text Text)

-- | The measurement metadata. Example: "process_id" -&gt; 12345
--   
--   <i>See:</i> <a>collectdPayloadMetadata</a> smart constructor.
data CollectdPayloadMetadata

-- | Creates a value of <a>CollectdPayloadMetadata</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>cpmAddtional</a></li>
--   </ul>
collectdPayloadMetadata :: HashMap Text TypedValue -> CollectdPayloadMetadata
cpmAddtional :: Lens' CollectdPayloadMetadata (HashMap Text TypedValue)

-- | A single data point from a collectd-based plugin.
--   
--   <i>See:</i> <a>collectdValue</a> smart constructor.
data CollectdValue

-- | Creates a value of <a>CollectdValue</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>cvDataSourceName</a></li>
--   <li><a>cvDataSourceType</a></li>
--   <li><a>cvValue</a></li>
--   </ul>
collectdValue :: CollectdValue

-- | The data source for the collectd value. For example there are two data
--   sources for network measurements: "rx" and "tx".
cvDataSourceName :: Lens' CollectdValue (Maybe Text)

-- | The type of measurement.
cvDataSourceType :: Lens' CollectdValue (Maybe CollectdValueDataSourceType)

-- | The measurement value.
cvValue :: Lens' CollectdValue (Maybe TypedValue)

-- | The CreateCollectdTimeSeries request.
--   
--   <i>See:</i> <a>createCollectdTimeSeriesRequest</a> smart constructor.
data CreateCollectdTimeSeriesRequest

-- | Creates a value of <a>CreateCollectdTimeSeriesRequest</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>cctsrCollectdPayloads</a></li>
--   <li><a>cctsrResource</a></li>
--   <li><a>cctsrCollectdVersion</a></li>
--   </ul>
createCollectdTimeSeriesRequest :: CreateCollectdTimeSeriesRequest

-- | The collectd payloads representing the time series data. You must not
--   include more than a single point for each time series, so no two
--   payloads can have the same values for all of the fields plugin,
--   plugin_instance, type, and type_instance.
cctsrCollectdPayloads :: Lens' CreateCollectdTimeSeriesRequest [CollectdPayload]

-- | The monitored resource associated with the time series.
cctsrResource :: Lens' CreateCollectdTimeSeriesRequest (Maybe MonitoredResource)

-- | The version of collectd that collected the data. Example:
--   "5.3.0-192.el6".
cctsrCollectdVersion :: Lens' CreateCollectdTimeSeriesRequest (Maybe Text)

-- | The source syntax.
data TypeSyntax

-- | <tt>SYNTAX_PROTO2</tt> Syntax proto2.
SyntaxPROTO2 :: TypeSyntax

-- | <tt>SYNTAX_PROTO3</tt> Syntax proto3.
SyntaxPROTO3 :: TypeSyntax

-- | A single data point in a time series.
--   
--   <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>pValue</a></li>
--   <li><a>pInterval</a></li>
--   </ul>
point :: Point

-- | The value of the data point.
pValue :: Lens' Point (Maybe TypedValue)

-- | The time interval to which the data point applies. For GAUGE metrics,
--   only the end time of the interval is used. For DELTA metrics, the
--   start and end time should specify a non-zero interval, with subsequent
--   points specifying contiguous and non-overlapping intervals. For
--   CUMULATIVE metrics, the start and end time should specify a non-zero
--   interval, with subsequent points specifying the same start time and
--   increasing end times, until an event resets the cumulative value to
--   zero and sets a new start time for the following points.
pInterval :: Lens' Point (Maybe TimeInterval)

-- | A collection of data points sent from a collectd-based plugin. See the
--   collectd documentation for more information.
--   
--   <i>See:</i> <a>collectdPayload</a> smart constructor.
data CollectdPayload

-- | Creates a value of <a>CollectdPayload</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>cpStartTime</a></li>
--   <li><a>cpPluginInstance</a></li>
--   <li><a>cpValues</a></li>
--   <li><a>cpTypeInstance</a></li>
--   <li><a>cpEndTime</a></li>
--   <li><a>cpMetadata</a></li>
--   <li><a>cpType</a></li>
--   <li><a>cpPlugin</a></li>
--   </ul>
collectdPayload :: CollectdPayload

-- | The start time of the interval.
cpStartTime :: Lens' CollectdPayload (Maybe UTCTime)

-- | The instance name of the plugin Example: "hdcl".
cpPluginInstance :: Lens' CollectdPayload (Maybe Text)

-- | The measured values during this time interval. Each value must have a
--   different dataSourceName.
cpValues :: Lens' CollectdPayload [CollectdValue]

-- | The measurement type instance. Example: "used".
cpTypeInstance :: Lens' CollectdPayload (Maybe Text)

-- | The end time of the interval.
cpEndTime :: Lens' CollectdPayload (Maybe UTCTime)

-- | The measurement metadata. Example: "process_id" -&gt; 12345
cpMetadata :: Lens' CollectdPayload (Maybe CollectdPayloadMetadata)

-- | The measurement type. Example: "memory".
cpType :: Lens' CollectdPayload (Maybe Text)

-- | The name of the plugin. Example: "disk".
cpPlugin :: Lens' CollectdPayload (Maybe Text)

-- | A specific metric, identified by specifying values for all of the
--   labels of a MetricDescriptor.
--   
--   <i>See:</i> <a>metric</a> smart constructor.
data Metric

-- | Creates a value of <a>Metric</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>mLabels</a></li>
--   <li><a>mType</a></li>
--   </ul>
metric :: Metric

-- | The set of label values that uniquely identify this metric. All labels
--   listed in the MetricDescriptor must be assigned values.
mLabels :: Lens' Metric (Maybe MetricLabels)

-- | An existing metric type, see google.api.MetricDescriptor. For example,
--   custom.googleapis.com/invoice/paid/amount.
mType :: Lens' Metric (Maybe Text)

-- | Specify a sequence of buckets that have a width that is proportional
--   to the value of the lower bound. Each bucket represents a constant
--   relative uncertainty on a specific value in the bucket.Defines
--   num_finite_buckets + 2 (= N) buckets with these boundaries for bucket
--   i:Upper bound (0 &lt;= i &lt; N-1): scale * (growth_factor ^ i). Lower
--   bound (1 &lt;= i &lt; N): scale * (growth_factor ^ (i - 1)).
--   
--   <i>See:</i> <a>exponential</a> smart constructor.
data Exponential

-- | Creates a value of <a>Exponential</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>eGrowthFactor</a></li>
--   <li><a>eScale</a></li>
--   <li><a>eNumFiniteBuckets</a></li>
--   </ul>
exponential :: Exponential

-- | Must be greater than 1.
eGrowthFactor :: Lens' Exponential (Maybe Double)

-- | Must be greater than 0.
eScale :: Lens' Exponential (Maybe Double)

-- | Must be greater than 0.
eNumFiniteBuckets :: Lens' Exponential (Maybe Int32)

-- | The ListCategories response.
--   
--   <i>See:</i> <a>listCategoriesResponse</a> smart constructor.
data ListCategoriesResponse

-- | Creates a value of <a>ListCategoriesResponse</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>lcrNextPageToken</a></li>
--   <li><a>lcrCategory</a></li>
--   </ul>
listCategoriesResponse :: ListCategoriesResponse

-- | If there are more results than have been returned, then this field is
--   set to a non-empty value. To see the additional results, use that
--   value as pageToken in the next call to this method.
lcrNextPageToken :: Lens' ListCategoriesResponse (Maybe Text)

-- | The Categories that match the specified filters.
lcrCategory :: Lens' ListCategoriesResponse [Category]

-- | The range of the population values.
--   
--   <i>See:</i> <a>range</a> smart constructor.
data Range

-- | Creates a value of <a>Range</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>rMax</a></li>
--   <li><a>rMin</a></li>
--   </ul>
range :: Range

-- | The maximum of the population values.
rMax :: Lens' Range (Maybe Double)

-- | The minimum of the population values.
rMin :: Lens' Range (Maybe Double)

-- | An object representing a resource that can be used for monitoring,
--   logging, billing, or other purposes. Examples include virtual machine
--   instances, databases, and storage devices such as disks. The type
--   field identifies a MonitoredResourceDescriptor object that describes
--   the resource's schema. Information in the labels field identifies the
--   actual resource and its attributes according to the schema. For
--   example, a particular Compute Engine VM instance could be represented
--   by the following object, because the MonitoredResourceDescriptor for
--   "gce_instance" has labels "instance_id" and "zone": { "type":
--   "gce_instance", "labels": { "instance_id": "12345678901234", "zone":
--   "us-central1-a" }}
--   
--   <i>See:</i> <a>monitoredResource</a> smart constructor.
data MonitoredResource

-- | Creates a value of <a>MonitoredResource</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>mrLabels</a></li>
--   <li><a>mrType</a></li>
--   </ul>
monitoredResource :: MonitoredResource

-- | Required. Values for all of the labels listed in the associated
--   monitored resource descriptor. For example, Cloud SQL databases use
--   the labels "database_id" and "zone".
mrLabels :: Lens' MonitoredResource (Maybe MonitoredResourceLabels)

-- | Required. The monitored resource type. This field must match the type
--   field of a MonitoredResourceDescriptor object. For example, the type
--   of a Cloud SQL database is "cloudsql_database".
mrType :: Lens' MonitoredResource (Maybe Text)

-- | V1 error format.
data Xgafv

-- | <tt>1</tt> v1 error format
X1 :: Xgafv

-- | <tt>2</tt> v2 error format
X2 :: Xgafv

-- | A time interval extending just after a start time through an end time.
--   If the start time is the same as the end time, then the interval
--   represents a single point in time.
--   
--   <i>See:</i> <a>timeInterval</a> smart constructor.
data TimeInterval

-- | Creates a value of <a>TimeInterval</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>tiStartTime</a></li>
--   <li><a>tiEndTime</a></li>
--   </ul>
timeInterval :: TimeInterval

-- | Optional. The beginning of the time interval. The default value for
--   the start time is the end time. The start time must not be later than
--   the end time.
tiStartTime :: Lens' TimeInterval (Maybe UTCTime)

-- | Required. The end of the time interval.
tiEndTime :: Lens' TimeInterval (Maybe UTCTime)

-- | The metric kind of the time series. When listing time series, this
--   metric kind might be different from the metric kind of the associated
--   metric if this time series is an alignment or reduction of other time
--   series.When creating a time series, this field is optional. If
--   present, it must be the same as the metric kind of the associated
--   metric. If the associated metric's descriptor must be auto-created,
--   then this field specifies the metric kind of the new descriptor and
--   must be either GAUGE (the default) or CUMULATIVE.
data TimeSeriesMetricKind

-- | <tt>METRIC_KIND_UNSPECIFIED</tt> Do not use this default value.
TSMKMetricKindUnspecified :: TimeSeriesMetricKind

-- | <tt>GAUGE</tt> An instantaneous measurement of a value.
TSMKGauge :: TimeSeriesMetricKind

-- | <tt>DELTA</tt> The change in a value during a time interval.
TSMKDelta :: TimeSeriesMetricKind

-- | <tt>CUMULATIVE</tt> A value accumulated over a time interval.
--   Cumulative measurements in a time series should have the same start
--   time and increasing end times, until an event resets the cumulative
--   value to zero and sets a new start time for the following points.
TSMKCumulative :: TimeSeriesMetricKind

-- | The ListGroupMembers response.
--   
--   <i>See:</i> <a>listGroupMembersResponse</a> smart constructor.
data ListGroupMembersResponse

-- | Creates a value of <a>ListGroupMembersResponse</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>lgmrNextPageToken</a></li>
--   <li><a>lgmrMembers</a></li>
--   <li><a>lgmrTotalSize</a></li>
--   </ul>
listGroupMembersResponse :: ListGroupMembersResponse

-- | If there are more results than have been returned, then this field is
--   set to a non-empty value. To see the additional results, use that
--   value as pageToken in the next call to this method.
lgmrNextPageToken :: Lens' ListGroupMembersResponse (Maybe Text)

-- | A set of monitored resources in the group.
lgmrMembers :: Lens' ListGroupMembersResponse [MonitoredResource]

-- | The total number of elements matching this request.
lgmrTotalSize :: Lens' ListGroupMembersResponse (Maybe Int32)

-- | A description of a label.
--   
--   <i>See:</i> <a>labelDescriptor</a> smart constructor.
data LabelDescriptor

-- | Creates a value of <a>LabelDescriptor</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>ldKey</a></li>
--   <li><a>ldValueType</a></li>
--   <li><a>ldDescription</a></li>
--   </ul>
labelDescriptor :: LabelDescriptor

-- | The label key.
ldKey :: Lens' LabelDescriptor (Maybe Text)

-- | The type of data that can be assigned to the label.
ldValueType :: Lens' LabelDescriptor (Maybe LabelDescriptorValueType)

-- | A human-readable description for the label.
ldDescription :: Lens' LabelDescriptor (Maybe Text)

-- | The value type of the time series. When listing time series, this
--   value type might be different from the value type of the associated
--   metric if this time series is an alignment or reduction of other time
--   series.When creating a time series, this field is optional. If
--   present, it must be the same as the type of the data in the points
--   field.
data TimeSeriesValueType

-- | <tt>VALUE_TYPE_UNSPECIFIED</tt> Do not use this default value.
TSVTValueTypeUnspecified :: TimeSeriesValueType

-- | <tt>BOOL</tt> The value is a boolean. This value type can be used only
--   if the metric kind is GAUGE.
TSVTBool :: TimeSeriesValueType

-- | <tt>INT64</tt> The value is a signed 64-bit integer.
TSVTINT64 :: TimeSeriesValueType

-- | <tt>DOUBLE</tt> The value is a double precision floating point number.
TSVTDouble :: TimeSeriesValueType

-- | <tt>STRING</tt> The value is a text string. This value type can be
--   used only if the metric kind is GAUGE.
TSVTString :: TimeSeriesValueType

-- | <tt>DISTRIBUTION</tt> The value is a Distribution.
TSVTDistribution :: TimeSeriesValueType

-- | <tt>MONEY</tt> The value is money.
TSVTMoney :: TimeSeriesValueType

-- | Specify a sequence of buckets that all have the same width (except
--   overflow and underflow). Each bucket represents a constant absolute
--   uncertainty on the specific value in the bucket.Defines
--   num_finite_buckets + 2 (= N) buckets with these boundaries for bucket
--   i:Upper bound (0 &lt;= i &lt; N-1): offset + (width * i). Lower bound
--   (1 &lt;= i &lt; N): offset + (width * (i - 1)).
--   
--   <i>See:</i> <a>linear</a> smart constructor.
data Linear

-- | Creates a value of <a>Linear</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>lOffSet</a></li>
--   <li><a>lWidth</a></li>
--   <li><a>lNumFiniteBuckets</a></li>
--   </ul>
linear :: Linear

-- | Lower bound of the first bucket.
lOffSet :: Lens' Linear (Maybe Double)

-- | Must be greater than 0.
lWidth :: Lens' Linear (Maybe Double)

-- | Must be greater than 0.
lNumFiniteBuckets :: Lens' Linear (Maybe Int32)

-- | The field cardinality.
data FieldCardinality

-- | <tt>CARDINALITY_UNKNOWN</tt> For fields with unknown cardinality.
CardinalityUnknown :: FieldCardinality

-- | <tt>CARDINALITY_OPTIONAL</tt> For optional fields.
CardinalityOptional :: FieldCardinality

-- | <tt>CARDINALITY_REQUIRED</tt> For required fields. Proto2 syntax only.
CardinalityRequired :: FieldCardinality

-- | <tt>CARDINALITY_REPEATED</tt> For repeated fields.
CardinalityRepeated :: FieldCardinality

-- | A protocol buffer message type.
--   
--   <i>See:</i> <a>type'</a> smart constructor.
data Type

-- | Creates a value of <a>Type</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>tSourceContext</a></li>
--   <li><a>tOneofs</a></li>
--   <li><a>tName</a></li>
--   <li><a>tOptions</a></li>
--   <li><a>tFields</a></li>
--   <li><a>tSyntax</a></li>
--   </ul>
type' :: Type

-- | The source context.
tSourceContext :: Lens' Type (Maybe SourceContext)

-- | The list of types appearing in oneof definitions in this type.
tOneofs :: Lens' Type [Text]

-- | The fully qualified message name.
tName :: Lens' Type (Maybe Text)

-- | The protocol buffer options.
tOptions :: Lens' Type [Option]

-- | The list of fields.
tFields :: Lens' Type [Field]

-- | The source syntax.
tSyntax :: Lens' Type (Maybe TypeSyntax)

-- | Whether the metric records instantaneous values, changes to a value,
--   etc. Some combinations of metric_kind and value_type might not be
--   supported.
data MetricDescriptorMetricKind

-- | <tt>METRIC_KIND_UNSPECIFIED</tt> Do not use this default value.
MDMKMetricKindUnspecified :: MetricDescriptorMetricKind

-- | <tt>GAUGE</tt> An instantaneous measurement of a value.
MDMKGauge :: MetricDescriptorMetricKind

-- | <tt>DELTA</tt> The change in a value during a time interval.
MDMKDelta :: MetricDescriptorMetricKind

-- | <tt>CUMULATIVE</tt> A value accumulated over a time interval.
--   Cumulative measurements in a time series should have the same start
--   time and increasing end times, until an event resets the cumulative
--   value to zero and sets a new start time for the following points.
MDMKCumulative :: MetricDescriptorMetricKind

-- | A protocol buffer option, which can be attached to a message, field,
--   enumeration, etc.
--   
--   <i>See:</i> <a>option</a> smart constructor.
data Option

-- | Creates a value of <a>Option</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>oValue</a></li>
--   <li><a>oName</a></li>
--   </ul>
option :: Option

-- | The option's value packed in an Any message. If the value is a
--   primitive, the corresponding wrapper type defined in
--   google/protobuf/wrappers.proto should be used. If the value is an
--   enum, it should be stored as an int32 value using the
--   google.protobuf.Int32Value type.
oValue :: Lens' Option (Maybe OptionValue)

-- | The option's name. For protobuf built-in options (options defined in
--   descriptor.proto), this is the short name. For example, "map_entry".
--   For custom options, it should be the fully-qualified name. For
--   example, "google.api.http".
oName :: Lens' Option (Maybe Text)

-- | A Distribution may optionally contain a histogram of the values in the
--   population. The histogram is given in bucket_counts as counts of
--   values that fall into one of a sequence of non-overlapping buckets.
--   The sequence of buckets is described by bucket_options.A bucket
--   specifies an inclusive lower bound and exclusive upper bound for the
--   values that are counted for that bucket. The upper bound of a bucket
--   is strictly greater than the lower bound.The sequence of N buckets for
--   a Distribution consists of an underflow bucket (number 0), zero or
--   more finite buckets (number 1 through N - 2) and an overflow bucket
--   (number N - 1). The buckets are contiguous: the lower bound of bucket
--   i (i &gt; 0) is the same as the upper bound of bucket i - 1. The
--   buckets span the whole range of finite values: lower bound of the
--   underflow bucket is -infinity and the upper bound of the overflow
--   bucket is +infinity. The finite buckets are so-called because both
--   bounds are finite.BucketOptions describes bucket boundaries in one of
--   three ways. Two describe the boundaries by giving parameters for a
--   formula to generate boundaries and one gives the bucket boundaries
--   explicitly.If bucket_options is not given, then no bucket_counts may
--   be given.
--   
--   <i>See:</i> <a>bucketOptions</a> smart constructor.
data BucketOptions

-- | Creates a value of <a>BucketOptions</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>boExponentialBuckets</a></li>
--   <li><a>boLinearBuckets</a></li>
--   <li><a>boExplicitBuckets</a></li>
--   </ul>
bucketOptions :: BucketOptions

-- | The exponential buckets.
boExponentialBuckets :: Lens' BucketOptions (Maybe Exponential)

-- | The linear bucket.
boLinearBuckets :: Lens' BucketOptions (Maybe Linear)

-- | The explicit buckets.
boExplicitBuckets :: Lens' BucketOptions (Maybe Explicit)

-- | A collection of data points that describes the time-varying values of
--   a metric. A time series is identified by a combination of a
--   fully-specified monitored resource and a fully-specified metric. This
--   type is used for both listing and creating 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>tsPoints</a></li>
--   <li><a>tsMetricKind</a></li>
--   <li><a>tsMetric</a></li>
--   <li><a>tsResource</a></li>
--   <li><a>tsValueType</a></li>
--   </ul>
timeSeries :: TimeSeries

-- | The data points of this time series. When listing time series, the
--   order of the points is specified by the list method.When creating a
--   time series, this field must contain exactly one point and the point's
--   type must be the same as the value type of the associated metric. If
--   the associated metric's descriptor must be auto-created, then the
--   value type of the descriptor is determined by the point's type, which
--   must be BOOL, INT64, DOUBLE, or DISTRIBUTION.
tsPoints :: Lens' TimeSeries [Point]

-- | The metric kind of the time series. When listing time series, this
--   metric kind might be different from the metric kind of the associated
--   metric if this time series is an alignment or reduction of other time
--   series.When creating a time series, this field is optional. If
--   present, it must be the same as the metric kind of the associated
--   metric. If the associated metric's descriptor must be auto-created,
--   then this field specifies the metric kind of the new descriptor and
--   must be either GAUGE (the default) or CUMULATIVE.
tsMetricKind :: Lens' TimeSeries (Maybe TimeSeriesMetricKind)

-- | The associated metric. A fully-specified metric used to identify the
--   time series.
tsMetric :: Lens' TimeSeries (Maybe Metric)

-- | The associated resource. A fully-specified monitored resource used to
--   identify the time series.
tsResource :: Lens' TimeSeries (Maybe MonitoredResource)

-- | The value type of the time series. When listing time series, this
--   value type might be different from the value type of the associated
--   metric if this time series is an alignment or reduction of other time
--   series.When creating a time series, this field is optional. If
--   present, it must be the same as the type of the data in the points
--   field.
tsValueType :: Lens' TimeSeries (Maybe TimeSeriesValueType)
