Table of Contents

Class UpdateTableRequest

Namespace
DynaSharp.Requests
Assembly
DynaSharp.dll

Changes the settings of a table: its billing mode, capacity and on-demand maximums, its stream, its global secondary indexes, its server-side encryption, its storage class and its deletion protection (DynamoDB UpdateTable).

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

Remarks

Set what should change and leave the rest unset: an unset member sends nothing and keeps the current setting. DynamoDB applies the change asynchronously. The response describes the table in the state Updating, and the table accepts no further structural change until it is Active again; poll DescribeTable. A new global secondary index additionally needs its own Active before it can be queried.

DynamoDB limits what one request may combine. It rejects a request that changes nothing, and in general at most one global secondary index may be created or deleted per request (an index can be updated together with other changes). Capacity can be lowered only a few times a day, and the billing mode can be switched only once every 24 hours. Settings that this request does not cover (replicas and warm throughput) are not available here.

Constructors

UpdateTableRequest()

public UpdateTableRequest()

Properties

AttributeDefinitions

Gets the types of the key attributes that the changes introduce, namely those of a new global secondary index. Define an attribute only if it is not defined already. null or empty sends nothing.

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

Property Value

IReadOnlyList<AttributeDefinition>

BillingMode

Gets the new billing mode. Unspecified (the default) sends nothing. Switching to Provisioned requires ProvisionedThroughput (and one for each global secondary index); switching to PayPerRequest does not take capacity.

public BillingMode BillingMode { get; init; }

Property Value

BillingMode

DeletionProtectionEnabled

Gets whether the table is protected from deletion. null keeps the current setting; unlike in DeletionProtectionEnabled, false is sent, because it is how the protection is switched off.

public bool? DeletionProtectionEnabled { get; init; }

Property Value

bool?

GlobalSecondaryIndexUpdates

Gets the changes to the global secondary indexes: create, update or delete. null or empty changes none.

public IReadOnlyList<GlobalSecondaryIndexUpdate>? GlobalSecondaryIndexUpdates { get; init; }

Property Value

IReadOnlyList<GlobalSecondaryIndexUpdate>

OnDemandThroughput

Gets the new maximum throughput, for a table with PayPerRequest capacity or one this request switches to it. null keeps the current maximums, and so does a member of it that is null; -1 removes a maximum.

public OnDemandThroughput? OnDemandThroughput { get; init; }

Property Value

OnDemandThroughput

ProvisionedThroughput

Gets the new capacity of the table, for a table with Provisioned capacity. null keeps the current capacity.

public ProvisionedThroughput? ProvisionedThroughput { get; init; }

Property Value

ProvisionedThroughput

SSESpecification

Gets the new server-side encryption. null keeps it. Unlike in SSESpecification, Enabled is always sent: true switches to the AWS managed key, or to the customer managed key of KMSMasterKeyId, and false back to the key that DynamoDB owns. DynamoDB applies the change asynchronously, and the table stays readable and writable meanwhile.

public SSESpecification? SSESpecification { get; init; }

Property Value

SSESpecification

StreamSpecification

Gets the new stream settings. null keeps them. To switch a stream on, set StreamEnabled and a view type; to switch it off, set only StreamEnabled to false.

public StreamSpecification? StreamSpecification { get; init; }

Property Value

StreamSpecification

TableClass

Gets the new storage class. Unspecified (the default) sends nothing and keeps the current class.

public TableClass TableClass { get; init; }

Property Value

TableClass

TableName

Gets the table name (or table ARN).

public required string TableName { get; init; }

Property Value

string

Methods

Equals(UpdateTableRequest?)

public bool Equals(UpdateTableRequest? other)

Parameters

other UpdateTableRequest

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 ==(UpdateTableRequest?, UpdateTableRequest?)

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

Parameters

left UpdateTableRequest
right UpdateTableRequest

Returns

bool

operator !=(UpdateTableRequest?, UpdateTableRequest?)

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

Parameters

left UpdateTableRequest
right UpdateTableRequest

Returns

bool