## Index

### Classes

- UpdateActionDef

### Interfaces

- ConditionFunctions
- SortKeyConditionFunction
- UpdateFunctions

### Type aliases

- ConditionExpressionDefinitionChain
- ConditionExpressionDefinitionChainTyped
- RequestConditionFunction
- RequestConditionFunctionTyped
- UpdateExpressionDefinitionChain
- UpdateExpressionDefinitionChainTyped

### Functions

- and
- attribute
- attribute2
- not
- or
- update
- update2

## Type aliases

### ConditionExpressionDefinitionChain

ConditionExpressionDefinitionChain: ConditionFunctions<any, ConditionExpressionDefinitionFunction>

- Defined in dynamo/expression/type/condition-expression-definition-chain.ts:32

### ConditionExpressionDefinitionChainTyped

ConditionExpressionDefinitionChainTyped: ConditionFunctions<T[K], ConditionExpressionDefinitionFunction>

- Defined in dynamo/expression/type/condition-expression-definition-chain.ts:34

### RequestConditionFunction

RequestConditionFunction: ConditionFunctions<any, R>

- Defined in dynamo/expression/type/condition-expression-definition-chain.ts:38

### RequestConditionFunctionTyped

RequestConditionFunctionTyped: ConditionFunctions<T[K], R>

- Defined in dynamo/expression/type/condition-expression-definition-chain.ts:37

### UpdateExpressionDefinitionChain

UpdateExpressionDefinitionChain: UpdateFunctions<any, UpdateExpressionDefinitionFunction>

- Defined in dynamo/expression/type/update-expression-definition-chain.ts:95

### UpdateExpressionDefinitionChainTyped

UpdateExpressionDefinitionChainTyped: UpdateFunctions<T[K], UpdateExpressionDefinitionFunction>

- Defined in dynamo/expression/type/update-expression-definition-chain.ts:89

## Functions

### and

- and(...conditionDefinitionFns: ConditionExpressionDefinitionFunction[]): ConditionExpressionDefinitionFunction

- - Defined in dynamo/expression/logical-operator/and.function.ts:14

  function to combine multiple conditions with 'and'

  example

        and(attribute('propA').eq('foo'), attribute('propB').eq('bar'))

  #### Parameters

  - ##### Rest ...conditionDefinitionFns: ConditionExpressionDefinitionFunction[]

  #### Returns ConditionExpressionDefinitionFunction

### attribute

- attribute<T>(attributePath: keyof T): ConditionExpressionDefinitionChain
- attribute(attributePath: string): ConditionExpressionDefinitionChain

- - Defined in dynamo/expression/logical-operator/attribute.function.ts:48

  Use this method when accessing a top level attribute of a model to have type checking of the attributePath

  example

        attribute('myProp').eq('foo')

  #### Type parameters

  - #### T

  #### Parameters

  - ##### attributePath: keyof T

  #### Returns ConditionExpressionDefinitionChain

- - Defined in dynamo/expression/logical-operator/attribute.function.ts:53

  Use this method when accessing a nested attribute of a model

  #### Parameters

  - ##### attributePath: string

  #### Returns ConditionExpressionDefinitionChain

### attribute2

- attribute2<T, K>(modelConstructor: ModelConstructor<T>, attributePath: K): ConditionExpressionDefinitionChainTyped<T, K>

- - Defined in dynamo/expression/logical-operator/attribute.function.ts:34

  Use this method when accessing a top level attribute of a model with strict typing of the value in chained function

  example

        @Model()
        class Person{

          @PartitionKeyUUID()
          id: string
          age: number
        }

        store
         .scan()
         .where(attribute2(Person, 'age').equals(5))
         .exec()

    When using the attribute2 we have type support for the equals (and all other condition functions) value, it can only be number, because the type of age is number too, this only works when not using a custom mapper. The downside of the strict typing is the model constructor parameter which is only required for typing reasons

  #### Type parameters

  - #### T

  - #### K: keyof T

  #### Parameters

  - ##### modelConstructor: ModelConstructor<T>

  - ##### attributePath: K

  #### Returns ConditionExpressionDefinitionChainTyped<T, K>

### not

- not(conditionDefinitionFn: ConditionExpressionDefinitionFunction): ConditionExpressionDefinitionFunction

- - Defined in dynamo/expression/logical-operator/not.function.ts:15

  function to negate a condition

  example

        not(attribute('propA').eq('foo'))

  #### Parameters

  - ##### conditionDefinitionFn: ConditionExpressionDefinitionFunction

  #### Returns ConditionExpressionDefinitionFunction

### or

- or(...conditionDefinitionFns: ConditionExpressionDefinitionFunction[]): ConditionExpressionDefinitionFunction

- - Defined in dynamo/expression/logical-operator/or.function.ts:14

  function to combine multiple conditions with or

  example

        or(attribute('propA').eq('foo'), attribute('propB').eq('bar'))

  #### Parameters

  - ##### Rest ...conditionDefinitionFns: ConditionExpressionDefinitionFunction[]

  #### Returns ConditionExpressionDefinitionFunction

### update

- update<T>(attributePath: keyof T): UpdateExpressionDefinitionChain
- update(attributePath: string): UpdateExpressionDefinitionChain

- - Defined in dynamo/expression/logical-operator/update.function.ts:46

  Use this method when accessing a top level attribute of a model to have type checking for attributePath

  example

        update('myProp').set('foo')

  #### Type parameters

  - #### T

  #### Parameters

  - ##### attributePath: keyof T

  #### Returns UpdateExpressionDefinitionChain

- - Defined in dynamo/expression/logical-operator/update.function.ts:51

  Use this method when accessing a nested attribute of a model

  #### Parameters

  - ##### attributePath: string

  #### Returns UpdateExpressionDefinitionChain

### update2

- update2<T, K>(modelConstructor: ModelConstructor<T>, attributePath: K): UpdateExpressionDefinitionChainTyped<T, K>

- - Defined in dynamo/expression/logical-operator/update.function.ts:32

  Use this method when accessing a top level attribute of a model with strict typing of the value in chained function

  example

        @Model()
        class Person {

          @PartitionKeyUUID()
          id: string
          age: number
        }

        personStore.update('idValue')
         .operations(update2(Person, 'age').set(5))
         .exec()

    When using the update2 we have type support for the set (and all other update functions) value, it can only be number, because the type of age is number too, this only works when not using a custom mapper. The downside of the strict typing is the model constructor parameter which is only required for typing reasons.

  #### Type parameters

  - #### T

  - #### K: keyof T

  #### Parameters

  - ##### modelConstructor: ModelConstructor<T>

  - ##### attributePath: K

  #### Returns UpdateExpressionDefinitionChainTyped<T, K>