This repository was archived by the owner on Dec 24, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 25
Expand file tree
/
Copy pathIPocoDynamoAsync.cs
More file actions
86 lines (83 loc) · 6.01 KB
/
IPocoDynamoAsync.cs
File metadata and controls
86 lines (83 loc) · 6.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
// Copyright (c) ServiceStack, Inc. All Rights Reserved.
// License: https://raw.github.com/ServiceStack/ServiceStack/master/license.txt
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using Amazon.DynamoDBv2.Model;
namespace ServiceStack.Aws.DynamoDb
{
/// <summary>
/// Available API's with Async equivalents
/// </summary>
public interface IPocoDynamoAsync
{
Task InitSchemaAsync(CancellationToken token = default);
Task<List<string>> GetTableNamesAsync(CancellationToken token = default);
Task<bool> CreateMissingTablesAsync(IEnumerable<DynamoMetadataType> tables,
CancellationToken token = default);
Task<bool> CreateTablesAsync(IEnumerable<DynamoMetadataType> tables, TimeSpan? timeout = null,
CancellationToken token = default);
Task<bool> WaitForTablesToBeReadyAsync(IEnumerable<string> tableNames,
CancellationToken token = default);
Task<bool> DeleteAllTablesAsync(TimeSpan? timeout = null, CancellationToken token = default);
Task<bool> DeleteTablesAsync(IEnumerable<string> tableNames, TimeSpan? timeout = null,
CancellationToken token = default);
Task<bool> WaitForTablesToBeDeletedAsync(IEnumerable<string> tableNames, TimeSpan? timeout = null,
CancellationToken token = default);
Task<T> GetItemAsync<T>(object hash, CancellationToken token = default);
Task<T> GetItemAsync<T>(object hash, object range, CancellationToken token = default);
Task<T> GetItemAsync<T>(DynamoId id, CancellationToken token = default);
Task<List<T>> GetItemsAsync<T>(IEnumerable<object> hashes, CancellationToken token = default);
Task<List<T>> GetItemsAsync<T>(IEnumerable<DynamoId> ids, CancellationToken token = default);
Task<List<T>> GetRelatedItemsAsync<T>(object hash, CancellationToken token = default);
Task DeleteRelatedItemsAsync<T>(object hash, IEnumerable<object> ranges, CancellationToken token = default);
Task<T> PutItemAsync<T>(T value, bool returnOld = false, CancellationToken token = default);
Task<bool> UpdateItemAsync<T>(UpdateExpression<T> update, CancellationToken token = default);
Task UpdateItemAsync<T>(DynamoUpdateItem update, CancellationToken token = default);
Task<T> UpdateItemNonDefaultsAsync<T>(T value, bool returnOld = false, CancellationToken token = default);
Task PutRelatedItemAsync<T>(object hash, T item, CancellationToken token = default);
Task PutRelatedItemsAsync<T>(object hash, IEnumerable<T> items, CancellationToken token = default);
Task PutItemsAsync<T>(IEnumerable<T> items, CancellationToken token = default);
Task<T> DeleteItemAsync<T>(object hash, ReturnItem returnItem = ReturnItem.None,
CancellationToken token = default);
Task<T> DeleteItemAsync<T>(DynamoId id, ReturnItem returnItem = ReturnItem.None,
CancellationToken token = default);
Task<T> DeleteItemAsync<T>(object hash, object range, ReturnItem returnItem = ReturnItem.None,
CancellationToken token = default);
Task DeleteItemsAsync<T>(IEnumerable<object> hashes, CancellationToken token = default);
Task DeleteItemsAsync<T>(IEnumerable<DynamoId> ids, CancellationToken token = default);
Task<long> IncrementAsync<T>(object hash, string fieldName, long amount = 1, CancellationToken token = default);
Task<long> ScanItemCountAsync<T>(CancellationToken token = default);
Task<long> DescribeItemCountAsync<T>(CancellationToken token = default);
#if NET472 || NETCORE
IAsyncEnumerable<T> ScanAllAsync<T>(CancellationToken token = default);
IAsyncEnumerable<T> ScanAsync<T>(ScanRequest request, Func<ScanResponse, IEnumerable<T>> converter,
CancellationToken token = default);
IAsyncEnumerable<T> ScanAsync<T>(ScanExpression<T> request, int limit, CancellationToken token = default);
IAsyncEnumerable<T> ScanAsync<T>(ScanExpression<T> request, CancellationToken token = default);
IAsyncEnumerable<T> ScanAsync<T>(ScanRequest request, int limit, CancellationToken token = default);
IAsyncEnumerable<T> ScanAsync<T>(ScanRequest request, CancellationToken token = default);
IAsyncEnumerable<T> QueryAsync<T>(QueryExpression<T> request, CancellationToken token = default);
IAsyncEnumerable<T> QueryAsync<T>(QueryExpression<T> request, int limit, CancellationToken token = default);
IAsyncEnumerable<T> QueryAsync<T>(QueryRequest request, CancellationToken token = default);
IAsyncEnumerable<T> QueryAsync<T>(QueryRequest request, int limit, CancellationToken token = default);
IAsyncEnumerable<T> QueryAsync<T>(QueryRequest request, Func<QueryResponse, IEnumerable<T>> converter,
CancellationToken token = default);
#else
Task<List<T>> ScanAllAsync<T>(CancellationToken token = default);
Task<List<T>> ScanAsync<T>(ScanRequest request, Func<ScanResponse, IEnumerable<T>> converter,
CancellationToken token = default);
Task<List<T>> ScanAsync<T>(ScanExpression<T> request, int limit, CancellationToken token = default);
Task<List<T>> ScanAsync<T>(ScanExpression<T> request, CancellationToken token = default);
Task<List<T>> ScanAsync<T>(ScanRequest request, int limit, CancellationToken token = default);
Task<List<T>> ScanAsync<T>(ScanRequest request, CancellationToken token = default);
Task<List<T>> QueryAsync<T>(QueryExpression<T> request, CancellationToken token = default);
Task<List<T>> QueryAsync<T>(QueryExpression<T> request, int limit, CancellationToken token = default);
Task<List<T>> QueryAsync<T>(QueryRequest request, CancellationToken token = default);
Task<List<T>> QueryAsync<T>(QueryRequest request, int limit, CancellationToken token = default);
Task<List<T>> QueryAsync<T>(QueryRequest request, Func<QueryResponse, IEnumerable<T>> converter,
CancellationToken token = default);
#endif
}
}