Table of Contents

Class Document

Namespace
Amazon.DynamoDBv2.DocumentModel
Assembly
AWSSDK.DynamoDBv2.dll

A collection of attribute key-value pairs that defines an item in DynamoDB.

public class Document : DynamoDBEntry, ICloneable, IDictionary<string, DynamoDBEntry>, ICollection<KeyValuePair<string, DynamoDBEntry>>, IEnumerable<KeyValuePair<string, DynamoDBEntry>>, IEnumerable
Inheritance
Document
Implements
Inherited Members

Constructors

Document()

Constructs an empty Document.

public Document()

Document(Dictionary<string, DynamoDBEntry>)

Constructs a Document with the passed-in values as its attribute values.

public Document(Dictionary<string, DynamoDBEntry> values)

Parameters

values Dictionary<string, DynamoDBEntry>

Properties

Count

Gets the count of attributes.

public int Count { get; }

Property Value

int

IsReadOnly

Returns true if the document is read only.

public bool IsReadOnly { get; }

Property Value

bool

this[string]

Attribute accessor, allows getting or setting of an individual attribute.

public DynamoDBEntry this[string key] { get; set; }

Parameters

key string

Name of the attribute.

Property Value

DynamoDBEntry

Current value of the attribute.

Keys

This list of attribute keys for the document.

public ICollection<string> Keys { get; }

Property Value

ICollection<string>

Values

Get a list of all the values in the Document.

public ICollection<DynamoDBEntry> Values { get; }

Property Value

ICollection<DynamoDBEntry>

Methods

Add(KeyValuePair<string, DynamoDBEntry>)

Add attributes to Document.

public void Add(KeyValuePair<string, DynamoDBEntry> item)

Parameters

item KeyValuePair<string, DynamoDBEntry>

Add(string, DynamoDBEntry)

Add value to Doucment.

public void Add(string key, DynamoDBEntry value)

Parameters

key string
value DynamoDBEntry

Clear()

Clear attributes from document.

public void Clear()

Clone()

Clones the Document

public override object Clone()

Returns

object

Contains(KeyValuePair<string, DynamoDBEntry>)

Check to see if the attributes are in the Document.

public bool Contains(KeyValuePair<string, DynamoDBEntry> item)

Parameters

item KeyValuePair<string, DynamoDBEntry>

Returns

bool

Contains(string)

Determines if a specific attribute is set on the Document.

public bool Contains(string attributeName)

Parameters

attributeName string

Attribute name

Returns

bool

Returns true if the specified attribute is found; false otherwise.

ContainsKey(string)

Check to see if the value is set on the document.

public bool ContainsKey(string key)

Parameters

key string

Returns

bool

CopyTo(KeyValuePair<string, DynamoDBEntry>[], int)

Copies the attributes to the array.

public void CopyTo(KeyValuePair<string, DynamoDBEntry>[] array, int arrayIndex)

Parameters

array KeyValuePair<string, DynamoDBEntry>[]
arrayIndex int

DecodeBase64Attributes(params string[])

Decodes root-level Base64-encoded strings to their binary representations. Use this method if the Document was constructed from JSON that contains base64-encoded binary values, which result from calling ToJson on a Document with binary data.

Individual strings become binary data. List and sets of Base64-encoded strings become lists and sets of binary data.

public void DecodeBase64Attributes(params string[] attributeNames)

Parameters

attributeNames string[]

Names of root-level attributes to decode.

Equals(object)

Compare the document to see if it is equal.

public override bool Equals(object obj)

Parameters

obj object

Returns

bool

ForceConversion(DynamoDBEntryConversion)

Returns a new instance of Document where all unconverted .NET types are converted to DynamoDBEntry types using a specific conversion.

public Document ForceConversion(DynamoDBEntryConversion conversion)

Parameters

conversion DynamoDBEntryConversion

Returns

Document

FromAttributeMap(Dictionary<string, AttributeValue>)

