/*!

@mainpage Cloud IAM C++ Client Library

The Cloud IAM C++ Client library offers types and functions to use Cloud
IAM from C++ applications.

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/iam/quickstart/` directory, which should give you a taste of
the Cloud IAM 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 iam_admin_v1::IAMClient](@ref google::cloud::iam_admin_v1::IAMClient)
- [\c iam_credentials_v1::IAMCredentialsClient](@ref google::cloud::iam_credentials_v1::IAMCredentialsClient)
- [\c iam_v1::IAMPolicyClient](@ref google::cloud::iam_v1::IAMPolicyClient)
- [\c iam_v2::PoliciesClient](@ref google::cloud::iam_v2::PoliciesClient)
- [\c iam_v3::PolicyBindingsClient](@ref google::cloud::iam_v3::PolicyBindingsClient)
- [\c iam_v3::PrincipalAccessBoundaryPoliciesClient](@ref google::cloud::iam_v3::PrincipalAccessBoundaryPoliciesClient)
<!-- inject-client-list-end -->

## Next Steps

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

[resource-link]: https://console.cloud.google.com/cloud-resource-manager 'Console Resource Manager'
[billing-link]: https://cloud.google.com/billing/docs/how-to/modify-project 'How to: Modify Project'
[concepts-link]: https://cloud.google.com/iam/docs/concepts 'IAM Concepts'
[github-link]: https://github.com/googleapis/google-cloud-cpp 'GitHub Repository'
[quickstart-link]:  https://github.com/googleapis/google-cloud-cpp/blob/main/google/cloud/iam/quickstart

*/
