Table of Contents

Class CreateTableRequest

Namespace
DynaSharp.Requests
Assembly
DynaSharp.dll

Creates a table (DynamoDB CreateTable).

public sealed record CreateTableRequest : IEquatable<CreateTableRequest>
Inheritance
CreateTableRequest
Implements
Inherited Members

Remarks

Table creation is asynchronous: the response describes the table in the state Creating, and the table can be used only when DescribeTable reports Active. Poll with a delay of a second or more.

Only the attributes that are key attributes of the table or of an index are defined, in AttributeDefinitions; DynamoDB is schemaless for everything else, and rejects a definition that no key uses.

Without BillingMode the table has provisioned capacity, and ProvisionedThroughput is then required. With PayPerRequest it must not be set.

Constructors

CreateTableRequest()

public CreateTableRequest()

Properties

AttributeDefinitions

Gets the types of the attributes that are keys of the table or of any of its indexes. Each key attribute is defined exactly once, and an attribute that is no key is not defined.

public required IReadOnlyList<AttributeDefinition> AttributeDefinitions { get; init; }

Property Value

IReadOnlyList<AttributeDefinition>

BillingMode

Gets how the table is billed. Unspecified (the default) sends nothing, and DynamoDB creates a table with provisioned capacity.

public BillingMode BillingMode { get; init; }

Property Value

BillingMode

DeletionProtectionEnabled

Gets a value indicating whether the table is protected from deletion: DeleteTable then fails until the protection is switched off. false (the default) sends nothing.

public bool DeletionProtectionEnabled { get; init; }

Property Value

bool

GlobalSecondaryIndexes

Gets the global secondary indexes, at most 20 on creation. null or empty defines none. More can be added to an existing table later, one at a time.

public IReadOnlyList<GlobalSecondaryIndex>? GlobalSecondaryIndexes { get; init; }

Property Value

IReadOnlyList<GlobalSecondaryIndex>

KeySchema

Gets the primary key: the partition key (Hash), followed by the sort key (Range) if the table has one. It cannot be changed afterwards.

public required IReadOnlyList<KeySchemaElement> KeySchema { get; init; }

Property Value

IReadOnlyList<KeySchemaElement>

LocalSecondaryIndexes

Gets the local secondary indexes, at most five. They can only be defined here. null or empty defines none.

public IReadOnlyList<LocalSecondaryIndex>? LocalSecondaryIndexes { get; init; }

Property Value

IReadOnlyList<LocalSecondaryIndex>

OnDemandThroughput

Gets the maximum throughput of a table with PayPerRequest capacity. Not allowed with Provisioned capacity, also when the mode is not set. null sets no maximum.

public OnDemandThroughput? OnDemandThroughput { get; init; }

Property Value

OnDemandThroughput

ProvisionedThroughput

Gets the capacity of the table. Required with Provisioned (also when the mode is not set), and not allowed with PayPerRequest.

public ProvisionedThroughput? ProvisionedThroughput { get; init; }

Property Value

ProvisionedThroughput

SSESpecification

Gets the server-side encryption. null uses the default key that DynamoDB owns.

public SSESpecification? SSESpecification { get; init; }

Property Value

SSESpecification

StreamSpecification

Gets whether the table has a stream, and what its records contain. null creates a table without a stream.

public StreamSpecification? StreamSpecification { get; init; }

Property Value

StreamSpecification

TableClass

Gets the storage class. Unspecified (the default) sends nothing, and DynamoDB uses the standard class.

public TableClass TableClass { get; init; }

Property Value

TableClass

TableName

Gets the table name: 3 to 255 characters of letters, digits, underscore, hyphen and dot, unique per account and region.

public required string TableName { get; init; }

Property Value

string

Tags

Gets the tags to attach to the table. null or empty attaches none.

public IReadOnlyList<TableTag>? Tags { get; init; }

Property Value

IReadOnlyList<TableTag>

Methods

Equals(CreateTableRequest?)

public bool Equals(CreateTableRequest? other)

Parameters

other CreateTableRequest

Returns

bool

Equals(object?)

public override bool Equals(object? obj)

Parameters

obj object

Returns

bool

GetHashCode()

public override int GetHashCode()

Returns

int

ToString()

public override string ToString()

Returns

string

Operators

operator ==(CreateTableRequest?, CreateTableRequest?)

public static bool operator ==(CreateTableRequest? left, CreateTableRequest? right)

Parameters

left CreateTableRequest
right CreateTableRequest

Returns

bool

operator !=(CreateTableRequest?, CreateTableRequest?)

public static bool operator !=(CreateTableRequest? left, CreateTableRequest? right)

Parameters

left CreateTableRequest
right CreateTableRequest

Returns

bool