Creates a Document from an attribute map.

public static Document FromAttributeMap(Dictionary<string, AttributeValue> data)

Parameters

data Dictionary<string, AttributeValue>

Map of attribute names to attribute values.

Returns

Document

Document representing the data.

FromJson(string)

Creates a document from a JSON string. The conversion is as follows: Objects are converted to DynamoDB M types. Arrays are converted to DynamoDB L types. Boolean types are converted to DynamoDB BOOL types. Null values are converted to DynamoDB NULL types. Numerics are converted to DynamoDB N types. Strings are converted to DynamoDB S types.

public static Document FromJson(string json)

Parameters

json string

JSON string.

Returns

Document

Document representing the JSON data.

FromJsonArray(string)

Parses JSON text to produce an array of Document.

public static IEnumerable<Document> FromJsonArray(string jsonText)

Parameters

jsonText string

Returns

IEnumerable<Document>

An IEnumerable<T> of type Document.

GetAttributeNames()

Returns the names of all the attributes.

public List<string> GetAttributeNames()

Returns

List<string>

List of attribute names.

GetEnumerator()

Gets the enumerator for the attributes.

public IEnumerator<KeyValuePair<string, DynamoDBEntry>> GetEnumerator()

Returns

IEnumerator<KeyValuePair<string, DynamoDBEntry>>

GetHashCode()

Implements the GetHashCode.

public override int GetHashCode()

Returns

int

IsAttributeChanged(string)

Returns true if the attribute has been changed.

public bool IsAttributeChanged(string attributeName)

Parameters

attributeName string

Name of the attribute.

Returns

bool

True if the attribute has been changed.

IsDirty()

Returns true if the document contains attributes that have not been saved.

public bool IsDirty()

Returns

bool

True if the document contains attributes that have not been saved.

Remove(KeyValuePair<string, DynamoDBEntry>)

Removes the attributes from the document.

public bool Remove(KeyValuePair<string, DynamoDBEntry> item)

Parameters

item KeyValuePair<string, DynamoDBEntry>

Returns

bool

Remove(string)

Remove the attribute from the Document.

public bool Remove(string key)

Parameters

key string

Returns

bool

ToAttributeMap()

Creates a map of attribute names mapped to AttributeValue objects. Converts .NET types using the conversion specified by AWSConfigs.DynamoDBConfig.ConversionSchema

public Dictionary<string, AttributeValue> ToAttributeMap()

Returns

Dictionary<string, AttributeValue>

ToAttributeMap(DynamoDBEntryConversion)

Creates a map of attribute names mapped to AttributeValue objects.

public Dictionary<string, AttributeValue> ToAttributeMap(DynamoDBEntryConversion conversion)

Parameters

conversion DynamoDBEntryConversion

Conversion to use for converting .NET values to DynamoDB values.

Returns

Dictionary<string, AttributeValue>

ToAttributeMap(DynamoDBEntryConversion, bool)

Creates a map of attribute names mapped to AttributeValue objects.

public Dictionary<string, AttributeValue> ToAttributeMap(DynamoDBEntryConversion conversion, bool isEmptyStringValueEnabled)

Parameters

conversion DynamoDBEntryConversion

Conversion to use for converting .NET values to DynamoDB values.

isEmptyStringValueEnabled bool

If the property is false, empty string values will be interpreted as null values.

Returns

Dictionary<string, AttributeValue>

ToAttributeUpdateMap(DynamoDBEntryConversion, bool)

Creates a map of attribute names mapped to AttributeValueUpdate objects.

public Dictionary<string, AttributeValueUpdate> ToAttributeUpdateMap(DynamoDBEntryConversion conversion, bool changedAttributesOnly)

Parameters

conversion DynamoDBEntryConversion

Conversion to use for converting .NET values to DynamoDB values.

changedAttributesOnly bool

If true, only attributes that have been changed will be in the map.

Returns

