# Home


```
@
@RequiresApi(value = 27)
open class Home : HomeClient
```

<br />

*** ** * ** ***

Entry point for the Home API.

## Summary

| ### Nested types |
|---|
| `object Home.Companion : https://developers.google.com/android/reference/com/google/android/gms/common/api/OptionalModuleApi.html` |

| ### Constants |
|---|---|
| `const https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html` | `https://developers.home.google.com/reference/kotlin/com/google/home/Home#TAG()` |

| ### Public companion functions |
|---|---|
| `https://developers.home.google.com/reference/kotlin/com/google/home/HomeClient` | `https://developers.home.google.com/reference/kotlin/com/google/home/Home#getClient(android.app.Activity,com.google.home.HomeConfig)(activity: https://developer.android.com/reference/android/app/Activity.html, homeConfig: https://developers.home.google.com/reference/kotlin/com/google/home/HomeConfig)` Creates an instance of the Home API. |
| `https://developers.home.google.com/reference/kotlin/com/google/home/HomeClient` | `https://developers.home.google.com/reference/kotlin/com/google/home/Home#getClient(android.content.Context,com.google.home.HomeConfig)(context: https://developer.android.com/reference/android/content/Context.html, homeConfig: https://developers.home.google.com/reference/kotlin/com/google/home/HomeConfig)` Creates an instance of the Home API. |
| `https://developers.home.google.com/reference/kotlin/com/google/home/HomeClientWithProvidedAccount` | `https://developers.home.google.com/reference/kotlin/com/google/home/Home#getClient(android.app.Activity,kotlin.Lazy,com.google.home.HomeConfig)( activity: https://developer.android.com/reference/android/app/Activity.html, account: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-lazy/index.html<https://developers.home.google.com/reference/kotlin/com/google/home/UserAccount>, homeConfig: https://developers.home.google.com/reference/kotlin/com/google/home/HomeConfig )` Creates an instance of the Home API for the passed UserAccount. |
| `https://developers.home.google.com/reference/kotlin/com/google/home/HomeClientWithProvidedAccount` | `https://developers.home.google.com/reference/kotlin/com/google/home/Home#getClient(android.content.Context,kotlin.Lazy,com.google.home.HomeConfig)( context: https://developer.android.com/reference/android/content/Context.html, account: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-lazy/index.html<https://developers.home.google.com/reference/kotlin/com/google/home/UserAccount>, homeConfig: https://developers.home.google.com/reference/kotlin/com/google/home/HomeConfig )` Creates an instance of the Home API for the passed UserAccount. |
| `open https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-array/index.html<https://developers.google.com/android/reference/com/google/android/gms/common/Feature.html>` | `https://developers.home.google.com/reference/kotlin/com/google/home/Home#getOptionalFeatures()()` |

