Skip to main content
Glama
ag2-mcp-servers

Firebase Management MCP Server

models.py44.1 kB
# generated by fastapi-codegen: # filename: openapi.yaml # timestamp: 2025-06-29T02:06:09+00:00 from __future__ import annotations from enum import Enum from typing import Any, Dict, List, Optional from pydantic import BaseModel, Field class AddFirebaseRequest(BaseModel): locationId: Optional[str] = Field( None, description="Deprecated. Instead, to set a Project's default GCP resource location, call [`FinalizeDefaultLocation`](../projects.defaultLocation/finalize) after you add Firebase resources to the GCP `Project`. The ID of the Project's default GCP resource location. The location must be one of the available [GCP resource locations](https://firebase.google.com/docs/projects/locations).", ) class AddGoogleAnalyticsRequest(BaseModel): analyticsAccountId: Optional[str] = Field( None, description='The ID for the existing [Google Analytics account](http://www.google.com/analytics/) that you want to link with the `FirebaseProject`. Specifying this field will provision a new Google Analytics property in your Google Analytics account and associate the new property with the `FirebaseProject`.', ) analyticsPropertyId: Optional[str] = Field( None, description='The ID for the existing Google Analytics property that you want to associate with the `FirebaseProject`.', ) class AdminSdkConfig(BaseModel): databaseURL: Optional[str] = Field( None, description='The default Firebase Realtime Database URL.' ) locationId: Optional[str] = Field( None, description="The ID of the Project's default GCP resource location. The location is one of the available [GCP resource locations](https://firebase.google.com/docs/projects/locations). This field is omitted if the default GCP resource location has not been finalized yet. To set a Project's default GCP resource location, call [`FinalizeDefaultLocation`](../projects.defaultLocation/finalize) after you add Firebase resources to the Project.", ) projectId: Optional[str] = Field( None, description='Immutable. A user-assigned unique identifier for the `FirebaseProject`. This identifier may appear in URLs or names for some Firebase resources associated with the Project, but it should generally be treated as a convenience alias to reference the Project.', ) storageBucket: Optional[str] = Field( None, description='The default Cloud Storage for Firebase storage bucket name.' ) class AnalyticsProperty(BaseModel): analyticsAccountId: Optional[str] = Field( None, description='Output only. The ID of the [Google Analytics account](https://www.google.com/analytics/) for the Google Analytics property associated with the specified FirebaseProject.', ) displayName: Optional[str] = Field( None, description='The display name of the Google Analytics property associated with the specified `FirebaseProject`.', ) id: Optional[str] = Field( None, description='The globally unique, Google-assigned identifier of the Google Analytics property associated with the specified `FirebaseProject`. If you called [`AddGoogleAnalytics`](../../v1beta1/projects/addGoogleAnalytics) to link the `FirebaseProject` with a Google Analytics account, the value in this `id` field is the same as the ID of the property either specified or provisioned with that call to `AddGoogleAnalytics`.', ) class State(Enum): STATE_UNSPECIFIED = 'STATE_UNSPECIFIED' ACTIVE = 'ACTIVE' DELETED = 'DELETED' class AndroidApp(BaseModel): apiKeyId: Optional[str] = Field( None, description="The globally unique, Google-assigned identifier (UID) for the Firebase API key associated with the `AndroidApp`. Be aware that this value is the UID of the API key, _not_ the [`keyString`](https://cloud.google.com/api-keys/docs/reference/rest/v2/projects.locations.keys#Key.FIELDS.key_string) of the API key. The `keyString` is the value that can be found in the App's [configuration artifact](../../rest/v1beta1/projects.androidApps/getConfig). If `api_key_id` is not set in requests to [`androidApps.Create`](../../rest/v1beta1/projects.androidApps/create), then Firebase automatically associates an `api_key_id` with the `AndroidApp`. This auto-associated key may be an existing valid key or, if no valid key exists, a new one will be provisioned. In patch requests, `api_key_id` cannot be set to an empty value, and the new UID must have no restrictions or only have restrictions that are valid for the associated `AndroidApp`. We recommend using the [Google Cloud Console](https://console.cloud.google.com/apis/credentials) to manage API keys.", ) appId: Optional[str] = Field( None, description='Output only. Immutable. The globally unique, Firebase-assigned identifier for the `AndroidApp`. This identifier should be treated as an opaque token, as the data format is not specified.', ) displayName: Optional[str] = Field( None, description='The user-assigned display name for the `AndroidApp`.' ) etag: Optional[str] = Field( None, description="This checksum is computed by the server based on the value of other fields, and it may be sent with update requests to ensure the client has an up-to-date value before proceeding. Learn more about `etag` in Google's [AIP-154 standard](https://google.aip.dev/154#declarative-friendly-resources). This etag is strongly validated.", ) expireTime: Optional[str] = Field( None, description='Output only. Timestamp of when the App will be considered expired and cannot be undeleted. This value is only provided if the App is in the `DELETED` state.', ) name: Optional[str] = Field( None, description="The resource name of the AndroidApp, in the format: projects/ PROJECT_IDENTIFIER/androidApps/APP_ID * PROJECT_IDENTIFIER: the parent Project's [`ProjectNumber`](../projects#FirebaseProject.FIELDS.project_number) ***(recommended)*** or its [`ProjectId`](../projects#FirebaseProject.FIELDS.project_id). Learn more about using project identifiers in Google's [AIP 2510 standard](https://google.aip.dev/cloud/2510). Note that the value for PROJECT_IDENTIFIER in any response body will be the `ProjectId`. * APP_ID: the globally unique, Firebase-assigned identifier for the App (see [`appId`](../projects.androidApps#AndroidApp.FIELDS.app_id)).", ) packageName: Optional[str] = Field( None, description='Immutable. The canonical package name of the Android app as would appear in the Google Play Developer Console.', ) projectId: Optional[str] = Field( None, description='Output only. Immutable. A user-assigned unique identifier of the parent FirebaseProject for the `AndroidApp`.', ) sha1Hashes: Optional[List[str]] = Field( None, description='The SHA1 certificate hashes for the AndroidApp.' ) sha256Hashes: Optional[List[str]] = Field( None, description='The SHA256 certificate hashes for the AndroidApp.' ) state: Optional[State] = Field( None, description='Output only. The lifecycle state of the App.' ) class AndroidAppConfig(BaseModel): configFileContents: Optional[str] = Field( None, description='The contents of the JSON configuration file.' ) configFilename: Optional[str] = Field( None, description='The filename that the configuration artifact for the `AndroidApp` is typically saved as. For example: `google-services.json`', ) class DefaultResources(BaseModel): hostingSite: Optional[str] = Field( None, description='Output only. The default Firebase Hosting site name, in the format: PROJECT_ID Though rare, your `projectId` might already be used as the name for an existing Hosting site in another project (learn more about creating non-default, [additional sites](https://firebase.google.com/docs/hosting/multisites)). In these cases, your `projectId` is appended with a hyphen then five alphanumeric characters to create your default Hosting site name. For example, if your `projectId` is `myproject123`, your default Hosting site name might be: `myproject123-a5c16`', ) locationId: Optional[str] = Field( None, description="Output only. The ID of the Project's default GCP resource location. The location is one of the available [GCP resource locations](https://firebase.google.com/docs/projects/locations). This field is omitted if the default GCP resource location has not been finalized yet. To set a Project's default GCP resource location, call [`FinalizeDefaultLocation`](../projects.defaultLocation/finalize) after you add Firebase resources to the Project.", ) realtimeDatabaseInstance: Optional[str] = Field( None, description='Output only. The default Firebase Realtime Database instance name, in the format: PROJECT_ID Though rare, your `projectId` might already be used as the name for an existing Realtime Database instance in another project (learn more about [database sharding](https://firebase.google.com/docs/database/usage/sharding)). In these cases, your `projectId` is appended with a hyphen then five alphanumeric characters to create your default Realtime Database instance name. For example, if your `projectId` is `myproject123`, your default database instance name might be: `myproject123-a5c16`', ) storageBucket: Optional[str] = Field( None, description='Output only. The default Cloud Storage for Firebase storage bucket, in the format: PROJECT_ID.appspot.com', ) class Empty(BaseModel): pass class FinalizeDefaultLocationRequest(BaseModel): locationId: Optional[str] = Field( None, description="The ID of the Project's default GCP resource location. The location must be one of the available [GCP resource locations](https://firebase.google.com/docs/projects/locations).", ) class Platform(Enum): PLATFORM_UNSPECIFIED = 'PLATFORM_UNSPECIFIED' IOS = 'IOS' ANDROID = 'ANDROID' WEB = 'WEB' class FirebaseAppInfo(BaseModel): apiKeyId: Optional[str] = Field( None, description="The globally unique, Google-assigned identifier (UID) for the Firebase API key associated with the App. Be aware that this value is the UID of the API key, _not_ the [`keyString`](https://cloud.google.com/api-keys/docs/reference/rest/v2/projects.locations.keys#Key.FIELDS.key_string) of the API key. The `keyString` is the value that can be found in the App's configuration artifact ([`AndroidApp`](../../rest/v1beta1/projects.androidApps/getConfig) | [`IosApp`](../../rest/v1beta1/projects.iosApps/getConfig) | [`WebApp`](../../rest/v1beta1/projects.webApps/getConfig)). If `api_key_id` is not set in requests to create the App ([`AndroidApp`](../../rest/v1beta1/projects.androidApps/create) | [`IosApp`](../../rest/v1beta1/projects.iosApps/create) | [`WebApp`](../../rest/v1beta1/projects.webApps/create)), then Firebase automatically associates an `api_key_id` with the App. This auto-associated key may be an existing valid key or, if no valid key exists, a new one will be provisioned.", ) appId: Optional[str] = Field( None, description='Output only. Immutable. The globally unique, Firebase-assigned identifier for the `WebApp`. This identifier should be treated as an opaque token, as the data format is not specified.', ) displayName: Optional[str] = Field( None, description='The user-assigned display name of the Firebase App.' ) expireTime: Optional[str] = Field( None, description='Output only. Timestamp of when the App will be considered expired and cannot be undeleted. This value is only provided if the App is in the `DELETED` state.', ) name: Optional[str] = Field( None, description='The resource name of the Firebase App, in the format: projects/PROJECT_ID /iosApps/APP_ID or projects/PROJECT_ID/androidApps/APP_ID or projects/ PROJECT_ID/webApps/APP_ID', ) namespace: Optional[str] = Field( None, description='Output only. Immutable. The platform-specific identifier of the App. *Note:* For most use cases, use `appId`, which is the canonical, globally unique identifier for referencing an App. This string is derived from a native identifier for each platform: `packageName` for an `AndroidApp`, `bundleId` for an `IosApp`, and `webId` for a `WebApp`. Its contents should be treated as opaque, as the native identifier format may change as platforms evolve. This string is only unique within a `FirebaseProject` and its associated Apps.', ) platform: Optional[Platform] = Field( None, description='The platform of the Firebase App.' ) state: Optional[State] = Field( None, description='Output only. The lifecycle state of the App.' ) class FirebaseProject(BaseModel): annotations: Optional[Dict[str, str]] = Field( None, description="A set of user-defined annotations for the FirebaseProject. Learn more about annotations in Google's [AIP-128 standard](https://google.aip.dev/128#annotations). These annotations are intended solely for developers and client-side tools. Firebase services will not mutate this annotations set.", ) displayName: Optional[str] = Field( None, description='The user-assigned display name of the Project.' ) etag: Optional[str] = Field( None, description="This checksum is computed by the server based on the value of other fields, and it may be sent with update requests to ensure the client has an up-to-date value before proceeding. Learn more about `etag` in Google's [AIP-154 standard](https://google.aip.dev/154#declarative-friendly-resources). This etag is strongly validated.", ) name: Optional[str] = Field( None, description="The resource name of the Project, in the format: projects/PROJECT_IDENTIFIER PROJECT_IDENTIFIER: the Project's [`ProjectNumber`](../projects#FirebaseProject.FIELDS.project_number) ***(recommended)*** or its [`ProjectId`](../projects#FirebaseProject.FIELDS.project_id). Learn more about using project identifiers in Google's [AIP 2510 standard](https://google.aip.dev/cloud/2510). Note that the value for PROJECT_IDENTIFIER in any response body will be the `ProjectId`.", ) projectId: Optional[str] = Field( None, description='Output only. Immutable. A user-assigned unique identifier for the Project. This identifier may appear in URLs or names for some Firebase resources associated with the Project, but it should generally be treated as a convenience alias to reference the Project.', ) projectNumber: Optional[str] = Field( None, description='Output only. Immutable. The globally unique, Google-assigned canonical identifier for the Project. Use this identifier when configuring integrations and/or making API calls to Firebase or third-party services.', ) resources: Optional[DefaultResources] = Field( None, description='Output only. The default Firebase resources associated with the Project.', ) state: Optional[State] = Field( None, description='Output only. The lifecycle state of the Project.' ) class IosApp(BaseModel): apiKeyId: Optional[str] = Field( None, description="The globally unique, Google-assigned identifier (UID) for the Firebase API key associated with the `IosApp`. Be aware that this value is the UID of the API key, _not_ the [`keyString`](https://cloud.google.com/api-keys/docs/reference/rest/v2/projects.locations.keys#Key.FIELDS.key_string) of the API key. The `keyString` is the value that can be found in the App's [configuration artifact](../../rest/v1beta1/projects.iosApps/getConfig). If `api_key_id` is not set in requests to [`iosApps.Create`](../../rest/v1beta1/projects.iosApps/create), then Firebase automatically associates an `api_key_id` with the `IosApp`. This auto-associated key may be an existing valid key or, if no valid key exists, a new one will be provisioned. In patch requests, `api_key_id` cannot be set to an empty value, and the new UID must have no restrictions or only have restrictions that are valid for the associated `IosApp`. We recommend using the [Google Cloud Console](https://console.cloud.google.com/apis/credentials) to manage API keys.", ) appId: Optional[str] = Field( None, description='Output only. Immutable. The globally unique, Firebase-assigned identifier for the `IosApp`. This identifier should be treated as an opaque token, as the data format is not specified.', ) appStoreId: Optional[str] = Field( None, description='The automatically generated Apple ID assigned to the iOS app by Apple in the iOS App Store.', ) bundleId: Optional[str] = Field( None, description='Immutable. The canonical bundle ID of the iOS app as it would appear in the iOS AppStore.', ) displayName: Optional[str] = Field( None, description='The user-assigned display name for the `IosApp`.' ) etag: Optional[str] = Field( None, description="This checksum is computed by the server based on the value of other fields, and it may be sent with update requests to ensure the client has an up-to-date value before proceeding. Learn more about `etag` in Google's [AIP-154 standard](https://google.aip.dev/154#declarative-friendly-resources). This etag is strongly validated.", ) expireTime: Optional[str] = Field( None, description='Output only. Timestamp of when the App will be considered expired and cannot be undeleted. This value is only provided if the App is in the `DELETED` state.', ) name: Optional[str] = Field( None, description="The resource name of the IosApp, in the format: projects/PROJECT_IDENTIFIER /iosApps/APP_ID * PROJECT_IDENTIFIER: the parent Project's [`ProjectNumber`](../projects#FirebaseProject.FIELDS.project_number) ***(recommended)*** or its [`ProjectId`](../projects#FirebaseProject.FIELDS.project_id). Learn more about using project identifiers in Google's [AIP 2510 standard](https://google.aip.dev/cloud/2510). Note that the value for PROJECT_IDENTIFIER in any response body will be the `ProjectId`. * APP_ID: the globally unique, Firebase-assigned identifier for the App (see [`appId`](../projects.iosApps#IosApp.FIELDS.app_id)).", ) projectId: Optional[str] = Field( None, description='Output only. Immutable. A user-assigned unique identifier of the parent FirebaseProject for the `IosApp`.', ) state: Optional[State] = Field( None, description='Output only. The lifecycle state of the App.' ) teamId: Optional[str] = Field( None, description='The Apple Developer Team ID associated with the App in the App Store.', ) class IosAppConfig(BaseModel): configFileContents: Optional[str] = Field( None, description='The content of the XML configuration file.' ) configFilename: Optional[str] = Field( None, description='The filename that the configuration artifact for the `IosApp` is typically saved as. For example: `GoogleService-Info.plist`', ) class ListAndroidAppsResponse(BaseModel): apps: Optional[List[AndroidApp]] = Field( None, description='List of each `AndroidApp` associated with the specified `FirebaseProject`.', ) nextPageToken: Optional[str] = Field( None, description='If the result list is too large to fit in a single response, then a token is returned. If the string is empty, then this response is the last page of results. This token can be used in a subsequent call to `ListAndroidApps` to find the next group of Apps. Page tokens are short-lived and should not be persisted.', ) class ListFirebaseProjectsResponse(BaseModel): nextPageToken: Optional[str] = Field( None, description='If the result list is too large to fit in a single response, then a token is returned. If the string is empty, then this response is the last page of results. This token can be used in a subsequent calls to `ListFirebaseProjects` to find the next group of Projects. Page tokens are short-lived and should not be persisted.', ) results: Optional[List[FirebaseProject]] = Field( None, description='One page of the list of Projects that are accessible to the caller.', ) class ListIosAppsResponse(BaseModel): apps: Optional[List[IosApp]] = Field( None, description='List of each `IosApp` associated with the specified `FirebaseProject`.', ) nextPageToken: Optional[str] = Field( None, description='If the result list is too large to fit in a single response, then a token is returned. If the string is empty, then this response is the last page of results. This token can be used in a subsequent call to `ListIosApps` to find the next group of Apps. Page tokens are short-lived and should not be persisted.', ) class Feature(Enum): LOCATION_FEATURE_UNSPECIFIED = 'LOCATION_FEATURE_UNSPECIFIED' FIRESTORE = 'FIRESTORE' DEFAULT_STORAGE = 'DEFAULT_STORAGE' FUNCTIONS = 'FUNCTIONS' class Type(Enum): LOCATION_TYPE_UNSPECIFIED = 'LOCATION_TYPE_UNSPECIFIED' REGIONAL = 'REGIONAL' MULTI_REGIONAL = 'MULTI_REGIONAL' class Location(BaseModel): features: Optional[List[Feature]] = Field( None, description='Products and services that are available in the GCP resource location.', ) locationId: Optional[str] = Field( None, description='The ID of the GCP resource location. It will be one of the available [GCP resource locations](https://firebase.google.com/docs/projects/locations#types).', ) type: Optional[Type] = Field( None, description='Indicates whether the GCP resource location is a [regional or multi-regional location](https://firebase.google.com/docs/projects/locations#types) for data replication.', ) class MessageSet(BaseModel): pass class ProductMetadata(BaseModel): warningMessages: Optional[List[str]] = Field( None, description='List of warnings related to the associated operation.' ) class ProjectInfo(BaseModel): displayName: Optional[str] = Field( None, description='The user-assigned display name of the GCP `Project`, for example: `My App`', ) locationId: Optional[str] = Field( None, description="The ID of the Project's default GCP resource location. The location is one of the available [GCP resource locations](https://firebase.google.com/docs/projects/locations). Not all Projects will have this field populated. If it is not populated, it means that the Project does not yet have a default GCP resource location. To set a Project's default GCP resource location, call [`FinalizeDefaultLocation`](../projects.defaultLocation/finalize) after you add Firebase resources to the Project.", ) project: Optional[str] = Field( None, description='The resource name of the GCP `Project` to which Firebase resources can be added, in the format: projects/PROJECT_IDENTIFIER Refer to the `FirebaseProject` [`name`](../projects#FirebaseProject.FIELDS.name) field for details about PROJECT_IDENTIFIER values.', ) class RemoveAnalyticsRequest(BaseModel): analyticsPropertyId: Optional[str] = Field( None, description='Optional. The ID of the Google Analytics property associated with the specified `FirebaseProject`. - If not set, then the Google Analytics property that is currently associated with the specified `FirebaseProject` is removed. - If set, and the specified `FirebaseProject` is currently associated with a *different* Google Analytics property, then the response is a `412 Precondition Failed` error. ', ) class RemoveAndroidAppRequest(BaseModel): allowMissing: Optional[bool] = Field( None, description='If set to true, and the App is not found, the request will succeed but no action will be taken on the server.', ) etag: Optional[str] = Field( None, description='Checksum provided in the AndroidApp resource. If provided, this checksum ensures that the client has an up-to-date value before proceeding.', ) immediate: Optional[bool] = Field( None, description='Determines whether to _immediately_ delete the AndroidApp. If set to true, the App is immediately deleted from the Project and cannot be restored to the Project. If not set, defaults to false, which means the App will be set to expire in 30 days. Within the 30 days, the App may be restored to the Project using UndeleteAndroidApp.', ) validateOnly: Optional[bool] = Field( None, description='If set to true, the request is only validated. The App will _not_ be removed.', ) class RemoveIosAppRequest(BaseModel): allowMissing: Optional[bool] = Field( None, description='If set to true, and the App is not found, the request will succeed but no action will be taken on the server.', ) etag: Optional[str] = Field( None, description='Checksum provided in the IosApp resource. If provided, this checksum ensures that the client has an up-to-date value before proceeding.', ) immediate: Optional[bool] = Field( None, description='Determines whether to _immediately_ delete the IosApp. If set to true, the App is immediately deleted from the Project and cannot be restored to the Project. If not set, defaults to false, which means the App will be set to expire in 30 days. Within the 30 days, the App may be restored to the Project using UndeleteIosApp', ) validateOnly: Optional[bool] = Field( None, description='If set to true, the request is only validated. The App will _not_ be removed.', ) class RemoveWebAppRequest(BaseModel): allowMissing: Optional[bool] = Field( None, description='If set to true, and the App is not found, the request will succeed but no action will be taken on the server.', ) etag: Optional[str] = Field( None, description='Checksum provided in the WebApp resource. If provided, this checksum ensures that the client has an up-to-date value before proceeding.', ) immediate: Optional[bool] = Field( None, description='Determines whether to _immediately_ delete the WebApp. If set to true, the App is immediately deleted from the Project and cannot be restored to the Project. If not set, defaults to false, which means the App will be set to expire in 30 days. Within the 30 days, the App may be restored to the Project using UndeleteWebApp', ) validateOnly: Optional[bool] = Field( None, description='If set to true, the request is only validated. The App will _not_ be removed.', ) class SearchFirebaseAppsResponse(BaseModel): apps: Optional[List[FirebaseAppInfo]] = Field( None, description='One page of results from a call to `SearchFirebaseApps`.' ) nextPageToken: Optional[str] = Field( None, description='If the result list is too large to fit in a single response, then a token is returned. This token can be used in a subsequent calls to `SearchFirebaseApps` to find the next group of Apps. Page tokens are short-lived and should not be persisted.', ) class CertType(Enum): SHA_CERTIFICATE_TYPE_UNSPECIFIED = 'SHA_CERTIFICATE_TYPE_UNSPECIFIED' SHA_1 = 'SHA_1' SHA_256 = 'SHA_256' class ShaCertificate(BaseModel): certType: Optional[CertType] = Field( None, description='The type of SHA certificate encoded in the hash.' ) name: Optional[str] = Field( None, description="The resource name of the ShaCertificate for the AndroidApp, in the format: projects/PROJECT_IDENTIFIER/androidApps/APP_ID/sha/SHA_HASH * PROJECT_IDENTIFIER: the parent Project's [`ProjectNumber`](../projects#FirebaseProject.FIELDS.project_number) ***(recommended)*** or its [`ProjectId`](../projects#FirebaseProject.FIELDS.project_id). Learn more about using project identifiers in Google's [AIP 2510 standard](https://google.aip.dev/cloud/2510). Note that the value for PROJECT_IDENTIFIER in any response body will be the `ProjectId`. * APP_ID: the globally unique, Firebase-assigned identifier for the App (see [`appId`](../projects.androidApps#AndroidApp.FIELDS.app_id)). * SHA_HASH: the certificate hash for the App (see [`shaHash`](../projects.androidApps.sha#ShaCertificate.FIELDS.sha_hash)).", ) shaHash: Optional[str] = Field( None, description='The certificate hash for the `AndroidApp`.' ) class Status(BaseModel): code: Optional[int] = Field( None, description='The status code, which should be an enum value of google.rpc.Code.', ) details: Optional[List[Dict[str, Any]]] = Field( None, description='A list of messages that carry the error details. There is a common set of message types for APIs to use.', ) message: Optional[str] = Field( None, description='A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.', ) class StatusProto(BaseModel): canonicalCode: Optional[int] = Field( None, description='The canonical error code (see codes.proto) that most closely corresponds to this status. This may be missing, and in the common case of the generic space, it definitely will be.', ) code: Optional[int] = Field( None, description='Numeric code drawn from the space specified below. Often, this is the canonical error space, and code is drawn from google3/util/task/codes.proto', ) message: Optional[str] = Field(None, description='Detail message') messageSet: Optional[MessageSet] = Field( None, description='message_set associates an arbitrary proto message with the status.', ) space: Optional[str] = Field( None, description='The following are usually only present when code != 0 Space to which this status belongs', ) class StreamMapping(BaseModel): app: Optional[str] = Field( None, description='The resource name of the Firebase App associated with the Google Analytics data stream, in the format: projects/PROJECT_IDENTIFIER/androidApps/APP_ID or projects/PROJECT_IDENTIFIER/iosApps/APP_ID or projects/PROJECT_IDENTIFIER /webApps/APP_ID Refer to the `FirebaseProject` [`name`](../projects#FirebaseProject.FIELDS.name) field for details about PROJECT_IDENTIFIER values.', ) measurementId: Optional[str] = Field( None, description='Applicable for Firebase Web Apps only. The unique Google-assigned identifier of the Google Analytics web stream associated with the Firebase Web App. Firebase SDKs use this ID to interact with Google Analytics APIs. Learn more about this ID and Google Analytics web streams in the [Analytics documentation](https://support.google.com/analytics/answer/9304153).', ) streamId: Optional[str] = Field( None, description='The unique Google-assigned identifier of the Google Analytics data stream associated with the Firebase App. Learn more about Google Analytics data streams in the [Analytics documentation](https://support.google.com/analytics/answer/9303323).', ) class UndeleteAndroidAppRequest(BaseModel): etag: Optional[str] = Field( None, description='Checksum provided in the AndroidApp resource. If provided, this checksum ensures that the client has an up-to-date value before proceeding.', ) validateOnly: Optional[bool] = Field( None, description='If set to true, the request is only validated. The App will _not_ be undeleted.', ) class UndeleteIosAppRequest(BaseModel): etag: Optional[str] = Field( None, description='Checksum provided in the IosApp resource. If provided, this checksum ensures that the client has an up-to-date value before proceeding.', ) validateOnly: Optional[bool] = Field( None, description='If set to true, the request is only validated. The App will _not_ be undeleted.', ) class UndeleteWebAppRequest(BaseModel): etag: Optional[str] = Field( None, description='Checksum provided in the WebApp resource. If provided, this checksum ensures that the client has an up-to-date value before proceeding.', ) validateOnly: Optional[bool] = Field( None, description='If set to true, the request is only validated. The App will _not_ be undeleted.', ) class WebApp(BaseModel): apiKeyId: Optional[str] = Field( None, description="The globally unique, Google-assigned identifier (UID) for the Firebase API key associated with the `WebApp`. Be aware that this value is the UID of the API key, _not_ the [`keyString`](https://cloud.google.com/api-keys/docs/reference/rest/v2/projects.locations.keys#Key.FIELDS.key_string) of the API key. The `keyString` is the value that can be found in the App's [configuration artifact](../../rest/v1beta1/projects.webApps/getConfig). If `api_key_id` is not set in requests to [`webApps.Create`](../../rest/v1beta1/projects.webApps/create), then Firebase automatically associates an `api_key_id` with the `WebApp`. This auto-associated key may be an existing valid key or, if no valid key exists, a new one will be provisioned. In patch requests, `api_key_id` cannot be set to an empty value, and the new UID must have no restrictions or only have restrictions that are valid for the associated `WebApp`. We recommend using the [Google Cloud Console](https://console.cloud.google.com/apis/credentials) to manage API keys.", ) appId: Optional[str] = Field( None, description='Output only. Immutable. The globally unique, Firebase-assigned identifier for the `WebApp`. This identifier should be treated as an opaque token, as the data format is not specified.', ) appUrls: Optional[List[str]] = Field( None, description='The URLs where the `WebApp` is hosted.' ) displayName: Optional[str] = Field( None, description='The user-assigned display name for the `WebApp`.' ) etag: Optional[str] = Field( None, description="This checksum is computed by the server based on the value of other fields, and it may be sent with update requests to ensure the client has an up-to-date value before proceeding. Learn more about `etag` in Google's [AIP-154 standard](https://google.aip.dev/154#declarative-friendly-resources). This etag is strongly validated.", ) expireTime: Optional[str] = Field( None, description='Output only. Timestamp of when the App will be considered expired and cannot be undeleted. This value is only provided if the App is in the `DELETED` state.', ) name: Optional[str] = Field( None, description="The resource name of the WebApp, in the format: projects/PROJECT_IDENTIFIER /webApps/APP_ID * PROJECT_IDENTIFIER: the parent Project's [`ProjectNumber`](../projects#FirebaseProject.FIELDS.project_number) ***(recommended)*** or its [`ProjectId`](../projects#FirebaseProject.FIELDS.project_id). Learn more about using project identifiers in Google's [AIP 2510 standard](https://google.aip.dev/cloud/2510). Note that the value for PROJECT_IDENTIFIER in any response body will be the `ProjectId`. * APP_ID: the globally unique, Firebase-assigned identifier for the App (see [`appId`](../projects.webApps#WebApp.FIELDS.app_id)).", ) projectId: Optional[str] = Field( None, description='Output only. Immutable. A user-assigned unique identifier of the parent FirebaseProject for the `WebApp`.', ) state: Optional[State] = Field( None, description='Output only. The lifecycle state of the App.' ) webId: Optional[str] = Field( None, description='Output only. Immutable. A unique, Firebase-assigned identifier for the `WebApp`. This identifier is only used to populate the `namespace` value for the `WebApp`. For most use cases, use `appId` to identify or reference the App. The `webId` value is only unique within a `FirebaseProject` and its associated Apps.', ) class WebAppConfig(BaseModel): apiKey: Optional[str] = Field( None, description='The [`keyString`](https://cloud.google.com/api-keys/docs/reference/rest/v2/projects.locations.keys#Key.FIELDS.key_string) of the API key associated with the `WebApp`. Note that this value is _not_ the [`apiKeyId`](../projects.webApps#WebApp.FIELDS.api_key_id) (the UID) of the API key associated with the `WebApp`.', ) appId: Optional[str] = Field( None, description='Immutable. The globally unique, Firebase-assigned identifier for the `WebApp`.', ) authDomain: Optional[str] = Field( None, description='The domain Firebase Auth configures for OAuth redirects, in the format: PROJECT_ID.firebaseapp.com', ) databaseURL: Optional[str] = Field( None, description='The default Firebase Realtime Database URL.' ) locationId: Optional[str] = Field( None, description="The ID of the Project's default GCP resource location. The location is one of the available [GCP resource locations](https://firebase.google.com/docs/projects/locations). This field is omitted if the default GCP resource location has not been finalized yet. To set a Project's default GCP resource location, call [`FinalizeDefaultLocation`](../projects.defaultLocation/finalize) after you add Firebase resources to the Project.", ) measurementId: Optional[str] = Field( None, description='The unique Google-assigned identifier of the Google Analytics web stream associated with the `WebApp`. Firebase SDKs use this ID to interact with Google Analytics APIs. This field is only present if the `WebApp` is linked to a web stream in a Google Analytics App + Web property. Learn more about this ID and Google Analytics web streams in the [Analytics documentation](https://support.google.com/analytics/answer/9304153). To generate a `measurementId` and link the `WebApp` with a Google Analytics web stream, call [`AddGoogleAnalytics`](../../v1beta1/projects/addGoogleAnalytics). For apps using the Firebase JavaScript SDK v7.20.0 and later, Firebase dynamically fetches the `measurementId` when your app initializes Analytics. Having this ID in your config object is optional, but it does serve as a fallback in the rare case that the dynamic fetch fails.', ) messagingSenderId: Optional[str] = Field( None, description='The sender ID for use with Firebase Cloud Messaging.' ) projectId: Optional[str] = Field( None, description='Immutable. A user-assigned unique identifier for the `FirebaseProject`.', ) storageBucket: Optional[str] = Field( None, description='The default Cloud Storage for Firebase storage bucket name.' ) class FieldXgafv(Enum): field_1 = '1' field_2 = '2' class Alt(Enum): json = 'json' media = 'media' proto = 'proto' class AnalyticsDetails(BaseModel): analyticsProperty: Optional[AnalyticsProperty] = Field( None, description='The Analytics Property object associated with the specified `FirebaseProject`. This object contains the details of the Google Analytics property associated with the Project.', ) streamMappings: Optional[List[StreamMapping]] = Field( None, description=' - For `AndroidApps` and `IosApps`: a map of `app` to `streamId` for each Firebase App in the specified `FirebaseProject`. Each `app` and `streamId` appears only once. - For `WebApps`: a map of `app` to `streamId` and `measurementId` for each `WebApp` in the specified `FirebaseProject`. Each `app`, `streamId`, and `measurementId` appears only once.', ) class ListAvailableLocationsResponse(BaseModel): locations: Optional[List[Location]] = Field( None, description='One page of results from a call to `ListAvailableLocations`.' ) nextPageToken: Optional[str] = Field( None, description='If the result list is too large to fit in a single response, then a token is returned. If the string is empty, then this response is the last page of results and all available locations have been listed. This token can be used in a subsequent call to `ListAvailableLocations` to find more locations. Page tokens are short-lived and should not be persisted.', ) class ListAvailableProjectsResponse(BaseModel): nextPageToken: Optional[str] = Field( None, description='If the result list is too large to fit in a single response, then a token is returned. If the string is empty, then this response is the last page of results. This token can be used in a subsequent calls to `ListAvailableProjects` to find the next group of Projects. Page tokens are short-lived and should not be persisted.', ) projectInfo: Optional[List[ProjectInfo]] = Field( None, description='The list of GCP `Projects` which can have Firebase resources added to them.', ) class ListShaCertificatesResponse(BaseModel): certificates: Optional[List[ShaCertificate]] = Field( None, description='The list of each `ShaCertificate` associated with the `AndroidApp`.', ) class ListWebAppsResponse(BaseModel): apps: Optional[List[WebApp]] = Field( None, description='List of each `WebApp` associated with the specified `FirebaseProject`.', ) nextPageToken: Optional[str] = Field( None, description='If the result list is too large to fit in a single response, then a token is returned. If the string is empty, then this response is the last page of results. This token can be used in a subsequent call to `ListWebApps` to find the next group of Apps. Page tokens are short-lived and should not be persisted.', ) class Operation(BaseModel): done: Optional[bool] = Field( None, description='If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.', ) error: Optional[Status] = Field( None, description='The error result of the operation in case of failure or cancellation.', ) metadata: Optional[Dict[str, Any]] = Field( None, description='Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.', ) name: Optional[str] = Field( None, description='The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.', ) response: Optional[Dict[str, Any]] = Field( None, description='The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.', )

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ag2-mcp-servers/firebase-management-api'

If you have feedback or need assistance with the MCP directory API, please join our Discord server