{
  "title": "Firebase Management API",
  "version_module": true,
  "name": "firebase",
  "id": "firebase:v1beta1",
  "fullyEncodeReservedExpansion": true,
  "revision": "20201027",
  "protocol": "rest",
  "schemas": {
    "IosAppConfig": {
      "id": "IosAppConfig",
      "description": "Configuration metadata of a single Firebase App for iOS.",
      "type": "object",
      "properties": {
        "configFilename": {
          "description": "The filename that the configuration artifact for the `IosApp` is typically saved as. For example: `GoogleService-Info.plist`",
          "type": "string"
        },
        "configFileContents": {
          "format": "byte",
          "description": "The content of the XML configuration file.",
          "type": "string"
        }
      }
    },
    "Status": {
      "type": "object",
      "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).",
      "properties": {
        "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"
        },
        "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": {
              "type": "any",
              "description": "Properties of the object. Contains field @type with type URL."
            },
            "type": "object"
          },
          "type": "array"
        },
        "code": {
          "format": "int32",
          "type": "integer",
          "description": "The status code, which should be an enum value of google.rpc.Code."
        }
      },
      "id": "Status"
    },
    "AndroidApp": {
      "properties": {
        "projectId": {
          "type": "string",
          "description": "Immutable. A user-assigned unique identifier of the parent FirebaseProject for the `AndroidApp`."
        },
        "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"
        },
        "displayName": {
          "description": "The user-assigned display name for the `AndroidApp`.",
          "type": "string"
        },
        "packageName": {
          "type": "string",
          "description": "Immutable. The canonical package name of the Android app as would appear in the Google Play Developer Console."
        },
        "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"
        }
      },
      "description": "Details of a Firebase App for Android.",
      "type": "object",
      "id": "AndroidApp"
    },
    "AddFirebaseRequest": {
      "properties": {
        "timeZone": {
          "description": "Deprecated. Instead, to link a Project with a Google Analytics account, call [`AddGoogleAnalytics`](../../v1beta1/projects/addGoogleAnalytics) after you add Firebase resources to the GCP `Project`. The time zone that the account will use for Google Analytics data. For example: America/Los_Angeles or Africa/Abidjan",
          "type": "string"
        },
        "locationId": {
          "type": "string",
          "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)."
        },
        "regionCode": {
          "type": "string",
          "description": "Deprecated. Instead, to link a Project with a Google Analytics account, call [`AddGoogleAnalytics`](../../v1beta1/projects/addGoogleAnalytics) after you add Firebase resources to the GCP `Project`. The region code (CLDR) that the account will use for Google Analytics data For example: US, GB, or DE In Java, use `com.google.i18n.identifiers.RegionCode`."
        }
      },
      "type": "object",
      "id": "AddFirebaseRequest",
      "description": "All fields are required."
    },
    "StatusProto": {
      "properties": {
        "canonicalCode": {
          "type": "integer",
          "description": "The canonical error code (see codes.proto) that most closely corresponds to this status. May be missing.",
          "format": "int32"
        },
        "space": {
          "type": "string",
          "description": "The following are usually only present when code != 0 Space to which this status belongs"
        },
        "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."
        }
      },
      "description": "Wire-format for a Status object",
      "id": "StatusProto",
      "type": "object"
    },
    "WebApp": {
      "description": "Details of a Firebase App for the web.",
      "properties": {
        "appId": {
          "type": "string",
          "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."
        },
        "name": {
          "type": "string",
          "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))."
        },
        "displayName": {
          "type": "string",
          "description": "The user-assigned display name for the `WebApp`."
        },
        "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"
        },
        "projectId": {
          "type": "string",
          "description": "Immutable. A user-assigned unique identifier of the parent FirebaseProject for the `WebApp`."
        },
        "appUrls": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "The URLs where the `WebApp` is hosted."
        }
      },
      "id": "WebApp",
      "type": "object"
    },
    "AnalyticsDetails": {
      "properties": {
        "streamMappings": {
          "items": {
            "$ref": "StreamMapping"
          },
          "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.",
          "type": "array"
        },
        "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.",
          "$ref": "AnalyticsProperty"
        }
      },
      "type": "object",
      "id": "AnalyticsDetails"
    },
    "ListAvailableLocationsResponse": {
      "id": "ListAvailableLocationsResponse",
      "properties": {
        "nextPageToken": {
          "type": "string",
          "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."
        },
        "locations": {
          "type": "array",
          "items": {
            "$ref": "Location"
          },
          "description": "One page of results from a call to `ListAvailableLocations`."
        }
      },
      "type": "object"
    },
    "RemoveAnalyticsRequest": {
      "properties": {
        "analyticsPropertyId": {
          "type": "string",
          "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": "object",
      "id": "RemoveAnalyticsRequest"
    },
    "AddGoogleAnalyticsRequest": {
      "id": "AddGoogleAnalyticsRequest",
      "type": "object",
      "properties": {
        "analyticsAccountId": {
          "type": "string",
          "description": "The ID for the existing [Google Analytics account](http://www.google.com/analytics/) that you want to link with the `FirebaseProject`. Specifying this field will provision a new Google Analytics property in your Google Analytics account and associate the new property with the `FirebaseProject`."
        },
        "analyticsPropertyId": {
          "type": "string",
          "description": "The ID for the existing Google Analytics property that you want to associate with the `FirebaseProject`."
        }
      }
    },
    "FinalizeDefaultLocationRequest": {
      "type": "object",
      "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"
        }
      }
    },
    "ListShaCertificatesResponse": {
      "type": "object",
      "id": "ListShaCertificatesResponse",
      "properties": {
        "certificates": {
          "items": {
            "$ref": "ShaCertificate"
          },
          "type": "array",
          "description": "The list of each `ShaCertificate` associated with the `AndroidApp`."
        }
      }
    },
    "Location": {
      "id": "Location",
      "properties": {
        "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"
        },
        "features": {
          "description": "Products and services that are available in the GCP resource location.",
          "items": {
            "type": "string",
            "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."
            ],
            "enum": [
              "LOCATION_FEATURE_UNSPECIFIED",
              "FIRESTORE",
              "DEFAULT_STORAGE",
              "FUNCTIONS"
            ]
          },
          "type": "array"
        },
        "type": {
          "enum": [
            "LOCATION_TYPE_UNSPECIFIED",
            "REGIONAL",
            "MULTI_REGIONAL"
          ],
          "type": "string",
          "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."
          ],
          "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."
        }
      },
      "description": "A GCP resource location that can be selected for a FirebaseProject.",
      "type": "object"
    },
    "ListFirebaseProjectsResponse": {
      "id": "ListFirebaseProjectsResponse",
      "type": "object",
      "properties": {
        "nextPageToken": {
          "type": "string",
          "description": "If the result list is too large to fit in a single response, then a token is returned. If the string is empty, then this response is the last page of results. This token can be used in a subsequent calls to `ListFirebaseProjects` to find the next group of Projects. Page tokens are short-lived and should not be persisted."
        },
        "results": {
          "items": {
            "$ref": "FirebaseProject"
          },
          "type": "array",
          "description": "One page of the list of Projects that are accessible to the caller."
        }
      }
    },
    "AdminSdkConfig": {
      "type": "object",
      "properties": {
        "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"
        },
        "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"
        },
        "storageBucket": {
          "description": "The default Cloud Storage for Firebase storage bucket name.",
          "type": "string"
        },
        "databaseURL": {
          "description": "The default Firebase Realtime Database URL.",
          "type": "string"
        }
      },
      "id": "AdminSdkConfig"
    },
    "MessageSet": {
      "description": "This is proto2's version of MessageSet.",
      "type": "object",
      "properties": {},
      "id": "MessageSet"
    },
    "WebAppConfig": {
      "type": "object",
      "description": "Configuration metadata of a single Firebase App for the web.",
      "properties": {
        "locationId": {
          "type": "string",
          "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."
        },
        "databaseURL": {
          "type": "string",
          "description": "The default Firebase Realtime Database URL."
        },
        "appId": {
          "type": "string",
          "description": "Immutable. The globally unique, Firebase-assigned identifier for the `WebApp`."
        },
        "messagingSenderId": {
          "description": "The sender ID for use with Firebase Cloud Messaging.",
          "type": "string"
        },
        "storageBucket": {
          "description": "The default Cloud Storage for Firebase storage bucket name.",
          "type": "string"
        },
        "apiKey": {
          "description": "The API key associated with the `WebApp`.",
          "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"
        },
        "projectId": {
          "description": "Immutable. A user-assigned unique identifier for the `FirebaseProject`.",
          "type": "string"
        },
        "authDomain": {
          "description": "The domain Firebase Auth configures for OAuth redirects, in the format: PROJECT_ID.firebaseapp.com",
          "type": "string"
        }
      },
      "id": "WebAppConfig"
    },
    "ShaCertificate": {
      "description": "A SHA-1 or SHA-256 certificate associated with the AndroidApp.",
      "id": "ShaCertificate",
      "properties": {
        "certType": {
          "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."
          ],
          "enum": [
            "SHA_CERTIFICATE_TYPE_UNSPECIFIED",
            "SHA_1",
            "SHA_256"
          ],
          "description": "The type of SHA certificate encoded in the hash.",
          "type": "string"
        },
        "shaHash": {
          "description": "The certificate hash for the `AndroidApp`.",
          "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"
        }
      },
      "type": "object"
    },
    "ProjectInfo": {
      "type": "object",
      "properties": {
        "project": {
          "type": "string",
          "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."
        },
        "displayName": {
          "type": "string",
          "description": "The user-assigned display name of the GCP `Project`, for example: `My App`"
        },
        "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"
        }
      },
      "description": "A reference to a Google Cloud Platform (GCP) `Project`.",
      "id": "ProjectInfo"
    },
    "AnalyticsProperty": {
      "type": "object",
      "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": {
          "type": "string",
          "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`."
        }
      }
    },
    "IosApp": {
      "properties": {
        "name": {
          "type": "string",
          "description": "The resource name of the IosApp, in the format: projects/PROJECT_IDENTIFIER /iosApps/APP_ID * PROJECT_IDENTIFIER: the parent Project's [`ProjectNumber`](../projects#FirebaseProject.FIELDS.project_number) ***(recommended)*** or its [`ProjectId`](../projects#FirebaseProject.FIELDS.project_id). Learn more about using project identifiers in Google's [AIP 2510 standard](https://google.aip.dev/cloud/2510). Note that the value for PROJECT_IDENTIFIER in any response body will be the `ProjectId`. * APP_ID: the globally unique, Firebase-assigned identifier for the App (see [`appId`](../projects.iosApps#IosApp.FIELDS.app_id))."
        },
        "projectId": {
          "type": "string",
          "description": "Immutable. A user-assigned unique identifier of the parent FirebaseProject for the `IosApp`."
        },
        "appId": {
          "type": "string",
          "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."
        },
        "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"
        },
        "appStoreId": {
          "description": "The automatically generated Apple ID assigned to the iOS app by Apple in the iOS App Store.",
          "type": "string"
        }
      },
      "id": "IosApp",
      "type": "object",
      "description": "Details of a Firebase App for iOS."
    },
    "FirebaseProject": {
      "id": "FirebaseProject",
      "properties": {
        "resources": {
          "description": "The default Firebase resources associated with the Project.",
          "$ref": "DefaultResources"
        },
        "projectNumber": {
          "type": "string",
          "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"
        },
        "name": {
          "type": "string",
          "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`."
        },
        "displayName": {
          "description": "The user-assigned display name of the Project.",
          "type": "string"
        },
        "projectId": {
          "type": "string",
          "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."
        },
        "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",
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Unspecified state.",
            "The normal and active state.",
            "The Project has been marked for deletion by the user."
          ],
          "enum": [
            "STATE_UNSPECIFIED",
            "ACTIVE",
            "DELETED"
          ]
        }
      },
      "type": "object",
      "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."
    },
    "ListAndroidAppsResponse": {
      "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 call to `ListAndroidApps` to find the next group of Apps. Page tokens are short-lived and should not be persisted.",
          "type": "string"
        },
        "apps": {
          "items": {
            "$ref": "AndroidApp"
          },
          "type": "array",
          "description": "List of each `AndroidApp` associated with the specified `FirebaseProject`."
        }
      },
      "id": "ListAndroidAppsResponse",
      "type": "object"
    },
    "StreamMapping": {
      "id": "StreamMapping",
      "description": "A mapping of a Firebase App to a Google Analytics data stream",
      "type": "object",
      "properties": {
        "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": {
          "type": "string",
          "format": "int64",
          "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)."
        },
        "app": {
          "type": "string",
          "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."
        }
      }
    },
    "Operation": {
      "properties": {
        "response": {
          "additionalProperties": {
            "description": "Properties of the object. Contains field @type with type URL.",
            "type": "any"
          },
          "type": "object",
          "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`."
        },
        "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"
        },
        "metadata": {
          "additionalProperties": {
            "description": "Properties of the object. Contains field @type with type URL.",
            "type": "any"
          },
          "type": "object",
          "description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any."
        },
        "name": {
          "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"
        },
        "error": {
          "$ref": "Status",
          "description": "The error result of the operation in case of failure or cancellation."
        }
      },
      "description": "This resource represents a long-running operation that is the result of a network API call.",
      "type": "object",
      "id": "Operation"
    },
    "ListAvailableProjectsResponse": {
      "id": "ListAvailableProjectsResponse",
      "type": "object",
      "properties": {
        "nextPageToken": {
          "type": "string",
          "description": "If the result list is too large to fit in a single response, then a token is returned. If the string is empty, then this response is the last page of results. This token can be used in a subsequent calls to `ListAvailableProjects` to find the next group of Projects. Page tokens are short-lived and should not be persisted."
        },
        "projectInfo": {
          "items": {
            "$ref": "ProjectInfo"
          },
          "type": "array",
          "description": "The list of GCP `Projects` which can have Firebase resources added to them."
        }
      }
    },
    "ListIosAppsResponse": {
      "id": "ListIosAppsResponse",
      "type": "object",
      "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 call to `ListIosApps` to find the next group of Apps. Page tokens are short-lived and should not be persisted.",
          "type": "string"
        },
        "apps": {
          "items": {
            "$ref": "IosApp"
          },
          "type": "array",
          "description": "List of each `IosApp` associated with the specified `FirebaseProject`."
        }
      }
    },
    "ListWebAppsResponse": {
      "id": "ListWebAppsResponse",
      "type": "object",
      "properties": {
        "apps": {
          "type": "array",
          "items": {
            "$ref": "WebApp"
          },
          "description": "List of each `WebApp` associated with the specified `FirebaseProject`."
        },
        "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"
        }
      }
    },
    "FirebaseAppInfo": {
      "id": "FirebaseAppInfo",
      "type": "object",
      "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"
        },
        "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": {
          "type": "string",
          "readOnly": true,
          "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."
        },
        "displayName": {
          "description": "The user-assigned display name of the Firebase App.",
          "type": "string"
        },
        "platform": {
          "type": "string",
          "description": "The platform of the Firebase App.",
          "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."
          ],
          "enum": [
            "PLATFORM_UNSPECIFIED",
            "IOS",
            "ANDROID",
            "WEB"
          ]
        }
      },
      "description": "A high-level summary of an App."
    },
    "Empty": {
      "properties": {},
      "type": "object",
      "id": "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 `{}`."
    },
    "SearchFirebaseAppsResponse": {
      "properties": {
        "apps": {
          "items": {
            "$ref": "FirebaseAppInfo"
          },
          "description": "One page of results from a call to `SearchFirebaseApps`.",
          "type": "array"
        },
        "nextPageToken": {
          "type": "string",
          "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."
        }
      },
      "id": "SearchFirebaseAppsResponse",
      "type": "object"
    },
    "DefaultResources": {
      "properties": {
        "locationId": {
          "type": "string",
          "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."
        },
        "hostingSite": {
          "type": "string",
          "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`"
        },
        "realtimeDatabaseInstance": {
          "type": "string",
          "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`"
        },
        "storageBucket": {
          "description": "The default Cloud Storage for Firebase storage bucket, in the format: PROJECT_ID.appspot.com",
          "type": "string"
        }
      },
      "description": "The default resources associated with the Project.",
      "id": "DefaultResources",
      "type": "object"
    },
    "AndroidAppConfig": {
      "description": "Configuration metadata of a single Firebase App for Android.",
      "properties": {
        "configFilename": {
          "type": "string",
          "description": "The filename that the configuration artifact for the `AndroidApp` is typically saved as. For example: `google-services.json`"
        },
        "configFileContents": {
          "format": "byte",
          "description": "The contents of the JSON configuration file.",
          "type": "string"
        }
      },
      "id": "AndroidAppConfig",
      "type": "object"
    }
  },
  "baseUrl": "https://firebase.googleapis.com/",
  "batchPath": "batch",
  "resources": {
    "projects": {
      "methods": {
        "patch": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/firebase"
          ],
          "parameters": {
            "name": {
              "type": "string",
              "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",
              "required": true,
              "pattern": "^projects/[^/]+$"
            },
            "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"
            }
          },
          "response": {
            "$ref": "FirebaseProject"
          },
          "httpMethod": "PATCH",
          "request": {
            "$ref": "FirebaseProject"
          },
          "id": "firebase.projects.patch",
          "parameterOrder": [
            "name"
          ],
          "flatPath": "v1beta1/projects/{projectsId}",
          "description": "Updates the attributes of the specified FirebaseProject. All [query parameters](#query-parameters) are required.",
          "path": "v1beta1/{+name}"
        },
        "get": {
          "id": "firebase.projects.get",
          "flatPath": "v1beta1/projects/{projectsId}",
          "response": {
            "$ref": "FirebaseProject"
          },
          "path": "v1beta1/{+name}",
          "description": "Gets the specified FirebaseProject.",
          "httpMethod": "GET",
          "parameters": {
            "name": {
              "type": "string",
              "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.",
              "required": true,
              "location": "path",
              "pattern": "^projects/[^/]+$"
            }
          },
          "parameterOrder": [
            "name"
          ],
          "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"
          ]
        },
        "searchApps": {
          "parameters": {
            "parent": {
              "pattern": "^projects/[^/]+$",
              "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.",
              "required": true,
              "type": "string",
              "location": "path"
            },
            "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.",
              "type": "string",
              "location": "query"
            },
            "pageSize": {
              "format": "int32",
              "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.",
              "location": "query",
              "type": "integer"
            },
            "pageToken": {
              "type": "string",
              "description": "Token returned from a previous call to `SearchFirebaseApps` indicating where in the set of Apps to resume listing.",
              "location": "query"
            }
          },
          "parameterOrder": [
            "parent"
          ],
          "id": "firebase.projects.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).",
          "httpMethod": "GET",
          "path": "v1beta1/{+parent}:searchApps",
          "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"
          ],
          "flatPath": "v1beta1/projects/{projectsId}:searchApps",
          "response": {
            "$ref": "SearchFirebaseAppsResponse"
          }
        },
        "addFirebase": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/firebase"
          ],
          "request": {
            "$ref": "AddFirebaseRequest"
          },
          "path": "v1beta1/{+project}:addFirebase",
          "parameterOrder": [
            "project"
          ],
          "response": {
            "$ref": "Operation"
          },
          "httpMethod": "POST",
          "parameters": {
            "project": {
              "location": "path",
              "required": true,
              "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.",
              "pattern": "^projects/[^/]+$",
              "type": "string"
            }
          },
          "flatPath": "v1beta1/projects/{projectsId}:addFirebase",
          "id": "firebase.projects.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`."
        },
        "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.",
          "parameters": {
            "name": {
              "type": "string",
              "required": true,
              "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.",
              "pattern": "^projects/[^/]+/adminSdkConfig$",
              "location": "path"
            }
          },
          "path": "v1beta1/{+name}",
          "flatPath": "v1beta1/projects/{projectsId}/adminSdkConfig",
          "parameterOrder": [
            "name"
          ],
          "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"
          ],
          "id": "firebase.projects.getAdminSdkConfig",
          "response": {
            "$ref": "AdminSdkConfig"
          },
          "httpMethod": "GET"
        },
        "addGoogleAnalytics": {
          "response": {
            "$ref": "Operation"
          },
          "flatPath": "v1beta1/projects/{projectsId}: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).",
          "id": "firebase.projects.addGoogleAnalytics",
          "request": {
            "$ref": "AddGoogleAnalyticsRequest"
          },
          "parameters": {
            "parent": {
              "required": true,
              "pattern": "^projects/[^/]+$",
              "location": "path",
              "type": "string",
              "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."
            }
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/firebase"
          ],
          "path": "v1beta1/{+parent}:addGoogleAnalytics",
          "httpMethod": "POST",
          "parameterOrder": [
            "parent"
          ]
        },
        "list": {
          "id": "firebase.projects.list",
          "parameters": {
            "pageToken": {
              "type": "string",
              "description": "Token returned from a previous call to `ListFirebaseProjects` indicating where in the set of Projects to resume listing.",
              "location": "query"
            },
            "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.",
              "type": "integer",
              "format": "int32",
              "location": "query"
            }
          },
          "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.",
          "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"
          ],
          "flatPath": "v1beta1/projects",
          "httpMethod": "GET",
          "parameterOrder": [],
          "path": "v1beta1/projects",
          "response": {
            "$ref": "ListFirebaseProjectsResponse"
          }
        },
        "removeAnalytics": {
          "flatPath": "v1beta1/projects/{projectsId}:removeAnalytics",
          "response": {
            "$ref": "Empty"
          },
          "parameters": {
            "parent": {
              "location": "path",
              "type": "string",
              "pattern": "^projects/[^/]+$",
              "required": true,
              "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."
            }
          },
          "path": "v1beta1/{+parent}:removeAnalytics",
          "request": {
            "$ref": "RemoveAnalyticsRequest"
          },
          "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`.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform",
            "https://www.googleapis.com/auth/firebase"
          ],
          "id": "firebase.projects.removeAnalytics",
          "parameterOrder": [
            "parent"
          ],
          "httpMethod": "POST"
        },
        "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`.",
          "parameters": {
            "name": {
              "type": "string",
              "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
            }
          },
          "flatPath": "v1beta1/projects/{projectsId}/analyticsDetails",
          "httpMethod": "GET",
          "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"
          ],
          "path": "v1beta1/{+name}",
          "response": {
            "$ref": "AnalyticsDetails"
          },
          "parameterOrder": [
            "name"
          ],
          "id": "firebase.projects.getAnalyticsDetails"
        }
      },
      "resources": {
        "webApps": {
          "methods": {
            "create": {
              "parameterOrder": [
                "parent"
              ],
              "request": {
                "$ref": "WebApp"
              },
              "flatPath": "v1beta1/projects/{projectsId}/webApps",
              "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`.",
              "id": "firebase.projects.webApps.create",
              "httpMethod": "POST",
              "response": {
                "$ref": "Operation"
              },
              "path": "v1beta1/{+parent}/webApps",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/firebase"
              ],
              "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.",
                  "required": true,
                  "pattern": "^projects/[^/]+$",
                  "location": "path",
                  "type": "string"
                }
              }
            },
            "get": {
              "httpMethod": "GET",
              "parameterOrder": [
                "name"
              ],
              "id": "firebase.projects.webApps.get",
              "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"
              ],
              "description": "Gets the specified WebApp.",
              "path": "v1beta1/{+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.",
                  "type": "string",
                  "pattern": "^projects/[^/]+/webApps/[^/]+$",
                  "location": "path",
                  "required": true
                }
              },
              "flatPath": "v1beta1/projects/{projectsId}/webApps/{webAppsId}"
            },
            "getConfig": {
              "flatPath": "v1beta1/projects/{projectsId}/webApps/{webAppsId}/config",
              "id": "firebase.projects.webApps.getConfig",
              "parameters": {
                "name": {
                  "type": "string",
                  "pattern": "^projects/[^/]+/webApps/[^/]+/config$",
                  "required": true,
                  "location": "path",
                  "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."
                }
              },
              "parameterOrder": [
                "name"
              ],
              "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"
              ],
              "description": "Gets the configuration artifact associated with the specified WebApp.",
              "httpMethod": "GET"
            },
            "list": {
              "flatPath": "v1beta1/projects/{projectsId}/webApps",
              "httpMethod": "GET",
              "response": {
                "$ref": "ListWebAppsResponse"
              },
              "id": "firebase.projects.webApps.list",
              "parameters": {
                "pageSize": {
                  "format": "int32",
                  "location": "query",
                  "type": "integer",
                  "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."
                },
                "pageToken": {
                  "description": "Token returned from a previous call to `ListWebApps` indicating where in the set of Apps to resume listing.",
                  "type": "string",
                  "location": "query"
                },
                "parent": {
                  "pattern": "^projects/[^/]+$",
                  "location": "path",
                  "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.",
                  "required": true,
                  "type": "string"
                }
              },
              "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"
              ],
              "path": "v1beta1/{+parent}/webApps",
              "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`.",
              "parameterOrder": [
                "parent"
              ]
            },
            "patch": {
              "description": "Updates the attributes of the specified WebApp.",
              "httpMethod": "PATCH",
              "response": {
                "$ref": "WebApp"
              },
              "parameters": {
                "updateMask": {
                  "description": "Specifies which fields to update. Note that the fields `name`, `appId`, and `projectId` are all immutable.",
                  "type": "string",
                  "format": "google-fieldmask",
                  "location": "query"
                },
                "name": {
                  "pattern": "^projects/[^/]+/webApps/[^/]+$",
                  "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",
                  "location": "path",
                  "required": true
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/firebase"
              ],
              "id": "firebase.projects.webApps.patch",
              "parameterOrder": [
                "name"
              ],
              "flatPath": "v1beta1/projects/{projectsId}/webApps/{webAppsId}",
              "request": {
                "$ref": "WebApp"
              },
              "path": "v1beta1/{+name}"
            }
          }
        },
        "androidApps": {
          "resources": {
            "sha": {
              "methods": {
                "list": {
                  "httpMethod": "GET",
                  "parameterOrder": [
                    "parent"
                  ],
                  "parameters": {
                    "parent": {
                      "pattern": "^projects/[^/]+/androidApps/[^/]+$",
                      "location": "path",
                      "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.",
                      "type": "string",
                      "required": true
                    }
                  },
                  "flatPath": "v1beta1/projects/{projectsId}/androidApps/{androidAppsId}/sha",
                  "description": "Lists the SHA-1 and SHA-256 certificates for the specified AndroidApp.",
                  "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"
                  ],
                  "id": "firebase.projects.androidApps.sha.list",
                  "path": "v1beta1/{+parent}/sha"
                },
                "delete": {
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform",
                    "https://www.googleapis.com/auth/firebase"
                  ],
                  "path": "v1beta1/{+name}",
                  "flatPath": "v1beta1/projects/{projectsId}/androidApps/{androidAppsId}/sha/{shaId}",
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "location": "path",
                      "required": true,
                      "pattern": "^projects/[^/]+/androidApps/[^/]+/sha/[^/]+$",
                      "type": "string",
                      "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)."
                    }
                  },
                  "httpMethod": "DELETE",
                  "response": {
                    "$ref": "Empty"
                  },
                  "description": "Removes a ShaCertificate from the specified AndroidApp.",
                  "id": "firebase.projects.androidApps.sha.delete"
                },
                "create": {
                  "flatPath": "v1beta1/projects/{projectsId}/androidApps/{androidAppsId}/sha",
                  "request": {
                    "$ref": "ShaCertificate"
                  },
                  "response": {
                    "$ref": "ShaCertificate"
                  },
                  "parameters": {
                    "parent": {
                      "pattern": "^projects/[^/]+/androidApps/[^/]+$",
                      "type": "string",
                      "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.",
                      "required": true,
                      "location": "path"
                    }
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "description": "Adds a ShaCertificate to the specified AndroidApp.",
                  "path": "v1beta1/{+parent}/sha",
                  "httpMethod": "POST",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform",
                    "https://www.googleapis.com/auth/firebase"
                  ],
                  "id": "firebase.projects.androidApps.sha.create"
                }
              }
            }
          },
          "methods": {
            "get": {
              "flatPath": "v1beta1/projects/{projectsId}/androidApps/{androidAppsId}",
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "name": {
                  "required": true,
                  "location": "path",
                  "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.",
                  "pattern": "^projects/[^/]+/androidApps/[^/]+$",
                  "type": "string"
                }
              },
              "path": "v1beta1/{+name}",
              "id": "firebase.projects.androidApps.get",
              "description": "Gets the specified 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"
              ],
              "httpMethod": "GET",
              "response": {
                "$ref": "AndroidApp"
              }
            },
            "create": {
              "id": "firebase.projects.androidApps.create",
              "flatPath": "v1beta1/projects/{projectsId}/androidApps",
              "httpMethod": "POST",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/firebase"
              ],
              "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`.",
              "path": "v1beta1/{+parent}/androidApps",
              "parameterOrder": [
                "parent"
              ],
              "request": {
                "$ref": "AndroidApp"
              },
              "response": {
                "$ref": "Operation"
              },
              "parameters": {
                "parent": {
                  "pattern": "^projects/[^/]+$",
                  "required": true,
                  "location": "path",
                  "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.",
                  "type": "string"
                }
              }
            },
            "patch": {
              "path": "v1beta1/{+name}",
              "description": "Updates the attributes of the specified AndroidApp.",
              "parameterOrder": [
                "name"
              ],
              "request": {
                "$ref": "AndroidApp"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/firebase"
              ],
              "id": "firebase.projects.androidApps.patch",
              "flatPath": "v1beta1/projects/{projectsId}/androidApps/{androidAppsId}",
              "response": {
                "$ref": "AndroidApp"
              },
              "httpMethod": "PATCH",
              "parameters": {
                "name": {
                  "required": true,
                  "pattern": "^projects/[^/]+/androidApps/[^/]+$",
                  "type": "string",
                  "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"
                },
                "updateMask": {
                  "type": "string",
                  "format": "google-fieldmask",
                  "description": "Specifies which fields to update. Note that the fields `name`, `app_id`, `project_id`, and `package_name` are all immutable.",
                  "location": "query"
                }
              }
            },
            "list": {
              "response": {
                "$ref": "ListAndroidAppsResponse"
              },
              "path": "v1beta1/{+parent}/androidApps",
              "flatPath": "v1beta1/projects/{projectsId}/androidApps",
              "parameterOrder": [
                "parent"
              ],
              "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`.",
              "httpMethod": "GET",
              "parameters": {
                "pageToken": {
                  "description": "Token returned from a previous call to `ListAndroidApps` indicating where in the set of Apps to resume listing.",
                  "location": "query",
                  "type": "string"
                },
                "pageSize": {
                  "type": "integer",
                  "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"
                },
                "parent": {
                  "required": true,
                  "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.",
                  "type": "string",
                  "pattern": "^projects/[^/]+$",
                  "location": "path"
                }
              },
              "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"
              ],
              "id": "firebase.projects.androidApps.list"
            },
            "getConfig": {
              "flatPath": "v1beta1/projects/{projectsId}/androidApps/{androidAppsId}/config",
              "httpMethod": "GET",
              "parameterOrder": [
                "name"
              ],
              "description": "Gets the configuration artifact associated with the specified AndroidApp.",
              "id": "firebase.projects.androidApps.getConfig",
              "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"
              ],
              "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.",
                  "pattern": "^projects/[^/]+/androidApps/[^/]+/config$",
                  "type": "string",
                  "required": true,
                  "location": "path"
                }
              },
              "path": "v1beta1/{+name}",
              "response": {
                "$ref": "AndroidAppConfig"
              }
            }
          }
        },
        "iosApps": {
          "methods": {
            "create": {
              "flatPath": "v1beta1/projects/{projectsId}/iosApps",
              "path": "v1beta1/{+parent}/iosApps",
              "httpMethod": "POST",
              "id": "firebase.projects.iosApps.create",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/firebase"
              ],
              "response": {
                "$ref": "Operation"
              },
              "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",
                  "type": "string",
                  "required": true,
                  "pattern": "^projects/[^/]+$"
                }
              },
              "request": {
                "$ref": "IosApp"
              },
              "parameterOrder": [
                "parent"
              ],
              "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`."
            },
            "getConfig": {
              "description": "Gets the configuration artifact associated with the specified IosApp.",
              "response": {
                "$ref": "IosAppConfig"
              },
              "parameters": {
                "name": {
                  "required": true,
                  "location": "path",
                  "type": "string",
                  "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.",
                  "pattern": "^projects/[^/]+/iosApps/[^/]+/config$"
                }
              },
              "id": "firebase.projects.iosApps.getConfig",
              "httpMethod": "GET",
              "path": "v1beta1/{+name}",
              "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"
              ],
              "parameterOrder": [
                "name"
              ],
              "flatPath": "v1beta1/projects/{projectsId}/iosApps/{iosAppsId}/config"
            },
            "get": {
              "httpMethod": "GET",
              "description": "Gets the specified IosApp.",
              "response": {
                "$ref": "IosApp"
              },
              "path": "v1beta1/{+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.",
                  "pattern": "^projects/[^/]+/iosApps/[^/]+$",
                  "type": "string",
                  "required": true,
                  "location": "path"
                }
              },
              "id": "firebase.projects.iosApps.get",
              "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"
              ],
              "flatPath": "v1beta1/projects/{projectsId}/iosApps/{iosAppsId}",
              "parameterOrder": [
                "name"
              ]
            },
            "patch": {
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "name": {
                  "required": true,
                  "location": "path",
                  "type": "string",
                  "pattern": "^projects/[^/]+/iosApps/[^/]+$",
                  "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))."
                },
                "updateMask": {
                  "type": "string",
                  "location": "query",
                  "format": "google-fieldmask",
                  "description": "Specifies which fields to update. Note that the fields `name`, `appId`, `projectId`, and `bundleId` are all immutable."
                }
              },
              "flatPath": "v1beta1/projects/{projectsId}/iosApps/{iosAppsId}",
              "path": "v1beta1/{+name}",
              "response": {
                "$ref": "IosApp"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/firebase"
              ],
              "id": "firebase.projects.iosApps.patch",
              "request": {
                "$ref": "IosApp"
              },
              "httpMethod": "PATCH",
              "description": "Updates the attributes of the specified IosApp."
            },
            "list": {
              "id": "firebase.projects.iosApps.list",
              "parameterOrder": [
                "parent"
              ],
              "parameters": {
                "parent": {
                  "required": true,
                  "location": "path",
                  "type": "string",
                  "pattern": "^projects/[^/]+$",
                  "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."
                },
                "pageToken": {
                  "description": "Token returned from a previous call to `ListIosApps` indicating where in the set of Apps to resume listing.",
                  "type": "string",
                  "location": "query"
                },
                "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.",
                  "location": "query",
                  "type": "integer",
                  "format": "int32"
                }
              },
              "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"
              ],
              "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",
              "path": "v1beta1/{+parent}/iosApps"
            }
          }
        },
        "defaultLocation": {
          "methods": {
            "finalize": {
              "path": "v1beta1/{+parent}/defaultLocation:finalize",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/firebase"
              ],
              "httpMethod": "POST",
              "parameters": {
                "parent": {
                  "type": "string",
                  "pattern": "^projects/[^/]+$",
                  "location": "path",
                  "required": true,
                  "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."
                }
              },
              "response": {
                "$ref": "Operation"
              },
              "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",
              "request": {
                "$ref": "FinalizeDefaultLocationRequest"
              },
              "id": "firebase.projects.defaultLocation.finalize",
              "parameterOrder": [
                "parent"
              ]
            }
          }
        },
        "availableLocations": {
          "methods": {
            "list": {
              "flatPath": "v1beta1/projects/{projectsId}/availableLocations",
              "httpMethod": "GET",
              "path": "v1beta1/{+parent}/availableLocations",
              "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",
                  "type": "integer",
                  "location": "query"
                },
                "pageToken": {
                  "description": "Token returned from a previous call to `ListAvailableLocations` indicating where in the list of locations to resume listing.",
                  "type": "string",
                  "location": "query"
                },
                "parent": {
                  "type": "string",
                  "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.",
                  "required": true,
                  "location": "path",
                  "pattern": "^projects/[^/]+$"
                }
              },
              "response": {
                "$ref": "ListAvailableLocationsResponse"
              },
              "id": "firebase.projects.availableLocations.list",
              "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"
              ],
              "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.",
              "parameterOrder": [
                "parent"
              ]
            }
          }
        }
      }
    },
    "availableProjects": {
      "methods": {
        "list": {
          "flatPath": "v1beta1/availableProjects",
          "httpMethod": "GET",
          "path": "v1beta1/availableProjects",
          "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"
          ],
          "response": {
            "$ref": "ListAvailableProjectsResponse"
          },
          "parameterOrder": [],
          "id": "firebase.availableProjects.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. ",
          "parameters": {
            "pageSize": {
              "type": "integer",
              "format": "int32",
              "location": "query",
              "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."
            },
            "pageToken": {
              "type": "string",
              "location": "query",
              "description": "Token returned from a previous call to `ListAvailableProjects` indicating where in the set of Projects to resume listing."
            }
          }
        }
      }
    },
    "operations": {
      "methods": {
        "get": {
          "httpMethod": "GET",
          "response": {
            "$ref": "Operation"
          },
          "parameters": {
            "name": {
              "type": "string",
              "location": "path",
              "description": "The name of the operation resource.",
              "required": true,
              "pattern": "^operations/.*$"
            }
          },
          "parameterOrder": [
            "name"
          ],
          "path": "v1beta1/{+name}",
          "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.",
          "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"
          ],
          "flatPath": "v1beta1/operations/{operationsId}",
          "id": "firebase.operations.get"
        }
      }
    }
  },
  "auth": {
    "oauth2": {
      "scopes": {
        "https://www.googleapis.com/auth/cloud-platform": {
          "description": "View and manage 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"
        },
        "https://www.googleapis.com/auth/cloud-platform.read-only": {
          "description": "View your data across Google Cloud Platform services"
        }
      }
    }
  },
  "description": "The Firebase Management API enables programmatic setup and management of Firebase projects, including a project's Firebase resources and Firebase apps.",
  "icons": {
    "x16": "http://www.google.com/images/icons/product/search-16.gif",
    "x32": "http://www.google.com/images/icons/product/search-32.gif"
  },
  "documentationLink": "https://firebase.google.com",
  "mtlsRootUrl": "https://firebase.mtls.googleapis.com/",
  "kind": "discovery#restDescription",
  "discoveryVersion": "v1",
  "ownerName": "Google",
  "rootUrl": "https://firebase.googleapis.com/",
  "canonicalName": "Firebase Management",
  "ownerDomain": "google.com",
  "parameters": {
    "oauth_token": {
      "description": "OAuth 2.0 token for the current user.",
      "location": "query",
      "type": "string"
    },
    "fields": {
      "location": "query",
      "type": "string",
      "description": "Selector specifying which fields to include in a partial response."
    },
    "alt": {
      "location": "query",
      "default": "json",
      "type": "string",
      "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"
      ]
    },
    "access_token": {
      "description": "OAuth access token.",
      "type": "string",
      "location": "query"
    },
    "callback": {
      "type": "string",
      "location": "query",
      "description": "JSONP"
    },
    "uploadType": {
      "type": "string",
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
      "location": "query"
    },
    "$.xgafv": {
      "description": "V1 error format.",
      "location": "query",
      "type": "string",
      "enum": [
        "1",
        "2"
      ],
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ]
    },
    "quotaUser": {
      "location": "query",
      "type": "string",
      "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."
    },
    "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"
    },
    "upload_protocol": {
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
      "location": "query",
      "type": "string"
    },
    "prettyPrint": {
      "description": "Returns response with indentations and line breaks.",
      "location": "query",
      "default": "true",
      "type": "boolean"
    }
  },
  "servicePath": "",
  "version": "v1beta1",
  "basePath": ""
}