| ### Public functions |
|---|---|
| `open suspend https://developers.home.google.com/reference/kotlin/com/google/home/FederatedInvitationRedeemStatus` | `https://developers.home.google.com/reference/kotlin/com/google/home/Home#acceptInvitationWithFederatedAccount(kotlin.String)(token: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)` Redeems an invitation for a federated user. |
| `open suspend https://developers.home.google.com/reference/kotlin/com/google/home/PermissionsResult` | `https://developers.home.google.com/reference/kotlin/com/google/home/Home#addGoogleUser(kotlin.String)(structureId: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)` Adds a Google (Gaia) user to the specified structure by starting the OAuth consent flow. |
| `open suspend https://developers.home.google.com/reference/kotlin/com/google/home/Structure` | `https://developers.home.google.com/reference/kotlin/com/google/home/Home#createStructure(kotlin.String)(name: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)` Creates a new structure with the given name. |
| `open https://developers.home.google.com/reference/kotlin/com/google/home/HomeObjectsFlow<https://developers.home.google.com/reference/kotlin/com/google/home/HomeDevice>` | `https://developers.home.google.com/reference/kotlin/com/google/home/Home#devices(kotlin.Boolean)(enableMultipartDevices: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)` Gets an observable flow of `https://developers.home.google.com/reference/kotlin/com/google/home/HomeDevice`s visible to the logged-in user, dependent on the context of the implementation (`https://developers.home.google.com/reference/kotlin/com/google/home/HomeManager`, `https://developers.home.google.com/reference/kotlin/com/google/home/Structure`, `https://developers.home.google.com/reference/kotlin/com/google/home/Room`). |
| `open https://developers.home.google.com/reference/kotlin/com/google/home/HomeObjectsFlow<T>` | `@https://developers.home.google.com/reference/kotlin/com/google/home/annotation/HomeExperimentalApi <T : https://developers.home.google.com/reference/kotlin/com/google/home/HomeEntityType> https://developers.home.google.com/reference/kotlin/com/google/home/Home#entities(com.google.home.EntityTypeFactory)(factory: https://developers.home.google.com/reference/kotlin/com/google/home/EntityTypeFactory<T>)` Gets an observable flow of all entities of the given `https://developers.home.google.com/reference/kotlin/com/google/home/Home#entities(com.google.home.EntityTypeFactory)` type visible to the logged-in user. |
| `open https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html?` | `https://developers.home.google.com/reference/kotlin/com/google/home/Home#getLocale()()` Returns the locale for the application and for the user if in context. |
| `open https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/-flow/index.html<https://developers.home.google.com/reference/kotlin/com/google/home/PermissionsState>` | `https://developers.home.google.com/reference/kotlin/com/google/home/Home#hasPermissions()()` Checks if the client has permissions to home data. |
| `open suspend https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-set/index.html<https://developers.home.google.com/reference/kotlin/com/google/home/Id>` | `@https://developer.android.com/reference/androidx/annotation/RequiresApi.html(value = 27) @https://developers.home.google.com/reference/kotlin/com/google/home/annotation/HomeExperimentalApi @https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-opt-in/index.html(markerClass = [https://developers.home.google.com/reference/kotlin/com/google/home/annotation/HomeExperimentalGenericApi]) https://developers.home.google.com/reference/kotlin/com/google/home/Home#initiateDecommissioningWithConsent(com.google.home.HomeDevice)(device: https://developers.home.google.com/reference/kotlin/com/google/home/HomeDevice)` Initiates the device decommissioning process with consent. |
| `open https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html` | `https://developers.home.google.com/reference/kotlin/com/google/home/Home#registerActivityResultCallerForPermissions(androidx.activity.result.ActivityResultCaller)( permissionsLauncher: https://developer.android.com/reference/androidx/activity/result/ActivityResultCaller.html )` Registers an `https://developer.android.com/reference/androidx/activity/result/ActivityResultCaller.html` that can be used to launch permissions-related UIs. |
| `open suspend https://developers.home.google.com/reference/kotlin/com/google/home/PermissionsResult` | `[requestPermissions](https://developers.home.google.com/reference/kotlin/com/google/home/Home#requestPermissions(kotlin.Boolean,com.google.home.ConsentScreenOptions))( forceLaunch: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html, consentScreenOptions: https://developers.home.google.com/reference/kotlin/com/google/home/ConsentScreenOptions? )` **This function is deprecated.** Use requestPermissions with ForcePermissionFlow instead. |
| `open suspend https://developers.home.google.com/reference/kotlin/com/google/home/PermissionsResult` | `https://developers.home.google.com/reference/kotlin/com/google/home/Home#requestPermissions(com.google.home.ForcePermissionFlow,com.google.home.ConsentScreenOptions)( forcePermissionFlow: https://developers.home.google.com/reference/kotlin/com/google/home/ForcePermissionFlow, consentScreenOptions: https://developers.home.google.com/reference/kotlin/com/google/home/ConsentScreenOptions? )` Triggers the permission-granting flow with specified `https://developers.home.google.com/reference/kotlin/com/google/home/ForcePermissionFlow`, getting OAuth consent from the user and completing initialization if needed. |
| `open https://developers.home.google.com/reference/kotlin/com/google/home/HomeObjectsFlow<https://developers.home.google.com/reference/kotlin/com/google/home/Room>` | `https://developers.home.google.com/reference/kotlin/com/google/home/Home#rooms()()` Gets an observable flow of `https://developers.home.google.com/reference/kotlin/com/google/home/Room`s visible to the logged-in user. |
| `open suspend T` | `@https://developers.home.google.com/reference/kotlin/com/google/home/annotation/HomeExperimentalApi <T : https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html?> https://developers.home.google.com/reference/kotlin/com/google/home/Home#sendBatchedCommands(kotlin.Function1)(block: https://developers.home.google.com/reference/kotlin/com/google/home/BatchScope.() -> T)` Entry point for sending a batch of commands. |
| `open https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html` | `https://developers.home.google.com/reference/kotlin/com/google/home/Home#setLocale(kotlin.String)(locale: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html?)` Sets the locale for the application and for the user if in context. |
| `open https://developers.home.google.com/reference/kotlin/com/google/home/HomeObjectsFlow<https://developers.home.google.com/reference/kotlin/com/google/home/Structure>` | `https://developers.home.google.com/reference/kotlin/com/google/home/Home#structures()()` Gets an observable flow of `https://developers.home.google.com/reference/kotlin/com/google/home/Structure`s visible to the logged-in user. |
| `open suspend https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html` | `@https://developers.home.google.com/reference/kotlin/com/google/home/annotation/HomeExperimentalApi https://developers.home.google.com/reference/kotlin/com/google/home/Home#syncLinkedDevices()()` |
| `open suspend https://developers.home.google.com/reference/kotlin/com/google/home/FeatureConsentResult` | `https://developers.home.google.com/reference/kotlin/com/google/home/Home#updateFeatureConsent(kotlin.collections.List,kotlin.String)( features: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html<https://developers.home.google.com/reference/kotlin/com/google/home/FeatureConsentType>, structureId: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html )` Launches the UI to update feature consents for the given account, features, and structure. |

