/*!

@mainpage Cloud Monitoring API C++ Client Library

An idiomatic C++ client library for the [Cloud Monitoring API][cloud-service-docs],
a service to manage your Cloud Monitoring data and configurations. This library
is used to interact with the Cloud Monitoring API directly. If you are looking
to instrument your application for Cloud Monitoring, we recommend using
[OpenTelemetry](https://opentelemetry.io) or a similar framework.

While this library is **GA**, please note Google Cloud C++ client libraries do **not** follow [Semantic Versioning](https://semver.org/).

@tableofcontents{HTML:2}

## Quickstart

The following shows the code that you'll run in the
`google/cloud/monitoring/quickstart/` directory,
which should give you a taste of the Cloud Monitoring API C++ client library API.

@snippet quickstart.cc all

## Main classes

<!-- inject-client-list-start -->
This library offers multiple `*Client` classes, which are listed below. Each one
of these classes exposes all the RPCs for a service as member functions of the
class. This library groups multiple services because they are part of the same
product or are often used together. A typical example may be the administrative
and data plane operations for a single product.

The library also has other classes that provide helpers, configuration
parameters, and infrastructure to mock the `*Client` classes when testing your
application.

- [\c monitoring_dashboard_v1::DashboardsServiceClient](@ref google::cloud::monitoring_dashboard_v1::DashboardsServiceClient)
- [\c monitoring_metricsscope_v1::MetricsScopesClient](@ref google::cloud::monitoring_metricsscope_v1::MetricsScopesClient)
- [\c monitoring_v3::AlertPolicyServiceClient](@ref google::cloud::monitoring_v3::AlertPolicyServiceClient)
- [\c monitoring_v3::GroupServiceClient](@ref google::cloud::monitoring_v3::GroupServiceClient)
- [\c monitoring_v3::MetricServiceClient](@ref google::cloud::monitoring_v3::MetricServiceClient)
- [\c monitoring_v3::NotificationChannelServiceClient](@ref google::cloud::monitoring_v3::NotificationChannelServiceClient)
- [\c monitoring_v3::QueryServiceClient](@ref google::cloud::monitoring_v3::QueryServiceClient)
- [\c monitoring_v3::ServiceMonitoringServiceClient](@ref google::cloud::monitoring_v3::ServiceMonitoringServiceClient)
- [\c monitoring_v3::SnoozeServiceClient](@ref google::cloud::monitoring_v3::SnoozeServiceClient)
- [\c monitoring_v3::UptimeCheckServiceClient](@ref google::cloud::monitoring_v3::UptimeCheckServiceClient)
<!-- inject-client-list-end -->

## More Information

- @ref common-error-handling - describes how the library reports errors.
- @ref monitoring-override-endpoint - describes how to override the default
  endpoint.
- @ref monitoring-override-authentication - describes how to change the
  authentication credentials used by the library.
- @ref monitoring-override-retry - describes how to change the default retry
  policies.
- @ref monitoring-env - describes environment variables that can configure the behavior of the library.
- @ref monitoring-override-universe-domain - describes how to override the default universe domain.

[cloud-service-docs]: https://cloud.google.com/monitoring

*/
