zio.dynamodb

package zio.dynamodb

Members list

Packages

Type members

Classlikes

final case class AttrMap(map: Map[String, AttributeValue])

Attributes

Companion
object
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
Self type
object AttrMap

Attributes

Companion
class
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
AttrMap.type
final case class AttributeDefinition

Attributes

Companion
object
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

Attributes

Companion
class
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
sealed trait AttributeValue

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Self type

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
sealed trait AttributeValueType

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
object BinarySet
object Bool
object List
object Map
object Null
object NumberSet
object StringSet
object Binary
object Number
object String
Show all
Self type

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
sealed trait BillingMode

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
object PayPerRequest
object BillingMode

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
case object BuildInfo

This object was generated by sbt-buildinfo.

This object was generated by sbt-buildinfo.

Attributes

Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
Self type
BuildInfo.type
sealed trait ConditionExpression[-From]

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Self type

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
sealed trait ConsistencyMode

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
object Strong
object Weak

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type

Attributes

Companion
object
Supertypes
trait Product
trait Equals
trait NoStackTrace
class Throwable
trait Serializable
class Object
trait Matchable
class Any
Show all
Known subtypes
object DynamoDBError

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type
case object DynamoDBExecutorImpl

Attributes

Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
Self type
sealed trait DynamoDBQuery[-In, +Out]

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
trait Constructor[In, A]
trait Write[In, A]
Self type
DynamoDBQuery[In, Out]
object DynamoDBQuery

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
trait FromAttributeValue[+A]

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type
final case class GlobalSecondaryIndex(indexName: String, keySchema: KeySchema, projection: ProjectionType, provisionedThroughput: Option[ProvisionedThroughput])

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
sealed trait KeyConditionExpr[-From]

This sum type models:

This sum type models:

  1. partition key equality expressions
  2. composite primary key expressions where sort key expression is equality
  3. extended composite primary key expressions where sort key is not equality eg >, <, >=, <=, between, begins_with

Note 1), 2) and 3) are all valid key condition expressions used in Query DynamoDB queries BUT only 1) and 2) are valid primary key expressions that can be used in GetItem, UpdateItem and DeleteItem DynamoDB queries

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
trait PrimaryKeyExpr[From]
Self type

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
final case class KeySchema

Attributes

Companion
object
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
object KeySchema

Attributes

Companion
class
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
KeySchema.type
final case class LocalSecondaryIndex(indexName: String, keySchema: KeySchema, projection: ProjectionType)

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
sealed trait PrimitiveValueType extends AttributeValueType

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
object Binary
object Number
object String
Self type
sealed trait ProjectionExpression[-From, +To]

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Self type

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Show all
Self type

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
sealed trait ProjectionType

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
object All
class Include
object KeysOnly

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
final case class ProvisionedThroughput(readCapacityUnit: Long, writeCapacityUnit: Long)

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
sealed trait ReturnConsumedCapacity

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
object Indexes
object None
object Total

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
object None
object Size

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
sealed trait ReturnValues

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
object AllNew
object AllOld
object None
object UpdatedNew
object UpdatedOld
object ReturnValues

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
final case class SSESpecification(enable: Boolean, kmsMasterKeyId: Option[String], sseType: SSEType)

Attributes

Companion
object
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

Attributes

Companion
class
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
sealed trait Select

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
object Select

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
Select.type

A Fake implementation of DynamoDBExecutor.Service that currently has the very modest aspiration of providing bare minimum functionality to enable internal unit tests and to enable simple end to end examples that can serve as documentation. Limited CRUD functionality is supported hence some features are currently not supported or have restrictions.

A Fake implementation of DynamoDBExecutor.Service that currently has the very modest aspiration of providing bare minimum functionality to enable internal unit tests and to enable simple end to end examples that can serve as documentation. Limited CRUD functionality is supported hence some features are currently not supported or have restrictions.

  • Supported
    • CRUD operations GetItem, PutItem, DeleteItem, BatchGetItem, BatchWriteItem
  • Limited support
    • Primary Keys - only the partition key can be specified and is only checked for equality
  • Not currently supported
    • Projections - all fields are returned for all queries
    • Expressions - these include KeyConditionExpression's, ConditionExpression's, ProjectionExpression's, UpdateExpression's
    • Create table, Delete table
    • UpdateItem - this is a more complex case as it uses an expression to specify the update
    • Indexes in ScanSome, ScanAll, QuerySome, QueryAll