## Constants

### TAG

```
const val TAG: String
```

## Public companion functions

### getClient

```
fun getClient(activity: Activity, homeConfig: HomeConfig = HomeConfig()): HomeClient
```

Creates an instance of the Home API.

Note: This is not the preferred `https://developers.home.google.com/reference/kotlin/com/google/home/Home#getClient(android.content.Context,com.google.home.HomeConfig)` method for 3P apps. Instead, use `https://developers.home.google.com/reference/kotlin/com/google/home/Home#getClient(android.content.Context,com.google.home.HomeConfig)` with a `https://developer.android.com/reference/android/content/Context.html`. The provided Activity here will be used to obtain the application context, which will be used to create the HomeClient. Providing the application context directly is preferred.

| Parameters |
|---|---|
| `activity: https://developer.android.com/reference/android/app/Activity.html` | the app activity to use for the instance. |
| `homeConfig: https://developers.home.google.com/reference/kotlin/com/google/home/HomeConfig = HomeConfig()` | configuration parameters for SDK behavior. |

| Returns |
|---|---|
| `https://developers.home.google.com/reference/kotlin/com/google/home/HomeClient` | an instance of the Home API. |

### getClient

```
fun getClient(context: Context, homeConfig: HomeConfig = HomeConfig()): HomeClient
```

Creates an instance of the Home API.

Note: This is the preferred `https://developers.home.google.com/reference/kotlin/com/google/home/Home#getClient(android.content.Context,com.google.home.HomeConfig)` method for 3P apps.

| Parameters |
|---|---|
| `context: https://developer.android.com/reference/android/content/Context.html` | the app context to use for the instance. |
| `homeConfig: https://developers.home.google.com/reference/kotlin/com/google/home/HomeConfig = HomeConfig()` | configuration parameters for SDK behavior. |

| Returns |
|---|---|
| `https://developers.home.google.com/reference/kotlin/com/google/home/HomeClient` | an instance of the Home API. |

### getClient

```
fun getClient(
    activity: Activity,
    account: Lazy<UserAccount>,
    homeConfig: HomeConfig = HomeConfig()
): HomeClientWithProvidedAccount
```

