uplink-c  v1.8.0
uplink_definitions.h
Go to the documentation of this file.
1 #pragma once
2 
3 
4 
5 
6 #include <stdbool.h>
7 #include <stdint.h>
8 #include <stdio.h>
9 #include <stdlib.h>
10 
11 #include "uplink_compat.h"
12 
13 typedef const char uplink_const_char;
14 
15 typedef struct UplinkHandle {
16  size_t _handle;
17 } UplinkHandle;
18 
19 typedef struct UplinkAccess {
20  size_t _handle;
21 } UplinkAccess;
22 
23 typedef struct UplinkProject {
24  size_t _handle;
26 
27 typedef struct UplinkDownload {
28  size_t _handle;
30 
31 typedef struct UplinkUpload {
32  size_t _handle;
33 } UplinkUpload;
34 
35 typedef struct UplinkEncryptionKey {
36  size_t _handle;
38 
39 typedef struct UplinkPartUpload {
40  size_t _handle;
42 
43 typedef struct UplinkConfig {
44  const char *user_agent;
45 
47 
49  const char *temp_directory;
50 } UplinkConfig;
51 
52 typedef struct UplinkBucket {
53  char *name;
54  int64_t created;
55 } UplinkBucket;
56 
57 typedef struct UplinkSystemMetadata {
58  int64_t created;
59  int64_t expires;
60  int64_t content_length;
62 
63 typedef struct UplinkCustomMetadataEntry {
64  char *key;
65  size_t key_length;
66 
67  char *value;
68  size_t value_length;
70 
71 typedef struct UplinkCustomMetadata {
73  size_t count;
75 
76 typedef struct UplinkObject {
77  char *key;
78  bool is_prefix;
81 } UplinkObject;
82 
83 typedef struct UplinkUploadOptions {
85  int64_t expires;
87 
88 typedef struct UplinkDownloadOptions {
91  int64_t offset;
93  int64_t length;
95 
96 typedef struct UplinkListObjectsOptions {
97  const char *prefix;
98  const char *cursor;
99  bool recursive;
100 
101  bool system;
102  bool custom;
104 
105 typedef struct UplinkListUploadsOptions {
106  const char *prefix;
107  const char *cursor;
108  bool recursive;
109 
110  bool system;
111  bool custom;
113 
114 typedef struct UplinkListBucketsOptions {
115  const char *cursor;
117 
118 typedef struct UplinkObjectIterator {
119  size_t _handle;
121 
122 typedef struct UplinkBucketIterator {
123  size_t _handle;
125 
126 typedef struct UplinkUploadIterator {
127  size_t _handle;
129 
130 typedef struct UplinkPartIterator {
131  size_t _handle;
133 
134 typedef struct UplinkPermission {
139 
142  int64_t not_before;
145  int64_t not_after;
147 
148 typedef struct UplinkPart {
149  uint32_t part_number;
150  size_t size;
151  int64_t modified;
152  char *etag;
153  size_t etag_length;
154 } UplinkPart;
155 
156 typedef struct UplinkSharePrefix {
157  const char *bucket;
159  const char *prefix;
161 
162 typedef struct UplinkError {
163  int32_t code;
164  char *message;
165 } UplinkError;
166 
167 #define UPLINK_ERROR_INTERNAL 0x02
168 #define UPLINK_ERROR_CANCELED 0x03
169 #define UPLINK_ERROR_INVALID_HANDLE 0x04
170 #define UPLINK_ERROR_TOO_MANY_REQUESTS 0x05
171 #define UPLINK_ERROR_BANDWIDTH_LIMIT_EXCEEDED 0x06
172 #define UPLINK_ERROR_STORAGE_LIMIT_EXCEEDED 0x07
173 #define UPLINK_ERROR_SEGMENTS_LIMIT_EXCEEDED 0x08
174 #define UPLINK_ERROR_PERMISSION_DENIED 0x09
175 
176 #define UPLINK_ERROR_BUCKET_NAME_INVALID 0x10
177 #define UPLINK_ERROR_BUCKET_ALREADY_EXISTS 0x11
178 #define UPLINK_ERROR_BUCKET_NOT_EMPTY 0x12
179 #define UPLINK_ERROR_BUCKET_NOT_FOUND 0x13
180 
181 #define UPLINK_ERROR_OBJECT_KEY_INVALID 0x20
182 #define UPLINK_ERROR_OBJECT_NOT_FOUND 0x21
183 #define UPLINK_ERROR_UPLOAD_DONE 0x22
184 
185 #define EDGE_ERROR_AUTH_DIAL_FAILED 0x30
186 #define EDGE_ERROR_REGISTER_ACCESS_FAILED 0x31
187 
188 typedef struct UplinkAccessResult {
192 
193 typedef struct UplinkProjectResult {
197 
198 typedef struct UplinkBucketResult {
202 
203 typedef struct UplinkObjectResult {
207 
208 typedef struct UplinkUploadResult {
212 
213 typedef struct UplinkPartUploadResult {
217 
218 typedef struct UplinkDownloadResult {
222 
223 typedef struct UplinkWriteResult {
227 
228 typedef struct UplinkReadResult {
229  size_t bytes_read;
232 
233 typedef struct UplinkStringResult {
234  char *string;
237 
242 
243 typedef struct UplinkUploadInfo {
244  char *upload_id;
245 
246  char *key;
247  bool is_prefix;
251 
252 typedef struct UplinkUploadInfoResult {
256 
260 
261 typedef struct UplinkCommitUploadResult {
265 
266 typedef struct UplinkPartResult {
270 
272  uint32_t cursor;
274 
276 typedef struct EdgeConfig {
279  const char *auth_service_address;
280 
286  const char *certificate_pem;
287 
290 } EdgeConfig;
291 
294  bool is_public;
296 
298 typedef struct EdgeCredentials {
300  const char *access_key_id;
301  const char *secret_key;
304  const char *endpoint;
306 
307 typedef struct EdgeCredentialsResult {
311 
312 typedef struct EdgeShareURLOptions {
314  bool raw;
316 
318 #pragma GCC diagnostic push
319 #pragma GCC diagnostic ignored "-Wpedantic"
320 typedef struct UplinkMoveObjectOptions {
322 #pragma GCC diagnostic pop
323 
324 #pragma GCC diagnostic push
325 #pragma GCC diagnostic ignored "-Wpedantic"
328 #pragma GCC diagnostic pop
329 
330 #pragma GCC diagnostic push
331 #pragma GCC diagnostic ignored "-Wpedantic"
332 typedef struct UplinkCopyObjectOptions {
334 #pragma GCC diagnostic pop