# StarterNodeDsl

# StarterNodeDsl


```
interface StarterNodeDsl : AutomationFlowContributor
```

<br />

Known direct subclasses [SelectFlowBuilder](https://developers.home.google.com/reference/kotlin/com/google/home/automation/SelectFlowBuilder), [SequentialFlowBuilder](https://developers.home.google.com/reference/kotlin/com/google/home/automation/SequentialFlowBuilder)

|---|---|
| `https://developers.home.google.com/reference/kotlin/com/google/home/automation/SelectFlowBuilder` | Type-safe builder that builds a `https://developers.home.google.com/reference/kotlin/com/google/home/automation/SelectFlow` node. |
| `https://developers.home.google.com/reference/kotlin/com/google/home/automation/SequentialFlowBuilder` | Type-safe builder that builds a `https://developers.home.google.com/reference/kotlin/com/google/home/automation/SequentialFlow` Node. |

*** ** * ** ***

Interface for constructing `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter` nodes and adding them to an automation flow.

## Summary

| ### Public functions |
|---|---|
| `open https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedExpression<T>` | `<T : https://developers.home.google.com/reference/kotlin/com/google/home/Event> https://developers.home.google.com/reference/kotlin/com/google/home/automation/StarterNodeDsl#starter(com.google.home.automation.TypedExpression,com.google.home.EventFactory)( entityExpression: https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedExpression<https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedEntity<HomeObjectType>?>, event: https://developers.home.google.com/reference/kotlin/com/google/home/EventFactory<T> )` Create a `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter` from an `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Expression` of `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Entity` and an `https://developers.home.google.com/reference/kotlin/com/google/home/Event` and add it. |
| `open https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedExpression<T>` | `<T : https://developers.home.google.com/reference/kotlin/com/google/home/Event, U : HomeObjectType> https://developers.home.google.com/reference/kotlin/com/google/home/automation/StarterNodeDsl#starter(com.google.home.automation.TypedExpression,com.google.home.EventFactory)( entityExpression: https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedExpression<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html<https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedEntity<U>>?>, event: https://developers.home.google.com/reference/kotlin/com/google/home/EventFactory<T> )` Create a `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter` from an `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Expression` of `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Entity` list and an `https://developers.home.google.com/reference/kotlin/com/google/home/Event` and add it. |
| `open https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedExpression<T>` | `<T : https://developers.home.google.com/reference/kotlin/com/google/home/Trait> https://developers.home.google.com/reference/kotlin/com/google/home/automation/StarterNodeDsl#starter(com.google.home.automation.TypedExpression,com.google.home.TraitFactory)( entityExpression: https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedExpression<https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedEntity<HomeObjectType>?>, trait: https://developers.home.google.com/reference/kotlin/com/google/home/TraitFactory<T> )` Create a `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter` from an `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Expression` of `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Entity` and a `https://developers.home.google.com/reference/kotlin/com/google/home/Trait` and add it. |
| `open https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedExpression<T>` | `<T : https://developers.home.google.com/reference/kotlin/com/google/home/Trait, U : HomeObjectType> https://developers.home.google.com/reference/kotlin/com/google/home/automation/StarterNodeDsl#starter(com.google.home.automation.TypedExpression,com.google.home.TraitFactory)( entityExpression: https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedExpression<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html<https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedEntity<U>>?>, trait: https://developers.home.google.com/reference/kotlin/com/google/home/TraitFactory<T> )` Create a `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter` from an `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Expression` of `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Entity` list and a `https://developers.home.google.com/reference/kotlin/com/google/home/Trait` and add it. |
| `open https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedExpression<T>` | `<T : https://developers.home.google.com/reference/kotlin/com/google/home/Event> https://developers.home.google.com/reference/kotlin/com/google/home/automation/StarterNodeDsl#starter(com.google.home.Structure,com.google.home.EventFactory)(structure: https://developers.home.google.com/reference/kotlin/com/google/home/Structure, event: https://developers.home.google.com/reference/kotlin/com/google/home/EventFactory<T>)` Create a `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter` from a `https://developers.home.google.com/reference/kotlin/com/google/home/Structure` and an `https://developers.home.google.com/reference/kotlin/com/google/home/Event` and add it. |
| `open https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedExpression<T>` | `<T : https://developers.home.google.com/reference/kotlin/com/google/home/Trait> https://developers.home.google.com/reference/kotlin/com/google/home/automation/StarterNodeDsl#starter(com.google.home.Structure,com.google.home.TraitFactory)(structure: https://developers.home.google.com/reference/kotlin/com/google/home/Structure, trait: https://developers.home.google.com/reference/kotlin/com/google/home/TraitFactory<T>)` Create a `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter` from a `https://developers.home.google.com/reference/kotlin/com/google/home/Structure` and a `https://developers.home.google.com/reference/kotlin/com/google/home/Trait` and add it. |
| `open https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedExpression<T>` | `<T : https://developers.home.google.com/reference/kotlin/com/google/home/Event> https://developers.home.google.com/reference/kotlin/com/google/home/automation/StarterNodeDsl#starter(com.google.home.HomeDevice,com.google.home.DeviceTypeFactory,com.google.home.EventFactory)( device: https://developers.home.google.com/reference/kotlin/com/google/home/HomeDevice, deviceType: https://developers.home.google.com/reference/kotlin/com/google/home/DeviceTypeFactory<https://developers.home.google.com/reference/kotlin/com/google/home/DeviceType>, event: https://developers.home.google.com/reference/kotlin/com/google/home/EventFactory<T> )` Create a `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter` from a Device and an `https://developers.home.google.com/reference/kotlin/com/google/home/Event` and add it. |
| `open https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedExpression<T>` | `<T : https://developers.home.google.com/reference/kotlin/com/google/home/Trait> https://developers.home.google.com/reference/kotlin/com/google/home/automation/StarterNodeDsl#starter(com.google.home.HomeDevice,com.google.home.DeviceTypeFactory,com.google.home.TraitFactory)( device: https://developers.home.google.com/reference/kotlin/com/google/home/HomeDevice, deviceType: https://developers.home.google.com/reference/kotlin/com/google/home/DeviceTypeFactory<https://developers.home.google.com/reference/kotlin/com/google/home/DeviceType>, trait: https://developers.home.google.com/reference/kotlin/com/google/home/TraitFactory<T> )` Create a `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter` from a Device and a `https://developers.home.google.com/reference/kotlin/com/google/home/Trait` and add it. |
| `open https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedExpression<T>` | `<T : https://developers.home.google.com/reference/kotlin/com/google/home/Event> https://developers.home.google.com/reference/kotlin/com/google/home/automation/StarterNodeDsl#starter(com.google.home.automation.TypedExpression,com.google.home.EventFactory,kotlin.Function1)( entityExpression: https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedExpression<https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedEntity<HomeObjectType>?>, event: https://developers.home.google.com/reference/kotlin/com/google/home/EventFactory<T>, block: https://developers.home.google.com/reference/kotlin/com/google/home/automation/ParametersBuilder.() -> https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html )` Create a `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter` from an `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Expression` of `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Entity` and a `https://developers.home.google.com/reference/kotlin/com/google/home/Trait` and add it. |
| `open https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedExpression<T>` | `<T : https://developers.home.google.com/reference/kotlin/com/google/home/Event, U : HomeObjectType> https://developers.home.google.com/reference/kotlin/com/google/home/automation/StarterNodeDsl#starter(com.google.home.automation.TypedExpression,com.google.home.EventFactory,kotlin.Function1)( entityExpression: https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedExpression<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html<https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedEntity<U>>?>, event: https://developers.home.google.com/reference/kotlin/com/google/home/EventFactory<T>, block: https://developers.home.google.com/reference/kotlin/com/google/home/automation/ParametersBuilder.() -> https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html )` Create a `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter` from an `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Expression` of `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Entity` list and a `https://developers.home.google.com/reference/kotlin/com/google/home/Trait` and add it. |
| `open https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedExpression<T>` | `<T : https://developers.home.google.com/reference/kotlin/com/google/home/Event> https://developers.home.google.com/reference/kotlin/com/google/home/automation/StarterNodeDsl#starter(com.google.home.Structure,com.google.home.EventFactory,kotlin.Function1)( structure: https://developers.home.google.com/reference/kotlin/com/google/home/Structure, event: https://developers.home.google.com/reference/kotlin/com/google/home/EventFactory<T>, block: https://developers.home.google.com/reference/kotlin/com/google/home/automation/ParametersBuilder.() -> https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html )` Create a `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter` from a `https://developers.home.google.com/reference/kotlin/com/google/home/Structure` and an `https://developers.home.google.com/reference/kotlin/com/google/home/Event` and add it. |
| `open https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedExpression<T>` | `<T : https://developers.home.google.com/reference/kotlin/com/google/home/Event> https://developers.home.google.com/reference/kotlin/com/google/home/automation/StarterNodeDsl#starter(com.google.home.automation.UnknownEntity,com.google.home.TypeFactory,com.google.home.EventFactory)( unknownEntity: https://developers.home.google.com/reference/kotlin/com/google/home/automation/UnknownEntity, entityType: https://developers.home.google.com/reference/kotlin/com/google/home/TypeFactory<HomeObjectType>, event: https://developers.home.google.com/reference/kotlin/com/google/home/EventFactory<T> )` Create a `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter` from an UnknownEntity and an `https://developers.home.google.com/reference/kotlin/com/google/home/Event` and add it. |
| `open https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedExpression<T>` | `<T : https://developers.home.google.com/reference/kotlin/com/google/home/Trait> https://developers.home.google.com/reference/kotlin/com/google/home/automation/StarterNodeDsl#starter(com.google.home.automation.UnknownEntity,com.google.home.TypeFactory,com.google.home.TraitFactory)( unknownEntity: https://developers.home.google.com/reference/kotlin/com/google/home/automation/UnknownEntity, entityType: https://developers.home.google.com/reference/kotlin/com/google/home/TypeFactory<HomeObjectType>, trait: https://developers.home.google.com/reference/kotlin/com/google/home/TraitFactory<T> )` Create a `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter` from an UnknownEntity and a `https://developers.home.google.com/reference/kotlin/com/google/home/Trait` and add it. |
| `open https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedExpression<T>` | `<T : https://developers.home.google.com/reference/kotlin/com/google/home/Event> https://developers.home.google.com/reference/kotlin/com/google/home/automation/StarterNodeDsl#starter(com.google.home.HomeDevice,com.google.home.DeviceTypeFactory,com.google.home.EventFactory,kotlin.Function1)( device: https://developers.home.google.com/reference/kotlin/com/google/home/HomeDevice, deviceType: https://developers.home.google.com/reference/kotlin/com/google/home/DeviceTypeFactory<https://developers.home.google.com/reference/kotlin/com/google/home/DeviceType>, event: https://developers.home.google.com/reference/kotlin/com/google/home/EventFactory<T>, block: https://developers.home.google.com/reference/kotlin/com/google/home/automation/ParametersBuilder.() -> https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html )` Create a `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter` from a Device and a `https://developers.home.google.com/reference/kotlin/com/google/home/Trait` and add it. |
| `open https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedExpression<T>` | `<T : https://developers.home.google.com/reference/kotlin/com/google/home/Event> https://developers.home.google.com/reference/kotlin/com/google/home/automation/StarterNodeDsl#starter(com.google.home.automation.UnknownEntity,com.google.home.DeviceTypeFactory,com.google.home.EventFactory,kotlin.Function1)( unknownEntity: https://developers.home.google.com/reference/kotlin/com/google/home/automation/UnknownEntity, deviceType: https://developers.home.google.com/reference/kotlin/com/google/home/DeviceTypeFactory<https://developers.home.google.com/reference/kotlin/com/google/home/DeviceType>, event: https://developers.home.google.com/reference/kotlin/com/google/home/EventFactory<T>, block: https://developers.home.google.com/reference/kotlin/com/google/home/automation/ParametersBuilder.() -> https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html )` Create a `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter` from an `https://developers.home.google.com/reference/kotlin/com/google/home/automation/UnknownEntity` and an `https://developers.home.google.com/reference/kotlin/com/google/home/Event` and add it. |

| ### Inherited functions |
|---|
| From [com.google.home.automation.AutomationFlowContributor](https://developers.home.google.com/reference/kotlin/com/google/home/automation/AutomationFlowContributor) |---|---| | `https://developers.home.google.com/reference/kotlin/com/google/home/automation/AutomationFlowBuilder` | `https://developers.home.google.com/reference/kotlin/com/google/home/automation/AutomationFlowContributor#flowBuilder()()` | |

## Public functions

### starter

```
open fun <T : Event> starter(
    entityExpression: TypedExpression<TypedEntity<HomeObjectType>?>,
    event: EventFactory<T>
): TypedExpression<T>
```

Create a `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter` from an `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Expression` of `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Entity` and an `https://developers.home.google.com/reference/kotlin/com/google/home/Event` and add it.

| Parameters |
|---|---|
| `entityExpression: https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedExpression<https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedEntity<HomeObjectType>?>` | The entity `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Expression` associated with the `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter`. |
| `event: https://developers.home.google.com/reference/kotlin/com/google/home/EventFactory<T>` | The `https://developers.home.google.com/reference/kotlin/com/google/home/Event` associated with the `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter`. |

| Returns |
|---|---|
| `https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedExpression<T>` | A `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter` instance. |

### starter

```
open fun <T : Event, U : HomeObjectType> starter(
    entityExpression: TypedExpression<List<TypedEntity<U>>?>,
    event: EventFactory<T>
): TypedExpression<T>
```

Create a `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter` from an `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Expression` of `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Entity` list and an `https://developers.home.google.com/reference/kotlin/com/google/home/Event` and add it.

| Parameters |
|---|---|
| `entityExpression: https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedExpression<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html<https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedEntity<U>>?>` | The entity `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Expression` associated with the `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter`. |
| `event: https://developers.home.google.com/reference/kotlin/com/google/home/EventFactory<T>` | The `https://developers.home.google.com/reference/kotlin/com/google/home/Event` associated with the `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter`. |

| Returns |
|---|---|
| `https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedExpression<T>` | A `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter` instance. |

### starter

```
open fun <T : Trait> starter(
    entityExpression: TypedExpression<TypedEntity<HomeObjectType>?>,
    trait: TraitFactory<T>
): TypedExpression<T>
```

Create a `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter` from an `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Expression` of `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Entity` and a `https://developers.home.google.com/reference/kotlin/com/google/home/Trait` and add it.

| Parameters |
|---|---|
| `entityExpression: https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedExpression<https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedEntity<HomeObjectType>?>` | The entity `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Expression` associated with the `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter`. |
| `trait: https://developers.home.google.com/reference/kotlin/com/google/home/TraitFactory<T>` | The `https://developers.home.google.com/reference/kotlin/com/google/home/Trait` associated with the `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter`. |

| Returns |
|---|---|
| `https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedExpression<T>` | A `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter` instance. |

### starter

```
open fun <T : Trait, U : HomeObjectType> starter(
    entityExpression: TypedExpression<List<TypedEntity<U>>?>,
    trait: TraitFactory<T>
): TypedExpression<T>
```

Create a `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter` from an `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Expression` of `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Entity` list and a `https://developers.home.google.com/reference/kotlin/com/google/home/Trait` and add it.

| Parameters |
|---|---|
| `entityExpression: https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedExpression<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html<https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedEntity<U>>?>` | The entity `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Expression` associated with the `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter`. |
| `trait: https://developers.home.google.com/reference/kotlin/com/google/home/TraitFactory<T>` | The `https://developers.home.google.com/reference/kotlin/com/google/home/Trait` associated with the `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter`. |

| Returns |
|---|---|
| `https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedExpression<T>` | A `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter` instance. |

### starter

```
open fun <T : Event> starter(structure: Structure, event: EventFactory<T>): TypedExpression<T>
```

Create a `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter` from a `https://developers.home.google.com/reference/kotlin/com/google/home/Structure` and an `https://developers.home.google.com/reference/kotlin/com/google/home/Event` and add it.

| Parameters |
|---|---|
| `structure: https://developers.home.google.com/reference/kotlin/com/google/home/Structure` | The `https://developers.home.google.com/reference/kotlin/com/google/home/Structure` associated with the `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter`. |
| `event: https://developers.home.google.com/reference/kotlin/com/google/home/EventFactory<T>` | The `https://developers.home.google.com/reference/kotlin/com/google/home/Event` associated with the `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter`. |

| Returns |
|---|---|
| `https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedExpression<T>` | A `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter` instance. |

### starter

```
open fun <T : Trait> starter(structure: Structure, trait: TraitFactory<T>): TypedExpression<T>
```

Create a `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter` from a `https://developers.home.google.com/reference/kotlin/com/google/home/Structure` and a `https://developers.home.google.com/reference/kotlin/com/google/home/Trait` and add it.

| Parameters |
|---|---|
| `structure: https://developers.home.google.com/reference/kotlin/com/google/home/Structure` | The `https://developers.home.google.com/reference/kotlin/com/google/home/Structure` associated with the `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter`. |
| `trait: https://developers.home.google.com/reference/kotlin/com/google/home/TraitFactory<T>` | The `https://developers.home.google.com/reference/kotlin/com/google/home/Trait` associated with the `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter`. |

| Returns |
|---|---|
| `https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedExpression<T>` | A `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter` instance. |

### starter

```
open fun <T : Event> starter(
    device: HomeDevice,
    deviceType: DeviceTypeFactory<DeviceType>,
    event: EventFactory<T>
): TypedExpression<T>
```

Create a `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter` from a Device and an `https://developers.home.google.com/reference/kotlin/com/google/home/Event` and add it.

| Parameters |
|---|---|
| `device: https://developers.home.google.com/reference/kotlin/com/google/home/HomeDevice` | The `https://developers.home.google.com/reference/kotlin/com/google/home/HomeDevice` associated with the `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter`. |
| `deviceType: https://developers.home.google.com/reference/kotlin/com/google/home/DeviceTypeFactory<https://developers.home.google.com/reference/kotlin/com/google/home/DeviceType>` | The `https://developers.home.google.com/reference/kotlin/com/google/home/DeviceType` associated with the `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter`. |
| `event: https://developers.home.google.com/reference/kotlin/com/google/home/EventFactory<T>` | The `https://developers.home.google.com/reference/kotlin/com/google/home/Event` associated with the `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter`. |

| Returns |
|---|---|
| `https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedExpression<T>` | A `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter` instance. |

### starter

```
open fun <T : Trait> starter(
    device: HomeDevice,
    deviceType: DeviceTypeFactory<DeviceType>,
    trait: TraitFactory<T>
): TypedExpression<T>
```

Create a `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter` from a Device and a `https://developers.home.google.com/reference/kotlin/com/google/home/Trait` and add it.

| Parameters |
|---|---|
| `device: https://developers.home.google.com/reference/kotlin/com/google/home/HomeDevice` | The `https://developers.home.google.com/reference/kotlin/com/google/home/HomeDevice` associated with the `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter`. |
| `deviceType: https://developers.home.google.com/reference/kotlin/com/google/home/DeviceTypeFactory<https://developers.home.google.com/reference/kotlin/com/google/home/DeviceType>` | The `https://developers.home.google.com/reference/kotlin/com/google/home/DeviceType` associated with the `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter`. |
| `trait: https://developers.home.google.com/reference/kotlin/com/google/home/TraitFactory<T>` | The `https://developers.home.google.com/reference/kotlin/com/google/home/Trait` associated with the `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter`. |

| Returns |
|---|---|
| `https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedExpression<T>` | A `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter` instance. |

### starter

```
open fun <T : Event> starter(
    entityExpression: TypedExpression<TypedEntity<HomeObjectType>?>,
    event: EventFactory<T>,
    block: ParametersBuilder.() -> Unit
): TypedExpression<T>
```

Create a `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter` from an `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Expression` of `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Entity` and a `https://developers.home.google.com/reference/kotlin/com/google/home/Trait` and add it.

| Parameters |
|---|---|
| `entityExpression: https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedExpression<https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedEntity<HomeObjectType>?>` | The entity `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Expression` associated with the `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter`. |
| `event: https://developers.home.google.com/reference/kotlin/com/google/home/EventFactory<T>` | The `https://developers.home.google.com/reference/kotlin/com/google/home/Event` associated with the `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter`. |
| `block: https://developers.home.google.com/reference/kotlin/com/google/home/automation/ParametersBuilder.() -> https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html` | The parameters associated with the `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter`. |

| Returns |
|---|---|
| `https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedExpression<T>` | A `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter` instance. |

### starter

```
open fun <T : Event, U : HomeObjectType> starter(
    entityExpression: TypedExpression<List<TypedEntity<U>>?>,
    event: EventFactory<T>,
    block: ParametersBuilder.() -> Unit
): TypedExpression<T>
```

Create a `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter` from an `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Expression` of `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Entity` list and a `https://developers.home.google.com/reference/kotlin/com/google/home/Trait` and add it.

| Parameters |
|---|---|
| `entityExpression: https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedExpression<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html<https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedEntity<U>>?>` | The entity `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Expression` associated with the `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter`. |
| `event: https://developers.home.google.com/reference/kotlin/com/google/home/EventFactory<T>` | The `https://developers.home.google.com/reference/kotlin/com/google/home/Event` associated with the `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter`. |
| `block: https://developers.home.google.com/reference/kotlin/com/google/home/automation/ParametersBuilder.() -> https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html` | The parameters associated with the `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter`. |

| Returns |
|---|---|
| `https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedExpression<T>` | A `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter` instance. |

### starter

```
open fun <T : Event> starter(
    structure: Structure,
    event: EventFactory<T>,
    block: ParametersBuilder.() -> Unit
): TypedExpression<T>
```

Create a `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter` from a `https://developers.home.google.com/reference/kotlin/com/google/home/Structure` and an `https://developers.home.google.com/reference/kotlin/com/google/home/Event` and add it.

| Parameters |
|---|---|
| `structure: https://developers.home.google.com/reference/kotlin/com/google/home/Structure` | The `https://developers.home.google.com/reference/kotlin/com/google/home/Structure` associated with the `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter`. |
| `event: https://developers.home.google.com/reference/kotlin/com/google/home/EventFactory<T>` | The `https://developers.home.google.com/reference/kotlin/com/google/home/Event` associated with the `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter`. |
| `block: https://developers.home.google.com/reference/kotlin/com/google/home/automation/ParametersBuilder.() -> https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html` | The parameters associated with the `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter`. |

| Returns |
|---|---|
| `https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedExpression<T>` | A `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter` instance. |

### starter

```
open fun <T : Event> starter(
    unknownEntity: UnknownEntity,
    entityType: TypeFactory<HomeObjectType>,
    event: EventFactory<T>
): TypedExpression<T>
```

Create a `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter` from an UnknownEntity and an `https://developers.home.google.com/reference/kotlin/com/google/home/Event` and add it. Automations created using this method will not be valid. This method can be used to create draft automations.

| Parameters |
|---|---|
| `unknownEntity: https://developers.home.google.com/reference/kotlin/com/google/home/automation/UnknownEntity` | The entity associated with the `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter`. |
| `entityType: https://developers.home.google.com/reference/kotlin/com/google/home/TypeFactory<HomeObjectType>` | The type associated with the `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter`. |
| `event: https://developers.home.google.com/reference/kotlin/com/google/home/EventFactory<T>` | The `https://developers.home.google.com/reference/kotlin/com/google/home/Event` associated with the `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter`. |

| Returns |
|---|---|
| `https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedExpression<T>` | A `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter` instance. |

### starter

```
open fun <T : Trait> starter(
    unknownEntity: UnknownEntity,
    entityType: TypeFactory<HomeObjectType>,
    trait: TraitFactory<T>
): TypedExpression<T>
```

Create a `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter` from an UnknownEntity and a `https://developers.home.google.com/reference/kotlin/com/google/home/Trait` and add it. Automations created using this method will not be valid. This method can be used to create draft automations.

| Parameters |
|---|---|
| `unknownEntity: https://developers.home.google.com/reference/kotlin/com/google/home/automation/UnknownEntity` | The entity associated with the `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter`. |
| `entityType: https://developers.home.google.com/reference/kotlin/com/google/home/TypeFactory<HomeObjectType>` | The type associated with the `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter`. |
| `trait: https://developers.home.google.com/reference/kotlin/com/google/home/TraitFactory<T>` | The trait associated with the `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter`. |

| Returns |
|---|---|
| `https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedExpression<T>` | A `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter` instance. |

### starter

```
open fun <T : Event> starter(
    device: HomeDevice,
    deviceType: DeviceTypeFactory<DeviceType>,
    event: EventFactory<T>,
    block: ParametersBuilder.() -> Unit
): TypedExpression<T>
```

Create a `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter` from a Device and a `https://developers.home.google.com/reference/kotlin/com/google/home/Trait` and add it.

| Parameters |
|---|---|
| `device: https://developers.home.google.com/reference/kotlin/com/google/home/HomeDevice` | The `https://developers.home.google.com/reference/kotlin/com/google/home/HomeDevice` associated with the `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter`. |
| `deviceType: https://developers.home.google.com/reference/kotlin/com/google/home/DeviceTypeFactory<https://developers.home.google.com/reference/kotlin/com/google/home/DeviceType>` | The `https://developers.home.google.com/reference/kotlin/com/google/home/DeviceType` associated with the `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter`. |
| `event: https://developers.home.google.com/reference/kotlin/com/google/home/EventFactory<T>` | The `https://developers.home.google.com/reference/kotlin/com/google/home/Event` associated with the `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter`. |
| `block: https://developers.home.google.com/reference/kotlin/com/google/home/automation/ParametersBuilder.() -> https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html` | The parameters associated with the `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter`. |

| Returns |
|---|---|
| `https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedExpression<T>` | A `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter` instance. |

### starter

```
open fun <T : Event> starter(
    unknownEntity: UnknownEntity,
    deviceType: DeviceTypeFactory<DeviceType>,
    event: EventFactory<T>,
    block: ParametersBuilder.() -> Unit
): TypedExpression<T>
```

Create a `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter` from an `https://developers.home.google.com/reference/kotlin/com/google/home/automation/UnknownEntity` and an `https://developers.home.google.com/reference/kotlin/com/google/home/Event` and add it.

| Parameters |
|---|---|
| `unknownEntity: https://developers.home.google.com/reference/kotlin/com/google/home/automation/UnknownEntity` | The entity associated with the `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter`. |
| `deviceType: https://developers.home.google.com/reference/kotlin/com/google/home/DeviceTypeFactory<https://developers.home.google.com/reference/kotlin/com/google/home/DeviceType>` | The `https://developers.home.google.com/reference/kotlin/com/google/home/DeviceType` associated with the `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter`. |
| `event: https://developers.home.google.com/reference/kotlin/com/google/home/EventFactory<T>` | The `https://developers.home.google.com/reference/kotlin/com/google/home/Event` associated with the `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter`. |
| `block: https://developers.home.google.com/reference/kotlin/com/google/home/automation/ParametersBuilder.() -> https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html` | The parameters associated with the `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter`. |

| Returns |
|---|---|
| `https://developers.home.google.com/reference/kotlin/com/google/home/automation/TypedExpression<T>` | A `https://developers.home.google.com/reference/kotlin/com/google/home/automation/Starter` instance. |