'''Usage''': DynamoDBExecutor.test provides you the test DB instance in a ZLayer. Tables are created using the addTable method in the test controller service TestDynamoDBExecutor. You specify a table, a single primary and a var arg list of primary key/item pairs.

testM("getItem") {
 for {
   _ <- TestDynamoDBExecutor.addTable("tableName1", primaryKeyFieldName = "k1", primaryKey1 -> item1, primaryKey1_2 -> item1_2)
   result  <- GetItem(key = primaryKey1, tableName = tableName1).execute
   expected = Some(item1)
 } yield assert(result)(equalTo(expected))
}.provideLayer(DynamoDBExecutor.test)

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type
trait ToAttributeValue[A]

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
final case class UpdateExpression[-A](action: Action[A])

Attributes

Companion
object
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
Self type

Attributes

Companion
class
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
sealed trait Zippable[-A, -B]

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Show all
Self type
Zippable.type

Attributes

Supertypes
class Object
trait Matchable
class Any
Show all
Known subtypes
object Zippable

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
object syntax

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
syntax.type

Value members

Concrete methods

def batchReadFromStream[R, A, From : Schema](tableName: String, stream: ZStream[R, Throwable, A], mPar: Int)(pk: A => PrimaryKeyExpr[From]): ZStream[R & DynamoDBExecutor, Throwable, Either[DecodingError, (A, Option[From])]]

Reads stream using function pk to determine the primary key which is then used to create a BatchGetItem request. Stream is batched into groups of 100 items in a BatchGetItem and executed using the provided DynamoDBExecutor service

Reads stream using function pk to determine the primary key which is then used to create a BatchGetItem request. Stream is batched into groups of 100 items in a BatchGetItem and executed using the provided DynamoDBExecutor service

Returns a tuple of (A, Option[B]) where the option is None if the item is not found - this enables "LEFT outer join" like functionality

Type parameters

A

Input stream element type

From

implicit Schema[From] where From is the type of the element in the returned stream

R

Environment

Value parameters

mPar

Level of parallelism for the stream processing

pk

Function to determine the primary key

Attributes

Returns

stream of Either[DynamoDBError.DecodingError, (A, Option[B])]

def batchReadItemFromStream[R, A](tableName: String, stream: ZStream[R, Throwable, A], mPar: Int)(pk: A => PrimaryKey): ZStream[R & DynamoDBExecutor, Throwable, (A, Option[Item])]

Reads stream using function pk to determine the primary key which is then used to create a BatchGetItem request. Stream is batched into groups of 100 items in a BatchGetItem and executed using the provided DynamoDBExecutor service.

Reads stream using function pk to determine the primary key which is then used to create a BatchGetItem request. Stream is batched into groups of 100 items in a BatchGetItem and executed using the provided DynamoDBExecutor service.

Returns a tuple of (A, Option[B]) where the option is None if the item is not found - this enables "LEFT outer join" like functionality

Type parameters

R

Environment

Value parameters

mPar

Level of parallelism for the stream processing

pk

Function to determine the primary key

Attributes

Returns

A stream of (A, Option[Item])

def batchWriteFromStream[R, A, In, B](stream: ZStream[R, Throwable, A], mPar: Int)(f: A => DynamoDBQuery[In, B]): ZStream[DynamoDBExecutor & R, Throwable, B]

Reads stream and uses function f for creating a BatchWrite request that is executes for side effects. Stream is batched into groups of 25 items in a BatchWriteItem and executed using the DynamoDBExecutor service provided in the environment.

Reads stream and uses function f for creating a BatchWrite request that is executes for side effects. Stream is batched into groups of 25 items in a BatchWriteItem and executed using the DynamoDBExecutor service provided in the environment.

Note that if function f returns a PutItem or DeleteItem that contains a ConditionExpression then the entire aggregated chunk of up to 25 items will not be batched! (this is a limitation of AWS BatchWriteItem) - instead they will be executed in parallel.

Type parameters

B

Type of DynamoDBQuery returned by f

R

Environment

Value parameters

f

Function that takes an A and returns a PutItem or DeleteItem

mPar

Level of parallelism for the stream processing

Attributes

Returns

A stream of results from the DynamoDBQuery write's

Concrete fields

val Item: AttrMap.type
val PrimaryKey: AttrMap.type