/*!

@mainpage Compute Engine API C++ Client Library

An idiomatic C++ client library for the [Compute Engine API][cloud-service-docs],
a service to create and manage cloud computing resources.

While this library is **GA**, please note that the 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/compute/quickstart/` directory,
which should give you a taste of the Cloud Compute Engine API C++ client library.

@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 compute_accelerator_types_v1::AcceleratorTypesClient](@ref google::cloud::compute_accelerator_types_v1::AcceleratorTypesClient)
- [\c compute_addresses_v1::AddressesClient](@ref google::cloud::compute_addresses_v1::AddressesClient)
- [\c compute_autoscalers_v1::AutoscalersClient](@ref google::cloud::compute_autoscalers_v1::AutoscalersClient)
- [\c compute_backend_buckets_v1::BackendBucketsClient](@ref google::cloud::compute_backend_buckets_v1::BackendBucketsClient)
- [\c compute_backend_services_v1::BackendServicesClient](@ref google::cloud::compute_backend_services_v1::BackendServicesClient)
- [\c compute_disk_types_v1::DiskTypesClient](@ref google::cloud::compute_disk_types_v1::DiskTypesClient)
- [\c compute_disks_v1::DisksClient](@ref google::cloud::compute_disks_v1::DisksClient)
- [\c compute_external_vpn_gateways_v1::ExternalVpnGatewaysClient](@ref google::cloud::compute_external_vpn_gateways_v1::ExternalVpnGatewaysClient)
- [\c compute_firewall_policies_v1::FirewallPoliciesClient](@ref google::cloud::compute_firewall_policies_v1::FirewallPoliciesClient)
- [\c compute_firewalls_v1::FirewallsClient](@ref google::cloud::compute_firewalls_v1::FirewallsClient)
- [\c compute_forwarding_rules_v1::ForwardingRulesClient](@ref google::cloud::compute_forwarding_rules_v1::ForwardingRulesClient)
- [\c compute_global_addresses_v1::GlobalAddressesClient](@ref google::cloud::compute_global_addresses_v1::GlobalAddressesClient)
- [\c compute_global_forwarding_rules_v1::GlobalForwardingRulesClient](@ref google::cloud::compute_global_forwarding_rules_v1::GlobalForwardingRulesClient)
- [\c compute_global_network_endpoint_groups_v1::GlobalNetworkEndpointGroupsClient](@ref google::cloud::compute_global_network_endpoint_groups_v1::GlobalNetworkEndpointGroupsClient)
- [\c compute_global_operations_v1::GlobalOperationsClient](@ref google::cloud::compute_global_operations_v1::GlobalOperationsClient)
- [\c compute_global_organization_operations_v1::GlobalOrganizationOperationsClient](@ref google::cloud::compute_global_organization_operations_v1::GlobalOrganizationOperationsClient)
- [\c compute_global_public_delegated_prefixes_v1::GlobalPublicDelegatedPrefixesClient](@ref google::cloud::compute_global_public_delegated_prefixes_v1::GlobalPublicDelegatedPrefixesClient)
- [\c compute_health_checks_v1::HealthChecksClient](@ref google::cloud::compute_health_checks_v1::HealthChecksClient)
- [\c compute_http_health_checks_v1::HttpHealthChecksClient](@ref google::cloud::compute_http_health_checks_v1::HttpHealthChecksClient)
- [\c compute_https_health_checks_v1::HttpsHealthChecksClient](@ref google::cloud::compute_https_health_checks_v1::HttpsHealthChecksClient)
- [\c compute_image_family_views_v1::ImageFamilyViewsClient](@ref google::cloud::compute_image_family_views_v1::ImageFamilyViewsClient)
- [\c compute_images_v1::ImagesClient](@ref google::cloud::compute_images_v1::ImagesClient)
- [\c compute_instance_group_manager_resize_requests_v1::InstanceGroupManagerResizeRequestsClient](@ref google::cloud::compute_instance_group_manager_resize_requests_v1::InstanceGroupManagerResizeRequestsClient)
- [\c compute_instance_group_managers_v1::InstanceGroupManagersClient](@ref google::cloud::compute_instance_group_managers_v1::InstanceGroupManagersClient)
- [\c compute_instance_groups_v1::InstanceGroupsClient](@ref google::cloud::compute_instance_groups_v1::InstanceGroupsClient)
- [\c compute_instance_settings_v1::InstanceSettingsClient](@ref google::cloud::compute_instance_settings_v1::InstanceSettingsClient)
- [\c compute_instance_templates_v1::InstanceTemplatesClient](@ref google::cloud::compute_instance_templates_v1::InstanceTemplatesClient)
- [\c compute_instances_v1::InstancesClient](@ref google::cloud::compute_instances_v1::InstancesClient)
- [\c compute_instant_snapshots_v1::InstantSnapshotsClient](@ref google::cloud::compute_instant_snapshots_v1::InstantSnapshotsClient)
- [\c compute_interconnect_attachment_groups_v1::InterconnectAttachmentGroupsClient](@ref google::cloud::compute_interconnect_attachment_groups_v1::InterconnectAttachmentGroupsClient)
- [\c compute_interconnect_attachments_v1::InterconnectAttachmentsClient](@ref google::cloud::compute_interconnect_attachments_v1::InterconnectAttachmentsClient)
- [\c compute_interconnect_groups_v1::InterconnectGroupsClient](@ref google::cloud::compute_interconnect_groups_v1::InterconnectGroupsClient)
- [\c compute_interconnect_locations_v1::InterconnectLocationsClient](@ref google::cloud::compute_interconnect_locations_v1::InterconnectLocationsClient)
- [\c compute_interconnect_remote_locations_v1::InterconnectRemoteLocationsClient](@ref google::cloud::compute_interconnect_remote_locations_v1::InterconnectRemoteLocationsClient)
- [\c compute_interconnects_v1::InterconnectsClient](@ref google::cloud::compute_interconnects_v1::InterconnectsClient)
- [\c compute_license_codes_v1::LicenseCodesClient](@ref google::cloud::compute_license_codes_v1::LicenseCodesClient)
- [\c compute_licenses_v1::LicensesClient](@ref google::cloud::compute_licenses_v1::LicensesClient)
- [\c compute_machine_images_v1::MachineImagesClient](@ref google::cloud::compute_machine_images_v1::MachineImagesClient)
- [\c compute_machine_types_v1::MachineTypesClient](@ref google::cloud::compute_machine_types_v1::MachineTypesClient)
- [\c compute_network_attachments_v1::NetworkAttachmentsClient](@ref google::cloud::compute_network_attachments_v1::NetworkAttachmentsClient)
- [\c compute_network_edge_security_services_v1::NetworkEdgeSecurityServicesClient](@ref google::cloud::compute_network_edge_security_services_v1::NetworkEdgeSecurityServicesClient)
- [\c compute_network_endpoint_groups_v1::NetworkEndpointGroupsClient](@ref google::cloud::compute_network_endpoint_groups_v1::NetworkEndpointGroupsClient)
- [\c compute_network_firewall_policies_v1::NetworkFirewallPoliciesClient](@ref google::cloud::compute_network_firewall_policies_v1::NetworkFirewallPoliciesClient)
- [\c compute_network_profiles_v1::NetworkProfilesClient](@ref google::cloud::compute_network_profiles_v1::NetworkProfilesClient)
- [\c compute_networks_v1::NetworksClient](@ref google::cloud::compute_networks_v1::NetworksClient)
- [\c compute_node_groups_v1::NodeGroupsClient](@ref google::cloud::compute_node_groups_v1::NodeGroupsClient)
- [\c compute_node_templates_v1::NodeTemplatesClient](@ref google::cloud::compute_node_templates_v1::NodeTemplatesClient)
- [\c compute_node_types_v1::NodeTypesClient](@ref google::cloud::compute_node_types_v1::NodeTypesClient)
- [\c compute_packet_mirrorings_v1::PacketMirroringsClient](@ref google::cloud::compute_packet_mirrorings_v1::PacketMirroringsClient)
- [\c compute_projects_v1::ProjectsClient](@ref google::cloud::compute_projects_v1::ProjectsClient)
- [\c compute_public_advertised_prefixes_v1::PublicAdvertisedPrefixesClient](@ref google::cloud::compute_public_advertised_prefixes_v1::PublicAdvertisedPrefixesClient)
- [\c compute_public_delegated_prefixes_v1::PublicDelegatedPrefixesClient](@ref google::cloud::compute_public_delegated_prefixes_v1::PublicDelegatedPrefixesClient)
- [\c compute_region_autoscalers_v1::RegionAutoscalersClient](@ref google::cloud::compute_region_autoscalers_v1::RegionAutoscalersClient)
- [\c compute_region_backend_services_v1::RegionBackendServicesClient](@ref google::cloud::compute_region_backend_services_v1::RegionBackendServicesClient)
- [\c compute_region_commitments_v1::RegionCommitmentsClient](@ref google::cloud::compute_region_commitments_v1::RegionCommitmentsClient)
- [\c compute_region_disk_types_v1::RegionDiskTypesClient](@ref google::cloud::compute_region_disk_types_v1::RegionDiskTypesClient)
- [\c compute_region_disks_v1::RegionDisksClient](@ref google::cloud::compute_region_disks_v1::RegionDisksClient)
- [\c compute_region_health_check_services_v1::RegionHealthCheckServicesClient](@ref google::cloud::compute_region_health_check_services_v1::RegionHealthCheckServicesClient)
- [\c compute_region_health_checks_v1::RegionHealthChecksClient](@ref google::cloud::compute_region_health_checks_v1::RegionHealthChecksClient)
- [\c compute_region_instance_group_managers_v1::RegionInstanceGroupManagersClient](@ref google::cloud::compute_region_instance_group_managers_v1::RegionInstanceGroupManagersClient)
- [\c compute_region_instance_groups_v1::RegionInstanceGroupsClient](@ref google::cloud::compute_region_instance_groups_v1::RegionInstanceGroupsClient)
- [\c compute_region_instance_templates_v1::RegionInstanceTemplatesClient](@ref google::cloud::compute_region_instance_templates_v1::RegionInstanceTemplatesClient)
- [\c compute_region_instances_v1::RegionInstancesClient](@ref google::cloud::compute_region_instances_v1::RegionInstancesClient)
- [\c compute_region_instant_snapshots_v1::RegionInstantSnapshotsClient](@ref google::cloud::compute_region_instant_snapshots_v1::RegionInstantSnapshotsClient)
- [\c compute_region_network_endpoint_groups_v1::RegionNetworkEndpointGroupsClient](@ref google::cloud::compute_region_network_endpoint_groups_v1::RegionNetworkEndpointGroupsClient)
- [\c compute_region_network_firewall_policies_v1::RegionNetworkFirewallPoliciesClient](@ref google::cloud::compute_region_network_firewall_policies_v1::RegionNetworkFirewallPoliciesClient)
- [\c compute_region_notification_endpoints_v1::RegionNotificationEndpointsClient](@ref google::cloud::compute_region_notification_endpoints_v1::RegionNotificationEndpointsClient)
- [\c compute_region_operations_v1::RegionOperationsClient](@ref google::cloud::compute_region_operations_v1::RegionOperationsClient)
- [\c compute_region_security_policies_v1::RegionSecurityPoliciesClient](@ref google::cloud::compute_region_security_policies_v1::RegionSecurityPoliciesClient)
- [\c compute_region_ssl_certificates_v1::RegionSslCertificatesClient](@ref google::cloud::compute_region_ssl_certificates_v1::RegionSslCertificatesClient)
- [\c compute_region_ssl_policies_v1::RegionSslPoliciesClient](@ref google::cloud::compute_region_ssl_policies_v1::RegionSslPoliciesClient)
- [\c compute_region_target_http_proxies_v1::RegionTargetHttpProxiesClient](@ref google::cloud::compute_region_target_http_proxies_v1::RegionTargetHttpProxiesClient)
- [\c compute_region_target_https_proxies_v1::RegionTargetHttpsProxiesClient](@ref google::cloud::compute_region_target_https_proxies_v1::RegionTargetHttpsProxiesClient)
- [\c compute_region_target_tcp_proxies_v1::RegionTargetTcpProxiesClient](@ref google::cloud::compute_region_target_tcp_proxies_v1::RegionTargetTcpProxiesClient)
- [\c compute_region_url_maps_v1::RegionUrlMapsClient](@ref google::cloud::compute_region_url_maps_v1::RegionUrlMapsClient)
- [\c compute_region_zones_v1::RegionZonesClient](@ref google::cloud::compute_region_zones_v1::RegionZonesClient)
- [\c compute_regions_v1::RegionsClient](@ref google::cloud::compute_regions_v1::RegionsClient)
- [\c compute_reservation_blocks_v1::ReservationBlocksClient](@ref google::cloud::compute_reservation_blocks_v1::ReservationBlocksClient)
- [\c compute_reservation_sub_blocks_v1::ReservationSubBlocksClient](@ref google::cloud::compute_reservation_sub_blocks_v1::ReservationSubBlocksClient)
- [\c compute_reservations_v1::ReservationsClient](@ref google::cloud::compute_reservations_v1::ReservationsClient)
- [\c compute_resource_policies_v1::ResourcePoliciesClient](@ref google::cloud::compute_resource_policies_v1::ResourcePoliciesClient)
- [\c compute_routers_v1::RoutersClient](@ref google::cloud::compute_routers_v1::RoutersClient)
- [\c compute_routes_v1::RoutesClient](@ref google::cloud::compute_routes_v1::RoutesClient)
- [\c compute_security_policies_v1::SecurityPoliciesClient](@ref google::cloud::compute_security_policies_v1::SecurityPoliciesClient)
- [\c compute_service_attachments_v1::ServiceAttachmentsClient](@ref google::cloud::compute_service_attachments_v1::ServiceAttachmentsClient)
- [\c compute_snapshot_settings_v1::SnapshotSettingsClient](@ref google::cloud::compute_snapshot_settings_v1::SnapshotSettingsClient)
- [\c compute_snapshots_v1::SnapshotsClient](@ref google::cloud::compute_snapshots_v1::SnapshotsClient)
- [\c compute_ssl_certificates_v1::SslCertificatesClient](@ref google::cloud::compute_ssl_certificates_v1::SslCertificatesClient)
- [\c compute_ssl_policies_v1::SslPoliciesClient](@ref google::cloud::compute_ssl_policies_v1::SslPoliciesClient)
- [\c compute_storage_pool_types_v1::StoragePoolTypesClient](@ref google::cloud::compute_storage_pool_types_v1::StoragePoolTypesClient)
- [\c compute_storage_pools_v1::StoragePoolsClient](@ref google::cloud::compute_storage_pools_v1::StoragePoolsClient)
- [\c compute_subnetworks_v1::SubnetworksClient](@ref google::cloud::compute_subnetworks_v1::SubnetworksClient)
- [\c compute_target_grpc_proxies_v1::TargetGrpcProxiesClient](@ref google::cloud::compute_target_grpc_proxies_v1::TargetGrpcProxiesClient)
- [\c compute_target_http_proxies_v1::TargetHttpProxiesClient](@ref google::cloud::compute_target_http_proxies_v1::TargetHttpProxiesClient)
- [\c compute_target_https_proxies_v1::TargetHttpsProxiesClient](@ref google::cloud::compute_target_https_proxies_v1::TargetHttpsProxiesClient)
- [\c compute_target_instances_v1::TargetInstancesClient](@ref google::cloud::compute_target_instances_v1::TargetInstancesClient)
- [\c compute_target_pools_v1::TargetPoolsClient](@ref google::cloud::compute_target_pools_v1::TargetPoolsClient)
- [\c compute_target_ssl_proxies_v1::TargetSslProxiesClient](@ref google::cloud::compute_target_ssl_proxies_v1::TargetSslProxiesClient)
- [\c compute_target_tcp_proxies_v1::TargetTcpProxiesClient](@ref google::cloud::compute_target_tcp_proxies_v1::TargetTcpProxiesClient)
- [\c compute_target_vpn_gateways_v1::TargetVpnGatewaysClient](@ref google::cloud::compute_target_vpn_gateways_v1::TargetVpnGatewaysClient)
- [\c compute_url_maps_v1::UrlMapsClient](@ref google::cloud::compute_url_maps_v1::UrlMapsClient)
- [\c compute_vpn_gateways_v1::VpnGatewaysClient](@ref google::cloud::compute_vpn_gateways_v1::VpnGatewaysClient)
- [\c compute_vpn_tunnels_v1::VpnTunnelsClient](@ref google::cloud::compute_vpn_tunnels_v1::VpnTunnelsClient)
- [\c compute_zone_operations_v1::ZoneOperationsClient](@ref google::cloud::compute_zone_operations_v1::ZoneOperationsClient)
- [\c compute_zones_v1::ZonesClient](@ref google::cloud::compute_zones_v1::ZonesClient)
<!-- inject-client-list-end -->

## More Information

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

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