{
  "auth": {
    "oauth2": {
      "scopes": {
        "https://www.googleapis.com/auth/cloud-platform": {
          "description": "See, edit, configure, and delete your Google Cloud Platform data"
        },
        "https://www.googleapis.com/auth/cloud-platform.read-only": {
          "description": "View your data across Google Cloud Platform services"
        },
        "https://www.googleapis.com/auth/firebase": {
          "description": "View and administer all your Firebase data and settings"
        },
        "https://www.googleapis.com/auth/firebase.readonly": {
          "description": "View all your Firebase data and settings"
        }
      }
    }
  },
  "basePath": "",
  "baseUrl": "https://firebase.googleapis.com/",
  "batchPath": "batch",
  "canonicalName": "Firebase Management",
  "description": "The Firebase Management API enables programmatic setup and management of Firebase projects, including a project's Firebase resources and Firebase apps.",
  "discoveryVersion": "v1",
  "documentationLink": "https://firebase.google.com",
  "fullyEncodeReservedExpansion": true,
  "icons": {
    "x16": "http://www.google.com/images/icons/product/search-16.gif",
    "x32": "http://www.google.com/images/icons/product/search-32.gif"
  },
  "id": "firebase:v1beta1",
  "kind": "discovery#restDescription",
  "mtlsRootUrl": "https://firebase.mtls.googleapis.com/",
  "name": "firebase",
  "ownerDomain": "google.com",
  "ownerName": "Google",
  "parameters": {
    "$.xgafv": {
      "description": "V1 error format.",
      "enum": [
        "1",
        "2"
      ],
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "location": "query",
      "type": "string"
    },
    "access_token": {
      "description": "OAuth access token.",
      "location": "query",
      "type": "string"
    },
    "alt": {
      "default": "json",
      "description": "Data format for response.",
      "enum": [
        "json",
        "media",
        "proto"
      ],
      "enumDescriptions": [
        "Responses with Content-Type of application/json",
        "Media download with context-dependent Content-Type",
        "Responses with Content-Type of application/x-protobuf"
      ],
      "location": "query",
      "type": "string"
    },
    "callback": {
      "description": "JSONP",
      "location": "query",
      "type": "string"
    },
    "fields": {
      "description": "Selector specifying which fields to include in a partial response.",
      "location": "query",
      "type": "string"
    },
    "key": {
      "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
      "location": "query",
      "type": "string"
    },
    "oauth_token": {
      "description": "OAuth 2.0 token for the current user.",
      "location": "query",
      "type": "string"
    },
    "prettyPrint": {
      "default": "true",
      "description": "Returns response with indentations and line breaks.",
      "location": "query",
      "type": "boolean"
    },
    "quotaUser": {
      "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
      "location": "query",
      "type": "string"
    },
    "uploadType": {
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
      "location": "query",
      "type": "string"
    },
    "upload_protocol": {
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
      "location": "query",
      "type": "string"
    }
  },
  "protocol": "rest",
  "resources": {
    "availableProjects": {
      "methods": {
        "list": {
          "description": "Lists each [Google Cloud Platform (GCP) `Project`] (https://cloud.google.com/resource-manager/reference/rest/v1/projects) that can have Firebase resources added to it. A Project will only be listed if: - The caller has sufficient [Google IAM](https://cloud.google.com/iam) permissions to call AddFirebase. - The Project is not already a FirebaseProject. - The Project is not in an Organization which has policies that prevent Firebase resources from being added. ",
          "flatPath": "v1beta1/availableProjects",
          "httpMethod": "GET",
          "id": "firebase.availableProjects.list",
          "parameterOrder": [],
          "parameters": {
            "pageSize": {
              "description": "The maximum number of Projects to return in the response. The server may return fewer than this value at its discretion. If no value is specified (or too large a value is specified), the server will impose its own limit. This value cannot be negative.",
              "format": "int32",
              "location": "query",
              "type": "integer"
            },
            "pageToken": {
              "description": "Token returned from a previous call to `ListAvailableProjects` indicating where in the set of Projects to resume listing.",
              "location": "query",
              "type": "string"
            }
          },
          "path": "v1beta1/availableProjects",
          "response": {
            "$ref": "ListAvailableProjectsResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/cloud-platform.read-only",
            "https://www.googleapis.com/auth/firebase",
            "https://www.googleapis.com/auth/firebase.readonly"
          ]
        }
      }
    },
    "operations": {
      "methods": {
        "get": {
          "description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.",
          "flatPath": "v1beta1/operations/{operationsId}",
          "httpMethod": "GET",
          "id": "firebase.operations.get",
          "parameterOrder": [
            "name"
          ],
          "parameters": {
            "name": {
              "description": "The name of the operation resource.",
              "location": "path",
              "pattern": "^operations/.*$",
              "required": true,
              "type": "string"
            }
          },
          "path": "v1beta1/{+name}",
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/cloud-platform.read-only",
            "https://www.googleapis.com/auth/firebase",
            "https://www.googleapis.com/auth/firebase.readonly"
          ]
        }
      }
    },
    "projects": {
      "methods": {
        "addFirebase": {
          "description": "Adds Firebase resources to the specified existing [Google Cloud Platform (GCP) `Project`] (https://cloud.google.com/resource-manager/reference/rest/v1/projects). Since a FirebaseProject is actually also a GCP `Project`, a `FirebaseProject` has the same underlying GCP identifiers (`projectNumber` and `projectId`). This allows for easy interop with Google APIs. The result of this call is an [`Operation`](../../v1beta1/operations). Poll the `Operation` to track the provisioning process by calling GetOperation until [`done`](../../v1beta1/operations#Operation.FIELDS.done) is `true`. When `done` is `true`, the `Operation` has either succeeded or failed. If the `Operation` succeeded, its [`response`](../../v1beta1/operations#Operation.FIELDS.response) is set to a FirebaseProject; if the `Operation` failed, its [`error`](../../v1beta1/operations#Operation.FIELDS.error) is set to a google.rpc.Status. The `Operation` is automatically deleted after completion, so there is no need to call DeleteOperation. This method does not modify any billing account information on the underlying GCP `Project`. To call `AddFirebase`, a project member or service account must have the following permissions (the IAM roles of Editor and Owner contain these permissions): `firebase.projects.update`, `resourcemanager.projects.get`, `serviceusage.services.enable`, and `serviceusage.services.get`.",
          "flatPath": "v1beta1/projects/{projectsId}:addFirebase",
          "httpMethod": "POST",
          "id": "firebase.projects.addFirebase",
          "parameterOrder": [
            "project"
          ],
          "parameters": {
            "project": {
              "description": "The resource name of the GCP `Project` to which Firebase resources will be added, in the format: projects/PROJECT_IDENTIFIER Refer to the `FirebaseProject` [`name`](../projects#FirebaseProject.FIELDS.name) field for details about PROJECT_IDENTIFIER values. After calling `AddFirebase`, the unique Project identifiers ( [`projectNumber`](https://cloud.google.com/resource-manager/reference/rest/v1/projects#Project.FIELDS.project_number) and [`projectId`](https://cloud.google.com/resource-manager/reference/rest/v1/projects#Project.FIELDS.project_id)) of the underlying GCP `Project` are also the identifiers of the FirebaseProject.",
              "location": "path",
              "pattern": "^projects/[^/]+$",
              "required": true,
              "type": "string"
            }
          },
          "path": "v1beta1/{+project}:addFirebase",
          "request": {
            "$ref": "AddFirebaseRequest"
          },
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/firebase"
          ]
        },
        "addGoogleAnalytics": {
          "description": "Links the specified FirebaseProject with an existing [Google Analytics account](http://www.google.com/analytics/). Using this call, you can either: - Specify an `analyticsAccountId` to provision a new Google Analytics property within the specified account and associate the new property with the `FirebaseProject`. - Specify an existing `analyticsPropertyId` to associate the property with the `FirebaseProject`. Note that when you call `AddGoogleAnalytics`: 1. The first check determines if any existing data streams in the Google Analytics property correspond to any existing Firebase Apps in the `FirebaseProject` (based on the `packageName` or `bundleId` associated with the data stream). Then, as applicable, the data streams and apps are linked. Note that this auto-linking only applies to `AndroidApps` and `IosApps`. 2. If no corresponding data streams are found for the Firebase Apps, new data streams are provisioned in the Google Analytics property for each of the Firebase Apps. Note that a new data stream is always provisioned for a Web App even if it was previously associated with a data stream in the Analytics property. Learn more about the hierarchy and structure of Google Analytics accounts in the [Analytics documentation](https://support.google.com/analytics/answer/9303323). The result of this call is an [`Operation`](../../v1beta1/operations). Poll the `Operation` to track the provisioning process by calling GetOperation until [`done`](../../v1beta1/operations#Operation.FIELDS.done) is `true`. When `done` is `true`, the `Operation` has either succeeded or failed. If the `Operation` succeeded, its [`response`](../../v1beta1/operations#Operation.FIELDS.response) is set to an AnalyticsDetails; if the `Operation` failed, its [`error`](../../v1beta1/operations#Operation.FIELDS.error) is set to a google.rpc.Status. To call `AddGoogleAnalytics`, a project member must be an Owner for the existing `FirebaseProject` and have the [`Edit` permission](https://support.google.com/analytics/answer/2884495) for the Google Analytics account. If the `FirebaseProject` already has Google Analytics enabled, and you call `AddGoogleAnalytics` using an `analyticsPropertyId` that's different from the currently associated property, then the call will fail. Analytics may have already been enabled in the Firebase console or by specifying `timeZone` and `regionCode` in the call to [`AddFirebase`](../../v1beta1/projects/addFirebase).",
          "flatPath": "v1beta1/projects/{projectsId}:addGoogleAnalytics",
          "httpMethod": "POST",
          "id": "firebase.projects.addGoogleAnalytics",
          "parameterOrder": [
            "parent"
          ],
          "parameters": {
            "parent": {
              "description": "The resource name of the FirebaseProject to link to an existing Google Analytics account, in the format: projects/PROJECT_IDENTIFIER Refer to the `FirebaseProject` [`name`](../projects#FirebaseProject.FIELDS.name) field for details about PROJECT_IDENTIFIER values.",
              "location": "path",
              "pattern": "^projects/[^/]+$",
              "required": true,
              "type": "string"
            }
          },
          "path": "v1beta1/{+parent}:addGoogleAnalytics",
          "request": {
            "$ref": "AddGoogleAnalyticsRequest"
          },
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/firebase"
          ]
        },
        "get": {
          "description": "Gets the specified FirebaseProject.",
          "flatPath": "v1beta1/projects/{projectsId}",
          "httpMethod": "GET",
          "id": "firebase.projects.get",
          "parameterOrder": [
            "name"
          ],
          "parameters": {
            "name": {
              "description": "The resource name of the FirebaseProject, in the format: projects/ PROJECT_IDENTIFIER Refer to the `FirebaseProject` [`name`](../projects#FirebaseProject.FIELDS.name) field for details about PROJECT_IDENTIFIER values.",
              "location": "path",
              "pattern": "^projects/[^/]+$",
              "required": true,
              "type": "string"
            }
          },
          "path": "v1beta1/{+name}",
          "response": {
            "$ref": "FirebaseProject"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/cloud-platform.read-only",
            "https://www.googleapis.com/auth/firebase",
            "https://www.googleapis.com/auth/firebase.readonly"
          ]
        },
        "getAdminSdkConfig": {
          "description": "Gets the configuration artifact associated with the specified FirebaseProject, which can be used by servers to simplify initialization. Typically, this configuration is used with the Firebase Admin SDK [initializeApp](https://firebase.google.com/docs/admin/setup#initialize_the_sdk) command.",
          "flatPath": "v1beta1/projects/{projectsId}/adminSdkConfig",
          "httpMethod": "GET",
          "id": "firebase.projects.getAdminSdkConfig",
          "parameterOrder": [
            "name"
          ],
          "parameters": {
            "name": {
              "description": "The resource name of the FirebaseProject, in the format: projects/ PROJECT_IDENTIFIER/adminSdkConfig Refer to the `FirebaseProject` [`name`](../projects#FirebaseProject.FIELDS.name) field for details about PROJECT_IDENTIFIER values.",
              "location": "path",
              "pattern": "^projects/[^/]+/adminSdkConfig$",
              "required": true,
              "type": "string"
            }
          },
          "path": "v1beta1/{+name}",
          "response": {
            "$ref": "AdminSdkConfig"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/cloud-platform.read-only",
            "https://www.googleapis.com/auth/firebase",
            "https://www.googleapis.com/auth/firebase.readonly"
          ]
        },
        "getAnalyticsDetails": {
          "description": "Gets the Google Analytics details currently associated with the specified FirebaseProject. If the `FirebaseProject` is not yet linked to Google Analytics, then the response to `GetAnalyticsDetails` is `NOT_FOUND`.",
          "flatPath": "v1beta1/projects/{projectsId}/analyticsDetails",
          "httpMethod": "GET",
          "id": "firebase.projects.getAnalyticsDetails",
          "parameterOrder": [
            "name"
          ],
          "parameters": {
            "name": {
              "description": "The resource name of the FirebaseProject, in the format: projects/ PROJECT_IDENTIFIER/analyticsDetails Refer to the `FirebaseProject` [`name`](../projects#FirebaseProject.FIELDS.name) field for details about PROJECT_IDENTIFIER values.",
              "location": "path",
              "pattern": "^projects/[^/]+/analyticsDetails$",
              "required": true,
              "type": "string"
            }
          },
          "path": "v1beta1/{+name}",
          "response": {
            "$ref": "AnalyticsDetails"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/cloud-platform.read-only",
            "https://www.googleapis.com/auth/firebase",
            "https://www.googleapis.com/auth/firebase.readonly"
          ]
        },
        "list": {
          "description": "Lists each FirebaseProject accessible to the caller. The elements are returned in no particular order, but they will be a consistent view of the Projects when additional requests are made with a `pageToken`. This method is eventually consistent with Project mutations, which means newly provisioned Projects and recent modifications to existing Projects might not be reflected in the set of Projects. The list will include only ACTIVE Projects. Use GetFirebaseProject for consistent reads as well as for additional Project details.",
          "flatPath": "v1beta1/projects",
          "httpMethod": "GET",
          "id": "firebase.projects.list",
          "parameterOrder": [],
          "parameters": {
            "pageSize": {
              "description": "The maximum number of Projects to return in the response. The server may return fewer than this at its discretion. If no value is specified (or too large a value is specified), the server will impose its own limit. This value cannot be negative.",
              "format": "int32",
              "location": "query",
              "type": "integer"
            },
            "pageToken": {
              "description": "Token returned from a previous call to `ListFirebaseProjects` indicating where in the set of Projects to resume listing.",
              "location": "query",
              "type": "string"
            }
          },
          "path": "v1beta1/projects",
          "response": {
            "$ref": "ListFirebaseProjectsResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/cloud-platform.read-only",
            "https://www.googleapis.com/auth/firebase",
            "https://www.googleapis.com/auth/firebase.readonly"
          ]
        },
        "patch": {
          "description": "Updates the attributes of the specified FirebaseProject. All [query parameters](#query-parameters) are required.",
          "flatPath": "v1beta1/projects/{projectsId}",
          "httpMethod": "PATCH",
          "id": "firebase.projects.patch",
          "parameterOrder": [
            "name"
          ],
          "parameters": {
            "name": {
              "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`.",
              "location": "path",
              "pattern": "^projects/[^/]+$",
              "required": true,
              "type": "string"
            },
            "updateMask": {
              "description": "Specifies which fields to update. If this list is empty, then no state will be updated. Note that the fields `name`, `projectId`, and `projectNumber` are all immutable.",
              "format": "google-fieldmask",
              "location": "query",
              "type": "string"
            }
          },
          "path": "v1beta1/{+name}",
          "request": {
            "$ref": "FirebaseProject"
          },
          "response": {
            "$ref": "FirebaseProject"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/firebase"
          ]
        },
        "removeAnalytics": {
          "description": "Unlinks the specified FirebaseProject from its Google Analytics account. This call removes the association of the specified `FirebaseProject` with its current Google Analytics property. However, this call does not delete the Google Analytics resources, such as the Google Analytics property or any data streams. These resources may be re-associated later to the `FirebaseProject` by calling [`AddGoogleAnalytics`](../../v1beta1/projects/addGoogleAnalytics) and specifying the same `analyticsPropertyId`. For Android Apps and iOS Apps, this call re-links data streams with their corresponding apps. However, for Web Apps, this call provisions a *new* data stream for each Web App. To call `RemoveAnalytics`, a project member must be an Owner for the `FirebaseProject`.",
          "flatPath": "v1beta1/projects/{projectsId}:removeAnalytics",
          "httpMethod": "POST",
          "id": "firebase.projects.removeAnalytics",
          "parameterOrder": [
            "parent"
          ],
          "parameters": {
            "parent": {
              "description": "The resource name of the FirebaseProject to unlink from its Google Analytics account, in the format: projects/PROJECT_IDENTIFIER Refer to the `FirebaseProject` [`name`](../projects#FirebaseProject.FIELDS.name) field for details about PROJECT_IDENTIFIER values.",
              "location": "path",
              "pattern": "^projects/[^/]+$",
              "required": true,
              "type": "string"
            }
          },
          "path": "v1beta1/{+parent}:removeAnalytics",
          "request": {
            "$ref": "RemoveAnalyticsRequest"
          },
          "response": {
            "$ref": "Empty"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/firebase"
          ]
        },
        "searchApps": {
          "description": "Lists all available Apps for the specified FirebaseProject. This is a convenience method. Typically, interaction with an App should be done using the platform-specific service, but some tool use-cases require a summary of all known Apps (such as for App selector interfaces).",
          "flatPath": "v1beta1/projects/{projectsId}:searchApps",
          "httpMethod": "GET",
          "id": "firebase.projects.searchApps",
          "parameterOrder": [
            "parent"
          ],
          "parameters": {
            "filter": {
              "description": "A query string compatible with Google's [AIP-160](https://google.aip.dev/160) standard. Use any of the following fields in a query: * [`app_id`](../projects.apps#FirebaseAppInfo.FIELDS.app_id) * [`namespace`](../projects.apps#FirebaseAppInfo.FIELDS.namespace) * [`platform`](../projects.apps#FirebaseAppInfo.FIELDS.platform) We also support the following \"virtual\" fields (fields which are not actually part of the returned resource object, but can be queried as if they are pre-populated with specific values): * `sha1_hash`: This field is considered to be a repeated `string` field, populated with the list of all SHA-1 certificate fingerprints registered with the app. This list is empty if the app is not an Android app. * `sha256_hash`: This field is considered to be a repeated `string` field, populated with the list of all SHA-256 certificate fingerprints registered with the app. This list is empty if the app is not an Android app. * `app_store_id`: This field is considered to be a singular `string` field, populated with the Apple App Store ID registered with the app. This field is empty if the app is not an iOS app. * `team_id`: This field is considered to be a singular `string` field, populated with the Apple team ID registered with the app. This field is empty if the app is not an iOS app.",
              "location": "query",
              "type": "string"
            },
            "pageSize": {
              "description": "The maximum number of Apps to return in the response. The server may return fewer than this value at its discretion. If no value is specified (or too large a value is specified), then the server will impose its own limit. This value cannot be negative.",
              "format": "int32",
              "location": "query",
              "type": "integer"
            },
            "pageToken": {
              "description": "Token returned from a previous call to `SearchFirebaseApps` indicating where in the set of Apps to resume listing.",
              "location": "query",
              "type": "string"
            },
            "parent": {
              "description": "The parent FirebaseProject for which to list Apps, in the format: projects/ PROJECT_IDENTIFIER Refer to the `FirebaseProject` [`name`](../projects#FirebaseProject.FIELDS.name) field for details about PROJECT_IDENTIFIER values.",
              "location": "path",
              "pattern": "^projects/[^/]+$",
              "required": true,
              "type": "string"
            }
          },
          "path": "v1beta1/{+parent}:searchApps",
          "response": {
            "$ref": "SearchFirebaseAppsResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/cloud-platform.read-only",
            "https://www.googleapis.com/auth/firebase",
            "https://www.googleapis.com/auth/firebase.readonly"
          ]
        }
      },
      "resources": {
        "androidApps": {
          "methods": {
            "create": {
              "description": "Requests the creation of a new AndroidApp in the specified FirebaseProject. The result of this call is an `Operation` which can be used to track the provisioning process. The `Operation` is automatically deleted after completion, so there is no need to call `DeleteOperation`.",
              "flatPath": "v1beta1/projects/{projectsId}/androidApps",
              "httpMethod": "POST",
              "id": "firebase.projects.androidApps.create",
              "parameterOrder": [
                "parent"
              ],
              "parameters": {
                "parent": {
                  "description": "The resource name of the parent FirebaseProject in which to create an AndroidApp, in the format: projects/PROJECT_IDENTIFIER/androidApps Refer to the `FirebaseProject` [`name`](../projects#FirebaseProject.FIELDS.name) field for details about PROJECT_IDENTIFIER values.",
                  "location": "path",
                  "pattern": "^projects/[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1beta1/{+parent}/androidApps",
              "request": {
                "$ref": "AndroidApp"
              },
              "response": {
                "$ref": "Operation"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/firebase"
              ]
            },
            "get": {
              "description": "Gets the specified AndroidApp.",
              "flatPath": "v1beta1/projects/{projectsId}/androidApps/{androidAppsId}",
              "httpMethod": "GET",
              "id": "firebase.projects.androidApps.get",
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "name": {
                  "description": "The resource name of the AndroidApp, in the format: projects/ PROJECT_IDENTIFIER/androidApps/APP_ID Since an APP_ID is a unique identifier, the Unique Resource from Sub-Collection access pattern may be used here, in the format: projects/-/androidApps/APP_ID Refer to the `AndroidApp` [`name`](../projects.androidApps#AndroidApp.FIELDS.name) field for details about PROJECT_IDENTIFIER and APP_ID values.",
                  "location": "path",
                  "pattern": "^projects/[^/]+/androidApps/[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1beta1/{+name}",
              "response": {
                "$ref": "AndroidApp"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/cloud-platform.read-only",
                "https://www.googleapis.com/auth/firebase",
                "https://www.googleapis.com/auth/firebase.readonly"
              ]
            },
            "getConfig": {
              "description": "Gets the configuration artifact associated with the specified AndroidApp.",
              "flatPath": "v1beta1/projects/{projectsId}/androidApps/{androidAppsId}/config",
              "httpMethod": "GET",
              "id": "firebase.projects.androidApps.getConfig",
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "name": {
                  "description": "The resource name of the AndroidApp configuration to download, in the format: projects/PROJECT_IDENTIFIER/androidApps/APP_ID/config Since an APP_ID is a unique identifier, the Unique Resource from Sub-Collection access pattern may be used here, in the format: projects/-/androidApps/APP_ID Refer to the `AndroidApp` [`name`](../projects.androidApps#AndroidApp.FIELDS.name) field for details about PROJECT_IDENTIFIER and APP_ID values.",
                  "location": "path",
                  "pattern": "^projects/[^/]+/androidApps/[^/]+/config$",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1beta1/{+name}",
              "response": {
                "$ref": "AndroidAppConfig"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/cloud-platform.read-only",
                "https://www.googleapis.com/auth/firebase",
                "https://www.googleapis.com/auth/firebase.readonly"
              ]
            },
            "list": {
              "description": "Lists each AndroidApp associated with the specified FirebaseProject. The elements are returned in no particular order, but will be a consistent view of the Apps when additional requests are made with a `pageToken`.",
              "flatPath": "v1beta1/projects/{projectsId}/androidApps",
              "httpMethod": "GET",
              "id": "firebase.projects.androidApps.list",
              "parameterOrder": [
                "parent"
              ],
              "parameters": {
                "pageSize": {
                  "description": "The maximum number of Apps to return in the response. The server may return fewer than this at its discretion. If no value is specified (or too large a value is specified), then the server will impose its own limit.",
                  "format": "int32",
                  "location": "query",
                  "type": "integer"
                },
                "pageToken": {
                  "description": "Token returned from a previous call to `ListAndroidApps` indicating where in the set of Apps to resume listing.",
                  "location": "query",
                  "type": "string"
                },
                "parent": {
                  "description": "The resource name of the parent FirebaseProject for which to list each associated AndroidApp, in the format: projects/PROJECT_IDENTIFIER /androidApps Refer to the `FirebaseProject` [`name`](../projects#FirebaseProject.FIELDS.name) field for details about PROJECT_IDENTIFIER values.",
                  "location": "path",
                  "pattern": "^projects/[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1beta1/{+parent}/androidApps",
              "response": {
                "$ref": "ListAndroidAppsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/cloud-platform.read-only",
                "https://www.googleapis.com/auth/firebase",
                "https://www.googleapis.com/auth/firebase.readonly"
              ]
            },
            "patch": {
              "description": "Updates the attributes of the specified AndroidApp.",
              "flatPath": "v1beta1/projects/{projectsId}/androidApps/{androidAppsId}",
              "httpMethod": "PATCH",
              "id": "firebase.projects.androidApps.patch",
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "name": {
                  "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)).",
                  "location": "path",
                  "pattern": "^projects/[^/]+/androidApps/[^/]+$",
                  "required": true,
                  "type": "string"
                },
                "updateMask": {
                  "description": "Specifies which fields to update. Note that the fields `name`, `app_id`, `project_id`, and `package_name` are all immutable.",
                  "format": "google-fieldmask",
                  "location": "query",
                  "type": "string"
                }
              },
              "path": "v1beta1/{+name}",
              "request": {
                "$ref": "AndroidApp"
              },
              "response": {
                "$ref": "AndroidApp"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/firebase"
              ]
            }
          },
          "resources": {
            "sha": {
              "methods": {
                "create": {
                  "description": "Adds a ShaCertificate to the specified AndroidApp.",
                  "flatPath": "v1beta1/projects/{projectsId}/androidApps/{androidAppsId}/sha",
                  "httpMethod": "POST",
                  "id": "firebase.projects.androidApps.sha.create",
                  "parameterOrder": [
                    "parent"
                  ],
                  "parameters": {
                    "parent": {
                      "description": "The resource name of the parent AndroidApp to which to add a ShaCertificate, in the format: projects/PROJECT_IDENTIFIER/androidApps/ APP_ID Since an APP_ID is a unique identifier, the Unique Resource from Sub-Collection access pattern may be used here, in the format: projects/-/androidApps/APP_ID Refer to the `AndroidApp` [`name`](../projects.androidApps#AndroidApp.FIELDS.name) field for details about PROJECT_IDENTIFIER and APP_ID values.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/androidApps/[^/]+$",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "path": "v1beta1/{+parent}/sha",
                  "request": {
                    "$ref": "ShaCertificate"
                  },
                  "response": {
                    "$ref": "ShaCertificate"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform",
                    "https://www.googleapis.com/auth/firebase"
                  ]
                },
                "delete": {
                  "description": "Removes a ShaCertificate from the specified AndroidApp.",
                  "flatPath": "v1beta1/projects/{projectsId}/androidApps/{androidAppsId}/sha/{shaId}",
                  "httpMethod": "DELETE",
                  "id": "firebase.projects.androidApps.sha.delete",
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "description": "The resource name of the ShaCertificate to remove from the parent AndroidApp, in the format: projects/PROJECT_IDENTIFIER/androidApps/APP_ID /sha/SHA_HASH Refer to the `ShaCertificate` [`name`](../projects.androidApps.sha#ShaCertificate.FIELDS.name) field for details about PROJECT_IDENTIFIER, APP_ID, and SHA_HASH values. You can obtain the full resource name of the `ShaCertificate` from the response of [`ListShaCertificates`](../projects.androidApps.sha/list) or the original [`CreateShaCertificate`](../projects.androidApps.sha/create).",
                      "location": "path",
                      "pattern": "^projects/[^/]+/androidApps/[^/]+/sha/[^/]+$",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "path": "v1beta1/{+name}",
                  "response": {
                    "$ref": "Empty"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform",
                    "https://www.googleapis.com/auth/firebase"
                  ]
                },
                "list": {
                  "description": "Lists the SHA-1 and SHA-256 certificates for the specified AndroidApp.",
                  "flatPath": "v1beta1/projects/{projectsId}/androidApps/{androidAppsId}/sha",
                  "httpMethod": "GET",
                  "id": "firebase.projects.androidApps.sha.list",
                  "parameterOrder": [
                    "parent"
                  ],
                  "parameters": {
                    "parent": {
                      "description": "The resource name of the parent AndroidApp for which to list each associated ShaCertificate, in the format: projects/PROJECT_IDENTIFIER /androidApps/APP_ID Since an APP_ID is a unique identifier, the Unique Resource from Sub-Collection access pattern may be used here, in the format: projects/-/androidApps/APP_ID Refer to the `AndroidApp` [`name`](../projects.androidApps#AndroidApp.FIELDS.name) field for details about PROJECT_IDENTIFIER and APP_ID values.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/androidApps/[^/]+$",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "path": "v1beta1/{+parent}/sha",
                  "response": {
                    "$ref": "ListShaCertificatesResponse"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform",
                    "https://www.googleapis.com/auth/cloud-platform.read-only",
                    "https://www.googleapis.com/auth/firebase",
                    "https://www.googleapis.com/auth/firebase.readonly"
                  ]
                }
              }
            }
          }
        },
        "availableLocations": {
          "methods": {
            "list": {
              "description": "Lists the valid Google Cloud Platform (GCP) resource locations for the specified Project (including a FirebaseProject). One of these locations can be selected as the Project's [_default_ GCP resource location](https://firebase.google.com/docs/projects/locations), which is the geographical location where the Project's resources, such as Cloud Firestore, will be provisioned by default. However, if the default GCP resource location has already been set for the Project, then this setting cannot be changed. This call checks for any possible [location restrictions](https://cloud.google.com/resource-manager/docs/organization-policy/defining-locations) for the specified Project and, thus, might return a subset of all possible GCP resource locations. To list all GCP resource locations (regardless of any restrictions), call the endpoint without specifying a unique project identifier (that is, `/v1beta1/{parent=projects/-}/listAvailableLocations`). To call `ListAvailableLocations` with a specified project, a member must be at minimum a Viewer of the Project. Calls without a specified project do not require any specific project permissions.",
              "flatPath": "v1beta1/projects/{projectsId}/availableLocations",
              "httpMethod": "GET",
              "id": "firebase.projects.availableLocations.list",
              "parameterOrder": [
                "parent"
              ],
              "parameters": {
                "pageSize": {
                  "description": "The maximum number of locations to return in the response. The server may return fewer than this value at its discretion. If no value is specified (or too large a value is specified), then the server will impose its own limit. This value cannot be negative.",
                  "format": "int32",
                  "location": "query",
                  "type": "integer"
                },
                "pageToken": {
                  "description": "Token returned from a previous call to `ListAvailableLocations` indicating where in the list of locations to resume listing.",
                  "location": "query",
                  "type": "string"
                },
                "parent": {
                  "description": "The FirebaseProject for which to list GCP resource locations, in the format: projects/PROJECT_IDENTIFIER Refer to the `FirebaseProject` [`name`](../projects#FirebaseProject.FIELDS.name) field for details about PROJECT_IDENTIFIER values. If no unique project identifier is specified (that is, `projects/-`), the returned list does not take into account org-specific or project-specific location restrictions.",
                  "location": "path",
                  "pattern": "^projects/[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1beta1/{+parent}/availableLocations",
              "response": {
                "$ref": "ListAvailableLocationsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/cloud-platform.read-only",
                "https://www.googleapis.com/auth/firebase",
                "https://www.googleapis.com/auth/firebase.readonly"
              ]
            }
          }
        },
        "defaultLocation": {
          "methods": {
            "finalize": {
              "description": "Sets the default Google Cloud Platform (GCP) resource location for the specified FirebaseProject. This method creates an App Engine application with a [default Cloud Storage bucket](https://cloud.google.com/appengine/docs/standard/python/googlecloudstorageclient/setting-up-cloud-storage#activating_a_cloud_storage_bucket), located in the specified [`locationId`](#body.request_body.FIELDS.location_id). This location must be one of the available [GCP resource locations](https://firebase.google.com/docs/projects/locations). After the default GCP resource location is finalized, or if it was already set, it cannot be changed. The default GCP resource location for the specified `FirebaseProject` might already be set because either the underlying GCP `Project` already has an App Engine application or `FinalizeDefaultLocation` was previously called with a specified `locationId`. Any new calls to `FinalizeDefaultLocation` with a *different* specified `locationId` will return a 409 error. The result of this call is an [`Operation`](../../v1beta1/operations), which can be used to track the provisioning process. The [`response`](../../v1beta1/operations#Operation.FIELDS.response) type of the `Operation` is google.protobuf.Empty. The `Operation` can be polled by its `name` using GetOperation until `done` is true. When `done` is true, the `Operation` has either succeeded or failed. If the `Operation` has succeeded, its [`response`](../../v1beta1/operations#Operation.FIELDS.response) will be set to a google.protobuf.Empty; if the `Operation` has failed, its `error` will be set to a google.rpc.Status. The `Operation` is automatically deleted after completion, so there is no need to call DeleteOperation. All fields listed in the [request body](#request-body) are required. To call `FinalizeDefaultLocation`, a member must be an Owner of the Project.",
              "flatPath": "v1beta1/projects/{projectsId}/defaultLocation:finalize",
              "httpMethod": "POST",
              "id": "firebase.projects.defaultLocation.finalize",
              "parameterOrder": [
                "parent"
              ],
              "parameters": {
                "parent": {
                  "description": "The resource name of the FirebaseProject for which the default GCP resource location will be set, in the format: projects/PROJECT_IDENTIFIER Refer to the `FirebaseProject` [`name`](../projects#FirebaseProject.FIELDS.name) field for details about PROJECT_IDENTIFIER values.",
                  "location": "path",
                  "pattern": "^projects/[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1beta1/{+parent}/defaultLocation:finalize",
              "request": {
                "$ref": "FinalizeDefaultLocationRequest"
              },
              "response": {
                "$ref": "Operation"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/firebase"
              ]
            }
          }
        },
        "iosApps": {
          "methods": {
            "create": {
              "description": "Requests the creation of a new IosApp in the specified FirebaseProject. The result of this call is an `Operation` which can be used to track the provisioning process. The `Operation` is automatically deleted after completion, so there is no need to call `DeleteOperation`.",
              "flatPath": "v1beta1/projects/{projectsId}/iosApps",
              "httpMethod": "POST",
              "id": "firebase.projects.iosApps.create",
              "parameterOrder": [
                "parent"
              ],
              "parameters": {
                "parent": {
                  "description": "The resource name of the parent FirebaseProject in which to create an IosApp, in the format: projects/PROJECT_IDENTIFIER/iosApps Refer to the `FirebaseProject` [`name`](../projects#FirebaseProject.FIELDS.name) field for details about PROJECT_IDENTIFIER values.",
                  "location": "path",
                  "pattern": "^projects/[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1beta1/{+parent}/iosApps",
              "request": {
                "$ref": "IosApp"
              },
              "response": {
                "$ref": "Operation"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/firebase"
              ]
            },
            "get": {
              "description": "Gets the specified IosApp.",
              "flatPath": "v1beta1/projects/{projectsId}/iosApps/{iosAppsId}",
              "httpMethod": "GET",
              "id": "firebase.projects.iosApps.get",
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "name": {
                  "description": "The resource name of the IosApp, in the format: projects/PROJECT_IDENTIFIER /iosApps/APP_ID Since an APP_ID is a unique identifier, the Unique Resource from Sub-Collection access pattern may be used here, in the format: projects/-/iosApps/APP_ID Refer to the `IosApp` [`name`](../projects.iosApps#IosApp.FIELDS.name) field for details about PROJECT_IDENTIFIER and APP_ID values.",
                  "location": "path",
                  "pattern": "^projects/[^/]+/iosApps/[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1beta1/{+name}",
              "response": {
                "$ref": "IosApp"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/cloud-platform.read-only",
                "https://www.googleapis.com/auth/firebase",
                "https://www.googleapis.com/auth/firebase.readonly"
              ]
            },
            "getConfig": {
              "description": "Gets the configuration artifact associated with the specified IosApp.",
              "flatPath": "v1beta1/projects/{projectsId}/iosApps/{iosAppsId}/config",
              "httpMethod": "GET",
              "id": "firebase.projects.iosApps.getConfig",
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "name": {
                  "description": "The resource name of the App configuration to download, in the format: projects/PROJECT_IDENTIFIER/iosApps/APP_ID/config Since an APP_ID is a unique identifier, the Unique Resource from Sub-Collection access pattern may be used here, in the format: projects/-/iosApps/APP_ID Refer to the `IosApp` [`name`](../projects.iosApps#IosApp.FIELDS.name) field for details about PROJECT_IDENTIFIER and APP_ID values.",
                  "location": "path",
                  "pattern": "^projects/[^/]+/iosApps/[^/]+/config$",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1beta1/{+name}",
              "response": {
                "$ref": "IosAppConfig"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/cloud-platform.read-only",
                "https://www.googleapis.com/auth/firebase",
                "https://www.googleapis.com/auth/firebase.readonly"
              ]
            },
            "list": {
              "description": "Lists each IosApp associated with the specified FirebaseProject. The elements are returned in no particular order, but will be a consistent view of the Apps when additional requests are made with a `pageToken`.",
              "flatPath": "v1beta1/projects/{projectsId}/iosApps",
              "httpMethod": "GET",
              "id": "firebase.projects.iosApps.list",
              "parameterOrder": [
                "parent"
              ],
              "parameters": {
                "pageSize": {
                  "description": "The maximum number of Apps to return in the response. The server may return fewer than this at its discretion. If no value is specified (or too large a value is specified), the server will impose its own limit.",
                  "format": "int32",
                  "location": "query",
                  "type": "integer"
                },
                "pageToken": {
                  "description": "Token returned from a previous call to `ListIosApps` indicating where in the set of Apps to resume listing.",
                  "location": "query",
                  "type": "string"
                },
                "parent": {
                  "description": "The resource name of the parent FirebaseProject for which to list each associated IosApp, in the format: projects/PROJECT_IDENTIFIER/iosApps Refer to the `FirebaseProject` [`name`](../projects#FirebaseProject.FIELDS.name) field for details about PROJECT_IDENTIFIER values.",
                  "location": "path",
                  "pattern": "^projects/[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1beta1/{+parent}/iosApps",
              "response": {
                "$ref": "ListIosAppsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/cloud-platform.read-only",
                "https://www.googleapis.com/auth/firebase",
                "https://www.googleapis.com/auth/firebase.readonly"
              ]
            },
            "patch": {
              "description": "Updates the attributes of the specified IosApp.",
              "flatPath": "v1beta1/projects/{projectsId}/iosApps/{iosAppsId}",
              "httpMethod": "PATCH",
              "id": "firebase.projects.iosApps.patch",
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "name": {
                  "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)).",
                  "location": "path",
                  "pattern": "^projects/[^/]+/iosApps/[^/]+$",
                  "required": true,
                  "type": "string"
                },
                "updateMask": {
                  "description": "Specifies which fields to update. Note that the fields `name`, `appId`, `projectId`, and `bundleId` are all immutable.",
                  "format": "google-fieldmask",
                  "location": "query",
                  "type": "string"
                }
              },
              "path": "v1beta1/{+name}",
              "request": {
                "$ref": "IosApp"
              },
              "response": {
                "$ref": "IosApp"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/firebase"
              ]
            }
          }
        },
        "webApps": {
          "methods": {
            "create": {
              "description": "Requests the creation of a new WebApp in the specified FirebaseProject. The result of this call is an `Operation` which can be used to track the provisioning process. The `Operation` is automatically deleted after completion, so there is no need to call `DeleteOperation`.",
              "flatPath": "v1beta1/projects/{projectsId}/webApps",
              "httpMethod": "POST",
              "id": "firebase.projects.webApps.create",
              "parameterOrder": [
                "parent"
              ],
              "parameters": {
                "parent": {
                  "description": "The resource name of the parent FirebaseProject in which to create a WebApp, in the format: projects/PROJECT_IDENTIFIER/webApps Refer to the `FirebaseProject` [`name`](../projects#FirebaseProject.FIELDS.name) field for details about PROJECT_IDENTIFIER values.",
                  "location": "path",
                  "pattern": "^projects/[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1beta1/{+parent}/webApps",
              "request": {
                "$ref": "WebApp"
              },
              "response": {
                "$ref": "Operation"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/firebase"
              ]
            },
            "get": {
              "description": "Gets the specified WebApp.",
              "flatPath": "v1beta1/projects/{projectsId}/webApps/{webAppsId}",
              "httpMethod": "GET",
              "id": "firebase.projects.webApps.get",
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "name": {
                  "description": "The resource name of the WebApp, in the format: projects/PROJECT_IDENTIFIER /webApps/APP_ID Since an APP_ID is a unique identifier, the Unique Resource from Sub-Collection access pattern may be used here, in the format: projects/-/webApps/APP_ID Refer to the `WebApp` [`name`](../projects.webApps#WebApp.FIELDS.name) field for details about PROJECT_IDENTIFIER and APP_ID values.",
                  "location": "path",
                  "pattern": "^projects/[^/]+/webApps/[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1beta1/{+name}",
              "response": {
                "$ref": "WebApp"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/cloud-platform.read-only",
                "https://www.googleapis.com/auth/firebase",
                "https://www.googleapis.com/auth/firebase.readonly"
              ]
            },
            "getConfig": {
              "description": "Gets the configuration artifact associated with the specified WebApp.",
              "flatPath": "v1beta1/projects/{projectsId}/webApps/{webAppsId}/config",
              "httpMethod": "GET",
              "id": "firebase.projects.webApps.getConfig",
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "name": {
                  "description": "The resource name of the WebApp configuration to download, in the format: projects/PROJECT_IDENTIFIER/webApps/APP_ID/config Since an APP_ID is a unique identifier, the Unique Resource from Sub-Collection access pattern may be used here, in the format: projects/-/webApps/APP_ID Refer to the `WebApp` [`name`](../projects.webApps#WebApp.FIELDS.name) field for details about PROJECT_IDENTIFIER and APP_ID values.",
                  "location": "path",
                  "pattern": "^projects/[^/]+/webApps/[^/]+/config$",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1beta1/{+name}",
              "response": {
                "$ref": "WebAppConfig"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/cloud-platform.read-only",
                "https://www.googleapis.com/auth/firebase",
                "https://www.googleapis.com/auth/firebase.readonly"
              ]
            },
            "list": {
              "description": "Lists each WebApp associated with the specified FirebaseProject. The elements are returned in no particular order, but will be a consistent view of the Apps when additional requests are made with a `pageToken`.",
              "flatPath": "v1beta1/projects/{projectsId}/webApps",
              "httpMethod": "GET",
              "id": "firebase.projects.webApps.list",
              "parameterOrder": [
                "parent"
              ],
              "parameters": {
                "pageSize": {
                  "description": "The maximum number of Apps to return in the response. The server may return fewer than this value at its discretion. If no value is specified (or too large a value is specified), then the server will impose its own limit.",
                  "format": "int32",
                  "location": "query",
                  "type": "integer"
                },
                "pageToken": {
                  "description": "Token returned from a previous call to `ListWebApps` indicating where in the set of Apps to resume listing.",
                  "location": "query",
                  "type": "string"
                },
                "parent": {
                  "description": "The resource name of the parent FirebaseProject for which to list each associated WebApp, in the format: projects/PROJECT_IDENTIFIER/webApps Refer to the `FirebaseProject` [`name`](../projects#FirebaseProject.FIELDS.name) field for details about PROJECT_IDENTIFIER values.",
                  "location": "path",
                  "pattern": "^projects/[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1beta1/{+parent}/webApps",
              "response": {
                "$ref": "ListWebAppsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/cloud-platform.read-only",
                "https://www.googleapis.com/auth/firebase",
                "https://www.googleapis.com/auth/firebase.readonly"
              ]
            },
            "patch": {
              "description": "Updates the attributes of the specified WebApp.",
              "flatPath": "v1beta1/projects/{projectsId}/webApps/{webAppsId}",
              "httpMethod": "PATCH",
              "id": "firebase.projects.webApps.patch",
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "name": {
                  "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)).",
                  "location": "path",
                  "pattern": "^projects/[^/]+/webApps/[^/]+$",
                  "required": true,
                  "type": "string"
                },
                "updateMask": {
                  "description": "Specifies which fields to update. Note that the fields `name`, `appId`, and `projectId` are all immutable.",
                  "format": "google-fieldmask",
                  "location": "query",
                  "type": "string"
                }
              },
              "path": "v1beta1/{+name}",
              "request": {
                "$ref": "WebApp"
              },
              "response": {
                "$ref": "WebApp"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/firebase"
              ]
            }
          }
        }
      }
    }
  },
  "revision": "20210604",
  "rootUrl": "https://firebase.googleapis.com/",
  "schemas": {
    "AddFirebaseRequest": {
      "description": "All fields are required.",
      "id": "AddFirebaseRequest",
      "properties": {
        "locationId": {
          "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).",
          "type": "string"
        }
      },
      "type": "object"
    },
    "AddGoogleAnalyticsRequest": {
      "id": "AddGoogleAnalyticsRequest",
      "properties": {
        "analyticsAccountId": {
          "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`.",
          "type": "string"
        },
        "analyticsPropertyId": {
          "description": "The ID for the existing Google Analytics property that you want to associate with the `FirebaseProject`.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "AdminSdkConfig": {
      "id": "AdminSdkConfig",
      "properties": {
        "databaseURL": {
          "description": "The default Firebase Realtime Database URL.",
          "type": "string"
        },
        "locationId": {
          "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.",
          "type": "string"
        },
        "projectId": {
          "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.",
          "type": "string"
        },
        "storageBucket": {
          "description": "The default Cloud Storage for Firebase storage bucket name.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "AnalyticsDetails": {
      "id": "AnalyticsDetails",
      "properties": {
        "analyticsProperty": {
          "$ref": "AnalyticsProperty",
          "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": {
          "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.",
          "items": {
            "$ref": "StreamMapping"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AnalyticsProperty": {
      "description": "Details of a Google Analytics property",
      "id": "AnalyticsProperty",
      "properties": {
        "displayName": {
          "description": "The display name of the Google Analytics property associated with the specified `FirebaseProject`.",
          "type": "string"
        },
        "id": {
          "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`.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "AndroidApp": {
      "description": "Details of a Firebase App for Android.",
      "id": "AndroidApp",
      "properties": {
        "appId": {
          "description": "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.",
          "type": "string"
        },
        "displayName": {
          "description": "The user-assigned display name for the `AndroidApp`.",
          "type": "string"
        },
        "name": {
          "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)).",
          "type": "string"
        },
        "packageName": {
          "description": "Immutable. The canonical package name of the Android app as would appear in the Google Play Developer Console.",
          "type": "string"
        },
        "projectId": {
          "description": "Immutable. A user-assigned unique identifier of the parent FirebaseProject for the `AndroidApp`.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "AndroidAppConfig": {
      "description": "Configuration metadata of a single Firebase App for Android.",
      "id": "AndroidAppConfig",
      "properties": {
        "configFileContents": {
          "description": "The contents of the JSON configuration file.",
          "format": "byte",
          "type": "string"
        },
        "configFilename": {
          "description": "The filename that the configuration artifact for the `AndroidApp` is typically saved as. For example: `google-services.json`",
          "type": "string"
        }
      },
      "type": "object"
    },
    "DefaultResources": {
      "description": "The default resources associated with the Project.",
      "id": "DefaultResources",
      "properties": {
        "hostingSite": {
          "description": "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`",
          "type": "string"
        },
        "locationId": {
          "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.",
          "type": "string"
        },
        "realtimeDatabaseInstance": {
          "description": "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`",
          "type": "string"
        },
        "storageBucket": {
          "description": "The default Cloud Storage for Firebase storage bucket, in the format: PROJECT_ID.appspot.com",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Empty": {
      "description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.",
      "id": "Empty",
      "properties": {},
      "type": "object"
    },
    "FinalizeDefaultLocationRequest": {
      "id": "FinalizeDefaultLocationRequest",
      "properties": {
        "locationId": {
          "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).",
          "type": "string"
        }
      },
      "type": "object"
    },
    "FirebaseAppInfo": {
      "description": "A high-level summary of an App.",
      "id": "FirebaseAppInfo",
      "properties": {
        "appId": {
          "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.",
          "readOnly": true,
          "type": "string"
        },
        "displayName": {
          "description": "The user-assigned display name of the Firebase App.",
          "type": "string"
        },
        "name": {
          "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",
          "type": "string"
        },
        "namespace": {
          "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.",
          "readOnly": true,
          "type": "string"
        },
        "platform": {
          "description": "The platform of the Firebase App.",
          "enum": [
            "PLATFORM_UNSPECIFIED",
            "IOS",
            "ANDROID",
            "WEB"
          ],
          "enumDescriptions": [
            "Unknown state. This is only used for distinguishing unset values.",
            "The Firebase App is associated with iOS.",
            "The Firebase App is associated with Android.",
            "The Firebase App is associated with web."
          ],
          "type": "string"
        }
      },
      "type": "object"
    },
    "FirebaseProject": {
      "description": "A `FirebaseProject` is the top-level Firebase entity. It is the container for Firebase Apps, Firebase Hosting sites, storage systems (Firebase Realtime Database, Cloud Firestore, Cloud Storage buckets), and other Firebase and Google Cloud Platform (GCP) resources. You create a `FirebaseProject` by calling AddFirebase and specifying an *existing* [GCP `Project`](https://cloud.google.com/resource-manager/reference/rest/v1/projects). This adds Firebase resources to the existing GCP `Project`. Since a FirebaseProject is actually also a GCP `Project`, a `FirebaseProject` has the same underlying GCP identifiers (`projectNumber` and `projectId`). This allows for easy interop with Google APIs.",
      "id": "FirebaseProject",
      "properties": {
        "displayName": {
          "description": "The user-assigned display name of the Project.",
          "type": "string"
        },
        "name": {
          "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`.",
          "type": "string"
        },
        "projectId": {
          "description": "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.",
          "type": "string"
        },
        "projectNumber": {
          "description": "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.",
          "format": "int64",
          "type": "string"
        },
        "resources": {
          "$ref": "DefaultResources",
          "description": "The default Firebase resources associated with the Project."
        },
        "state": {
          "description": "Output only. The lifecycle state of the Project. Updates to the state must be performed via com.google.cloudresourcemanager.v1.Projects.DeleteProject and com.google.cloudresourcemanager.v1.Projects.UndeleteProject",
          "enum": [
            "STATE_UNSPECIFIED",
            "ACTIVE",
            "DELETED"
          ],
          "enumDescriptions": [
            "Unspecified state.",
            "The normal and active state.",
            "The Project has been marked for deletion by the user."
          ],
          "readOnly": true,
          "type": "string"
        }
      },
      "type": "object"
    },
    "IosApp": {
      "description": "Details of a Firebase App for iOS.",
      "id": "IosApp",
      "properties": {
        "appId": {
          "description": "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.",
          "type": "string"
        },
        "appStoreId": {
          "description": "The automatically generated Apple ID assigned to the iOS app by Apple in the iOS App Store.",
          "type": "string"
        },
        "bundleId": {
          "description": "Immutable. The canonical bundle ID of the iOS app as it would appear in the iOS AppStore.",
          "type": "string"
        },
        "displayName": {
          "description": "The user-assigned display name for the `IosApp`.",
          "type": "string"
        },
        "name": {
          "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)).",
          "type": "string"
        },
        "projectId": {
          "description": "Immutable. A user-assigned unique identifier of the parent FirebaseProject for the `IosApp`.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "IosAppConfig": {
      "description": "Configuration metadata of a single Firebase App for iOS.",
      "id": "IosAppConfig",
      "properties": {
        "configFileContents": {
          "description": "The content of the XML configuration file.",
          "format": "byte",
          "type": "string"
        },
        "configFilename": {
          "description": "The filename that the configuration artifact for the `IosApp` is typically saved as. For example: `GoogleService-Info.plist`",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ListAndroidAppsResponse": {
      "id": "ListAndroidAppsResponse",
      "properties": {
        "apps": {
          "description": "List of each `AndroidApp` associated with the specified `FirebaseProject`.",
          "items": {
            "$ref": "AndroidApp"
          },
          "type": "array"
        },
        "nextPageToken": {
          "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.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ListAvailableLocationsResponse": {
      "id": "ListAvailableLocationsResponse",
      "properties": {
        "locations": {
          "description": "One page of results from a call to `ListAvailableLocations`.",
          "items": {
            "$ref": "Location"
          },
          "type": "array"
        },
        "nextPageToken": {
          "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.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ListAvailableProjectsResponse": {
      "id": "ListAvailableProjectsResponse",
      "properties": {
        "nextPageToken": {
          "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.",
          "type": "string"
        },
        "projectInfo": {
          "description": "The list of GCP `Projects` which can have Firebase resources added to them.",
          "items": {
            "$ref": "ProjectInfo"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "ListFirebaseProjectsResponse": {
      "id": "ListFirebaseProjectsResponse",
      "properties": {
        "nextPageToken": {
          "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.",
          "type": "string"
        },
        "results": {
          "description": "One page of the list of Projects that are accessible to the caller.",
          "items": {
            "$ref": "FirebaseProject"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "ListIosAppsResponse": {
      "id": "ListIosAppsResponse",
      "properties": {
        "apps": {
          "description": "List of each `IosApp` associated with the specified `FirebaseProject`.",
          "items": {
            "$ref": "IosApp"
          },
          "type": "array"
        },
        "nextPageToken": {
          "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.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ListShaCertificatesResponse": {
      "id": "ListShaCertificatesResponse",
      "properties": {
        "certificates": {
          "description": "The list of each `ShaCertificate` associated with the `AndroidApp`.",
          "items": {
            "$ref": "ShaCertificate"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "ListWebAppsResponse": {
      "id": "ListWebAppsResponse",
      "properties": {
        "apps": {
          "description": "List of each `WebApp` associated with the specified `FirebaseProject`.",
          "items": {
            "$ref": "WebApp"
          },
          "type": "array"
        },
        "nextPageToken": {
          "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.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Location": {
      "description": "A GCP resource location that can be selected for a FirebaseProject.",
      "id": "Location",
      "properties": {
        "features": {
          "description": "Products and services that are available in the GCP resource location.",
          "items": {
            "enum": [
              "LOCATION_FEATURE_UNSPECIFIED",
              "FIRESTORE",
              "DEFAULT_STORAGE",
              "FUNCTIONS"
            ],
            "enumDescriptions": [
              "Used internally for distinguishing unset values and is not intended for external use.",
              "This location supports Cloud Firestore database instances. App Engine is available in this location, so it can be a Project's [default GCP resource location](//firebase.google.com/docs/projects/locations#default-cloud-location).",
              "This location supports default Cloud Storage buckets. App Engine is available in this location, so it can be a Project's [default GCP resource location](//firebase.google.com/docs/projects/locations#default-cloud-location).",
              "Cloud Functions for Firebase is available in this location."
            ],
            "type": "string"
          },
          "type": "array"
        },
        "locationId": {
          "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": "string"
        },
        "type": {
          "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.",
          "enum": [
            "LOCATION_TYPE_UNSPECIFIED",
            "REGIONAL",
            "MULTI_REGIONAL"
          ],
          "enumDescriptions": [
            "Used internally for distinguishing unset values and is not intended for external use.",
            "The location is a regional location. Data in a regional location is replicated in multiple zones within a region.",
            "The location is a multi-regional location. Data in a multi-region location is replicated in multiple regions. Within each region, data is replicated in multiple zones."
          ],
          "type": "string"
        }
      },
      "type": "object"
    },
    "MessageSet": {
      "description": "This is proto2's version of MessageSet.",
      "id": "MessageSet",
      "properties": {},
      "type": "object"
    },
    "Operation": {
      "description": "This resource represents a long-running operation that is the result of a network API call.",
      "id": "Operation",
      "properties": {
        "done": {
          "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.",
          "type": "boolean"
        },
        "error": {
          "$ref": "Status",
          "description": "The error result of the operation in case of failure or cancellation."
        },
        "metadata": {
          "additionalProperties": {
            "description": "Properties of the object. Contains field @type with type URL.",
            "type": "any"
          },
          "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.",
          "type": "object"
        },
        "name": {
          "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}`.",
          "type": "string"
        },
        "response": {
          "additionalProperties": {
            "description": "Properties of the object. Contains field @type with type URL.",
            "type": "any"
          },
          "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`.",
          "type": "object"
        }
      },
      "type": "object"
    },
    "ProjectInfo": {
      "description": "A reference to a Google Cloud Platform (GCP) `Project`.",
      "id": "ProjectInfo",
      "properties": {
        "displayName": {
          "description": "The user-assigned display name of the GCP `Project`, for example: `My App`",
          "type": "string"
        },
        "locationId": {
          "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.",
          "type": "string"
        },
        "project": {
          "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.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "RemoveAnalyticsRequest": {
      "id": "RemoveAnalyticsRequest",
      "properties": {
        "analyticsPropertyId": {
          "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. ",
          "type": "string"
        }
      },
      "type": "object"
    },
    "SearchFirebaseAppsResponse": {
      "id": "SearchFirebaseAppsResponse",
      "properties": {
        "apps": {
          "description": "One page of results from a call to `SearchFirebaseApps`.",
          "items": {
            "$ref": "FirebaseAppInfo"
          },
          "type": "array"
        },
        "nextPageToken": {
          "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.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ShaCertificate": {
      "description": "A SHA-1 or SHA-256 certificate associated with the AndroidApp.",
      "id": "ShaCertificate",
      "properties": {
        "certType": {
          "description": "The type of SHA certificate encoded in the hash.",
          "enum": [
            "SHA_CERTIFICATE_TYPE_UNSPECIFIED",
            "SHA_1",
            "SHA_256"
          ],
          "enumDescriptions": [
            "Unknown state. This is only used for distinguishing unset values.",
            "Certificate is a SHA-1 type certificate.",
            "Certificate is a SHA-256 type certificate."
          ],
          "type": "string"
        },
        "name": {
          "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)).",
          "type": "string"
        },
        "shaHash": {
          "description": "The certificate hash for the `AndroidApp`.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Status": {
      "description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).",
      "id": "Status",
      "properties": {
        "code": {
          "description": "The status code, which should be an enum value of google.rpc.Code.",
          "format": "int32",
          "type": "integer"
        },
        "details": {
          "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.",
          "items": {
            "additionalProperties": {
              "description": "Properties of the object. Contains field @type with type URL.",
              "type": "any"
            },
            "type": "object"
          },
          "type": "array"
        },
        "message": {
          "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.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "StatusProto": {
      "description": "Wire-format for a Status object",
      "id": "StatusProto",
      "properties": {
        "canonicalCode": {
          "description": "The canonical error code (see codes.proto) that most closely corresponds to this status. May be missing.",
          "format": "int32",
          "type": "integer"
        },
        "code": {
          "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",
          "format": "int32",
          "type": "integer"
        },
        "message": {
          "description": "Detail message",
          "type": "string"
        },
        "messageSet": {
          "$ref": "MessageSet",
          "description": "message_set associates an arbitrary proto message with the status."
        },
        "space": {
          "description": "The following are usually only present when code != 0 Space to which this status belongs",
          "type": "string"
        }
      },
      "type": "object"
    },
    "StreamMapping": {
      "description": "A mapping of a Firebase App to a Google Analytics data stream",
      "id": "StreamMapping",
      "properties": {
        "app": {
          "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.",
          "type": "string"
        },
        "measurementId": {
          "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/topic/9303475).",
          "type": "string"
        },
        "streamId": {
          "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).",
          "format": "int64",
          "type": "string"
        }
      },
      "type": "object"
    },
    "WebApp": {
      "description": "Details of a Firebase App for the web.",
      "id": "WebApp",
      "properties": {
        "appId": {
          "description": "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.",
          "type": "string"
        },
        "appUrls": {
          "description": "The URLs where the `WebApp` is hosted.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "displayName": {
          "description": "The user-assigned display name for the `WebApp`.",
          "type": "string"
        },
        "name": {
          "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)).",
          "type": "string"
        },
        "projectId": {
          "description": "Immutable. A user-assigned unique identifier of the parent FirebaseProject for the `WebApp`.",
          "type": "string"
        },
        "webId": {
          "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.",
          "readOnly": true,
          "type": "string"
        }
      },
      "type": "object"
    },
    "WebAppConfig": {
      "description": "Configuration metadata of a single Firebase App for the web.",
      "id": "WebAppConfig",
      "properties": {
        "apiKey": {
          "description": "The API key associated with the `WebApp`.",
          "type": "string"
        },
        "appId": {
          "description": "Immutable. The globally unique, Firebase-assigned identifier for the `WebApp`.",
          "type": "string"
        },
        "authDomain": {
          "description": "The domain Firebase Auth configures for OAuth redirects, in the format: PROJECT_ID.firebaseapp.com",
          "type": "string"
        },
        "databaseURL": {
          "description": "The default Firebase Realtime Database URL.",
          "type": "string"
        },
        "locationId": {
          "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.",
          "type": "string"
        },
        "measurementId": {
          "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/topic/9303475). 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.",
          "type": "string"
        },
        "messagingSenderId": {
          "description": "The sender ID for use with Firebase Cloud Messaging.",
          "type": "string"
        },
        "projectId": {
          "description": "Immutable. A user-assigned unique identifier for the `FirebaseProject`.",
          "type": "string"
        },
        "storageBucket": {
          "description": "The default Cloud Storage for Firebase storage bucket name.",
          "type": "string"
        }
      },
      "type": "object"
    }
  },
  "servicePath": "",
  "title": "Firebase Management API",
  "version": "v1beta1",
  "version_module": true
}