dynamodel-client
Version:
Amazon's DynamoDB client to manage multiple models per table.
178 lines (177 loc) • 6.11 kB
TypeScript
import { Updatable } from './expression/updateExpression';
import { Projection } from './expression/projectionExpression';
import { ConditionExpression } from './expression/conditionExpression';
import { Table } from './table';
import { Model } from './model';
import { BatchGetCommandOutput, BatchWriteCommandOutput, DeleteCommandOutput, DynamoDBDocumentClient, GetCommandOutput, PutCommandOutput, UpdateCommandOutput } from '@aws-sdk/lib-dynamodb';
import { ConsumedCapacity, ItemCollectionMetrics } from '@aws-sdk/client-dynamodb';
export declare class Dynamodel {
private documentClient;
private stage;
constructor(documentClient: DynamoDBDocumentClient, stage: string);
batchDelete(params: BatchDeleteInput): Promise<BatchDeleteOutput>;
batchGet(params: BatchGetInput): Promise<BatchGetOutput>;
batchPut(params: BatchPutInput): Promise<BatchPutOutput>;
delete(params: DeleteInput): Promise<DeleteOutput>;
get(params: GetInput): Promise<GetOutput>;
put(params: PutInput): Promise<PutOutput>;
query(params: QueryInput): Promise<QueryOutput>;
scan(params: ScanInput): Promise<ScanOutput>;
update(params: UpdateInput): Promise<UpdateOutput>;
}
export interface BatchDeleteInput {
keys: AttributeMap[];
returnConsumedCapacity?: ReturnConsumedCapacity;
returnItemCollectionMetrics?: ReturnItemCollectionMetrics;
table: Table;
}
export interface BatchDeleteOutput {
consumedCapacity?: ConsumedCapacity;
itemCollectionMetrics?: ItemCollectionMetrics[];
responses: BatchWriteCommandOutput[];
unprocessedKeys: AttributeMap;
}
export interface BatchGetInput {
consistentRead?: boolean;
keys: AttributeMap[];
projection?: Projection;
returnConsumedCapacity?: ReturnConsumedCapacity;
table: Table;
}
export interface BatchGetOutput {
consumedCapacity?: ConsumedCapacity;
models: Model[];
responses: BatchGetCommandOutput[];
unprocessedKeys: AttributeMap;
}
export interface BatchPutInput {
items: AttributeMap[];
returnConsumedCapacity?: ReturnConsumedCapacity;
returnItemCollectionMetrics?: ReturnItemCollectionMetrics;
table: Table;
}
export interface BatchPutOutput {
consumedCapacity?: ConsumedCapacity;
itemCollectionMetrics?: ItemCollectionMetrics[];
responses: BatchWriteCommandOutput[];
unprocessedItems: AttributeMap;
}
export interface DeleteInput {
condition?: ConditionExpression;
key: AttributeMap;
returnValues?: DeleteReturnValues;
returnConsumedCapacity?: ReturnConsumedCapacity;
returnItemCollectionMetrics?: ReturnItemCollectionMetrics;
table: Table;
}
export interface DeleteOutput {
consumedCapacity?: ConsumedCapacity;
itemCollectionMetrics?: ItemCollectionMetrics;
model?: Model;
response: DeleteCommandOutput;
}
export interface GetInput {
key: AttributeMap;
consistentRead?: boolean;
projection?: Projection;
returnConsumedCapacity?: ReturnConsumedCapacity;
table: Table;
}
export interface GetOutput {
consumedCapacity?: ConsumedCapacity;
model?: Model;
response: GetCommandOutput;
}
export interface PutInput {
condition?: ConditionExpression;
item: AttributeMap;
returnValues?: PutReturnValues;
returnConsumedCapacity?: ReturnConsumedCapacity;
returnItemCollectionMetrics?: ReturnItemCollectionMetrics;
table: Table;
}
export interface PutOutput {
consumedCapacity?: ConsumedCapacity;
itemCollectionMetrics?: ItemCollectionMetrics;
model?: Model;
response: PutCommandOutput;
}
export interface QueryInput {
consistentRead?: boolean;
countLimit?: number;
exclusiveStartKey?: AttributeMap;
filter?: ConditionExpression;
indexName?: string;
keyCondition?: ConditionExpression;
pageSize?: number;
projection?: Projection;
returnConsumedCapacity?: ReturnConsumedCapacity;
scanIndexForward?: boolean;
scanCountLimit?: number;
select?: Select;
table: Table;
}
export interface QueryOutput {
consumedCapacity?: ConsumedCapacity;
count: number;
models: Model[];
lastEvaluatedKey?: AttributeMap;
responses: QueryOutput[];
scannedCount: number;
}
export interface ScanInput {
consistentRead?: boolean;
countLimit?: number;
exclusiveStartKey?: AttributeMap;
filter?: ConditionExpression;
indexName?: string;
pageSize?: number;
projection?: Projection;
returnConsumedCapacity?: ReturnConsumedCapacity;
segment?: number;
scanCountLimit?: number;
select?: Select;
table: Table;
totalSegments?: number;
}
export interface ScanOutput {
consumedCapacity?: ConsumedCapacity;
count: number;
models: Model[];
lastEvaluatedKey?: AttributeMap;
responses: ScanOutput[];
scannedCount: number;
}
export type UpdateInput = UpdateItemInput | UpdateExpressionInput;
export interface UpdateExpressionInput {
condition?: ConditionExpression;
key: AttributeMap;
returnValues?: UpdateReturnValues;
returnConsumedCapacity?: ReturnConsumedCapacity;
returnItemCollectionMetrics?: ReturnItemCollectionMetrics;
table: Table;
updatable: Updatable;
}
export interface UpdateItemInput {
condition?: ConditionExpression;
item: AttributeMap;
returnValues?: UpdateReturnValues;
returnConsumedCapacity?: ReturnConsumedCapacity;
returnItemCollectionMetrics?: ReturnItemCollectionMetrics;
table: Table;
}
export interface UpdateOutput {
consumedCapacity?: ConsumedCapacity;
itemCollectionMetrics?: ItemCollectionMetrics;
model?: Model;
response: UpdateCommandOutput;
}
export type AttributeMap = {
[key: string]: any;
};
export type DeleteReturnValues = 'ALL_OLD' | 'NONE';
export type PutReturnValues = 'ALL_OLD' | 'NONE';
export type UpdateReturnValues = 'ALL_NEW' | 'ALL_OLD' | 'NONE' | 'UPDATED_NEW' | 'UPDATED_OLD';
export type ReturnConsumedCapacity = 'INDEXES' | 'NONE' | 'TOTAL';
export type ReturnItemCollectionMetrics = 'NONE' | 'SIZE';
export type Select = 'ALL_ATTRIBUTES' | 'ALL_PROJECTED_ATTRIBUTES' | 'COUNT' | 'SPECIFIC_ATTRIBUTES';