Dictionary<string, AttributeValueUpdate>

ToAttributeUpdateMap(DynamoDBEntryConversion, bool, bool)

Creates a map of attribute names mapped to AttributeValueUpdate objects.

public Dictionary<string, AttributeValueUpdate> ToAttributeUpdateMap(DynamoDBEntryConversion conversion, bool changedAttributesOnly, bool isEmptyStringValueEnabled)

Parameters

conversion DynamoDBEntryConversion

Conversion to use for converting .NET values to DynamoDB values.

changedAttributesOnly bool

If true, only attributes that have been changed will be in the map.

isEmptyStringValueEnabled bool

If the property is false, empty string values will be interpreted as null values.

Returns

Dictionary<string, AttributeValueUpdate>

ToAttributeUpdateMap(bool)

Creates a map of attribute names mapped to AttributeValueUpdate objects.

public Dictionary<string, AttributeValueUpdate> ToAttributeUpdateMap(bool changedAttributesOnly)

Parameters

changedAttributesOnly bool

If true, only attributes that have been changed will be in the map.

Returns

Dictionary<string, AttributeValueUpdate>

ToExpectedAttributeMap()

Creates a map of attribute names mapped to ExpectedAttributeValue objects.

public Dictionary<string, ExpectedAttributeValue> ToExpectedAttributeMap()

Returns

Dictionary<string, ExpectedAttributeValue>

ToExpectedAttributeMap(DynamoDBEntryConversion)

Creates a map of attribute names mapped to ExpectedAttributeValue objects.

public Dictionary<string, ExpectedAttributeValue> ToExpectedAttributeMap(DynamoDBEntryConversion conversion)

Parameters

conversion DynamoDBEntryConversion

Conversion to use for converting .NET values to DynamoDB values.

Returns

Dictionary<string, ExpectedAttributeValue>

ToExpectedAttributeMap(DynamoDBEntryConversion, bool)

Creates a map of attribute names mapped to ExpectedAttributeValue objects.

public Dictionary<string, ExpectedAttributeValue> ToExpectedAttributeMap(DynamoDBEntryConversion conversion, bool isEmptyStringValueEnabled)

Parameters

conversion DynamoDBEntryConversion

Conversion to use for converting .NET values to DynamoDB values.

isEmptyStringValueEnabled bool

If the property is false, empty string values will be interpreted as null values.

Returns

Dictionary<string, ExpectedAttributeValue>

ToJson()

Converts the current Document into a matching JSON string.

DynamoDB types are a superset of JSON types, thus the following DynamoDB cannot be properly represented as JSON data: PrimitiveList (SS, NS, BS types) - these sets will be converted to JSON arrays Binary Primitive (B type) - binary data will be converted to Base64 strings

If the resultant JSON is passed to Document.FromJson, the binary values will be treated as Base64 strings. Invoke Document.DecodeBase64Attributes to decode these strings into binary data.

public string ToJson()

Returns

string

JSON string corresponding to the current Document.

ToJsonPretty()

Converts the current Document into a matching pretty JSON string.

DynamoDB types are a superset of JSON types, thus the following DynamoDB cannot be properly represented as JSON data: PrimitiveList (SS, NS, BS types) - these sets will be converted to JSON arrays Binary Primitive (B type) - binary data will be converted to Base64 strings

If the resultant JSON is passed to Document.FromJson, the binary values will be treated as Base64 strings. Invoke Document.DecodeBase64Attributes to decode these strings into binary data.

public string ToJsonPretty()

Returns

string

JSON string corresponding to the current Document.

TryGetValue(string, out DynamoDBEntry)

Gets the value associated with the specified attribute value.

public bool TryGetValue(string attributeName, out DynamoDBEntry entry)

Parameters

attributeName string

Attribute name

entry DynamoDBEntry

If the specified attribute value is found, returns the value associated with the attribute; otherwise, null.

Returns

bool

True if attribute is found; false otherwise