Generated Dart libraries for accessing
[Google APIs](https://developers.google.com/api-client-library).

To use these APIs from Flutter, see the
[Flutter Google APIs documentation](https://flutter.dev/docs/development/data-and-backend/google-apis).

For example of using these APIs from a Dart console example see the example in
this package. For an example of usage in a server application,
[see this example](https://github.com/dart-lang/samples/tree/master/server/google_apis).

## Available Google APIs

The following is a list of APIs that are currently available inside this
package.

#### Ad Exchange Buyer API II - `adexchangebuyer2/v2beta1`

Access the latest features for managing Authorized Buyers accounts, Real-Time Bidding configurations and auction metrics, and Marketplace programmatic deals.

- [Original documentation](https://developers.google.com/authorized-buyers/apis/reference/rest/)
- [Dart package details](https://pub.dev/documentation/googleapis_beta/9.1.0-wip/adexchangebuyer2_v2beta1/adexchangebuyer2_v2beta1-library.html)

#### Google Workspace Alert Center API - `alertcenter/v1beta1`

Manages alerts on issues affecting your domain. Note: The current version of this API (v1beta1) is available to all Google Workspace customers. 

- [Original documentation](https://developers.google.com/workspace/admin/alertcenter/)
- [Dart package details](https://pub.dev/documentation/googleapis_beta/9.1.0-wip/alertcenter_v1beta1/alertcenter_v1beta1-library.html)

#### Google Analytics Admin API - `analyticsadmin/v1alpha`

Manage properties in Google Analytics. Warning: Creating multiple Customer Applications, Accounts, or Projects to simulate or act as a single Customer Application, Account, or Project (respectively) or to circumvent Service-specific usage limits or quotas is a direct violation of Google Cloud Platform Terms of Service as well as Google APIs Terms of Service. These actions can result in immediate termination of your GCP project(s) without any warning.

- [Original documentation](http://code.google.com/apis/analytics/docs/mgmt/home.html)
- [Dart package details](https://pub.dev/documentation/googleapis_beta/9.1.0-wip/analyticsadmin_v1alpha/analyticsadmin_v1alpha-library.html)

#### Google Analytics Admin API - `analyticsadmin/v1beta`

Manage properties in Google Analytics. Warning: Creating multiple Customer Applications, Accounts, or Projects to simulate or act as a single Customer Application, Account, or Project (respectively) or to circumvent Service-specific usage limits or quotas is a direct violation of Google Cloud Platform Terms of Service as well as Google APIs Terms of Service. These actions can result in immediate termination of your GCP project(s) without any warning.

- [Original documentation](http://code.google.com/apis/analytics/docs/mgmt/home.html)
- [Dart package details](https://pub.dev/documentation/googleapis_beta/9.1.0-wip/analyticsadmin_v1beta/analyticsadmin_v1beta-library.html)

#### Google Analytics Data API - `analyticsdata/v1beta`

Accesses report data in Google Analytics. Warning: Creating multiple Customer Applications, Accounts, or Projects to simulate or act as a single Customer Application, Account, or Project (respectively) or to circumvent Service-specific usage limits or quotas is a direct violation of Google Cloud Platform Terms of Service as well as Google APIs Terms of Service. These actions can result in immediate termination of your GCP project(s) without any warning. 

- [Original documentation](https://developers.google.com/analytics/devguides/reporting/data/v1/)
- [Dart package details](https://pub.dev/documentation/googleapis_beta/9.1.0-wip/analyticsdata_v1beta/analyticsdata_v1beta-library.html)

#### BigQuery Connection API - `bigqueryconnection/v1beta1`

Allows users to manage BigQuery connections to external data sources.

- [Original documentation](https://cloud.google.com/bigquery/docs/connections-api-intro)
- [Dart package details](https://pub.dev/documentation/googleapis_beta/9.1.0-wip/bigqueryconnection_v1beta1/bigqueryconnection_v1beta1-library.html)

#### Error Reporting API - `clouderrorreporting/v1beta1`

Groups and counts similar errors from cloud services and applications, reports new errors, and provides access to error groups and their associated errors. 

- [Original documentation](https://cloud.google.com/error-reporting/)
- [Dart package details](https://pub.dev/documentation/googleapis_beta/9.1.0-wip/clouderrorreporting_v1beta1/clouderrorreporting_v1beta1-library.html)

#### Google Cloud Support API - `cloudsupport/v2beta`

Manages Google Cloud technical support cases for Customer Care support offerings. 

- [Original documentation](https://cloud.google.com/support/docs/apis)
- [Dart package details](https://pub.dev/documentation/googleapis_beta/9.1.0-wip/cloudsupport_v2beta/cloudsupport_v2beta-library.html)

#### Dataflow API - `dataflow/v1b3`

Manages Google Cloud Dataflow projects on Google Cloud Platform.

- [Original documentation](https://cloud.google.com/dataflow)
- [Dart package details](https://pub.dev/documentation/googleapis_beta/9.1.0-wip/dataflow_v1b3/dataflow_v1b3-library.html)

#### Data Labeling API - `datalabeling/v1beta1`

Public API for Google Cloud AI Data Labeling Service.

- [Original documentation](https://cloud.google.com/data-labeling/docs/)
- [Dart package details](https://pub.dev/documentation/googleapis_beta/9.1.0-wip/datalabeling_v1beta1/datalabeling_v1beta1-library.html)

#### Datastream API - `datastream/v1alpha1`

- [Original documentation](https://cloud.google.com/datastream/)
- [Dart package details](https://pub.dev/documentation/googleapis_beta/9.1.0-wip/datastream_v1alpha1/datastream_v1alpha1-library.html)

#### Fact Check Tools API - `factchecktools/v1alpha1`

- [Original documentation](https://developers.google.com/fact-check/tools/api/)
- [Dart package details](https://pub.dev/documentation/googleapis_beta/9.1.0-wip/factchecktools_v1alpha1/factchecktools_v1alpha1-library.html)

#### Firebase Cloud Messaging Data API - `fcmdata/v1beta1`

Provides additional information about Firebase Cloud Messaging (FCM) message sends and deliveries.

- [Original documentation](https://firebase.google.com/docs/cloud-messaging)
- [Dart package details](https://pub.dev/documentation/googleapis_beta/9.1.0-wip/fcmdata_v1beta1/fcmdata_v1beta1-library.html)

#### Firebase Management API - `firebase/v1beta1`

The Firebase Management API enables programmatic setup and management of Firebase projects, including a project's Firebase resources and Firebase apps.

- [Original documentation](https://firebase.google.com)
- [Dart package details](https://pub.dev/documentation/googleapis_beta/9.1.0-wip/firebase_v1beta1/firebase_v1beta1-library.html)

#### Firebase App Check API - `firebaseappcheck/v1beta`

Firebase App Check works alongside other Firebase services to help protect your backend resources from abuse, such as billing fraud or phishing.

- [Original documentation](https://firebase.google.com/docs/app-check)
- [Dart package details](https://pub.dev/documentation/googleapis_beta/9.1.0-wip/firebaseappcheck_v1beta/firebaseappcheck_v1beta-library.html)

#### Firebase Realtime Database Management API - `firebasedatabase/v1beta`

The Firebase Realtime Database API enables programmatic provisioning and management of Realtime Database instances.

- [Original documentation](https://firebase.google.com/docs/reference/rest/database/database-management/rest/)
- [Dart package details](https://pub.dev/documentation/googleapis_beta/9.1.0-wip/firebasedatabase_v1beta/firebasedatabase_v1beta-library.html)

#### Cloud Storage for Firebase API - `firebasestorage/v1beta`

The Cloud Storage for Firebase API enables programmatic management of Cloud Storage buckets for use in Firebase projects

- [Original documentation](https://firebase.google.com/docs/storage)
- [Dart package details](https://pub.dev/documentation/googleapis_beta/9.1.0-wip/firebasestorage_v1beta/firebasestorage_v1beta-library.html)

#### GKE Hub API - `gkehub/v2alpha`

- [Original documentation](https://cloud.google.com/anthos/multicluster-management/connect/registering-a-cluster)
- [Dart package details](https://pub.dev/documentation/googleapis_beta/9.1.0-wip/gkehub_v2alpha/gkehub_v2alpha-library.html)

#### SAS Portal API (Testing) - `prod_tt_sasportal/v1alpha1`

- [Original documentation](https://developers.google.com/spectrum-access-system/)
- [Dart package details](https://pub.dev/documentation/googleapis_beta/9.1.0-wip/prod_tt_sasportal_v1alpha1/prod_tt_sasportal_v1alpha1-library.html)

#### Recommendations AI (Beta) - `recommendationengine/v1beta1`

Note that we now highly recommend new customers to use Retail API, which incorporates the GA version of the Recommendations AI funtionalities. To enable Retail API, please visit https://console.cloud.google.com/apis/library/retail.googleapis.com. The Recommendations AI service enables customers to build end-to-end personalized recommendation systems without requiring a high level of expertise in machine learning, recommendation system, or Google Cloud.

- [Original documentation](https://cloud.google.com/recommendations-ai/docs)
- [Dart package details](https://pub.dev/documentation/googleapis_beta/9.1.0-wip/recommendationengine_v1beta1/recommendationengine_v1beta1-library.html)

#### SAS Portal API - `sasportal/v1alpha1`

- [Original documentation](https://developers.google.com/spectrum-access-system/)
- [Dart package details](https://pub.dev/documentation/googleapis_beta/9.1.0-wip/sasportal_v1alpha1/sasportal_v1alpha1-library.html)

#### Cloud SQL Admin API - `sqladmin/v1beta4`

API for Cloud SQL database instance management

- [Original documentation](https://cloud.google.com/sql/docs)
- [Dart package details](https://pub.dev/documentation/googleapis_beta/9.1.0-wip/sqladmin_v1beta4/sqladmin_v1beta4-library.html)

#### Cloud Tool Results API - `toolresults/v1beta3`

API to publish and access results from developer tools.

- [Original documentation](https://firebase.google.com/docs/test-lab/)
- [Dart package details](https://pub.dev/documentation/googleapis_beta/9.1.0-wip/toolresults_v1beta3/toolresults_v1beta3-library.html)

