{
"auth": {
"oauth2": {
"scopes": {
"https://www.googleapis.com/auth/cloud-platform": {
"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account."
},
"https://www.googleapis.com/auth/firebase": {
"description": "View and administer all your Firebase data and settings"
}
}
}
},
"basePath": "",
"baseUrl": "https://firebaseappcheck.googleapis.com/",
"batchPath": "batch",
"canonicalName": "Firebaseappcheck",
"description": "Firebase App Check works alongside other Firebase services to help protect your backend resources from abuse, such as billing fraud or phishing.",
"discoveryVersion": "v1",
"documentationLink": "https://firebase.google.com/docs/app-check",
"fullyEncodeReservedExpansion": true,
"icons": {
"x16": "http://www.google.com/images/icons/product/search-16.gif",
"x32": "http://www.google.com/images/icons/product/search-32.gif"
},
"id": "firebaseappcheck:v1beta",
"kind": "discovery#restDescription",
"mtlsRootUrl": "https://firebaseappcheck.mtls.googleapis.com/",
"name": "firebaseappcheck",
"ownerDomain": "google.com",
"ownerName": "Google",
"parameters": {
"$.xgafv": {
"description": "V1 error format.",
"enum": [
"1",
"2"
],
"enumDescriptions": [
"v1 error format",
"v2 error format"
],
"location": "query",
"type": "string"
},
"access_token": {
"description": "OAuth access token.",
"location": "query",
"type": "string"
},
"alt": {
"default": "json",
"description": "Data format for response.",
"enum": [
"json",
"media",
"proto"
],
"enumDescriptions": [
"Responses with Content-Type of application/json",
"Media download with context-dependent Content-Type",
"Responses with Content-Type of application/x-protobuf"
],
"location": "query",
"type": "string"
},
"callback": {
"description": "JSONP",
"location": "query",
"type": "string"
},
"fields": {
"description": "Selector specifying which fields to include in a partial response.",
"location": "query",
"type": "string"
},
"key": {
"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
"location": "query",
"type": "string"
},
"oauth_token": {
"description": "OAuth 2.0 token for the current user.",
"location": "query",
"type": "string"
},
"prettyPrint": {
"default": "true",
"description": "Returns response with indentations and line breaks.",
"location": "query",
"type": "boolean"
},
"quotaUser": {
"description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
"location": "query",
"type": "string"
},
"uploadType": {
"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
"location": "query",
"type": "string"
},
"upload_protocol": {
"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
"location": "query",
"type": "string"
}
},
"protocol": "rest",
"resources": {
"jwks": {
"methods": {
"get": {
"description": "Returns a public JWK set as specified by [RFC 7517](https://tools.ietf.org/html/rfc7517) that can be used to verify App Check tokens. Exactly one of the public keys in the returned set will successfully validate any App Check token that is currently valid.",
"flatPath": "v1beta/jwks",
"httpMethod": "GET",
"id": "firebaseappcheck.jwks.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. The relative resource name to the public JWK set. Must always be exactly the string `jwks`.",
"location": "path",
"pattern": "^jwks$",
"required": true,
"type": "string"
}
},
"path": "v1beta/{+name}",
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaPublicJwkSet"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
}
}
},
"oauthClients": {
"methods": {
"exchangeAppAttestAssertion": {
"description": "Accepts an App Attest assertion and an artifact previously obtained from ExchangeAppAttestAttestation and verifies those with Apple. If valid, returns an AppCheckToken.",
"flatPath": "v1beta/oauthClients/{oauthClientsId}:exchangeAppAttestAssertion",
"httpMethod": "POST",
"id": "firebaseappcheck.oauthClients.exchangeAppAttestAssertion",
"parameterOrder": [
"app"
],
"parameters": {
"app": {
"description": "Required. The relative resource name of the iOS app, in the format: ``` projects/{project_number}/apps/{app_id} ``` If necessary, the `project_number` element can be replaced with the project ID of the Firebase project. Learn more about using project identifiers in Google's [AIP 2510](https://google.aip.dev/cloud/2510) standard. Alternatively, if this method is being called for an OAuth client protected by App Check, this field can also be in the format: ``` oauthClients/{oauth_client_id} ``` You can view the OAuth client ID for your OAuth clients in the Google Cloud console. Note that only iOS OAuth clients are supported at this time, and they must be linked to corresponding iOS Firebase apps. Please see [the documentation](https://developers.google.com/identity/sign-in/ios/appcheck/get-started#project-setup) for more information.",
"location": "path",
"pattern": "^oauthClients/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta/{+app}:exchangeAppAttestAssertion",
"request": {
"$ref": "GoogleFirebaseAppcheckV1betaExchangeAppAttestAssertionRequest"
},
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaAppCheckToken"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
},
"exchangeAppAttestAttestation": {
"description": "Accepts an App Attest CBOR attestation and verifies it with Apple using your preconfigured team and bundle IDs. If valid, returns an attestation artifact that can later be exchanged for an AppCheckToken using ExchangeAppAttestAssertion. For convenience and performance, this method's response object will also contain an AppCheckToken (if the verification is successful).",
"flatPath": "v1beta/oauthClients/{oauthClientsId}:exchangeAppAttestAttestation",
"httpMethod": "POST",
"id": "firebaseappcheck.oauthClients.exchangeAppAttestAttestation",
"parameterOrder": [
"app"
],
"parameters": {
"app": {
"description": "Required. The relative resource name of the iOS app, in the format: ``` projects/{project_number}/apps/{app_id} ``` If necessary, the `project_number` element can be replaced with the project ID of the Firebase project. Learn more about using project identifiers in Google's [AIP 2510](https://google.aip.dev/cloud/2510) standard. Alternatively, if this method is being called for an OAuth client protected by App Check, this field can also be in the format: ``` oauthClients/{oauth_client_id} ``` You can view the OAuth client ID for your OAuth clients in the Google Cloud console. Note that only iOS OAuth clients are supported at this time, and they must be linked to corresponding iOS Firebase apps. Please see [the documentation](https://developers.google.com/identity/sign-in/ios/appcheck/get-started#project-setup) for more information.",
"location": "path",
"pattern": "^oauthClients/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta/{+app}:exchangeAppAttestAttestation",
"request": {
"$ref": "GoogleFirebaseAppcheckV1betaExchangeAppAttestAttestationRequest"
},
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaExchangeAppAttestAttestationResponse"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
},
"exchangeDebugToken": {
"description": "Validates a debug token secret that you have previously created using CreateDebugToken. If valid, returns an AppCheckToken. Note that a restrictive quota is enforced on this method to prevent accidental exposure of the app to abuse.",
"flatPath": "v1beta/oauthClients/{oauthClientsId}:exchangeDebugToken",
"httpMethod": "POST",
"id": "firebaseappcheck.oauthClients.exchangeDebugToken",
"parameterOrder": [
"app"
],
"parameters": {
"app": {
"description": "Required. The relative resource name of the app, in the format: ``` projects/{project_number}/apps/{app_id} ``` If necessary, the `project_number` element can be replaced with the project ID of the Firebase project. Learn more about using project identifiers in Google's [AIP 2510](https://google.aip.dev/cloud/2510) standard. Alternatively, if this method is being called for an OAuth client protected by App Check, this field can also be in the format: ``` oauthClients/{oauth_client_id} ``` You can view the OAuth client ID for your OAuth clients in the Google Cloud console. Note that only iOS OAuth clients are supported at this time, and they must be linked to corresponding iOS Firebase apps. Please see [the documentation](https://developers.google.com/identity/sign-in/ios/appcheck/get-started#project-setup) for more information.",
"location": "path",
"pattern": "^oauthClients/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta/{+app}:exchangeDebugToken",
"request": {
"$ref": "GoogleFirebaseAppcheckV1betaExchangeDebugTokenRequest"
},
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaAppCheckToken"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
},
"generateAppAttestChallenge": {
"description": "Generates a challenge that protects the integrity of an immediately following call to ExchangeAppAttestAttestation or ExchangeAppAttestAssertion. A challenge should not be reused for multiple calls.",
"flatPath": "v1beta/oauthClients/{oauthClientsId}:generateAppAttestChallenge",
"httpMethod": "POST",
"id": "firebaseappcheck.oauthClients.generateAppAttestChallenge",
"parameterOrder": [
"app"
],
"parameters": {
"app": {
"description": "Required. The relative resource name of the iOS app, in the format: ``` projects/{project_number}/apps/{app_id} ``` If necessary, the `project_number` element can be replaced with the project ID of the Firebase project. Learn more about using project identifiers in Google's [AIP 2510](https://google.aip.dev/cloud/2510) standard. Alternatively, if this method is being called for an OAuth client protected by App Check, this field can also be in the format: ``` oauthClients/{oauth_client_id} ``` You can view the OAuth client ID for your OAuth clients in the Google Cloud console. Note that only iOS OAuth clients are supported at this time, and they must be linked to corresponding iOS Firebase apps. Please see [the documentation](https://developers.google.com/identity/sign-in/ios/appcheck/get-started#project-setup) for more information.",
"location": "path",
"pattern": "^oauthClients/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta/{+app}:generateAppAttestChallenge",
"request": {
"$ref": "GoogleFirebaseAppcheckV1betaGenerateAppAttestChallengeRequest"
},
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaGenerateAppAttestChallengeResponse"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
}
}
},
"projects": {
"methods": {
"verifyAppCheckToken": {
"description": "Verifies the given App Check token and returns token usage signals that callers may act upon. This method currently only supports App Check tokens exchanged from the following attestation providers: * Play Integrity API * App Attest * DeviceCheck (`DCDevice` tokens) * reCAPTCHA Enterprise * reCAPTCHA v3 * Custom providers App Check tokens exchanged from debug secrets are also supported. Calling this method on an otherwise valid App Check token with an unsupported provider will cause an HTTP 400 error to be returned. Returns whether this token was already consumed before this call. If this is the first time this method has seen the given App Check token, the field `already_consumed` in the response will be absent. The given token will then be marked as `already_consumed` (set to `true`) for all future invocations of this method for that token. Note that if the given App Check token is invalid, an HTTP 403 error is returned instead of a response object, regardless whether the token was already consumed. Currently, when evaluating whether an App Check token was already consumed, only calls to this exact method are counted. Use of the App Check token elsewhere will not mark the token as being already consumed. The caller must have the [`firebaseappcheck.appCheckTokens.verify`](https://firebase.google.com/docs/projects/iam/permissions#app-check) permission to call this method. This permission is part of the [Firebase App Check Token Verifier role](https://firebase.google.com/docs/projects/iam/roles-predefined-product#app-check).",
"flatPath": "v1beta/projects/{projectsId}:verifyAppCheckToken",
"httpMethod": "POST",
"id": "firebaseappcheck.projects.verifyAppCheckToken",
"parameterOrder": [
"project"
],
"parameters": {
"project": {
"description": "Required. The relative resource name of the project for which the token was minted, in the format: ``` projects/{project_number} ``` If necessary, the `project_number` element can be replaced with the project ID of the Firebase project. Learn more about using project identifiers in Google's [AIP 2510](https://google.aip.dev/cloud/2510) standard.",
"location": "path",
"pattern": "^projects/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta/{+project}:verifyAppCheckToken",
"request": {
"$ref": "GoogleFirebaseAppcheckV1betaVerifyAppCheckTokenRequest"
},
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaVerifyAppCheckTokenResponse"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
}
},
"resources": {
"apps": {
"methods": {
"exchangeAppAttestAssertion": {
"description": "Accepts an App Attest assertion and an artifact previously obtained from ExchangeAppAttestAttestation and verifies those with Apple. If valid, returns an AppCheckToken.",
"flatPath": "v1beta/projects/{projectsId}/apps/{appsId}:exchangeAppAttestAssertion",
"httpMethod": "POST",
"id": "firebaseappcheck.projects.apps.exchangeAppAttestAssertion",
"parameterOrder": [
"app"
],
"parameters": {
"app": {
"description": "Required. The relative resource name of the iOS app, in the format: ``` projects/{project_number}/apps/{app_id} ``` If necessary, the `project_number` element can be replaced with the project ID of the Firebase project. Learn more about using project identifiers in Google's [AIP 2510](https://google.aip.dev/cloud/2510) standard. Alternatively, if this method is being called for an OAuth client protected by App Check, this field can also be in the format: ``` oauthClients/{oauth_client_id} ``` You can view the OAuth client ID for your OAuth clients in the Google Cloud console. Note that only iOS OAuth clients are supported at this time, and they must be linked to corresponding iOS Firebase apps. Please see [the documentation](https://developers.google.com/identity/sign-in/ios/appcheck/get-started#project-setup) for more information.",
"location": "path",
"pattern": "^projects/[^/]+/apps/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta/{+app}:exchangeAppAttestAssertion",
"request": {
"$ref": "GoogleFirebaseAppcheckV1betaExchangeAppAttestAssertionRequest"
},
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaAppCheckToken"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
},
"exchangeAppAttestAttestation": {
"description": "Accepts an App Attest CBOR attestation and verifies it with Apple using your preconfigured team and bundle IDs. If valid, returns an attestation artifact that can later be exchanged for an AppCheckToken using ExchangeAppAttestAssertion. For convenience and performance, this method's response object will also contain an AppCheckToken (if the verification is successful).",
"flatPath": "v1beta/projects/{projectsId}/apps/{appsId}:exchangeAppAttestAttestation",
"httpMethod": "POST",
"id": "firebaseappcheck.projects.apps.exchangeAppAttestAttestation",
"parameterOrder": [
"app"
],
"parameters": {
"app": {
"description": "Required. The relative resource name of the iOS app, in the format: ``` projects/{project_number}/apps/{app_id} ``` If necessary, the `project_number` element can be replaced with the project ID of the Firebase project. Learn more about using project identifiers in Google's [AIP 2510](https://google.aip.dev/cloud/2510) standard. Alternatively, if this method is being called for an OAuth client protected by App Check, this field can also be in the format: ``` oauthClients/{oauth_client_id} ``` You can view the OAuth client ID for your OAuth clients in the Google Cloud console. Note that only iOS OAuth clients are supported at this time, and they must be linked to corresponding iOS Firebase apps. Please see [the documentation](https://developers.google.com/identity/sign-in/ios/appcheck/get-started#project-setup) for more information.",
"location": "path",
"pattern": "^projects/[^/]+/apps/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta/{+app}:exchangeAppAttestAttestation",
"request": {
"$ref": "GoogleFirebaseAppcheckV1betaExchangeAppAttestAttestationRequest"
},
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaExchangeAppAttestAttestationResponse"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
},
"exchangeCustomToken": {
"description": "Validates a custom token signed using your project's Admin SDK service account credentials. If valid, returns an AppCheckToken.",
"flatPath": "v1beta/projects/{projectsId}/apps/{appsId}:exchangeCustomToken",
"httpMethod": "POST",
"id": "firebaseappcheck.projects.apps.exchangeCustomToken",
"parameterOrder": [
"app"
],
"parameters": {
"app": {
"description": "Required. The relative resource name of the app, in the format: ``` projects/{project_number}/apps/{app_id} ``` If necessary, the `project_number` element can be replaced with the project ID of the Firebase project. Learn more about using project identifiers in Google's [AIP 2510](https://google.aip.dev/cloud/2510) standard.",
"location": "path",
"pattern": "^projects/[^/]+/apps/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta/{+app}:exchangeCustomToken",
"request": {
"$ref": "GoogleFirebaseAppcheckV1betaExchangeCustomTokenRequest"
},
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaAppCheckToken"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
},
"exchangeDebugToken": {
"description": "Validates a debug token secret that you have previously created using CreateDebugToken. If valid, returns an AppCheckToken. Note that a restrictive quota is enforced on this method to prevent accidental exposure of the app to abuse.",
"flatPath": "v1beta/projects/{projectsId}/apps/{appsId}:exchangeDebugToken",
"httpMethod": "POST",
"id": "firebaseappcheck.projects.apps.exchangeDebugToken",
"parameterOrder": [
"app"
],
"parameters": {
"app": {
"description": "Required. The relative resource name of the app, in the format: ``` projects/{project_number}/apps/{app_id} ``` If necessary, the `project_number` element can be replaced with the project ID of the Firebase project. Learn more about using project identifiers in Google's [AIP 2510](https://google.aip.dev/cloud/2510) standard. Alternatively, if this method is being called for an OAuth client protected by App Check, this field can also be in the format: ``` oauthClients/{oauth_client_id} ``` You can view the OAuth client ID for your OAuth clients in the Google Cloud console. Note that only iOS OAuth clients are supported at this time, and they must be linked to corresponding iOS Firebase apps. Please see [the documentation](https://developers.google.com/identity/sign-in/ios/appcheck/get-started#project-setup) for more information.",
"location": "path",
"pattern": "^projects/[^/]+/apps/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta/{+app}:exchangeDebugToken",
"request": {
"$ref": "GoogleFirebaseAppcheckV1betaExchangeDebugTokenRequest"
},
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaAppCheckToken"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
},
"exchangeDeviceCheckToken": {
"description": "Accepts a [`device_token`](https://developer.apple.com/documentation/devicecheck/dcdevice) issued by DeviceCheck, and attempts to validate it with Apple. If valid, returns an AppCheckToken.",
"flatPath": "v1beta/projects/{projectsId}/apps/{appsId}:exchangeDeviceCheckToken",
"httpMethod": "POST",
"id": "firebaseappcheck.projects.apps.exchangeDeviceCheckToken",
"parameterOrder": [
"app"
],
"parameters": {
"app": {
"description": "Required. The relative resource name of the iOS app, in the format: ``` projects/{project_number}/apps/{app_id} ``` If necessary, the `project_number` element can be replaced with the project ID of the Firebase project. Learn more about using project identifiers in Google's [AIP 2510](https://google.aip.dev/cloud/2510) standard.",
"location": "path",
"pattern": "^projects/[^/]+/apps/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta/{+app}:exchangeDeviceCheckToken",
"request": {
"$ref": "GoogleFirebaseAppcheckV1betaExchangeDeviceCheckTokenRequest"
},
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaAppCheckToken"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
},
"exchangePlayIntegrityToken": {
"description": "Validates an [integrity verdict response token from Play Integrity](https://developer.android.com/google/play/integrity/verdict#decrypt-verify). If valid, returns an AppCheckToken.",
"flatPath": "v1beta/projects/{projectsId}/apps/{appsId}:exchangePlayIntegrityToken",
"httpMethod": "POST",
"id": "firebaseappcheck.projects.apps.exchangePlayIntegrityToken",
"parameterOrder": [
"app"
],
"parameters": {
"app": {
"description": "Required. The relative resource name of the Android app, in the format: ``` projects/{project_number}/apps/{app_id} ``` If necessary, the `project_number` element can be replaced with the project ID of the Firebase project. Learn more about using project identifiers in Google's [AIP 2510](https://google.aip.dev/cloud/2510) standard.",
"location": "path",
"pattern": "^projects/[^/]+/apps/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta/{+app}:exchangePlayIntegrityToken",
"request": {
"$ref": "GoogleFirebaseAppcheckV1betaExchangePlayIntegrityTokenRequest"
},
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaAppCheckToken"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
},
"exchangeRecaptchaEnterpriseToken": {
"description": "Validates a [reCAPTCHA Enterprise response token](https://cloud.google.com/recaptcha-enterprise/docs/create-assessment#retrieve_token). If valid, returns an App Check token AppCheckToken.",
"flatPath": "v1beta/projects/{projectsId}/apps/{appsId}:exchangeRecaptchaEnterpriseToken",
"httpMethod": "POST",
"id": "firebaseappcheck.projects.apps.exchangeRecaptchaEnterpriseToken",
"parameterOrder": [
"app"
],
"parameters": {
"app": {
"description": "Required. The relative resource name of the web app, in the format: ``` projects/{project_number}/apps/{app_id} ``` If necessary, the `project_number` element can be replaced with the project ID of the Firebase project. Learn more about using project identifiers in Google's [AIP 2510](https://google.aip.dev/cloud/2510) standard.",
"location": "path",
"pattern": "^projects/[^/]+/apps/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta/{+app}:exchangeRecaptchaEnterpriseToken",
"request": {
"$ref": "GoogleFirebaseAppcheckV1betaExchangeRecaptchaEnterpriseTokenRequest"
},
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaAppCheckToken"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
},
"exchangeRecaptchaToken": {
"deprecated": true,
"description": "Validates a [reCAPTCHA v3 response token](https://developers.google.com/recaptcha/docs/v3). If valid, returns an AppCheckToken.",
"flatPath": "v1beta/projects/{projectsId}/apps/{appsId}:exchangeRecaptchaToken",
"httpMethod": "POST",
"id": "firebaseappcheck.projects.apps.exchangeRecaptchaToken",
"parameterOrder": [
"app"
],
"parameters": {
"app": {
"description": "Required. The relative resource name of the web app, in the format: ``` projects/{project_number}/apps/{app_id} ``` If necessary, the `project_number` element can be replaced with the project ID of the Firebase project. Learn more about using project identifiers in Google's [AIP 2510](https://google.aip.dev/cloud/2510) standard.",
"location": "path",
"pattern": "^projects/[^/]+/apps/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta/{+app}:exchangeRecaptchaToken",
"request": {
"$ref": "GoogleFirebaseAppcheckV1betaExchangeRecaptchaTokenRequest"
},
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaAppCheckToken"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
},
"exchangeRecaptchaV3Token": {
"description": "Validates a [reCAPTCHA v3 response token](https://developers.google.com/recaptcha/docs/v3). If valid, returns an AppCheckToken.",
"flatPath": "v1beta/projects/{projectsId}/apps/{appsId}:exchangeRecaptchaV3Token",
"httpMethod": "POST",
"id": "firebaseappcheck.projects.apps.exchangeRecaptchaV3Token",
"parameterOrder": [
"app"
],
"parameters": {
"app": {
"description": "Required. The relative resource name of the web app, in the format: ``` projects/{project_number}/apps/{app_id} ``` If necessary, the `project_number` element can be replaced with the project ID of the Firebase project. Learn more about using project identifiers in Google's [AIP 2510](https://google.aip.dev/cloud/2510) standard.",
"location": "path",
"pattern": "^projects/[^/]+/apps/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta/{+app}:exchangeRecaptchaV3Token",
"request": {
"$ref": "GoogleFirebaseAppcheckV1betaExchangeRecaptchaV3TokenRequest"
},
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaAppCheckToken"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
},
"exchangeSafetyNetToken": {
"deprecated": true,
"description": "Validates a [SafetyNet token](https://developer.android.com/training/safetynet/attestation#request-attestation-step). If valid, returns an AppCheckToken.",
"flatPath": "v1beta/projects/{projectsId}/apps/{appsId}:exchangeSafetyNetToken",
"httpMethod": "POST",
"id": "firebaseappcheck.projects.apps.exchangeSafetyNetToken",
"parameterOrder": [
"app"
],
"parameters": {
"app": {
"description": "Required. The relative resource name of the Android app, in the format: ``` projects/{project_number}/apps/{app_id} ``` If necessary, the `project_number` element can be replaced with the project ID of the Firebase project. Learn more about using project identifiers in Google's [AIP 2510](https://google.aip.dev/cloud/2510) standard.",
"location": "path",
"pattern": "^projects/[^/]+/apps/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta/{+app}:exchangeSafetyNetToken",
"request": {
"$ref": "GoogleFirebaseAppcheckV1betaExchangeSafetyNetTokenRequest"
},
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaAppCheckToken"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
},
"generateAppAttestChallenge": {
"description": "Generates a challenge that protects the integrity of an immediately following call to ExchangeAppAttestAttestation or ExchangeAppAttestAssertion. A challenge should not be reused for multiple calls.",
"flatPath": "v1beta/projects/{projectsId}/apps/{appsId}:generateAppAttestChallenge",
"httpMethod": "POST",
"id": "firebaseappcheck.projects.apps.generateAppAttestChallenge",
"parameterOrder": [
"app"
],
"parameters": {
"app": {
"description": "Required. The relative resource name of the iOS app, in the format: ``` projects/{project_number}/apps/{app_id} ``` If necessary, the `project_number` element can be replaced with the project ID of the Firebase project. Learn more about using project identifiers in Google's [AIP 2510](https://google.aip.dev/cloud/2510) standard. Alternatively, if this method is being called for an OAuth client protected by App Check, this field can also be in the format: ``` oauthClients/{oauth_client_id} ``` You can view the OAuth client ID for your OAuth clients in the Google Cloud console. Note that only iOS OAuth clients are supported at this time, and they must be linked to corresponding iOS Firebase apps. Please see [the documentation](https://developers.google.com/identity/sign-in/ios/appcheck/get-started#project-setup) for more information.",
"location": "path",
"pattern": "^projects/[^/]+/apps/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta/{+app}:generateAppAttestChallenge",
"request": {
"$ref": "GoogleFirebaseAppcheckV1betaGenerateAppAttestChallengeRequest"
},
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaGenerateAppAttestChallengeResponse"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
},
"generatePlayIntegrityChallenge": {
"description": "Generates a challenge that protects the integrity of an immediately following integrity verdict request to the Play Integrity API. The next call to ExchangePlayIntegrityToken using the resulting integrity token will verify the presence and validity of the challenge. A challenge should not be reused for multiple calls.",
"flatPath": "v1beta/projects/{projectsId}/apps/{appsId}:generatePlayIntegrityChallenge",
"httpMethod": "POST",
"id": "firebaseappcheck.projects.apps.generatePlayIntegrityChallenge",
"parameterOrder": [
"app"
],
"parameters": {
"app": {
"description": "Required. The relative resource name of the app, in the format: ``` projects/{project_number}/apps/{app_id} ``` If necessary, the `project_number` element can be replaced with the project ID of the Firebase project. Learn more about using project identifiers in Google's [AIP 2510](https://google.aip.dev/cloud/2510) standard.",
"location": "path",
"pattern": "^projects/[^/]+/apps/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta/{+app}:generatePlayIntegrityChallenge",
"request": {
"$ref": "GoogleFirebaseAppcheckV1betaGeneratePlayIntegrityChallengeRequest"
},
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaGeneratePlayIntegrityChallengeResponse"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
}
},
"resources": {
"appAttestConfig": {
"methods": {
"batchGet": {
"description": "Atomically gets the AppAttestConfigs for the specified list of apps.",
"flatPath": "v1beta/projects/{projectsId}/apps/-/appAttestConfig:batchGet",
"httpMethod": "GET",
"id": "firebaseappcheck.projects.apps.appAttestConfig.batchGet",
"parameterOrder": [
"parent"
],
"parameters": {
"names": {
"description": "Required. The relative resource names of the AppAttestConfigs to retrieve, in the format ``` projects/{project_number}/apps/{app_id}/appAttestConfig ``` A maximum of 100 objects can be retrieved in a batch.",
"location": "query",
"repeated": true,
"type": "string"
},
"parent": {
"description": "Required. The parent project name shared by all AppAttestConfigs being retrieved, in the format ``` projects/{project_number} ``` The parent collection in the `name` field of any resource being retrieved must match this field, or the entire batch fails.",
"location": "path",
"pattern": "^projects/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta/{+parent}/apps/-/appAttestConfig:batchGet",
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaBatchGetAppAttestConfigsResponse"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
},
"get": {
"description": "Gets the AppAttestConfig for the specified app.",
"flatPath": "v1beta/projects/{projectsId}/apps/{appsId}/appAttestConfig",
"httpMethod": "GET",
"id": "firebaseappcheck.projects.apps.appAttestConfig.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. The relative resource name of the AppAttestConfig, in the format: ``` projects/{project_number}/apps/{app_id}/appAttestConfig ```",
"location": "path",
"pattern": "^projects/[^/]+/apps/[^/]+/appAttestConfig$",
"required": true,
"type": "string"
}
},
"path": "v1beta/{+name}",
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaAppAttestConfig"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
},
"patch": {
"description": "Updates the AppAttestConfig for the specified app. While this configuration is incomplete or invalid, the app will be unable to exchange AppAttest tokens for App Check tokens.",
"flatPath": "v1beta/projects/{projectsId}/apps/{appsId}/appAttestConfig",
"httpMethod": "PATCH",
"id": "firebaseappcheck.projects.apps.appAttestConfig.patch",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. The relative resource name of the App Attest configuration object, in the format: ``` projects/{project_number}/apps/{app_id}/appAttestConfig ```",
"location": "path",
"pattern": "^projects/[^/]+/apps/[^/]+/appAttestConfig$",
"required": true,
"type": "string"
},
"updateMask": {
"description": "Required. A comma-separated list of names of fields in the AppAttestConfig to update. Example: `token_ttl`.",
"format": "google-fieldmask",
"location": "query",
"type": "string"
}
},
"path": "v1beta/{+name}",
"request": {
"$ref": "GoogleFirebaseAppcheckV1betaAppAttestConfig"
},
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaAppAttestConfig"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
}
}
},
"debugTokens": {
"methods": {
"create": {
"description": "Creates a new DebugToken for the specified app. For security reasons, after the creation operation completes, the `token` field cannot be updated or retrieved, but you can revoke the debug token using DeleteDebugToken. Each app can have a maximum of 20 debug tokens.",
"flatPath": "v1beta/projects/{projectsId}/apps/{appsId}/debugTokens",
"httpMethod": "POST",
"id": "firebaseappcheck.projects.apps.debugTokens.create",
"parameterOrder": [
"parent"
],
"parameters": {
"parent": {
"description": "Required. The relative resource name of the parent app in which the specified DebugToken will be created, in the format: ``` projects/{project_number}/apps/{app_id} ```",
"location": "path",
"pattern": "^projects/[^/]+/apps/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta/{+parent}/debugTokens",
"request": {
"$ref": "GoogleFirebaseAppcheckV1betaDebugToken"
},
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaDebugToken"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
},
"delete": {
"description": "Deletes the specified DebugToken. A deleted debug token cannot be used to exchange for an App Check token. Use this method when you suspect the secret `token` has been compromised or when you no longer need the debug token.",
"flatPath": "v1beta/projects/{projectsId}/apps/{appsId}/debugTokens/{debugTokensId}",
"httpMethod": "DELETE",
"id": "firebaseappcheck.projects.apps.debugTokens.delete",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. The relative resource name of the DebugToken to delete, in the format: ``` projects/{project_number}/apps/{app_id}/debugTokens/{debug_token_id} ```",
"location": "path",
"pattern": "^projects/[^/]+/apps/[^/]+/debugTokens/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta/{+name}",
"response": {
"$ref": "GoogleProtobufEmpty"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
},
"get": {
"description": "Gets the specified DebugToken. For security reasons, the `token` field is never populated in the response.",
"flatPath": "v1beta/projects/{projectsId}/apps/{appsId}/debugTokens/{debugTokensId}",
"httpMethod": "GET",
"id": "firebaseappcheck.projects.apps.debugTokens.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. The relative resource name of the debug token, in the format: ``` projects/{project_number}/apps/{app_id}/debugTokens/{debug_token_id} ```",
"location": "path",
"pattern": "^projects/[^/]+/apps/[^/]+/debugTokens/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta/{+name}",
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaDebugToken"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
},
"list": {
"description": "Lists all DebugTokens for the specified app. For security reasons, the `token` field is never populated in the response.",
"flatPath": "v1beta/projects/{projectsId}/apps/{appsId}/debugTokens",
"httpMethod": "GET",
"id": "firebaseappcheck.projects.apps.debugTokens.list",
"parameterOrder": [
"parent"
],
"parameters": {
"pageSize": {
"description": "The maximum number of DebugTokens to return in the response. Note that an app can have at most 20 debug tokens. The server may return fewer than this at its own discretion. If no value is specified (or too large a value is specified), the server will impose its own limit.",
"format": "int32",
"location": "query",
"type": "integer"
},
"pageToken": {
"description": "Token returned from a previous call to ListDebugTokens indicating where in the set of DebugTokens to resume listing. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to ListDebugTokens must match the call that provided the page token; if they do not match, the result is undefined.",
"location": "query",
"type": "string"
},
"parent": {
"description": "Required. The relative resource name of the parent app for which to list each associated DebugToken, in the format: ``` projects/{project_number}/apps/{app_id} ```",
"location": "path",
"pattern": "^projects/[^/]+/apps/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta/{+parent}/debugTokens",
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaListDebugTokensResponse"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
},
"patch": {
"description": "Updates the specified DebugToken. For security reasons, the `token` field cannot be updated, nor will it be populated in the response, but you can revoke the debug token using DeleteDebugToken.",
"flatPath": "v1beta/projects/{projectsId}/apps/{appsId}/debugTokens/{debugTokensId}",
"httpMethod": "PATCH",
"id": "firebaseappcheck.projects.apps.debugTokens.patch",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. The relative resource name of the debug token, in the format: ``` projects/{project_number}/apps/{app_id}/debugTokens/{debug_token_id} ```",
"location": "path",
"pattern": "^projects/[^/]+/apps/[^/]+/debugTokens/[^/]+$",
"required": true,
"type": "string"
},
"updateMask": {
"description": "Required. A comma-separated list of names of fields in the DebugToken to update. Example: `display_name`.",
"format": "google-fieldmask",
"location": "query",
"type": "string"
}
},
"path": "v1beta/{+name}",
"request": {
"$ref": "GoogleFirebaseAppcheckV1betaDebugToken"
},
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaDebugToken"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
}
}
},
"deviceCheckConfig": {
"methods": {
"batchGet": {
"description": "Atomically gets the DeviceCheckConfigs for the specified list of apps. For security reasons, the `private_key` field is never populated in the response.",
"flatPath": "v1beta/projects/{projectsId}/apps/-/deviceCheckConfig:batchGet",
"httpMethod": "GET",
"id": "firebaseappcheck.projects.apps.deviceCheckConfig.batchGet",
"parameterOrder": [
"parent"
],
"parameters": {
"names": {
"description": "Required. The relative resource names of the DeviceCheckConfigs to retrieve, in the format ``` projects/{project_number}/apps/{app_id}/deviceCheckConfig ``` A maximum of 100 objects can be retrieved in a batch.",
"location": "query",
"repeated": true,
"type": "string"
},
"parent": {
"description": "Required. The parent project name shared by all DeviceCheckConfigs being retrieved, in the format ``` projects/{project_number} ``` The parent collection in the `name` field of any resource being retrieved must match this field, or the entire batch fails.",
"location": "path",
"pattern": "^projects/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta/{+parent}/apps/-/deviceCheckConfig:batchGet",
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaBatchGetDeviceCheckConfigsResponse"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
},
"get": {
"description": "Gets the DeviceCheckConfig for the specified app. For security reasons, the `private_key` field is never populated in the response.",
"flatPath": "v1beta/projects/{projectsId}/apps/{appsId}/deviceCheckConfig",
"httpMethod": "GET",
"id": "firebaseappcheck.projects.apps.deviceCheckConfig.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. The relative resource name of the DeviceCheckConfig, in the format: ``` projects/{project_number}/apps/{app_id}/deviceCheckConfig ```",
"location": "path",
"pattern": "^projects/[^/]+/apps/[^/]+/deviceCheckConfig$",
"required": true,
"type": "string"
}
},
"path": "v1beta/{+name}",
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaDeviceCheckConfig"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
},
"patch": {
"description": "Updates the DeviceCheckConfig for the specified app. While this configuration is incomplete or invalid, the app will be unable to exchange DeviceCheck tokens for App Check tokens. For security reasons, the `private_key` field is never populated in the response.",
"flatPath": "v1beta/projects/{projectsId}/apps/{appsId}/deviceCheckConfig",
"httpMethod": "PATCH",
"id": "firebaseappcheck.projects.apps.deviceCheckConfig.patch",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. The relative resource name of the DeviceCheck configuration object, in the format: ``` projects/{project_number}/apps/{app_id}/deviceCheckConfig ```",
"location": "path",
"pattern": "^projects/[^/]+/apps/[^/]+/deviceCheckConfig$",
"required": true,
"type": "string"
},
"updateMask": {
"description": "Required. A comma-separated list of names of fields in the DeviceCheckConfig to update. Example: `key_id,private_key`.",
"format": "google-fieldmask",
"location": "query",
"type": "string"
}
},
"path": "v1beta/{+name}",
"request": {
"$ref": "GoogleFirebaseAppcheckV1betaDeviceCheckConfig"
},
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaDeviceCheckConfig"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
}
}
},
"playIntegrityConfig": {
"methods": {
"batchGet": {
"description": "Atomically gets the PlayIntegrityConfigs for the specified list of apps.",
"flatPath": "v1beta/projects/{projectsId}/apps/-/playIntegrityConfig:batchGet",
"httpMethod": "GET",
"id": "firebaseappcheck.projects.apps.playIntegrityConfig.batchGet",
"parameterOrder": [
"parent"
],
"parameters": {
"names": {
"description": "Required. The relative resource names of the PlayIntegrityConfigs to retrieve, in the format ``` projects/{project_number}/apps/{app_id}/playIntegrityConfig ``` A maximum of 100 objects can be retrieved in a batch.",
"location": "query",
"repeated": true,
"type": "string"
},
"parent": {
"description": "Required. The parent project name shared by all PlayIntegrityConfigs being retrieved, in the format ``` projects/{project_number} ``` The parent collection in the `name` field of any resource being retrieved must match this field, or the entire batch fails.",
"location": "path",
"pattern": "^projects/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta/{+parent}/apps/-/playIntegrityConfig:batchGet",
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaBatchGetPlayIntegrityConfigsResponse"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
},
"get": {
"description": "Gets the PlayIntegrityConfig for the specified app.",
"flatPath": "v1beta/projects/{projectsId}/apps/{appsId}/playIntegrityConfig",
"httpMethod": "GET",
"id": "firebaseappcheck.projects.apps.playIntegrityConfig.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. The relative resource name of the PlayIntegrityConfig, in the format: ``` projects/{project_number}/apps/{app_id}/playIntegrityConfig ```",
"location": "path",
"pattern": "^projects/[^/]+/apps/[^/]+/playIntegrityConfig$",
"required": true,
"type": "string"
}
},
"path": "v1beta/{+name}",
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaPlayIntegrityConfig"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
},
"patch": {
"description": "Updates the PlayIntegrityConfig for the specified app. While this configuration is incomplete or invalid, the app will be unable to exchange Play Integrity tokens for App Check tokens.",
"flatPath": "v1beta/projects/{projectsId}/apps/{appsId}/playIntegrityConfig",
"httpMethod": "PATCH",
"id": "firebaseappcheck.projects.apps.playIntegrityConfig.patch",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. The relative resource name of the Play Integrity configuration object, in the format: ``` projects/{project_number}/apps/{app_id}/playIntegrityConfig ```",
"location": "path",
"pattern": "^projects/[^/]+/apps/[^/]+/playIntegrityConfig$",
"required": true,
"type": "string"
},
"updateMask": {
"description": "Required. A comma-separated list of names of fields in the PlayIntegrityConfig to update. Example: `token_ttl`.",
"format": "google-fieldmask",
"location": "query",
"type": "string"
}
},
"path": "v1beta/{+name}",
"request": {
"$ref": "GoogleFirebaseAppcheckV1betaPlayIntegrityConfig"
},
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaPlayIntegrityConfig"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
}
}
},
"recaptchaConfig": {
"deprecated": true,
"methods": {
"batchGet": {
"deprecated": true,
"description": "Atomically gets the RecaptchaConfigs for the specified list of apps. For security reasons, the `site_secret` field is never populated in the response.",
"flatPath": "v1beta/projects/{projectsId}/apps/-/recaptchaConfig:batchGet",
"httpMethod": "GET",
"id": "firebaseappcheck.projects.apps.recaptchaConfig.batchGet",
"parameterOrder": [
"parent"
],
"parameters": {
"names": {
"description": "Required. The relative resource names of the RecaptchaConfigs to retrieve, in the format: ``` projects/{project_number}/apps/{app_id}/recaptchaConfig ``` A maximum of 100 objects can be retrieved in a batch.",
"location": "query",
"repeated": true,
"type": "string"
},
"parent": {
"description": "Required. The parent project name shared by all RecaptchaConfigs being retrieved, in the format ``` projects/{project_number} ``` The parent collection in the `name` field of any resource being retrieved must match this field, or the entire batch fails.",
"location": "path",
"pattern": "^projects/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta/{+parent}/apps/-/recaptchaConfig:batchGet",
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaBatchGetRecaptchaConfigsResponse"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
},
"get": {
"deprecated": true,
"description": "Gets the RecaptchaConfig for the specified app. For security reasons, the `site_secret` field is never populated in the response.",
"flatPath": "v1beta/projects/{projectsId}/apps/{appsId}/recaptchaConfig",
"httpMethod": "GET",
"id": "firebaseappcheck.projects.apps.recaptchaConfig.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. The relative resource name of the RecaptchaConfig, in the format: ``` projects/{project_number}/apps/{app_id}/recaptchaConfig ```",
"location": "path",
"pattern": "^projects/[^/]+/apps/[^/]+/recaptchaConfig$",
"required": true,
"type": "string"
}
},
"path": "v1beta/{+name}",
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaRecaptchaConfig"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
},
"patch": {
"deprecated": true,
"description": "Updates the RecaptchaConfig for the specified app. While this configuration is incomplete or invalid, the app will be unable to exchange reCAPTCHA tokens for App Check tokens. For security reasons, the `site_secret` field is never populated in the response.",
"flatPath": "v1beta/projects/{projectsId}/apps/{appsId}/recaptchaConfig",
"httpMethod": "PATCH",
"id": "firebaseappcheck.projects.apps.recaptchaConfig.patch",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. The relative resource name of the reCAPTCHA v3 configuration object, in the format: ``` projects/{project_number}/apps/{app_id}/recaptchaConfig ```",
"location": "path",
"pattern": "^projects/[^/]+/apps/[^/]+/recaptchaConfig$",
"required": true,
"type": "string"
},
"updateMask": {
"description": "Required. A comma-separated list of names of fields in the RecaptchaConfig to update. Example: `site_secret`.",
"format": "google-fieldmask",
"location": "query",
"type": "string"
}
},
"path": "v1beta/{+name}",
"request": {
"$ref": "GoogleFirebaseAppcheckV1betaRecaptchaConfig"
},
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaRecaptchaConfig"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
}
}
},
"recaptchaEnterpriseConfig": {
"methods": {
"batchGet": {
"description": "Atomically gets the RecaptchaEnterpriseConfigs for the specified list of apps.",
"flatPath": "v1beta/projects/{projectsId}/apps/-/recaptchaEnterpriseConfig:batchGet",
"httpMethod": "GET",
"id": "firebaseappcheck.projects.apps.recaptchaEnterpriseConfig.batchGet",
"parameterOrder": [
"parent"
],
"parameters": {
"names": {
"description": "Required. The relative resource names of the RecaptchaEnterpriseConfigs to retrieve, in the format: ``` projects/{project_number}/apps/{app_id}/recaptchaEnterpriseConfig ``` A maximum of 100 objects can be retrieved in a batch.",
"location": "query",
"repeated": true,
"type": "string"
},
"parent": {
"description": "Required. The parent project name shared by all RecaptchaEnterpriseConfigs being retrieved, in the format ``` projects/{project_number} ``` The parent collection in the `name` field of any resource being retrieved must match this field, or the entire batch fails.",
"location": "path",
"pattern": "^projects/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta/{+parent}/apps/-/recaptchaEnterpriseConfig:batchGet",
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaBatchGetRecaptchaEnterpriseConfigsResponse"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
},
"get": {
"description": "Gets the RecaptchaEnterpriseConfig for the specified app.",
"flatPath": "v1beta/projects/{projectsId}/apps/{appsId}/recaptchaEnterpriseConfig",
"httpMethod": "GET",
"id": "firebaseappcheck.projects.apps.recaptchaEnterpriseConfig.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. The relative resource name of the RecaptchaEnterpriseConfig, in the format: ``` projects/{project_number}/apps/{app_id}/recaptchaEnterpriseConfig ```",
"location": "path",
"pattern": "^projects/[^/]+/apps/[^/]+/recaptchaEnterpriseConfig$",
"required": true,
"type": "string"
}
},
"path": "v1beta/{+name}",
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaRecaptchaEnterpriseConfig"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
},
"patch": {
"description": "Updates the RecaptchaEnterpriseConfig for the specified app. While this configuration is incomplete or invalid, the app will be unable to exchange reCAPTCHA Enterprise tokens for App Check tokens.",
"flatPath": "v1beta/projects/{projectsId}/apps/{appsId}/recaptchaEnterpriseConfig",
"httpMethod": "PATCH",
"id": "firebaseappcheck.projects.apps.recaptchaEnterpriseConfig.patch",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. The relative resource name of the reCAPTCHA Enterprise configuration object, in the format: ``` projects/{project_number}/apps/{app_id}/recaptchaEnterpriseConfig ```",
"location": "path",
"pattern": "^projects/[^/]+/apps/[^/]+/recaptchaEnterpriseConfig$",
"required": true,
"type": "string"
},
"updateMask": {
"description": "Required. A comma-separated list of names of fields in the RecaptchaEnterpriseConfig to update. Example: `site_key`.",
"format": "google-fieldmask",
"location": "query",
"type": "string"
}
},
"path": "v1beta/{+name}",
"request": {
"$ref": "GoogleFirebaseAppcheckV1betaRecaptchaEnterpriseConfig"
},
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaRecaptchaEnterpriseConfig"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
}
}
},
"recaptchaV3Config": {
"methods": {
"batchGet": {
"description": "Atomically gets the RecaptchaV3Configs for the specified list of apps. For security reasons, the `site_secret` field is never populated in the response.",
"flatPath": "v1beta/projects/{projectsId}/apps/-/recaptchaV3Config:batchGet",
"httpMethod": "GET",
"id": "firebaseappcheck.projects.apps.recaptchaV3Config.batchGet",
"parameterOrder": [
"parent"
],
"parameters": {
"names": {
"description": "Required. The relative resource names of the RecaptchaV3Configs to retrieve, in the format: ``` projects/{project_number}/apps/{app_id}/recaptchaV3Config ``` A maximum of 100 objects can be retrieved in a batch.",
"location": "query",
"repeated": true,
"type": "string"
},
"parent": {
"description": "Required. The parent project name shared by all RecaptchaV3Configs being retrieved, in the format ``` projects/{project_number} ``` The parent collection in the `name` field of any resource being retrieved must match this field, or the entire batch fails.",
"location": "path",
"pattern": "^projects/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta/{+parent}/apps/-/recaptchaV3Config:batchGet",
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaBatchGetRecaptchaV3ConfigsResponse"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
},
"get": {
"description": "Gets the RecaptchaV3Config for the specified app. For security reasons, the `site_secret` field is never populated in the response.",
"flatPath": "v1beta/projects/{projectsId}/apps/{appsId}/recaptchaV3Config",
"httpMethod": "GET",
"id": "firebaseappcheck.projects.apps.recaptchaV3Config.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. The relative resource name of the RecaptchaV3Config, in the format: ``` projects/{project_number}/apps/{app_id}/recaptchaV3Config ```",
"location": "path",
"pattern": "^projects/[^/]+/apps/[^/]+/recaptchaV3Config$",
"required": true,
"type": "string"
}
},
"path": "v1beta/{+name}",
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaRecaptchaV3Config"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
},
"patch": {
"description": "Updates the RecaptchaV3Config for the specified app. While this configuration is incomplete or invalid, the app will be unable to exchange reCAPTCHA V3 tokens for App Check tokens. For security reasons, the `site_secret` field is never populated in the response.",
"flatPath": "v1beta/projects/{projectsId}/apps/{appsId}/recaptchaV3Config",
"httpMethod": "PATCH",
"id": "firebaseappcheck.projects.apps.recaptchaV3Config.patch",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. The relative resource name of the reCAPTCHA v3 configuration object, in the format: ``` projects/{project_number}/apps/{app_id}/recaptchaV3Config ```",
"location": "path",
"pattern": "^projects/[^/]+/apps/[^/]+/recaptchaV3Config$",
"required": true,
"type": "string"
},
"updateMask": {
"description": "Required. A comma-separated list of names of fields in the RecaptchaV3Config to update. Example: `site_secret`.",
"format": "google-fieldmask",
"location": "query",
"type": "string"
}
},
"path": "v1beta/{+name}",
"request": {
"$ref": "GoogleFirebaseAppcheckV1betaRecaptchaV3Config"
},
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaRecaptchaV3Config"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
}
}
},
"safetyNetConfig": {
"deprecated": true,
"methods": {
"batchGet": {
"deprecated": true,
"description": "Atomically gets the SafetyNetConfigs for the specified list of apps.",
"flatPath": "v1beta/projects/{projectsId}/apps/-/safetyNetConfig:batchGet",
"httpMethod": "GET",
"id": "firebaseappcheck.projects.apps.safetyNetConfig.batchGet",
"parameterOrder": [
"parent"
],
"parameters": {
"names": {
"description": "Required. The relative resource names of the SafetyNetConfigs to retrieve, in the format ``` projects/{project_number}/apps/{app_id}/safetyNetConfig ``` A maximum of 100 objects can be retrieved in a batch.",
"location": "query",
"repeated": true,
"type": "string"
},
"parent": {
"description": "Required. The parent project name shared by all SafetyNetConfigs being retrieved, in the format ``` projects/{project_number} ``` The parent collection in the `name` field of any resource being retrieved must match this field, or the entire batch fails.",
"location": "path",
"pattern": "^projects/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta/{+parent}/apps/-/safetyNetConfig:batchGet",
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaBatchGetSafetyNetConfigsResponse"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
},
"get": {
"deprecated": true,
"description": "Gets the SafetyNetConfig for the specified app.",
"flatPath": "v1beta/projects/{projectsId}/apps/{appsId}/safetyNetConfig",
"httpMethod": "GET",
"id": "firebaseappcheck.projects.apps.safetyNetConfig.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. The relative resource name of the SafetyNetConfig, in the format: ``` projects/{project_number}/apps/{app_id}/safetyNetConfig ```",
"location": "path",
"pattern": "^projects/[^/]+/apps/[^/]+/safetyNetConfig$",
"required": true,
"type": "string"
}
},
"path": "v1beta/{+name}",
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaSafetyNetConfig"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
},
"patch": {
"deprecated": true,
"description": "Updates the SafetyNetConfig for the specified app. While this configuration is incomplete or invalid, the app will be unable to exchange SafetyNet tokens for App Check tokens.",
"flatPath": "v1beta/projects/{projectsId}/apps/{appsId}/safetyNetConfig",
"httpMethod": "PATCH",
"id": "firebaseappcheck.projects.apps.safetyNetConfig.patch",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. The relative resource name of the SafetyNet configuration object, in the format: ``` projects/{project_number}/apps/{app_id}/safetyNetConfig ```",
"location": "path",
"pattern": "^projects/[^/]+/apps/[^/]+/safetyNetConfig$",
"required": true,
"type": "string"
},
"updateMask": {
"description": "Required. A comma-separated list of names of fields in the SafetyNetConfig to update. Example: `token_ttl`.",
"format": "google-fieldmask",
"location": "query",
"type": "string"
}
},
"path": "v1beta/{+name}",
"request": {
"$ref": "GoogleFirebaseAppcheckV1betaSafetyNetConfig"
},
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaSafetyNetConfig"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
}
}
}
}
},
"services": {
"methods": {
"batchUpdate": {
"description": "Atomically updates the specified Service configurations.",
"flatPath": "v1beta/projects/{projectsId}/services:batchUpdate",
"httpMethod": "POST",
"id": "firebaseappcheck.projects.services.batchUpdate",
"parameterOrder": [
"parent"
],
"parameters": {
"parent": {
"description": "Required. The parent project name shared by all Service configurations being updated, in the format ``` projects/{project_number} ``` The parent collection in the `name` field of any resource being updated must match this field, or the entire batch fails.",
"location": "path",
"pattern": "^projects/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta/{+parent}/services:batchUpdate",
"request": {
"$ref": "GoogleFirebaseAppcheckV1betaBatchUpdateServicesRequest"
},
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaBatchUpdateServicesResponse"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
},
"get": {
"description": "Gets the Service configuration for the specified service name.",
"flatPath": "v1beta/projects/{projectsId}/services/{servicesId}",
"httpMethod": "GET",
"id": "firebaseappcheck.projects.services.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. The relative resource name of the Service to retrieve, in the format: ``` projects/{project_number}/services/{service_id} ``` Note that the `service_id` element must be a supported service ID. Currently, the following service IDs are supported: * `firebasestorage.googleapis.com` (Cloud Storage for Firebase) * `firebasedatabase.googleapis.com` (Firebase Realtime Database) * `firestore.googleapis.com` (Cloud Firestore) * `identitytoolkit.googleapis.com` (Firebase Authentication with Identity Platform) * `oauth2.googleapis.com` (Google Identity for iOS)",
"location": "path",
"pattern": "^projects/[^/]+/services/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta/{+name}",
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaService"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
},
"list": {
"description": "Lists all Service configurations for the specified project. Only Services which were explicitly configured using UpdateService or BatchUpdateServices will be returned.",
"flatPath": "v1beta/projects/{projectsId}/services",
"httpMethod": "GET",
"id": "firebaseappcheck.projects.services.list",
"parameterOrder": [
"parent"
],
"parameters": {
"pageSize": {
"description": "The maximum number of Services to return in the response. Only explicitly configured services are returned. The server may return fewer than this at its own discretion. If no value is specified (or too large a value is specified), the server will impose its own limit.",
"format": "int32",
"location": "query",
"type": "integer"
},
"pageToken": {
"description": "Token returned from a previous call to ListServices indicating where in the set of Services to resume listing. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to ListServices must match the call that provided the page token; if they do not match, the result is undefined.",
"location": "query",
"type": "string"
},
"parent": {
"description": "Required. The relative resource name of the parent project for which to list each associated Service, in the format: ``` projects/{project_number} ```",
"location": "path",
"pattern": "^projects/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta/{+parent}/services",
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaListServicesResponse"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
},
"patch": {
"description": "Updates the specified Service configuration.",
"flatPath": "v1beta/projects/{projectsId}/services/{servicesId}",
"httpMethod": "PATCH",
"id": "firebaseappcheck.projects.services.patch",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. The relative resource name of the service configuration object, in the format: ``` projects/{project_number}/services/{service_id} ``` Note that the `service_id` element must be a supported service ID. Currently, the following service IDs are supported: * `firebasestorage.googleapis.com` (Cloud Storage for Firebase) * `firebasedatabase.googleapis.com` (Firebase Realtime Database) * `firestore.googleapis.com` (Cloud Firestore) * `identitytoolkit.googleapis.com` (Firebase Authentication with Identity Platform) * `oauth2.googleapis.com` (Google Identity for iOS)",
"location": "path",
"pattern": "^projects/[^/]+/services/[^/]+$",
"required": true,
"type": "string"
},
"updateMask": {
"description": "Required. A comma-separated list of names of fields in the Service to update. Example: `enforcement_mode`.",
"format": "google-fieldmask",
"location": "query",
"type": "string"
}
},
"path": "v1beta/{+name}",
"request": {
"$ref": "GoogleFirebaseAppcheckV1betaService"
},
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaService"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
}
},
"resources": {
"resourcePolicies": {
"methods": {
"batchUpdate": {
"description": "Atomically updates the specified ResourcePolicy configurations.",
"flatPath": "v1beta/projects/{projectsId}/services/{servicesId}/resourcePolicies:batchUpdate",
"httpMethod": "POST",
"id": "firebaseappcheck.projects.services.resourcePolicies.batchUpdate",
"parameterOrder": [
"parent"
],
"parameters": {
"parent": {
"description": "Required. The parent service name, in the format ``` projects/{project_number}/services/{service_id} ``` The parent collection in the `name` field of any resource being updated must match this field, or the entire batch fails.",
"location": "path",
"pattern": "^projects/[^/]+/services/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta/{+parent}/resourcePolicies:batchUpdate",
"request": {
"$ref": "GoogleFirebaseAppcheckV1betaBatchUpdateResourcePoliciesRequest"
},
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaBatchUpdateResourcePoliciesResponse"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
},
"create": {
"description": "Creates the specified ResourcePolicy configuration.",
"flatPath": "v1beta/projects/{projectsId}/services/{servicesId}/resourcePolicies",
"httpMethod": "POST",
"id": "firebaseappcheck.projects.services.resourcePolicies.create",
"parameterOrder": [
"parent"
],
"parameters": {
"parent": {
"description": "Required. The relative resource name of the parent Service in which the specified ResourcePolicy will be created, in the format: ``` projects/{project_number}/services/{service_id} ``` Note that the `service_id` element must be a supported service ID. Currently, the following service IDs are supported: * `oauth2.googleapis.com` (Google Identity for iOS)",
"location": "path",
"pattern": "^projects/[^/]+/services/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta/{+parent}/resourcePolicies",
"request": {
"$ref": "GoogleFirebaseAppcheckV1betaResourcePolicy"
},
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaResourcePolicy"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
},
"delete": {
"description": "Deletes the specified ResourcePolicy configuration.",
"flatPath": "v1beta/projects/{projectsId}/services/{servicesId}/resourcePolicies/{resourcePoliciesId}",
"httpMethod": "DELETE",
"id": "firebaseappcheck.projects.services.resourcePolicies.delete",
"parameterOrder": [
"name"
],
"parameters": {
"etag": {
"description": "The checksum to be validated against the current ResourcePolicy, to ensure the client has an up-to-date value before proceeding. This checksum is computed by the server based on the values of fields in the ResourcePolicy object, and can be obtained from the ResourcePolicy object received from the last CreateResourcePolicy, GetResourcePolicy, ListResourcePolicies, UpdateResourcePolicy, or BatchUpdateResourcePolicies call. This etag is strongly validated as defined by RFC 7232.",
"location": "query",
"type": "string"
},
"name": {
"description": "Required. The relative resource name of the ResourcePolicy to delete, in the format: ``` projects/{project_number}/services/{service_id}/resourcePolicies/{resource_policy_id} ```",
"location": "path",
"pattern": "^projects/[^/]+/services/[^/]+/resourcePolicies/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta/{+name}",
"response": {
"$ref": "GoogleProtobufEmpty"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
},
"get": {
"description": "Gets the requested ResourcePolicy configuration.",
"flatPath": "v1beta/projects/{projectsId}/services/{servicesId}/resourcePolicies/{resourcePoliciesId}",
"httpMethod": "GET",
"id": "firebaseappcheck.projects.services.resourcePolicies.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. The relative resource name of the ResourcePolicy to retrieve, in the format: ``` projects/{project_number}/services/{service_id}/resourcePolicies/{resource_policy_id} ``` Note that the `service_id` element must be a supported service ID. Currently, the following service IDs are supported: * `oauth2.googleapis.com` (Google Identity for iOS)",
"location": "path",
"pattern": "^projects/[^/]+/services/[^/]+/resourcePolicies/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta/{+name}",
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaResourcePolicy"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
},
"list": {
"description": "Lists all ResourcePolicy configurations for the specified project and service.",
"flatPath": "v1beta/projects/{projectsId}/services/{servicesId}/resourcePolicies",
"httpMethod": "GET",
"id": "firebaseappcheck.projects.services.resourcePolicies.list",
"parameterOrder": [
"parent"
],
"parameters": {
"filter": {
"description": "Optional. Filters the results by the specified rule. For the exact syntax of this field, please consult the [AIP-160](https://google.aip.dev/160) standard. Currently, since the only fields in the ResourcePolicy resource are the scalar fields `enforcement_mode` and `target_resource`, this method does not support the traversal operator (`.`) or the has operator (`:`). Here are some examples of valid filters: * `enforcement_mode = ENFORCED` * `target_resource = \"//oauth2.googleapis.com/projects/12345/oauthClients/\"` * `enforcement_mode = ENFORCED AND target_resource = \"//oauth2.googleapis.com/projects/12345/oauthClients/\"`",
"location": "query",
"type": "string"
},
"pageSize": {
"description": "The maximum number of ResourcePolicy objects to return in the response. The server may return fewer than this at its own discretion. If no value is specified (or too large a value is specified), the server will impose its own limit.",
"format": "int32",
"location": "query",
"type": "integer"
},
"pageToken": {
"description": "Token returned from a previous call to ListResourcePolicies indicating where in the set of ResourcePolicy objects to resume listing. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to ListResourcePolicies must match the call that provided the page token; if they do not match, the result is undefined.",
"location": "query",
"type": "string"
},
"parent": {
"description": "Required. The relative resource name of the parent Service for which to list each associated ResourcePolicy, in the format: ``` projects/{project_number}/services/{service_id} ``` Note that the `service_id` element must be a supported service ID. Currently, the following service IDs are supported: * `oauth2.googleapis.com` (Google Identity for iOS)",
"location": "path",
"pattern": "^projects/[^/]+/services/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta/{+parent}/resourcePolicies",
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaListResourcePoliciesResponse"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
},
"patch": {
"description": "Updates the specified ResourcePolicy configuration.",
"flatPath": "v1beta/projects/{projectsId}/services/{servicesId}/resourcePolicies/{resourcePoliciesId}",
"httpMethod": "PATCH",
"id": "firebaseappcheck.projects.services.resourcePolicies.patch",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. Identifier. The relative name of the resource policy object, in the format: ``` projects/{project_number}/services/{service_id}/resourcePolicies/{resource_policy_id} ``` Note that the `service_id` element must be a supported service ID. Currently, the following service IDs are supported: * `oauth2.googleapis.com` (Google Identity for iOS) `resource_policy_id` is a system-generated UID.",
"location": "path",
"pattern": "^projects/[^/]+/services/[^/]+/resourcePolicies/[^/]+$",
"required": true,
"type": "string"
},
"updateMask": {
"description": "Required. A comma-separated list of names of fields in the ResourcePolicy to update. Example: `enforcement_mode`.",
"format": "google-fieldmask",
"location": "query",
"type": "string"
}
},
"path": "v1beta/{+name}",
"request": {
"$ref": "GoogleFirebaseAppcheckV1betaResourcePolicy"
},
"response": {
"$ref": "GoogleFirebaseAppcheckV1betaResourcePolicy"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase"
]
}
}
}
}
}
}
}
},
"revision": "20260207",
"rootUrl": "https://firebaseappcheck.googleapis.com/",
"schemas": {
"GoogleFirebaseAppcheckV1betaAppAttestConfig": {
"description": "An app's App Attest configuration object. This configuration controls certain properties of the `AppCheckToken` returned by ExchangeAppAttestAttestation and ExchangeAppAttestAssertion, such as its ttl. Note that the Team ID registered with your app is used as part of the validation process. Please register it via the Firebase Console or programmatically via the [Firebase Management Service](https://firebase.google.com/docs/projects/api/reference/rest/v1beta1/projects.iosApps/patch).",
"id": "GoogleFirebaseAppcheckV1betaAppAttestConfig",
"properties": {
"name": {
"description": "Required. The relative resource name of the App Attest configuration object, in the format: ``` projects/{project_number}/apps/{app_id}/appAttestConfig ```",
"type": "string"
},
"tokenTtl": {
"description": "Specifies the duration for which App Check tokens exchanged from App Attest artifacts will be valid. If unset, a default value of 1 hour is assumed. Must be between 30 minutes and 7 days, inclusive.",
"format": "google-duration",
"type": "string"
}
},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaAppCheckToken": {
"description": "Encapsulates an *App Check token*, which are used to access backend services protected by App Check.",
"id": "GoogleFirebaseAppcheckV1betaAppCheckToken",
"properties": {
"attestationToken": {
"deprecated": true,
"description": "The App Check token. App Check tokens are signed [JWTs](https://tools.ietf.org/html/rfc7519) containing claims that identify the attested app and GCP project. This token is used to access Google services protected by App Check. These tokens can also be [verified by your own custom backends](https://firebase.google.com/docs/app-check/custom-resource-backend) using the Firebase Admin SDK or third-party libraries.",
"type": "string"
},
"token": {
"description": "The App Check token. App Check tokens are signed [JWTs](https://tools.ietf.org/html/rfc7519) containing claims that identify the attested app and GCP project. This token is used to access Google services protected by App Check. These tokens can also be [verified by your own custom backends](https://firebase.google.com/docs/app-check/custom-resource-backend) using the Firebase Admin SDK or third-party libraries.",
"type": "string"
},
"ttl": {
"description": "The duration from the time this token is minted until its expiration. This field is intended to ease client-side token management, since the client may have clock skew, but is still able to accurately measure a duration.",
"format": "google-duration",
"type": "string"
}
},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaAttestationTokenResponse": {
"deprecated": true,
"description": "Encapsulates an *App Check token*, which are used to access Firebase services protected by App Check.",
"id": "GoogleFirebaseAppcheckV1betaAttestationTokenResponse",
"properties": {
"attestationToken": {
"description": "An App Check token. App Check tokens are signed [JWTs](https://tools.ietf.org/html/rfc7519) containing claims that identify the attested app and Firebase project. This token is used to access Firebase services protected by App Check.",
"type": "string"
},
"ttl": {
"description": "The duration from the time this token is minted until its expiration. This field is intended to ease client-side token management, since the client may have clock skew, but is still able to accurately measure a duration.",
"format": "google-duration",
"type": "string"
}
},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaBatchGetAppAttestConfigsResponse": {
"description": "Response message for the BatchGetAppAttestConfigs method.",
"id": "GoogleFirebaseAppcheckV1betaBatchGetAppAttestConfigsResponse",
"properties": {
"configs": {
"description": "AppAttestConfigs retrieved.",
"items": {
"$ref": "GoogleFirebaseAppcheckV1betaAppAttestConfig"
},
"type": "array"
}
},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaBatchGetDeviceCheckConfigsResponse": {
"description": "Response message for the BatchGetDeviceCheckConfigs method.",
"id": "GoogleFirebaseAppcheckV1betaBatchGetDeviceCheckConfigsResponse",
"properties": {
"configs": {
"description": "DeviceCheckConfigs retrieved.",
"items": {
"$ref": "GoogleFirebaseAppcheckV1betaDeviceCheckConfig"
},
"type": "array"
}
},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaBatchGetPlayIntegrityConfigsResponse": {
"description": "Response message for the BatchGetPlayIntegrityConfigs method.",
"id": "GoogleFirebaseAppcheckV1betaBatchGetPlayIntegrityConfigsResponse",
"properties": {
"configs": {
"description": "PlayIntegrityConfigs retrieved.",
"items": {
"$ref": "GoogleFirebaseAppcheckV1betaPlayIntegrityConfig"
},
"type": "array"
}
},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaBatchGetRecaptchaConfigsResponse": {
"deprecated": true,
"description": "Response message for the BatchGetRecaptchaConfigs method.",
"id": "GoogleFirebaseAppcheckV1betaBatchGetRecaptchaConfigsResponse",
"properties": {
"configs": {
"description": "RecaptchaConfigs retrieved.",
"items": {
"$ref": "GoogleFirebaseAppcheckV1betaRecaptchaConfig"
},
"type": "array"
}
},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaBatchGetRecaptchaEnterpriseConfigsResponse": {
"description": "Response message for the BatchGetRecaptchaEnterpriseConfigs method.",
"id": "GoogleFirebaseAppcheckV1betaBatchGetRecaptchaEnterpriseConfigsResponse",
"properties": {
"configs": {
"description": "RecaptchaEnterpriseConfigs retrieved.",
"items": {
"$ref": "GoogleFirebaseAppcheckV1betaRecaptchaEnterpriseConfig"
},
"type": "array"
}
},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaBatchGetRecaptchaV3ConfigsResponse": {
"description": "Response message for the BatchGetRecaptchaV3Configs method.",
"id": "GoogleFirebaseAppcheckV1betaBatchGetRecaptchaV3ConfigsResponse",
"properties": {
"configs": {
"description": "RecaptchaV3Configs retrieved.",
"items": {
"$ref": "GoogleFirebaseAppcheckV1betaRecaptchaV3Config"
},
"type": "array"
}
},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaBatchGetSafetyNetConfigsResponse": {
"deprecated": true,
"description": "Response message for the BatchGetSafetyNetConfigs method.",
"id": "GoogleFirebaseAppcheckV1betaBatchGetSafetyNetConfigsResponse",
"properties": {
"configs": {
"description": "SafetyNetConfigs retrieved.",
"items": {
"$ref": "GoogleFirebaseAppcheckV1betaSafetyNetConfig"
},
"type": "array"
}
},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaBatchUpdateResourcePoliciesRequest": {
"description": "Request message for the BatchUpdateResourcePolicies method.",
"id": "GoogleFirebaseAppcheckV1betaBatchUpdateResourcePoliciesRequest",
"properties": {
"requests": {
"description": "Required. The request messages specifying the ResourcePolicy objects to update. A maximum of 100 objects can be updated in a batch.",
"items": {
"$ref": "GoogleFirebaseAppcheckV1betaUpdateResourcePolicyRequest"
},
"type": "array"
},
"updateMask": {
"description": "Optional. A comma-separated list of names of fields in the ResourcePolicy objects to update. Example: `enforcement_mode`. If this field is present, the `update_mask` field in the UpdateResourcePolicyRequest messages must all match this field, or the entire batch fails and no updates will be committed.",
"format": "google-fieldmask",
"type": "string"
}
},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaBatchUpdateResourcePoliciesResponse": {
"description": "Response message for the BatchUpdateResourcePolicies method.",
"id": "GoogleFirebaseAppcheckV1betaBatchUpdateResourcePoliciesResponse",
"properties": {
"resourcePolicies": {
"description": "ResourcePolicy objects after the updates have been applied.",
"items": {
"$ref": "GoogleFirebaseAppcheckV1betaResourcePolicy"
},
"type": "array"
}
},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaBatchUpdateServicesRequest": {
"description": "Request message for the BatchUpdateServices method.",
"id": "GoogleFirebaseAppcheckV1betaBatchUpdateServicesRequest",
"properties": {
"requests": {
"description": "Required. The request messages specifying the Services to update. A maximum of 100 objects can be updated in a batch.",
"items": {
"$ref": "GoogleFirebaseAppcheckV1betaUpdateServiceRequest"
},
"type": "array"
},
"updateMask": {
"description": "Optional. A comma-separated list of names of fields in the Services to update. Example: `display_name`. If the `update_mask` field is set in both this request and any of the UpdateServiceRequest messages, they must match or the entire batch fails and no updates will be committed.",
"format": "google-fieldmask",
"type": "string"
}
},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaBatchUpdateServicesResponse": {
"description": "Response message for the BatchUpdateServices method.",
"id": "GoogleFirebaseAppcheckV1betaBatchUpdateServicesResponse",
"properties": {
"services": {
"description": "Service objects after the updates have been applied.",
"items": {
"$ref": "GoogleFirebaseAppcheckV1betaService"
},
"type": "array"
}
},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaDebugToken": {
"description": "A *debug token* is a secret used during the development or integration testing of an app. It essentially allows the development or integration testing to bypass app attestation while still allowing App Check to enforce protection on supported production Firebase services.",
"id": "GoogleFirebaseAppcheckV1betaDebugToken",
"properties": {
"displayName": {
"description": "Required. A human readable display name used to identify this debug token.",
"type": "string"
},
"name": {
"description": "Required. The relative resource name of the debug token, in the format: ``` projects/{project_number}/apps/{app_id}/debugTokens/{debug_token_id} ```",
"type": "string"
},
"token": {
"description": "Required. Input only. Immutable. The secret token itself. Must be provided during creation, and must be a UUID4, case insensitive. This field is immutable once set, and cannot be provided during an UpdateDebugToken request. You can, however, delete this debug token using DeleteDebugToken to revoke it. For security reasons, this field will never be populated in any response.",
"type": "string"
},
"updateTime": {
"description": "Output only. Timestamp when this debug token was most recently updated.",
"format": "google-datetime",
"readOnly": true,
"type": "string"
}
},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaDeviceCheckConfig": {
"description": "An app's DeviceCheck configuration object. This configuration is used by ExchangeDeviceCheckToken to validate device tokens issued to apps by DeviceCheck. It also controls certain properties of the returned `AppCheckToken`, such as its ttl. Note that the Team ID registered with your app is used as part of the validation process. Please register it via the Firebase Console or programmatically via the [Firebase Management Service](https://firebase.google.com/docs/projects/api/reference/rest/v1beta1/projects.iosApps/patch).",
"id": "GoogleFirebaseAppcheckV1betaDeviceCheckConfig",
"properties": {
"keyId": {
"description": "Required. The key identifier of a private key enabled with DeviceCheck, created in your Apple Developer account.",
"type": "string"
},
"name": {
"description": "Required. The relative resource name of the DeviceCheck configuration object, in the format: ``` projects/{project_number}/apps/{app_id}/deviceCheckConfig ```",
"type": "string"
},
"privateKey": {
"description": "Required. Input only. The contents of the private key (`.p8`) file associated with the key specified by `key_id`. For security reasons, this field will never be populated in any response.",
"type": "string"
},
"privateKeySet": {
"description": "Output only. Whether the `private_key` field was previously set. Since we will never return the `private_key` field, this field is the only way to find out whether it was previously set.",
"readOnly": true,
"type": "boolean"
},
"tokenTtl": {
"description": "Specifies the duration for which App Check tokens exchanged from DeviceCheck tokens will be valid. If unset, a default value of 1 hour is assumed. Must be between 30 minutes and 7 days, inclusive.",
"format": "google-duration",
"type": "string"
}
},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaExchangeAppAttestAssertionRequest": {
"description": "Request message for the ExchangeAppAttestAssertion method.",
"id": "GoogleFirebaseAppcheckV1betaExchangeAppAttestAssertionRequest",
"properties": {
"artifact": {
"description": "Required. The artifact returned by a previous call to ExchangeAppAttestAttestation.",
"format": "byte",
"type": "string"
},
"assertion": {
"description": "Required. The CBOR-encoded assertion returned by the client-side App Attest API.",
"format": "byte",
"type": "string"
},
"challenge": {
"description": "Required. A one-time challenge returned by an immediately prior call to GenerateAppAttestChallenge.",
"format": "byte",
"type": "string"
},
"limitedUse": {
"description": "Specifies whether this attestation is for use in a *limited use* (`true`) or *session based* (`false`) context. To enable this attestation to be used with the *replay protection* feature, set this to `true`. The default value is `false`.",
"type": "boolean"
}
},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaExchangeAppAttestAttestationRequest": {
"description": "Request message for the ExchangeAppAttestAttestation method.",
"id": "GoogleFirebaseAppcheckV1betaExchangeAppAttestAttestationRequest",
"properties": {
"attestationStatement": {
"description": "Required. The App Attest statement returned by the client-side App Attest API. This is a base64url encoded CBOR object in the JSON response.",
"format": "byte",
"type": "string"
},
"challenge": {
"description": "Required. A one-time challenge returned by an immediately prior call to GenerateAppAttestChallenge.",
"format": "byte",
"type": "string"
},
"keyId": {
"description": "Required. The key ID generated by App Attest for the client app.",
"format": "byte",
"type": "string"
},
"limitedUse": {
"description": "Specifies whether this attestation is for use in a *limited use* (`true`) or *session based* (`false`) context. To enable this attestation to be used with the *replay protection* feature, set this to `true`. The default value is `false`.",
"type": "boolean"
}
},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaExchangeAppAttestAttestationResponse": {
"description": "Response message for the ExchangeAppAttestAttestation method.",
"id": "GoogleFirebaseAppcheckV1betaExchangeAppAttestAttestationResponse",
"properties": {
"appCheckToken": {
"$ref": "GoogleFirebaseAppcheckV1betaAppCheckToken",
"description": "Encapsulates an App Check token."
},
"artifact": {
"description": "An artifact that can be used in future calls to ExchangeAppAttestAssertion.",
"format": "byte",
"type": "string"
},
"attestationToken": {
"$ref": "GoogleFirebaseAppcheckV1betaAttestationTokenResponse",
"deprecated": true,
"description": "Encapsulates an App Check token."
}
},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaExchangeCustomTokenRequest": {
"description": "Request message for the ExchangeCustomToken method.",
"id": "GoogleFirebaseAppcheckV1betaExchangeCustomTokenRequest",
"properties": {
"customToken": {
"description": "Required. A custom token signed using your project's Admin SDK service account credentials.",
"type": "string"
},
"jti": {
"description": "Optional. When `limited_use` is set to `true`, this field specifies the desired `jti` claim (Section 4.1.7 of RFC 7519) in the returned App Check token. *Limited use* App Check tokens with the same `jti` will be counted as the same token for the purposes of replay protection. An error is returned if this field is specified without setting `limited_use` to `true`. The size of this field is limited to 500 bytes. If specified, its length must be at least 16 bytes. If this field is omitted or is empty and `limited_use` is set to `true`, a randomly generated `jti` claim with length between 16 and 500 bytes (inclusive) will be used in the returned App Check token. Leaving this field empty is only recommended if your custom attestation provider itself is not vulnerable to replay attacks. When `limited_use` is set to `false`, neither the presence nor the contents of the `jti` claim in the returned App Check token is specified. To ensure that the returned App Check token is eligible for limited use functionality, set `limited_use` to `true`.",
"type": "string"
},
"limitedUse": {
"description": "Specifies whether this attestation is for use in a *limited use* (`true`) or *session based* (`false`) context. To enable this attestation to be used with the *replay protection* feature, set this to `true`. The default value is `false`.",
"type": "boolean"
}
},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaExchangeDebugTokenRequest": {
"description": "Request message for the ExchangeDebugToken method.",
"id": "GoogleFirebaseAppcheckV1betaExchangeDebugTokenRequest",
"properties": {
"debugToken": {
"description": "Required. A debug token secret. This string must match a debug token secret previously created using CreateDebugToken.",
"type": "string"
},
"limitedUse": {
"description": "Specifies whether this attestation is for use in a *limited use* (`true`) or *session based* (`false`) context. To enable this attestation to be used with the *replay protection* feature, set this to `true`. The default value is `false`.",
"type": "boolean"
}
},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaExchangeDeviceCheckTokenRequest": {
"description": "Request message for the ExchangeDeviceCheckToken method.",
"id": "GoogleFirebaseAppcheckV1betaExchangeDeviceCheckTokenRequest",
"properties": {
"deviceToken": {
"description": "Required. The `device_token` as returned by Apple's client-side [DeviceCheck API](https://developer.apple.com/documentation/devicecheck/dcdevice). This is the base64 encoded `Data` (Swift) or `NSData` (ObjC) object.",
"type": "string"
},
"limitedUse": {
"description": "Specifies whether this attestation is for use in a *limited use* (`true`) or *session based* (`false`) context. To enable this attestation to be used with the *replay protection* feature, set this to `true`. The default value is `false`.",
"type": "boolean"
}
},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaExchangePlayIntegrityTokenRequest": {
"description": "Request message for the ExchangePlayIntegrityToken method.",
"id": "GoogleFirebaseAppcheckV1betaExchangePlayIntegrityTokenRequest",
"properties": {
"limitedUse": {
"description": "Specifies whether this attestation is for use in a *limited use* (`true`) or *session based* (`false`) context. To enable this attestation to be used with the *replay protection* feature, set this to `true`. The default value is `false`.",
"type": "boolean"
},
"playIntegrityToken": {
"description": "Required. The [integrity verdict response token from Play Integrity](https://developer.android.com/google/play/integrity/verdict#decrypt-verify) issued to your app.",
"type": "string"
}
},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaExchangeRecaptchaEnterpriseTokenRequest": {
"description": "Request message for the ExchangeRecaptchaEnterpriseToken method.",
"id": "GoogleFirebaseAppcheckV1betaExchangeRecaptchaEnterpriseTokenRequest",
"properties": {
"limitedUse": {
"description": "Specifies whether this attestation is for use in a *limited use* (`true`) or *session based* (`false`) context. To enable this attestation to be used with the *replay protection* feature, set this to `true`. The default value is `false`.",
"type": "boolean"
},
"recaptchaEnterpriseToken": {
"description": "Required. The reCAPTCHA token as returned by the [reCAPTCHA Enterprise JavaScript API](https://cloud.google.com/recaptcha-enterprise/docs/instrument-web-pages).",
"type": "string"
}
},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaExchangeRecaptchaTokenRequest": {
"deprecated": true,
"description": "Request message for the ExchangeRecaptchaToken method.",
"id": "GoogleFirebaseAppcheckV1betaExchangeRecaptchaTokenRequest",
"properties": {
"recaptchaToken": {
"description": "Required. The reCAPTCHA token as returned by the [reCAPTCHA v3 JavaScript API](https://developers.google.com/recaptcha/docs/v3).",
"type": "string"
}
},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaExchangeRecaptchaV3TokenRequest": {
"description": "Request message for the ExchangeRecaptchaV3Token method.",
"id": "GoogleFirebaseAppcheckV1betaExchangeRecaptchaV3TokenRequest",
"properties": {
"limitedUse": {
"description": "Specifies whether this attestation is for use in a *limited use* (`true`) or *session based* (`false`) context. To enable this attestation to be used with the *replay protection* feature, set this to `true`. The default value is `false`.",
"type": "boolean"
},
"recaptchaV3Token": {
"description": "Required. The reCAPTCHA token as returned by the [reCAPTCHA v3 JavaScript API](https://developers.google.com/recaptcha/docs/v3).",
"type": "string"
}
},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaExchangeSafetyNetTokenRequest": {
"deprecated": true,
"description": "Request message for the ExchangeSafetyNetToken method.",
"id": "GoogleFirebaseAppcheckV1betaExchangeSafetyNetTokenRequest",
"properties": {
"safetyNetToken": {
"description": "Required. The [SafetyNet attestation response](https://developer.android.com/training/safetynet/attestation#request-attestation-step) issued to your app.",
"type": "string"
}
},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaGenerateAppAttestChallengeRequest": {
"description": "Request message for the GenerateAppAttestChallenge method.",
"id": "GoogleFirebaseAppcheckV1betaGenerateAppAttestChallengeRequest",
"properties": {},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaGenerateAppAttestChallengeResponse": {
"description": "Response message for the GenerateAppAttestChallenge method.",
"id": "GoogleFirebaseAppcheckV1betaGenerateAppAttestChallengeResponse",
"properties": {
"challenge": {
"description": "A one-time use challenge for the client to pass to the App Attest API.",
"format": "byte",
"type": "string"
},
"ttl": {
"description": "The duration from the time this challenge is minted until its expiration. This field is intended to ease client-side token management, since the client may have clock skew, but is still able to accurately measure a duration.",
"format": "google-duration",
"type": "string"
}
},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaGeneratePlayIntegrityChallengeRequest": {
"description": "Request message for the GeneratePlayIntegrityChallenge method.",
"id": "GoogleFirebaseAppcheckV1betaGeneratePlayIntegrityChallengeRequest",
"properties": {},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaGeneratePlayIntegrityChallengeResponse": {
"description": "Response message for the GeneratePlayIntegrityChallenge method.",
"id": "GoogleFirebaseAppcheckV1betaGeneratePlayIntegrityChallengeResponse",
"properties": {
"challenge": {
"description": "A one-time use [challenge](https://developer.android.com/google/play/integrity/verdict#protect-against-replay-attacks) for the client to pass to the Play Integrity API.",
"type": "string"
},
"ttl": {
"description": "The duration from the time this challenge is minted until its expiration. This field is intended to ease client-side token management, since the client may have clock skew, but is still able to accurately measure a duration.",
"format": "google-duration",
"type": "string"
}
},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaListDebugTokensResponse": {
"description": "Response message for the ListDebugTokens method.",
"id": "GoogleFirebaseAppcheckV1betaListDebugTokensResponse",
"properties": {
"debugTokens": {
"description": "The DebugTokens retrieved.",
"items": {
"$ref": "GoogleFirebaseAppcheckV1betaDebugToken"
},
"type": "array"
},
"nextPageToken": {
"description": "If the result list is too large to fit in a single response, then a token is returned. If the string is empty or omitted, then this response is the last page of results. This token can be used in a subsequent call to ListDebugTokens to find the next group of DebugTokens. Page tokens are short-lived and should not be persisted.",
"type": "string"
}
},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaListResourcePoliciesResponse": {
"description": "Response message for the ListResourcePolicies method.",
"id": "GoogleFirebaseAppcheckV1betaListResourcePoliciesResponse",
"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 or omitted, then this response is the last page of results. This token can be used in a subsequent call to ListResourcePolicies to find the next group of ResourcePolicy objects. Page tokens are short-lived and should not be persisted.",
"type": "string"
},
"resourcePolicies": {
"description": "The ResourcePolicy objects retrieved.",
"items": {
"$ref": "GoogleFirebaseAppcheckV1betaResourcePolicy"
},
"type": "array"
}
},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaListServicesResponse": {
"description": "Response message for the ListServices method.",
"id": "GoogleFirebaseAppcheckV1betaListServicesResponse",
"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 or omitted, then this response is the last page of results. This token can be used in a subsequent call to ListServices to find the next group of Services. Page tokens are short-lived and should not be persisted.",
"type": "string"
},
"services": {
"description": "The Services retrieved.",
"items": {
"$ref": "GoogleFirebaseAppcheckV1betaService"
},
"type": "array"
}
},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaPlayIntegrityConfig": {
"description": "An app's Play Integrity configuration object. This configuration controls certain properties of the `AppCheckToken` returned by ExchangePlayIntegrityToken, such as its ttl. Note that your registered SHA-256 certificate fingerprints are used to validate tokens issued by the Play Integrity API; please register them via the Firebase Console or programmatically via the [Firebase Management Service](https://firebase.google.com/docs/projects/api/reference/rest/v1beta1/projects.androidApps.sha/create).",
"id": "GoogleFirebaseAppcheckV1betaPlayIntegrityConfig",
"properties": {
"accountDetails": {
"$ref": "GoogleFirebaseAppcheckV1betaPlayIntegrityConfigAccountDetails",
"description": "Specifies account requirements for Android devices running your app. These settings correspond to requirements on the [**account details** field](https://developer.android.com/google/play/integrity/verdicts#account-details-field) obtained from the Play Integrity API. See the [default responses table](https://developer.android.com/google/play/integrity/setup#default) for a quick summary. The default values for these settings work for most apps, and are recommended."
},
"appIntegrity": {
"$ref": "GoogleFirebaseAppcheckV1betaPlayIntegrityConfigAppIntegrity",
"description": "Specifies application integrity requirements for Android devices running your app. These settings correspond to requirements on the [**application integrity** field](https://developer.android.com/google/play/integrity/verdicts#application-integrity-field) obtained from the Play Integrity API. See the [default responses table](https://developer.android.com/google/play/integrity/setup#default) for a quick summary. The default values for these settings work for most apps, and are recommended."
},
"deviceIntegrity": {
"$ref": "GoogleFirebaseAppcheckV1betaPlayIntegrityConfigDeviceIntegrity",
"description": "Specifies device integrity requirements for Android devices running your app. These settings correspond to requirements on the [**device integrity** field](https://developer.android.com/google/play/integrity/verdicts#device-integrity-field) obtained from the Play Integrity API. See the [default responses table](https://developer.android.com/google/play/integrity/setup#default) for a quick summary. Warning: There are also [conditional](https://developer.android.com/google/play/integrity/setup#conditional) as well as [optional](https://developer.android.com/google/play/integrity/setup#optional_device_information) responses that you can receive, but requires additional explicit opt-in from you. The App Check API is **not** responsible for any such opt-ins. The default values for these settings work for most apps, and are recommended."
},
"name": {
"description": "Required. The relative resource name of the Play Integrity configuration object, in the format: ``` projects/{project_number}/apps/{app_id}/playIntegrityConfig ```",
"type": "string"
},
"tokenTtl": {
"description": "Specifies the duration for which App Check tokens exchanged from Play Integrity tokens will be valid. If unset, a default value of 1 hour is assumed. Must be between 30 minutes and 7 days, inclusive.",
"format": "google-duration",
"type": "string"
}
},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaPlayIntegrityConfigAccountDetails": {
"description": "A settings object specifying account requirements for Android devices running your app. These settings correspond to requirements on the [**account details** field](https://developer.android.com/google/play/integrity/verdicts#account-details-field) obtained from the Play Integrity API. See the [default responses table](https://developer.android.com/google/play/integrity/setup#default) for a quick summary. The default values for these settings work for most apps, and are recommended.",
"id": "GoogleFirebaseAppcheckV1betaPlayIntegrityConfigAccountDetails",
"properties": {
"requireLicensed": {
"description": "Specifies whether the caller must have received the [`LICENSED` verdict](https://developer.android.com/google/play/integrity/verdicts#account-details-field). For additional details about scenarios where your users will receive this `LICENSED` label, see [the default responses table](https://developer.android.com/google/play/integrity/setup#default). If set to `true`, apps without the `LICENSED` app licensing verdict will be rejected. If set to `false`, any app licensing verdict is allowed. The default value is `false`.",
"type": "boolean"
}
},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaPlayIntegrityConfigAppIntegrity": {
"description": "A settings object specifying application integrity requirements for Android devices running your app. These settings correspond to requirements on the [**application integrity** field](https://developer.android.com/google/play/integrity/verdicts#application-integrity-field) obtained from the Play Integrity API. See the [default responses table](https://developer.android.com/google/play/integrity/setup#default) for a quick summary. The default values for these settings work for most apps, and are recommended.",
"id": "GoogleFirebaseAppcheckV1betaPlayIntegrityConfigAppIntegrity",
"properties": {
"allowUnrecognizedVersion": {
"description": "Specifies whether your running app is allowed to have the `UNRECOGNIZED_VERSION` [app recognition verdict](https://developer.android.com/google/play/integrity/verdicts#application-integrity-field). Note that the app recognition verdict `PLAY_RECOGNIZED` is a strong, comprehensive integrity signal that takes into account various other signals, including conditional and optional device integrity responses that you have opted into. If your app is published off-Play, this field should be set to `true` to allow instances of your app installed from off-Play sources to function. If set to `false`, only `PLAY_RECOGNIZED` verdicts are allowed, and both `UNRECOGNIZED_VERSION` and `UNEVALUATED` will be rejected. If set to `true`, any app recognition verdict is allowed. The default value is `false`.",
"type": "boolean"
}
},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaPlayIntegrityConfigDeviceIntegrity": {
"description": "A settings object specifying device integrity requirements for Android devices running your app. These settings correspond to requirements on the [**device integrity** field](https://developer.android.com/google/play/integrity/verdicts#device-integrity-field) obtained from the Play Integrity API. See the [default responses table](https://developer.android.com/google/play/integrity/setup#default) for a quick summary. Warning: There are also [conditional](https://developer.android.com/google/play/integrity/setup#conditional) as well as [optional](https://developer.android.com/google/play/integrity/setup#optional_device_information) responses that you can receive, but requires additional explicit opt-in from you. The App Check API is **not** responsible for any such opt-ins. The default values for these settings work for most apps, and are recommended.",
"id": "GoogleFirebaseAppcheckV1betaPlayIntegrityConfigDeviceIntegrity",
"properties": {
"minDeviceRecognitionLevel": {
"description": "Specifies the minimum device integrity level in order for the device to be considered valid. Any device with a device recognition verdict lower than this level will be rejected. If this is unspecified, the default level is `NO_INTEGRITY`.",
"enum": [
"DEVICE_RECOGNITION_LEVEL_UNSPECIFIED",
"NO_INTEGRITY",
"MEETS_BASIC_INTEGRITY",
"MEETS_DEVICE_INTEGRITY",
"MEETS_STRONG_INTEGRITY"
],
"enumDescriptions": [
"Default value. Do not specify this value directly. When this default value is detected in a configuration, the `NO_INTEGRITY` default level takes effect.",
"If this level is set, no explicit device integrity label requirements will be checked. However, because Play Integrity's other features may perform (and require) their own intrinsic device integrity checks, your `app_integrity` and `account_details` settings may still cause some device integrity checks to be performed.",
"This level corresponds to the `MEETS_BASIC_INTEGRITY` [optional device recognition label](https://developer.android.com/google/play/integrity/verdicts#optional-device-labels). This value represents the most basic level of device integrity, and is the minimum allowed in App Check's standard implementation of Play Integrity. Warning: Because this is an optional response, you **must** first explicitly [opt in your app in the Play Console](https://developer.android.com/google/play/integrity/setup#optional) in order to receive this label. Without this opt-in, **your app may break** for any user whose device is eligible for `MEETS_BASIC_INTEGRITY` but not `MEETS_DEVICE_INTEGRITY`. This API is **not** responsible for any such opt-ins.",
"This level corresponds to the `MEETS_DEVICE_INTEGRITY` [device recognition verdict](https://developer.android.com/google/play/integrity/verdicts#device-integrity-field). Any app integrated with Play Integrity will automatically be eligible to receive this label without any additional action from you. At this level, devices that have the `MEETS_BASIC_INTEGRITY` label but **not** the `MEETS_DEVICE_INTEGRITY` label will be rejected.",
"This level corresponds to the `MEETS_STRONG_INTEGRITY` [optional device recognition label](https://developer.android.com/google/play/integrity/verdicts#optional-device-labels). This value represents the highest level of device integrity. At this level, devices that have the `MEETS_BASIC_INTEGRITY` or `MEETS_DEVICE_INTEGRITY` but **not** the `MEETS_STRONG_INTEGRITY` label will be rejected. Warning: Because this is an optional response, you **must** first explicitly [opt in your app in the Play Console](https://developer.android.com/google/play/integrity/setup#optional) in order to receive this label. Without this opt-in, **your app may break** for any user whose device is eligible for `MEETS_STRONG_INTEGRITY`. This API is **not** responsible for any such opt-ins."
],
"type": "string"
}
},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaPublicJwk": {
"description": "A JWK as specified by [section 4 of RFC 7517](https://tools.ietf.org/html/rfc7517#section-4) and [section 6.3.1 of RFC 7518](https://tools.ietf.org/html/rfc7518#section-6.3.1).",
"id": "GoogleFirebaseAppcheckV1betaPublicJwk",
"properties": {
"alg": {
"description": "See [section 4.4 of RFC 7517](https://tools.ietf.org/html/rfc7517#section-4.4).",
"type": "string"
},
"e": {
"description": "See [section 6.3.1.2 of RFC 7518](https://tools.ietf.org/html/rfc7518#section-6.3.1.2).",
"type": "string"
},
"kid": {
"description": "See [section 4.5 of RFC 7517](https://tools.ietf.org/html/rfc7517#section-4.5).",
"type": "string"
},
"kty": {
"description": "See [section 4.1 of RFC 7517](https://tools.ietf.org/html/rfc7517#section-4.1).",
"type": "string"
},
"n": {
"description": "See [section 6.3.1.1 of RFC 7518](https://tools.ietf.org/html/rfc7518#section-6.3.1.1).",
"type": "string"
},
"use": {
"description": "See [section 4.2 of RFC 7517](https://tools.ietf.org/html/rfc7517#section-4.2).",
"type": "string"
}
},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaPublicJwkSet": {
"description": "The currently active set of public keys that can be used to verify App Check tokens. This object is a JWK set as specified by [section 5 of RFC 7517](https://tools.ietf.org/html/rfc7517#section-5). For security, the response **must not** be cached for longer than six hours.",
"id": "GoogleFirebaseAppcheckV1betaPublicJwkSet",
"properties": {
"keys": {
"description": "The set of public keys. See [section 5.1 of RFC 7517](https://tools.ietf.org/html/rfc7517#section-5).",
"items": {
"$ref": "GoogleFirebaseAppcheckV1betaPublicJwk"
},
"type": "array"
}
},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaRecaptchaConfig": {
"deprecated": true,
"description": "An app's reCAPTCHA v3 configuration object. This configuration is used by ExchangeRecaptchaToken to validate reCAPTCHA tokens issued to apps by reCAPTCHA v3. It also controls certain properties of the returned `AppCheckToken`, such as its ttl.",
"id": "GoogleFirebaseAppcheckV1betaRecaptchaConfig",
"properties": {
"minValidScore": {
"description": "Specifies a minimum score required for a reCAPTCHA token to be considered valid. If its score is greater than or equal to this value, it will be accepted; otherwise, it will be rejected. The value must be between 0.0 and 1.0. The default value is 0.5.",
"format": "float",
"type": "number"
},
"name": {
"description": "Required. The relative resource name of the reCAPTCHA v3 configuration object, in the format: ``` projects/{project_number}/apps/{app_id}/recaptchaConfig ```",
"type": "string"
},
"siteSecret": {
"description": "Required. Input only. The site secret used to identify your service for reCAPTCHA v3 verification. For security reasons, this field will never be populated in any response.",
"type": "string"
},
"siteSecretSet": {
"description": "Output only. Whether the `site_secret` field was previously set. Since we will never return the `site_secret` field, this field is the only way to find out whether it was previously set.",
"readOnly": true,
"type": "boolean"
},
"tokenTtl": {
"description": "Specifies the duration for which App Check tokens exchanged from reCAPTCHA tokens will be valid. If unset, a default value of 1 day is assumed. Must be between 30 minutes and 7 days, inclusive.",
"format": "google-duration",
"type": "string"
}
},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaRecaptchaEnterpriseConfig": {
"description": "An app's reCAPTCHA Enterprise configuration object. This configuration is used by ExchangeRecaptchaEnterpriseToken to validate reCAPTCHA tokens issued to apps by reCAPTCHA Enterprise. It also controls certain properties of the returned `AppCheckToken`, such as its ttl.",
"id": "GoogleFirebaseAppcheckV1betaRecaptchaEnterpriseConfig",
"properties": {
"name": {
"description": "Required. The relative resource name of the reCAPTCHA Enterprise configuration object, in the format: ``` projects/{project_number}/apps/{app_id}/recaptchaEnterpriseConfig ```",
"type": "string"
},
"riskAnalysis": {
"$ref": "GoogleFirebaseAppcheckV1betaRecaptchaEnterpriseConfigRiskAnalysis",
"description": "Specifies risk tolerance and requirements for your application. These settings correspond to requirements on the [**`riskAnalysis`**](https://cloud.google.com/recaptcha/docs/interpret-assessment-website#interpret_assessment) tuple in the assessment obtained from reCAPTCHA Enterprise. The default values for these settings work for most apps, and are recommended."
},
"siteKey": {
"description": "The score-based site key [created in reCAPTCHA Enterprise](https://cloud.google.com/recaptcha-enterprise/docs/create-key#creating_a_site_key) used to [invoke reCAPTCHA and generate the reCAPTCHA tokens](https://cloud.google.com/recaptcha-enterprise/docs/instrument-web-pages) for your application. Important: This is *not* the `site_secret` (as it is in reCAPTCHA v3), but rather your score-based reCAPTCHA Enterprise site key.",
"type": "string"
},
"tokenTtl": {
"description": "Specifies the duration for which App Check tokens exchanged from reCAPTCHA Enterprise tokens will be valid. If unset, a default value of 1 hour is assumed. Must be between 30 minutes and 7 days, inclusive.",
"format": "google-duration",
"type": "string"
}
},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaRecaptchaEnterpriseConfigRiskAnalysis": {
"description": "A settings object specifying risk tolerance and requirements for your application. These settings correspond to requirements on the [**`riskAnalysis`**](https://cloud.google.com/recaptcha/docs/interpret-assessment-website#interpret_assessment) tuple in the assessment obtained from reCAPTCHA Enterprise. The default values for these settings work for most apps, and are recommended.",
"id": "GoogleFirebaseAppcheckV1betaRecaptchaEnterpriseConfigRiskAnalysis",
"properties": {
"minValidScore": {
"description": "Specifies a minimum score required for a reCAPTCHA token to be considered valid. If its score is greater than or equal to this value, it will be accepted; otherwise, it will be rejected. The value must be between 0.0 and 1.0. The default value is 0.5.",
"format": "float",
"type": "number"
}
},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaRecaptchaV3Config": {
"description": "An app's reCAPTCHA v3 configuration object. This configuration is used by ExchangeRecaptchaV3Token to validate reCAPTCHA tokens issued to apps by reCAPTCHA v3. It also controls certain properties of the returned `AppCheckToken`, such as its ttl.",
"id": "GoogleFirebaseAppcheckV1betaRecaptchaV3Config",
"properties": {
"minValidScore": {
"description": "Specifies a minimum score required for a reCAPTCHA token to be considered valid. If its score is greater than or equal to this value, it will be accepted; otherwise, it will be rejected. The value must be between 0.0 and 1.0. The default value is 0.5.",
"format": "float",
"type": "number"
},
"name": {
"description": "Required. The relative resource name of the reCAPTCHA v3 configuration object, in the format: ``` projects/{project_number}/apps/{app_id}/recaptchaV3Config ```",
"type": "string"
},
"siteSecret": {
"description": "Required. Input only. The site secret used to identify your service for reCAPTCHA v3 verification. For security reasons, this field will never be populated in any response.",
"type": "string"
},
"siteSecretSet": {
"description": "Output only. Whether the `site_secret` field was previously set. Since we will never return the `site_secret` field, this field is the only way to find out whether it was previously set.",
"readOnly": true,
"type": "boolean"
},
"tokenTtl": {
"description": "Specifies the duration for which App Check tokens exchanged from reCAPTCHA tokens will be valid. If unset, a default value of 1 day is assumed. Must be between 30 minutes and 7 days, inclusive.",
"format": "google-duration",
"type": "string"
}
},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaResourcePolicy": {
"description": "App Check enforcement policy for a specific resource of a Google service supported by App Check. Note that this policy will override the service-level configuration.",
"id": "GoogleFirebaseAppcheckV1betaResourcePolicy",
"properties": {
"enforcementMode": {
"description": "Required. The App Check enforcement mode for this resource. This will override the EnforcementMode setting on the parent service.",
"enum": [
"OFF",
"UNENFORCED",
"ENFORCED"
],
"enumDescriptions": [
"The relevant App Check protection is not enforced for the service or resource, nor are App Check metrics collected. Though the relevant App Check protection is not applied, other applicable protections, such as user authorization, are still enforced. An unconfigured protection is in this mode by default.",
"The relevant App Check protection is not enforced for the service or resource. App Check metrics are collected to help you decide when to turn on enforcement. These metrics will show the portion of traffic that is deemed invalid by the relevant App Check protection, but that traffic will not be rejected until you turn on enforcement. Though the relevant App Check protection is not enforced, other applicable protections, such as user authorization, are still enforced. Some services require certain conditions to be met before they will work with App Check, such as requiring you to upgrade to a specific service tier. Until those requirements are met for a service, this `UNENFORCED` setting will have no effect and App Check will not work with that service.",
"The relevant App Check protection is enforced for the service or resource. The service or resource will reject any traffic not accompanied by an App Check token that is deemded valid by the relevant protection. There are some exceptions depending on the service; for example, some services will still allow requests bearing the developer's privileged service account credentials without an App Check token. App Check metrics continue to be collected to help you detect issues with your App Check integration and monitor the composition of your callers. While the service is protected by App Check, other applicable protections, such as user authorization, continue to be enforced at the same time. Use caution when choosing to enforce App Check protections. If your users have not updated to a version of your app that meets the requirements of the relevant App Check protection, their app may stop working. App Check metrics can help you decide whether to enforce App Check on your services and resources. If your app has not launched yet, you should enable enforcement as soon as you verify that your App Check implementation is correct, since there are no outdated clients in use. Some services require certain conditions to be met before they will work with App Check, such as requiring you to upgrade to a specific service tier. Until those requirements are met for a service, this `ENFORCED` setting will have no effect and App Check will not work with that service."
],
"type": "string"
},
"etag": {
"description": "This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding. This etag is strongly validated as defined by RFC 7232.",
"type": "string"
},
"name": {
"description": "Required. Identifier. The relative name of the resource policy object, in the format: ``` projects/{project_number}/services/{service_id}/resourcePolicies/{resource_policy_id} ``` Note that the `service_id` element must be a supported service ID. Currently, the following service IDs are supported: * `oauth2.googleapis.com` (Google Identity for iOS) `resource_policy_id` is a system-generated UID.",
"type": "string"
},
"targetResource": {
"description": "Required. Service specific name of the resource object to which this policy applies, in the format: * **iOS OAuth clients** (Google Identity for iOS): `//oauth2.googleapis.com/projects/{project_number}/oauthClients/{oauth_client_id}` Note that the resource must belong to the service specified in the `name` and be from the same project as this policy, but the resource is allowed to be missing at the time of creation of this policy; in that case, we make a best-effort attempt at respecting this policy, but it may not have any effect until the resource is fully created.",
"type": "string"
},
"updateTime": {
"description": "Output only. Timestamp when this resource policy configuration object was most recently updated.",
"format": "google-datetime",
"readOnly": true,
"type": "string"
}
},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaSafetyNetConfig": {
"deprecated": true,
"description": "An app's SafetyNet configuration object. This configuration controls certain properties of the `AppCheckToken` returned by ExchangeSafetyNetToken, such as its ttl. Note that your registered SHA-256 certificate fingerprints are used to validate tokens issued by SafetyNet; please register them via the Firebase Console or programmatically via the [Firebase Management Service](https://firebase.google.com/docs/projects/api/reference/rest/v1beta1/projects.androidApps.sha/create).",
"id": "GoogleFirebaseAppcheckV1betaSafetyNetConfig",
"properties": {
"name": {
"description": "Required. The relative resource name of the SafetyNet configuration object, in the format: ``` projects/{project_number}/apps/{app_id}/safetyNetConfig ```",
"type": "string"
},
"tokenTtl": {
"description": "Specifies the duration for which App Check tokens exchanged from SafetyNet tokens will be valid. If unset, a default value of 1 hour is assumed. Must be between 30 minutes and 7 days, inclusive.",
"format": "google-duration",
"type": "string"
}
},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaService": {
"description": "The enforcement configuration for a Firebase service supported by App Check.",
"id": "GoogleFirebaseAppcheckV1betaService",
"properties": {
"enforcementMode": {
"description": "Required. The App Check enforcement mode for this service.",
"enum": [
"OFF",
"UNENFORCED",
"ENFORCED"
],
"enumDescriptions": [
"The relevant App Check protection is not enforced for the service or resource, nor are App Check metrics collected. Though the relevant App Check protection is not applied, other applicable protections, such as user authorization, are still enforced. An unconfigured protection is in this mode by default.",
"The relevant App Check protection is not enforced for the service or resource. App Check metrics are collected to help you decide when to turn on enforcement. These metrics will show the portion of traffic that is deemed invalid by the relevant App Check protection, but that traffic will not be rejected until you turn on enforcement. Though the relevant App Check protection is not enforced, other applicable protections, such as user authorization, are still enforced. Some services require certain conditions to be met before they will work with App Check, such as requiring you to upgrade to a specific service tier. Until those requirements are met for a service, this `UNENFORCED` setting will have no effect and App Check will not work with that service.",
"The relevant App Check protection is enforced for the service or resource. The service or resource will reject any traffic not accompanied by an App Check token that is deemded valid by the relevant protection. There are some exceptions depending on the service; for example, some services will still allow requests bearing the developer's privileged service account credentials without an App Check token. App Check metrics continue to be collected to help you detect issues with your App Check integration and monitor the composition of your callers. While the service is protected by App Check, other applicable protections, such as user authorization, continue to be enforced at the same time. Use caution when choosing to enforce App Check protections. If your users have not updated to a version of your app that meets the requirements of the relevant App Check protection, their app may stop working. App Check metrics can help you decide whether to enforce App Check on your services and resources. If your app has not launched yet, you should enable enforcement as soon as you verify that your App Check implementation is correct, since there are no outdated clients in use. Some services require certain conditions to be met before they will work with App Check, such as requiring you to upgrade to a specific service tier. Until those requirements are met for a service, this `ENFORCED` setting will have no effect and App Check will not work with that service."
],
"type": "string"
},
"etag": {
"description": "This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding. This etag is strongly validated as defined by RFC 7232.",
"type": "string"
},
"name": {
"description": "Required. The relative resource name of the service configuration object, in the format: ``` projects/{project_number}/services/{service_id} ``` Note that the `service_id` element must be a supported service ID. Currently, the following service IDs are supported: * `firebasestorage.googleapis.com` (Cloud Storage for Firebase) * `firebasedatabase.googleapis.com` (Firebase Realtime Database) * `firestore.googleapis.com` (Cloud Firestore) * `identitytoolkit.googleapis.com` (Firebase Authentication with Identity Platform) * `oauth2.googleapis.com` (Google Identity for iOS)",
"type": "string"
},
"updateTime": {
"description": "Output only. Timestamp when this service configuration object was most recently updated.",
"format": "google-datetime",
"readOnly": true,
"type": "string"
}
},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaUpdateResourcePolicyRequest": {
"description": "Request message for the UpdateResourcePolicy method as well as an individual update message for the BatchUpdateResourcePolicies method.",
"id": "GoogleFirebaseAppcheckV1betaUpdateResourcePolicyRequest",
"properties": {
"resourcePolicy": {
"$ref": "GoogleFirebaseAppcheckV1betaResourcePolicy",
"description": "Required. The ResourcePolicy to update. The ResourcePolicy's `name` field is used to identify the ResourcePolicy to be updated, in the format: ``` projects/{project_number}/services/{service_id}/resourcePolicies/{resource_policy_id} ``` Note that the `service_id` element must be a supported service ID. Currently, the following service IDs are supported: * `oauth2.googleapis.com` (Google Identity for iOS)"
},
"updateMask": {
"description": "Required. A comma-separated list of names of fields in the ResourcePolicy to update. Example: `enforcement_mode`.",
"format": "google-fieldmask",
"type": "string"
}
},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaUpdateServiceRequest": {
"description": "Request message for the UpdateService method as well as an individual update message for the BatchUpdateServices method.",
"id": "GoogleFirebaseAppcheckV1betaUpdateServiceRequest",
"properties": {
"service": {
"$ref": "GoogleFirebaseAppcheckV1betaService",
"description": "Required. The Service to update. The Service's `name` field is used to identify the Service to be updated, in the format: ``` projects/{project_number}/services/{service_id} ``` Note that the `service_id` element must be a supported service ID. Currently, the following service IDs are supported: * `firebasestorage.googleapis.com` (Cloud Storage for Firebase) * `firebasedatabase.googleapis.com` (Firebase Realtime Database) * `firestore.googleapis.com` (Cloud Firestore) * `identitytoolkit.googleapis.com` (Firebase Authentication with Identity Platform) * `oauth2.googleapis.com` (Google Identity for iOS) For Firebase Authentication to work with App Check, you must first upgrade to [Firebase Authentication with Identity Platform](https://firebase.google.com/docs/auth#identity-platform)."
},
"updateMask": {
"description": "Required. A comma-separated list of names of fields in the Service to update. Example: `enforcement_mode`.",
"format": "google-fieldmask",
"type": "string"
}
},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaVerifyAppCheckTokenRequest": {
"description": "Request message for the VerifyAppCheckToken method.",
"id": "GoogleFirebaseAppcheckV1betaVerifyAppCheckTokenRequest",
"properties": {
"appCheckToken": {
"description": "Required. The App Check token to verify. App Check tokens exchanged from the SafetyNet provider are not supported; an HTTP 400 error will be returned.",
"type": "string"
}
},
"type": "object"
},
"GoogleFirebaseAppcheckV1betaVerifyAppCheckTokenResponse": {
"description": "Response message for the VerifyAppCheckToken method.",
"id": "GoogleFirebaseAppcheckV1betaVerifyAppCheckTokenResponse",
"properties": {
"alreadyConsumed": {
"description": "Whether this token was already consumed. If this is the first time this method has seen the given App Check token, this field will be omitted from the response. The given token will then be marked as `already_consumed` (set to `true`) for all future invocations of this method for that token. Note that if the given App Check token is invalid, an HTTP 403 error is returned instead of a response containing this field, regardless whether the token was already consumed.",
"type": "boolean"
}
},
"type": "object"
},
"GoogleProtobufEmpty": {
"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); }",
"id": "GoogleProtobufEmpty",
"properties": {},
"type": "object"
}
},
"servicePath": "",
"title": "Firebase App Check API",
"version": "v1beta",
"version_module": true
}