/*!

@mainpage Pub/Sub Lite API C++ Client Library

An idiomatic C++ client library for
[Pub/Sub Lite API](https://cloud.google.com/pubsublite/),  a high-volume
messaging service built for very low cost of operation by offering zonal storage
and pre-provisioned capacity.

This library is **experimental**. Its APIs are subject to change without notice.

@tableofcontents{HTML:2}

## Quickstart

The following shows the code that you'll run in the
`google/cloud/pubsublite/quickstart/` directory,
which should give you a taste of the Pub/Sub Lite 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 pubsublite::AdminServiceClient](@ref google::cloud::pubsublite::AdminServiceClient)
- [\c pubsublite::TopicStatsServiceClient](@ref google::cloud::pubsublite::TopicStatsServiceClient)
<!-- inject-client-list-end -->

## Retry, Backoff, and Idempotency Policies.

The library automatically retries requests that fail with transient errors, and
uses [exponential backoff] to backoff between retries. Application developers
can override the default policies.

## More Information

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

[exponential backoff]: https://en.wikipedia.org/wiki/Exponential_backoff

*/