Creates an instance of the Home API for the passed UserAccount.

Note: This is not the preferred `https://developers.home.google.com/reference/kotlin/com/google/home/Home#getClient(android.content.Context,com.google.home.HomeConfig)` method for 3P apps managing `https://developers.home.google.com/reference/kotlin/com/google/home/UserAccount`s. Instead, use `https://developers.home.google.com/reference/kotlin/com/google/home/Home#getClient(android.content.Context,com.google.home.HomeConfig)` with a `https://developer.android.com/reference/android/content/Context.html`. The provided Activity here will be used to obtain the application context, which will be used to create the HomeClient. Providing the application context directly is preferred.

| Parameters |
|---|---|
| `activity: https://developer.android.com/reference/android/app/Activity.html` | the app activity to use for the instance. |
| `account: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-lazy/index.html<https://developers.home.google.com/reference/kotlin/com/google/home/UserAccount>` | the UserAccount to use for the instance. |
| `homeConfig: https://developers.home.google.com/reference/kotlin/com/google/home/HomeConfig = HomeConfig()` | configuration parameters for SDK behavior. |

| Returns |
|---|---|
| `https://developers.home.google.com/reference/kotlin/com/google/home/HomeClientWithProvidedAccount` | an instance of `https://developers.home.google.com/reference/kotlin/com/google/home/HomeClientWithProvidedAccount`. |

### getClient

```
fun getClient(
    context: Context,
    account: Lazy<UserAccount>,
    homeConfig: HomeConfig = HomeConfig()
): HomeClientWithProvidedAccount
```

Creates an instance of the Home API for the passed UserAccount.

Note: This is the preferred `https://developers.home.google.com/reference/kotlin/com/google/home/Home#getClient(android.content.Context,com.google.home.HomeConfig)` method for 3P apps managing `https://developers.home.google.com/reference/kotlin/com/google/home/UserAccount`s.

| Parameters |
|---|---|
| `context: https://developer.android.com/reference/android/content/Context.html` | the app context to use for the instance. |
| `account: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-lazy/index.html<https://developers.home.google.com/reference/kotlin/com/google/home/UserAccount>` | the UserAccount to use for the instance. |
| `homeConfig: https://developers.home.google.com/reference/kotlin/com/google/home/HomeConfig = HomeConfig()` | configuration parameters for SDK behavior. |

| Returns |
|---|---|
| `https://developers.home.google.com/reference/kotlin/com/google/home/HomeClientWithProvidedAccount` | an instance of `https://developers.home.google.com/reference/kotlin/com/google/home/HomeClientWithProvidedAccount`. |

### getOptionalFeatures

```
open fun getOptionalFeatures(): Array<Feature>
```

## Public functions

### acceptInvitationWithFederatedAccount

```
open suspend fun acceptInvitationWithFederatedAccount(token: String): FederatedInvitationRedeemStatus
```

Redeems an invitation for a federated user.

| Parameters |
|---|---|
| `token: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html` | the invitation token to redeem. |

| Throws |
|---|---|
| `https://developers.home.google.com/reference/kotlin/com/google/home/HomeException` | if the operation did not succeed. |

### addGoogleUser

```
open suspend fun addGoogleUser(structureId: String): PermissionsResult
```

Adds a Google (Gaia) user to the specified structure by starting the OAuth consent flow.

| Parameters |
|---|---|
| `structureId: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html` | the id of the structure to add the Google user to. |

| Returns |
|---|---|
| `https://developers.home.google.com/reference/kotlin/com/google/home/PermissionsResult` | the `https://developers.home.google.com/reference/kotlin/com/google/home/PermissionsResult` of the consent flow. |

| Throws |
|---|---|
| `https://developers.home.google.com/reference/kotlin/com/google/home/HomeException` | if the operation did not succeed. |

### createStructure

```
open suspend fun createStructure(name: String): Structure
```

Creates a new structure with the given name. This is only usable with clients that utilize app-initiated sign-in using a `https://developers.home.google.com/reference/kotlin/com/google/home/UserAccount.FederatedAccount`.

