# CreateRestoreCredentialRequest

Artifact: [androidx.credentials:credentials](https://developer.android.com/jetpack/androidx/releases/credentials) [View Source](https://cs.android.com/search?q=file:androidx/credentials/CreateRestoreCredentialRequest.kt+class:androidx.credentials.CreateRestoreCredentialRequest) Added in [1.5.0](https://developer.android.com/jetpack/androidx/releases/credentials#1.5.0)

*** ** * ** ***

<br />

```
class CreateRestoreCredentialRequest : CreateCredentialRequest
```

<br />

|---|---|---|
| [kotlin.Any](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html) |||
| ↳ | [androidx.credentials.CreateCredentialRequest](https://developer.android.com/reference/kotlin/androidx/credentials/CreateCredentialRequest) ||
|   | ↳ | [androidx.credentials.CreateRestoreCredentialRequest](https://developer.android.com/reference/kotlin/androidx/credentials/CreateRestoreCredentialRequest) |

*** ** * ** ***

A request to create a restore credential used for app restore purpose. [App restore feature](https://www.android.com/transfer-data-android-to-android/) is a feature that allows users to copy an app and its data to a new Android device.

If the `https://developer.android.com/reference/kotlin/androidx/credentials/CreateRestoreCredentialRequest#isCloudBackupEnabled()` is true, the restore credential service will periodically backup the restore credential to cloud. In order to use this setting, the user device must enable backup and have end-to-end-encryption enabled, such as screen lock. More about cloud backup can be found [here](https://developer.android.com/identity/data/backup). Cloud backup is supported on Android 2.2 and above. If the cloud backup is not enabled, catch the `https://developer.android.com/reference/kotlin/androidx/credentials/exceptions/restorecredential/E2eeUnavailableException` and retry without cloud backup.

| Throws |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/credentials/exceptions/restorecredential/E2eeUnavailableException` | if `https://developer.android.com/reference/kotlin/androidx/credentials/CreateRestoreCredentialRequest#isCloudBackupEnabled()` was requested but the user device did not enable backup or e2ee (screen lock). |
| `https://developer.android.com/reference/kotlin/androidx/credentials/exceptions/restorecredential/CreateRestoreCredentialDomException` | if the requestJson is an invalid Json that does not follow the standard webauthn web json format |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-argument-exception/index.html` | If `https://developer.android.com/reference/kotlin/androidx/credentials/CreateRestoreCredentialRequest#requestJson()` is empty, or if it is not a valid JSON, or if it doesn't have a valid `user.id` defined according to the webauthn spec (https://w3c.github.io/webauthn/#dictdef-publickeycredentialcreationoptionsjson) |

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/kotlin/androidx/credentials/CreateRestoreCredentialRequest#CreateRestoreCredentialRequest(kotlin.String,kotlin.Boolean)( requestJson: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, isCloudBackupEnabled: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` |

| ### Public properties |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/credentials/CreateRestoreCredentialRequest#isCloudBackupEnabled()` whether the credential should be backed up to cloud. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | `https://developer.android.com/reference/kotlin/androidx/credentials/CreateRestoreCredentialRequest#requestJson()` the request in JSON format in the [standard webauthn web json](https://w3c.github.io/webauthn/#dictdef-publickeycredentialcreationoptionsjson). |

### Inherited properties

From [androidx.credentials.CreateCredentialRequest](https://developer.android.com/reference/kotlin/androidx/credentials/CreateCredentialRequest) `https://developer.android.com/reference/android/os/Bundle.html` `https://developer.android.com/reference/kotlin/androidx/credentials/CreateCredentialRequest#candidateQueryData()`

the partial request data in the `https://developer.android.com/reference/android/os/Bundle.html` format that will be sent to the provider during the initial candidate query stage, which should not contain sensitive user credential information (note: bundle keys in the form of `androidx.credentials.*` are reserved for internal library use)
`https://developer.android.com/reference/android/os/Bundle.html` `https://developer.android.com/reference/kotlin/androidx/credentials/CreateCredentialRequest#credentialData()`

the request data in the `https://developer.android.com/reference/android/os/Bundle.html` format
`https://developer.android.com/reference/kotlin/androidx/credentials/CreateCredentialRequest.DisplayInfo` `https://developer.android.com/reference/kotlin/androidx/credentials/CreateCredentialRequest#displayInfo()`

the information to be displayed on the screen
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `https://developer.android.com/reference/kotlin/androidx/credentials/CreateCredentialRequest#isAutoSelectAllowed()`

whether a create option will be automatically chosen if it is the only one available to the user
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `https://developer.android.com/reference/kotlin/androidx/credentials/CreateCredentialRequest#isSystemProviderRequired()`

true if must only be fulfilled by a system provider and false otherwise
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?` `https://developer.android.com/reference/kotlin/androidx/credentials/CreateCredentialRequest#origin()`

the origin of a different application if the request is being made on behalf of that application (Note: for API level \>=34, setting a non-null value for this parameter will throw a SecurityException if android.permission.CREDENTIAL_MANAGER_SET_ORIGIN is not present)
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `https://developer.android.com/reference/kotlin/androidx/credentials/CreateCredentialRequest#preferImmediatelyAvailableCredentials()`

true if you prefer the operation to return immediately when there is no available passkey registration offering instead of falling back to discovering remote options, and false (preferred by default) otherwise
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` `https://developer.android.com/reference/kotlin/androidx/credentials/CreateCredentialRequest#type()`

the credential type determined by the credential-type-specific subclass (e.g. the type for `https://developer.android.com/reference/kotlin/androidx/credentials/CreatePasswordRequest` is `https://developer.android.com/reference/kotlin/androidx/credentials/PasswordCredential#TYPE_PASSWORD_CREDENTIAL()` and for `https://developer.android.com/reference/kotlin/androidx/credentials/CreatePublicKeyCredentialRequest` is `https://developer.android.com/reference/kotlin/androidx/credentials/PublicKeyCredential#TYPE_PUBLIC_KEY_CREDENTIAL()`)

## Public constructors

### CreateRestoreCredentialRequest

Added in [1.5.0](https://developer.android.com/jetpack/androidx/releases/credentials#1.5.0)

```
CreateRestoreCredentialRequest(
    requestJson: String,
    isCloudBackupEnabled: Boolean = true
)
```

| Parameters |
|---|---|
| `requestJson: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | the request in JSON format in the [standard webauthn web json](https://w3c.github.io/webauthn/#dictdef-publickeycredentialcreationoptionsjson). |
| `isCloudBackupEnabled: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = true` | whether the credential should be backed up to cloud. |

## Public properties

### isCloudBackupEnabled

Added in [1.5.0](https://developer.android.com/jetpack/androidx/releases/credentials#1.5.0)

```
val isCloudBackupEnabled: Boolean
```

whether the credential should be backed up to cloud.

### requestJson

Added in [1.5.0](https://developer.android.com/jetpack/androidx/releases/credentials#1.5.0)

```
val requestJson: String
```

the request in JSON format in the [standard webauthn web json](https://w3c.github.io/webauthn/#dictdef-publickeycredentialcreationoptionsjson).