| Parameters |
|---|---|
| `name: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html` | the name of the structure to create. |

| Returns |
|---|---|
| `https://developers.home.google.com/reference/kotlin/com/google/home/Structure` | the created structure. |

### devices

```
open fun devices(enableMultipartDevices: Boolean): HomeObjectsFlow<HomeDevice>
```

Gets an observable flow of `https://developers.home.google.com/reference/kotlin/com/google/home/HomeDevice`s visible to the logged-in user, dependent on the context of the implementation (`https://developers.home.google.com/reference/kotlin/com/google/home/HomeManager`, `https://developers.home.google.com/reference/kotlin/com/google/home/Structure`, `https://developers.home.google.com/reference/kotlin/com/google/home/Room`).

| Returns |
|---|---|
| `https://developers.home.google.com/reference/kotlin/com/google/home/HomeObjectsFlow<https://developers.home.google.com/reference/kotlin/com/google/home/HomeDevice>` | a flow of `https://developers.home.google.com/reference/kotlin/com/google/home/HomeDevice`s. |

### entities

```
@HomeExperimentalApi
open fun <T : HomeEntityType> entities(factory: EntityTypeFactory<T>): HomeObjectsFlow<T>
```

Gets an observable flow of all entities of the given `https://developers.home.google.com/reference/kotlin/com/google/home/Home#entities(com.google.home.EntityTypeFactory)` type visible to the logged-in user.

| Returns |
|---|---|
| `https://developers.home.google.com/reference/kotlin/com/google/home/HomeObjectsFlow<T>` | a flow of entities of the given type. |

### getLocale

```
open fun getLocale(): String?
```

Returns the locale for the application and for the user if in context.

| Returns |
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html?` | BCP-47 language tag (e.g., "en-US") or null if not set. |

| Throws |
|---|---|
| `https://developers.home.google.com/reference/kotlin/com/google/home/HomeException` | if the client has been shut down. |

### hasPermissions

```
open fun hasPermissions(): Flow<PermissionsState>
```

Checks if the client has permissions to home data.

| Returns |
|---|---|
| `https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/-flow/index.html<https://developers.home.google.com/reference/kotlin/com/google/home/PermissionsState>` | a flow of client permissions. |

### initiateDecommissioningWithConsent

```
@RequiresApi(value = 27)
@HomeExperimentalApi
@OptIn(markerClass = [HomeExperimentalGenericApi])
open suspend fun initiateDecommissioningWithConsent(device: HomeDevice): Set<Id>
```

Initiates the device decommissioning process with consent. Opens a Google-hosted consent WebView and calls standard Matter decommission trait.

| Parameters |
|---|---|
| `device: https://developers.home.google.com/reference/kotlin/com/google/home/HomeDevice` | The device to be decommissioned. |

| Returns |
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-set/index.html<https://developers.home.google.com/reference/kotlin/com/google/home/Id>` | the set of device IDs that were affected by the decommissioning. |

### registerActivityResultCallerForPermissions

```
open fun registerActivityResultCallerForPermissions(
    permissionsLauncher: ActivityResultCaller
): Unit
```

Registers an `https://developer.android.com/reference/androidx/activity/result/ActivityResultCaller.html` that can be used to launch permissions-related UIs.

| Parameters |
|---|---|
| `permissionsLauncher: https://developer.android.com/reference/androidx/activity/result/ActivityResultCaller.html` | the `https://developer.android.com/reference/androidx/activity/result/ActivityResultCaller.html` to register. |

### requestPermissions

```
open suspend fun [requestPermissions](https://developers.home.google.com/reference/kotlin/com/google/home/Home#requestPermissions(kotlin.Boolean,com.google.home.ConsentScreenOptions))(
    forceLaunch: Boolean,
    consentScreenOptions: ConsentScreenOptions?
): PermissionsResult
```

> [!CAUTION]
> **This function is deprecated.**   
> Use requestPermissions with ForcePermissionFlow instead.

Triggers the permission-granting flow, getting OAuth consent from the user and completing initialization if needed.

| Parameters |
|---|---|
| `forceLaunch: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html` | When false, only launch UIs in the absence of a valid account and/or OAuth token for the account. When true, always launch the UIs in order to grant additional permissions (accounts and/or structures). |
| `consentScreenOptions: https://developers.home.google.com/reference/kotlin/com/google/home/ConsentScreenOptions?` | The options for the consent screen. |

| Returns |
|---|---|
| `https://developers.home.google.com/reference/kotlin/com/google/home/PermissionsResult` | the result of the permission-granting flow. |

### requestPermissions

```
open suspend fun requestPermissions(
    forcePermissionFlow: ForcePermissionFlow,
    consentScreenOptions: ConsentScreenOptions?
): PermissionsResult
```

Triggers the permission-granting flow with specified `https://developers.home.google.com/reference/kotlin/com/google/home/ForcePermissionFlow`, getting OAuth consent from the user and completing initialization if needed.

| Parameters |
|---|---|
| `forcePermissionFlow: https://developers.home.google.com/reference/kotlin/com/google/home/ForcePermissionFlow` | The `https://developers.home.google.com/reference/kotlin/com/google/home/ForcePermissionFlow` to be used. |
| `consentScreenOptions: https://developers.home.google.com/reference/kotlin/com/google/home/ConsentScreenOptions?` | The options for the consent screen. |

| Returns |
|---|---|
| `https://developers.home.google.com/reference/kotlin/com/google/home/PermissionsResult` | the result of the permission-granting flow. |

### rooms

```
open fun rooms(): HomeObjectsFlow<Room>
```

Gets an observable flow of `https://developers.home.google.com/reference/kotlin/com/google/home/Room`s visible to the logged-in user.

| Returns |
|---|---|
| `https://developers.home.google.com/reference/kotlin/com/google/home/HomeObjectsFlow<https://developers.home.google.com/reference/kotlin/com/google/home/Room>` | a flow of `https://developers.home.google.com/reference/kotlin/com/google/home/Room`s. |

### sendBatchedCommands

```
@HomeExperimentalApi
open suspend fun <T : Any?> sendBatchedCommands(block: BatchScope.() -> T): T
```

Entry point for sending a batch of commands. This method does not return until all commands in the batch have been sent and all command responses have been populated. This method will not throw if an individual command fails.

| Parameters |
|---|---|
| `block: https://developers.home.google.com/reference/kotlin/com/google/home/BatchScope.() -> T` | the block to execute. |

| Returns |
|---|---|
| `T` | the result of the block. |

### setLocale

```
open fun setLocale(locale: String?): Unit
```

Sets the locale for the application and for the user if in context.

| Parameters |
|---|---|
| `locale: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html?` | BCP-47 language tag (e.g., "en-US") to set for the application, or `null` to clear the language preference. |

| Throws |
|---|---|
| `https://developers.home.google.com/reference/kotlin/com/google/home/HomeException` | if the client has been shut down. |

### structures

```
open fun structures(): HomeObjectsFlow<Structure>
```

Gets an observable flow of `https://developers.home.google.com/reference/kotlin/com/google/home/Structure`s visible to the logged-in user.

| Returns |
|---|---|
| `https://developers.home.google.com/reference/kotlin/com/google/home/HomeObjectsFlow<https://developers.home.google.com/reference/kotlin/com/google/home/Structure>` | a flow of `https://developers.home.google.com/reference/kotlin/com/google/home/Structure`s. |

### syncLinkedDevices

```
@HomeExperimentalApi
open suspend fun syncLinkedDevices(): Unit
```

### updateFeatureConsent

```
open suspend fun updateFeatureConsent(
    features: List<FeatureConsentType>,
    structureId: String
): FeatureConsentResult
```

Launches the UI to update feature consents for the given account, features, and structure.

| Parameters |
|---|---|
| `features: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html<https://developers.home.google.com/reference/kotlin/com/google/home/FeatureConsentType>` | The list of features to request consent for. |
| `structureId: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html` | The ID of the structure. |