appwrite 4.1.0 → 7.0.0.pre.RC1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/lib/appwrite/client.rb +32 -11
  3. data/lib/appwrite/id.rb +11 -0
  4. data/lib/appwrite/input_file.rb +33 -0
  5. data/lib/appwrite/models/account.rb +82 -0
  6. data/lib/appwrite/models/algo_argon2.rb +37 -0
  7. data/lib/appwrite/models/algo_bcrypt.rb +22 -0
  8. data/lib/appwrite/models/algo_md5.rb +22 -0
  9. data/lib/appwrite/models/algo_phpass.rb +22 -0
  10. data/lib/appwrite/models/algo_scrypt.rb +42 -0
  11. data/lib/appwrite/models/algo_scrypt_modified.rb +37 -0
  12. data/lib/appwrite/models/algo_sha.rb +22 -0
  13. data/lib/appwrite/models/attribute_datetime.rb +57 -0
  14. data/lib/appwrite/models/bucket.rb +25 -25
  15. data/lib/appwrite/models/collection.rb +25 -15
  16. data/lib/appwrite/models/database.rb +42 -0
  17. data/lib/appwrite/models/database_list.rb +32 -0
  18. data/lib/appwrite/models/deployment.rb +10 -5
  19. data/lib/appwrite/models/document.rb +15 -10
  20. data/lib/appwrite/models/execution.rb +20 -10
  21. data/lib/appwrite/models/file.rb +15 -15
  22. data/lib/appwrite/models/function.rb +12 -12
  23. data/lib/appwrite/models/index.rb +1 -1
  24. data/lib/appwrite/models/membership.rb +25 -10
  25. data/lib/appwrite/models/session.rb +5 -0
  26. data/lib/appwrite/models/team.rb +10 -5
  27. data/lib/appwrite/models/token.rb +5 -0
  28. data/lib/appwrite/models/user.rb +35 -0
  29. data/lib/appwrite/models/variable.rb +52 -0
  30. data/lib/appwrite/models/variable_list.rb +32 -0
  31. data/lib/appwrite/permission.rb +21 -0
  32. data/lib/appwrite/query.rb +43 -14
  33. data/lib/appwrite/role.rb +31 -0
  34. data/lib/appwrite/services/account.rb +274 -126
  35. data/lib/appwrite/services/avatars.rb +106 -59
  36. data/lib/appwrite/services/databases.rb +1425 -0
  37. data/lib/appwrite/services/functions.rb +381 -176
  38. data/lib/appwrite/services/health.rb +34 -34
  39. data/lib/appwrite/services/locale.rb +25 -7
  40. data/lib/appwrite/services/storage.rb +195 -193
  41. data/lib/appwrite/services/teams.rb +138 -128
  42. data/lib/appwrite/services/users.rb +637 -123
  43. data/lib/appwrite.rb +19 -2
  44. metadata +22 -6
  45. data/lib/appwrite/file.rb +0 -17
  46. data/lib/appwrite/services/database.rb +0 -1049
@@ -0,0 +1,1425 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ class Databases < Service
5
+
6
+ def initialize(client)
7
+ @client = client
8
+ end
9
+
10
+ # Get a list of all databases from the current Appwrite project. You can use
11
+ # the search parameter to filter your results.
12
+ #
13
+ # @param [Array] queries Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name
14
+ # @param [String] search Search term to filter your list results. Max length: 256 chars.
15
+ #
16
+ # @return [DatabaseList]
17
+ def list(queries: nil, search: nil)
18
+
19
+ path = '/databases'
20
+
21
+ params = {
22
+ queries: queries,
23
+ search: search,
24
+ }
25
+
26
+ headers = {
27
+ "content-type": 'application/json',
28
+ }
29
+
30
+ @client.call(
31
+ method: 'GET',
32
+ path: path,
33
+ headers: headers,
34
+ params: params,
35
+ response_type: Models::DatabaseList
36
+ )
37
+ end
38
+
39
+
40
+ # Create a new Database.
41
+ #
42
+ #
43
+ # @param [String] database_id Unique Id. Choose your own unique ID or pass the string &quot;unique()&quot; to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can&#039;t start with a special char. Max length is 36 chars.
44
+ # @param [String] name Collection name. Max length: 128 chars.
45
+ #
46
+ # @return [Database]
47
+ def create(database_id:, name:)
48
+
49
+ path = '/databases'
50
+
51
+ params = {
52
+ databaseId: database_id,
53
+ name: name,
54
+ }
55
+
56
+ headers = {
57
+ "content-type": 'application/json',
58
+ }
59
+ if database_id.nil?
60
+ raise Appwrite::Exception.new('Missing required parameter: "databaseId"')
61
+ end
62
+
63
+ if name.nil?
64
+ raise Appwrite::Exception.new('Missing required parameter: "name"')
65
+ end
66
+
67
+
68
+ @client.call(
69
+ method: 'POST',
70
+ path: path,
71
+ headers: headers,
72
+ params: params,
73
+ response_type: Models::Database
74
+ )
75
+ end
76
+
77
+
78
+ # Get a database by its unique ID. This endpoint response returns a JSON
79
+ # object with the database metadata.
80
+ #
81
+ # @param [String] database_id Database ID.
82
+ #
83
+ # @return [Database]
84
+ def get(database_id:)
85
+
86
+ path = '/databases/{databaseId}'
87
+
88
+ params = {
89
+ }
90
+
91
+ headers = {
92
+ "content-type": 'application/json',
93
+ }
94
+ if database_id.nil?
95
+ raise Appwrite::Exception.new('Missing required parameter: "databaseId"')
96
+ end
97
+
98
+ .gsub('{databaseId}', database_id)
99
+
100
+ @client.call(
101
+ method: 'GET',
102
+ path: path,
103
+ headers: headers,
104
+ params: params,
105
+ response_type: Models::Database
106
+ )
107
+ end
108
+
109
+
110
+ # Update a database by its unique ID.
111
+ #
112
+ # @param [String] database_id Database ID.
113
+ # @param [String] name Collection name. Max length: 128 chars.
114
+ #
115
+ # @return [Database]
116
+ def update(database_id:, name:)
117
+
118
+ path = '/databases/{databaseId}'
119
+
120
+ params = {
121
+ name: name,
122
+ }
123
+
124
+ headers = {
125
+ "content-type": 'application/json',
126
+ }
127
+ if database_id.nil?
128
+ raise Appwrite::Exception.new('Missing required parameter: "databaseId"')
129
+ end
130
+
131
+ if name.nil?
132
+ raise Appwrite::Exception.new('Missing required parameter: "name"')
133
+ end
134
+
135
+ .gsub('{databaseId}', database_id)
136
+
137
+ @client.call(
138
+ method: 'PUT',
139
+ path: path,
140
+ headers: headers,
141
+ params: params,
142
+ response_type: Models::Database
143
+ )
144
+ end
145
+
146
+
147
+ # Delete a database by its unique ID. Only API keys with with databases.write
148
+ # scope can delete a database.
149
+ #
150
+ # @param [String] database_id Database ID.
151
+ #
152
+ # @return []
153
+ def delete(database_id:)
154
+
155
+ path = '/databases/{databaseId}'
156
+
157
+ params = {
158
+ }
159
+
160
+ headers = {
161
+ "content-type": 'application/json',
162
+ }
163
+ if database_id.nil?
164
+ raise Appwrite::Exception.new('Missing required parameter: "databaseId"')
165
+ end
166
+
167
+ .gsub('{databaseId}', database_id)
168
+
169
+ @client.call(
170
+ method: 'DELETE',
171
+ path: path,
172
+ headers: headers,
173
+ params: params,
174
+ )
175
+ end
176
+
177
+
178
+ # Get a list of all collections that belong to the provided databaseId. You
179
+ # can use the search parameter to filter your results.
180
+ #
181
+ # @param [String] database_id Database ID.
182
+ # @param [Array] queries Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, enabled, documentSecurity
183
+ # @param [String] search Search term to filter your list results. Max length: 256 chars.
184
+ #
185
+ # @return [CollectionList]
186
+ def list_collections(database_id:, queries: nil, search: nil)
187
+
188
+ path = '/databases/{databaseId}/collections'
189
+
190
+ params = {
191
+ queries: queries,
192
+ search: search,
193
+ }
194
+
195
+ headers = {
196
+ "content-type": 'application/json',
197
+ }
198
+ if database_id.nil?
199
+ raise Appwrite::Exception.new('Missing required parameter: "databaseId"')
200
+ end
201
+
202
+ .gsub('{databaseId}', database_id)
203
+
204
+ @client.call(
205
+ method: 'GET',
206
+ path: path,
207
+ headers: headers,
208
+ params: params,
209
+ response_type: Models::CollectionList
210
+ )
211
+ end
212
+
213
+
214
+ # Create a new Collection. Before using this route, you should create a new
215
+ # database resource using either a [server
216
+ # integration](/docs/server/databases#databasesCreateCollection) API or
217
+ # directly from your database console.
218
+ #
219
+ # @param [String] database_id Database ID.
220
+ # @param [String] collection_id Unique Id. Choose your own unique ID or pass the string &quot;unique()&quot; to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can&#039;t start with a special char. Max length is 36 chars.
221
+ # @param [String] name Collection name. Max length: 128 chars.
222
+ # @param [Array] permissions An array of permissions strings. By default no user is granted with any permissions. [Learn more about permissions](/docs/permissions).
223
+ # @param [] document_security Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](/docs/permissions).
224
+ #
225
+ # @return [Collection]
226
+ def create_collection(database_id:, collection_id:, name:, permissions: nil, document_security: nil)
227
+
228
+ path = '/databases/{databaseId}/collections'
229
+
230
+ params = {
231
+ collectionId: collection_id,
232
+ name: name,
233
+ permissions: permissions,
234
+ documentSecurity: document_security,
235
+ }
236
+
237
+ headers = {
238
+ "content-type": 'application/json',
239
+ }
240
+ if database_id.nil?
241
+ raise Appwrite::Exception.new('Missing required parameter: "databaseId"')
242
+ end
243
+
244
+ if collection_id.nil?
245
+ raise Appwrite::Exception.new('Missing required parameter: "collectionId"')
246
+ end
247
+
248
+ if name.nil?
249
+ raise Appwrite::Exception.new('Missing required parameter: "name"')
250
+ end
251
+
252
+ .gsub('{databaseId}', database_id)
253
+
254
+ @client.call(
255
+ method: 'POST',
256
+ path: path,
257
+ headers: headers,
258
+ params: params,
259
+ response_type: Models::Collection
260
+ )
261
+ end
262
+
263
+
264
+ # Get a collection by its unique ID. This endpoint response returns a JSON
265
+ # object with the collection metadata.
266
+ #
267
+ # @param [String] database_id Database ID.
268
+ # @param [String] collection_id Collection ID.
269
+ #
270
+ # @return [Collection]
271
+ def get_collection(database_id:, collection_id:)
272
+
273
+ path = '/databases/{databaseId}/collections/{collectionId}'
274
+
275
+ params = {
276
+ }
277
+
278
+ headers = {
279
+ "content-type": 'application/json',
280
+ }
281
+ if database_id.nil?
282
+ raise Appwrite::Exception.new('Missing required parameter: "databaseId"')
283
+ end
284
+
285
+ if collection_id.nil?
286
+ raise Appwrite::Exception.new('Missing required parameter: "collectionId"')
287
+ end
288
+
289
+ .gsub('{databaseId}', database_id)
290
+ .gsub('{collectionId}', collection_id)
291
+
292
+ @client.call(
293
+ method: 'GET',
294
+ path: path,
295
+ headers: headers,
296
+ params: params,
297
+ response_type: Models::Collection
298
+ )
299
+ end
300
+
301
+
302
+ # Update a collection by its unique ID.
303
+ #
304
+ # @param [String] database_id Database ID.
305
+ # @param [String] collection_id Collection ID.
306
+ # @param [String] name Collection name. Max length: 128 chars.
307
+ # @param [Array] permissions An array of permission strings. By default the current permission are inherited. [Learn more about permissions](/docs/permissions).
308
+ # @param [] document_security Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](/docs/permissions).
309
+ # @param [] enabled Is collection enabled?
310
+ #
311
+ # @return [Collection]
312
+ def update_collection(database_id:, collection_id:, name:, permissions: nil, document_security: nil, enabled: nil)
313
+
314
+ path = '/databases/{databaseId}/collections/{collectionId}'
315
+
316
+ params = {
317
+ name: name,
318
+ permissions: permissions,
319
+ documentSecurity: document_security,
320
+ enabled: enabled,
321
+ }
322
+
323
+ headers = {
324
+ "content-type": 'application/json',
325
+ }
326
+ if database_id.nil?
327
+ raise Appwrite::Exception.new('Missing required parameter: "databaseId"')
328
+ end
329
+
330
+ if collection_id.nil?
331
+ raise Appwrite::Exception.new('Missing required parameter: "collectionId"')
332
+ end
333
+
334
+ if name.nil?
335
+ raise Appwrite::Exception.new('Missing required parameter: "name"')
336
+ end
337
+
338
+ .gsub('{databaseId}', database_id)
339
+ .gsub('{collectionId}', collection_id)
340
+
341
+ @client.call(
342
+ method: 'PUT',
343
+ path: path,
344
+ headers: headers,
345
+ params: params,
346
+ response_type: Models::Collection
347
+ )
348
+ end
349
+
350
+
351
+ # Delete a collection by its unique ID. Only users with write permissions
352
+ # have access to delete this resource.
353
+ #
354
+ # @param [String] database_id Database ID.
355
+ # @param [String] collection_id Collection ID.
356
+ #
357
+ # @return []
358
+ def delete_collection(database_id:, collection_id:)
359
+
360
+ path = '/databases/{databaseId}/collections/{collectionId}'
361
+
362
+ params = {
363
+ }
364
+
365
+ headers = {
366
+ "content-type": 'application/json',
367
+ }
368
+ if database_id.nil?
369
+ raise Appwrite::Exception.new('Missing required parameter: "databaseId"')
370
+ end
371
+
372
+ if collection_id.nil?
373
+ raise Appwrite::Exception.new('Missing required parameter: "collectionId"')
374
+ end
375
+
376
+ .gsub('{databaseId}', database_id)
377
+ .gsub('{collectionId}', collection_id)
378
+
379
+ @client.call(
380
+ method: 'DELETE',
381
+ path: path,
382
+ headers: headers,
383
+ params: params,
384
+ )
385
+ end
386
+
387
+
388
+ #
389
+ #
390
+ # @param [String] database_id Database ID.
391
+ # @param [String] collection_id Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
392
+ #
393
+ # @return [AttributeList]
394
+ def list_attributes(database_id:, collection_id:)
395
+
396
+ path = '/databases/{databaseId}/collections/{collectionId}/attributes'
397
+
398
+ params = {
399
+ }
400
+
401
+ headers = {
402
+ "content-type": 'application/json',
403
+ }
404
+ if database_id.nil?
405
+ raise Appwrite::Exception.new('Missing required parameter: "databaseId"')
406
+ end
407
+
408
+ if collection_id.nil?
409
+ raise Appwrite::Exception.new('Missing required parameter: "collectionId"')
410
+ end
411
+
412
+ .gsub('{databaseId}', database_id)
413
+ .gsub('{collectionId}', collection_id)
414
+
415
+ @client.call(
416
+ method: 'GET',
417
+ path: path,
418
+ headers: headers,
419
+ params: params,
420
+ response_type: Models::AttributeList
421
+ )
422
+ end
423
+
424
+
425
+ # Create a boolean attribute.
426
+ #
427
+ #
428
+ # @param [String] database_id Database ID.
429
+ # @param [String] collection_id Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
430
+ # @param [String] key Attribute Key.
431
+ # @param [] required Is attribute required?
432
+ # @param [] default Default value for attribute when not provided. Cannot be set when attribute is required.
433
+ # @param [] array Is attribute an array?
434
+ #
435
+ # @return [AttributeBoolean]
436
+ def create_boolean_attribute(database_id:, collection_id:, key:, required:, default: nil, array: nil)
437
+
438
+ path = '/databases/{databaseId}/collections/{collectionId}/attributes/boolean'
439
+
440
+ params = {
441
+ key: key,
442
+ required: required,
443
+ default: default,
444
+ array: array,
445
+ }
446
+
447
+ headers = {
448
+ "content-type": 'application/json',
449
+ }
450
+ if database_id.nil?
451
+ raise Appwrite::Exception.new('Missing required parameter: "databaseId"')
452
+ end
453
+
454
+ if collection_id.nil?
455
+ raise Appwrite::Exception.new('Missing required parameter: "collectionId"')
456
+ end
457
+
458
+ if key.nil?
459
+ raise Appwrite::Exception.new('Missing required parameter: "key"')
460
+ end
461
+
462
+ if required.nil?
463
+ raise Appwrite::Exception.new('Missing required parameter: "required"')
464
+ end
465
+
466
+ .gsub('{databaseId}', database_id)
467
+ .gsub('{collectionId}', collection_id)
468
+
469
+ @client.call(
470
+ method: 'POST',
471
+ path: path,
472
+ headers: headers,
473
+ params: params,
474
+ response_type: Models::AttributeBoolean
475
+ )
476
+ end
477
+
478
+
479
+ #
480
+ #
481
+ # @param [String] database_id Database ID.
482
+ # @param [String] collection_id Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
483
+ # @param [String] key Attribute Key.
484
+ # @param [] required Is attribute required?
485
+ # @param [String] default Default value for the attribute in ISO 8601 format. Cannot be set when attribute is required.
486
+ # @param [] array Is attribute an array?
487
+ #
488
+ # @return [AttributeDatetime]
489
+ def create_datetime_attribute(database_id:, collection_id:, key:, required:, default: nil, array: nil)
490
+
491
+ path = '/databases/{databaseId}/collections/{collectionId}/attributes/datetime'
492
+
493
+ params = {
494
+ key: key,
495
+ required: required,
496
+ default: default,
497
+ array: array,
498
+ }
499
+
500
+ headers = {
501
+ "content-type": 'application/json',
502
+ }
503
+ if database_id.nil?
504
+ raise Appwrite::Exception.new('Missing required parameter: "databaseId"')
505
+ end
506
+
507
+ if collection_id.nil?
508
+ raise Appwrite::Exception.new('Missing required parameter: "collectionId"')
509
+ end
510
+
511
+ if key.nil?
512
+ raise Appwrite::Exception.new('Missing required parameter: "key"')
513
+ end
514
+
515
+ if required.nil?
516
+ raise Appwrite::Exception.new('Missing required parameter: "required"')
517
+ end
518
+
519
+ .gsub('{databaseId}', database_id)
520
+ .gsub('{collectionId}', collection_id)
521
+
522
+ @client.call(
523
+ method: 'POST',
524
+ path: path,
525
+ headers: headers,
526
+ params: params,
527
+ response_type: Models::AttributeDatetime
528
+ )
529
+ end
530
+
531
+
532
+ # Create an email attribute.
533
+ #
534
+ #
535
+ # @param [String] database_id Database ID.
536
+ # @param [String] collection_id Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
537
+ # @param [String] key Attribute Key.
538
+ # @param [] required Is attribute required?
539
+ # @param [String] default Default value for attribute when not provided. Cannot be set when attribute is required.
540
+ # @param [] array Is attribute an array?
541
+ #
542
+ # @return [AttributeEmail]
543
+ def create_email_attribute(database_id:, collection_id:, key:, required:, default: nil, array: nil)
544
+
545
+ path = '/databases/{databaseId}/collections/{collectionId}/attributes/email'
546
+
547
+ params = {
548
+ key: key,
549
+ required: required,
550
+ default: default,
551
+ array: array,
552
+ }
553
+
554
+ headers = {
555
+ "content-type": 'application/json',
556
+ }
557
+ if database_id.nil?
558
+ raise Appwrite::Exception.new('Missing required parameter: "databaseId"')
559
+ end
560
+
561
+ if collection_id.nil?
562
+ raise Appwrite::Exception.new('Missing required parameter: "collectionId"')
563
+ end
564
+
565
+ if key.nil?
566
+ raise Appwrite::Exception.new('Missing required parameter: "key"')
567
+ end
568
+
569
+ if required.nil?
570
+ raise Appwrite::Exception.new('Missing required parameter: "required"')
571
+ end
572
+
573
+ .gsub('{databaseId}', database_id)
574
+ .gsub('{collectionId}', collection_id)
575
+
576
+ @client.call(
577
+ method: 'POST',
578
+ path: path,
579
+ headers: headers,
580
+ params: params,
581
+ response_type: Models::AttributeEmail
582
+ )
583
+ end
584
+
585
+
586
+ #
587
+ #
588
+ # @param [String] database_id Database ID.
589
+ # @param [String] collection_id Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
590
+ # @param [String] key Attribute Key.
591
+ # @param [Array] elements Array of elements in enumerated type. Uses length of longest element to determine size. Maximum of 100 elements are allowed, each 4096 characters long.
592
+ # @param [] required Is attribute required?
593
+ # @param [String] default Default value for attribute when not provided. Cannot be set when attribute is required.
594
+ # @param [] array Is attribute an array?
595
+ #
596
+ # @return [AttributeEnum]
597
+ def create_enum_attribute(database_id:, collection_id:, key:, elements:, required:, default: nil, array: nil)
598
+
599
+ path = '/databases/{databaseId}/collections/{collectionId}/attributes/enum'
600
+
601
+ params = {
602
+ key: key,
603
+ elements: elements,
604
+ required: required,
605
+ default: default,
606
+ array: array,
607
+ }
608
+
609
+ headers = {
610
+ "content-type": 'application/json',
611
+ }
612
+ if database_id.nil?
613
+ raise Appwrite::Exception.new('Missing required parameter: "databaseId"')
614
+ end
615
+
616
+ if collection_id.nil?
617
+ raise Appwrite::Exception.new('Missing required parameter: "collectionId"')
618
+ end
619
+
620
+ if key.nil?
621
+ raise Appwrite::Exception.new('Missing required parameter: "key"')
622
+ end
623
+
624
+ if elements.nil?
625
+ raise Appwrite::Exception.new('Missing required parameter: "elements"')
626
+ end
627
+
628
+ if required.nil?
629
+ raise Appwrite::Exception.new('Missing required parameter: "required"')
630
+ end
631
+
632
+ .gsub('{databaseId}', database_id)
633
+ .gsub('{collectionId}', collection_id)
634
+
635
+ @client.call(
636
+ method: 'POST',
637
+ path: path,
638
+ headers: headers,
639
+ params: params,
640
+ response_type: Models::AttributeEnum
641
+ )
642
+ end
643
+
644
+
645
+ # Create a float attribute. Optionally, minimum and maximum values can be
646
+ # provided.
647
+ #
648
+ #
649
+ # @param [String] database_id Database ID.
650
+ # @param [String] collection_id Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
651
+ # @param [String] key Attribute Key.
652
+ # @param [] required Is attribute required?
653
+ # @param [Float] min Minimum value to enforce on new documents
654
+ # @param [Float] max Maximum value to enforce on new documents
655
+ # @param [Float] default Default value for attribute when not provided. Cannot be set when attribute is required.
656
+ # @param [] array Is attribute an array?
657
+ #
658
+ # @return [AttributeFloat]
659
+ def create_float_attribute(database_id:, collection_id:, key:, required:, min: nil, max: nil, default: nil, array: nil)
660
+
661
+ path = '/databases/{databaseId}/collections/{collectionId}/attributes/float'
662
+
663
+ params = {
664
+ key: key,
665
+ required: required,
666
+ min: min,
667
+ max: max,
668
+ default: default,
669
+ array: array,
670
+ }
671
+
672
+ headers = {
673
+ "content-type": 'application/json',
674
+ }
675
+ if database_id.nil?
676
+ raise Appwrite::Exception.new('Missing required parameter: "databaseId"')
677
+ end
678
+
679
+ if collection_id.nil?
680
+ raise Appwrite::Exception.new('Missing required parameter: "collectionId"')
681
+ end
682
+
683
+ if key.nil?
684
+ raise Appwrite::Exception.new('Missing required parameter: "key"')
685
+ end
686
+
687
+ if required.nil?
688
+ raise Appwrite::Exception.new('Missing required parameter: "required"')
689
+ end
690
+
691
+ .gsub('{databaseId}', database_id)
692
+ .gsub('{collectionId}', collection_id)
693
+
694
+ @client.call(
695
+ method: 'POST',
696
+ path: path,
697
+ headers: headers,
698
+ params: params,
699
+ response_type: Models::AttributeFloat
700
+ )
701
+ end
702
+
703
+
704
+ # Create an integer attribute. Optionally, minimum and maximum values can be
705
+ # provided.
706
+ #
707
+ #
708
+ # @param [String] database_id Database ID.
709
+ # @param [String] collection_id Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
710
+ # @param [String] key Attribute Key.
711
+ # @param [] required Is attribute required?
712
+ # @param [Integer] min Minimum value to enforce on new documents
713
+ # @param [Integer] max Maximum value to enforce on new documents
714
+ # @param [Integer] default Default value for attribute when not provided. Cannot be set when attribute is required.
715
+ # @param [] array Is attribute an array?
716
+ #
717
+ # @return [AttributeInteger]
718
+ def create_integer_attribute(database_id:, collection_id:, key:, required:, min: nil, max: nil, default: nil, array: nil)
719
+
720
+ path = '/databases/{databaseId}/collections/{collectionId}/attributes/integer'
721
+
722
+ params = {
723
+ key: key,
724
+ required: required,
725
+ min: min,
726
+ max: max,
727
+ default: default,
728
+ array: array,
729
+ }
730
+
731
+ headers = {
732
+ "content-type": 'application/json',
733
+ }
734
+ if database_id.nil?
735
+ raise Appwrite::Exception.new('Missing required parameter: "databaseId"')
736
+ end
737
+
738
+ if collection_id.nil?
739
+ raise Appwrite::Exception.new('Missing required parameter: "collectionId"')
740
+ end
741
+
742
+ if key.nil?
743
+ raise Appwrite::Exception.new('Missing required parameter: "key"')
744
+ end
745
+
746
+ if required.nil?
747
+ raise Appwrite::Exception.new('Missing required parameter: "required"')
748
+ end
749
+
750
+ .gsub('{databaseId}', database_id)
751
+ .gsub('{collectionId}', collection_id)
752
+
753
+ @client.call(
754
+ method: 'POST',
755
+ path: path,
756
+ headers: headers,
757
+ params: params,
758
+ response_type: Models::AttributeInteger
759
+ )
760
+ end
761
+
762
+
763
+ # Create IP address attribute.
764
+ #
765
+ #
766
+ # @param [String] database_id Database ID.
767
+ # @param [String] collection_id Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
768
+ # @param [String] key Attribute Key.
769
+ # @param [] required Is attribute required?
770
+ # @param [String] default Default value for attribute when not provided. Cannot be set when attribute is required.
771
+ # @param [] array Is attribute an array?
772
+ #
773
+ # @return [AttributeIp]
774
+ def create_ip_attribute(database_id:, collection_id:, key:, required:, default: nil, array: nil)
775
+
776
+ path = '/databases/{databaseId}/collections/{collectionId}/attributes/ip'
777
+
778
+ params = {
779
+ key: key,
780
+ required: required,
781
+ default: default,
782
+ array: array,
783
+ }
784
+
785
+ headers = {
786
+ "content-type": 'application/json',
787
+ }
788
+ if database_id.nil?
789
+ raise Appwrite::Exception.new('Missing required parameter: "databaseId"')
790
+ end
791
+
792
+ if collection_id.nil?
793
+ raise Appwrite::Exception.new('Missing required parameter: "collectionId"')
794
+ end
795
+
796
+ if key.nil?
797
+ raise Appwrite::Exception.new('Missing required parameter: "key"')
798
+ end
799
+
800
+ if required.nil?
801
+ raise Appwrite::Exception.new('Missing required parameter: "required"')
802
+ end
803
+
804
+ .gsub('{databaseId}', database_id)
805
+ .gsub('{collectionId}', collection_id)
806
+
807
+ @client.call(
808
+ method: 'POST',
809
+ path: path,
810
+ headers: headers,
811
+ params: params,
812
+ response_type: Models::AttributeIp
813
+ )
814
+ end
815
+
816
+
817
+ # Create a string attribute.
818
+ #
819
+ #
820
+ # @param [String] database_id Database ID.
821
+ # @param [String] collection_id Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
822
+ # @param [String] key Attribute Key.
823
+ # @param [Integer] size Attribute size for text attributes, in number of characters.
824
+ # @param [] required Is attribute required?
825
+ # @param [String] default Default value for attribute when not provided. Cannot be set when attribute is required.
826
+ # @param [] array Is attribute an array?
827
+ #
828
+ # @return [AttributeString]
829
+ def create_string_attribute(database_id:, collection_id:, key:, size:, required:, default: nil, array: nil)
830
+
831
+ path = '/databases/{databaseId}/collections/{collectionId}/attributes/string'
832
+
833
+ params = {
834
+ key: key,
835
+ size: size,
836
+ required: required,
837
+ default: default,
838
+ array: array,
839
+ }
840
+
841
+ headers = {
842
+ "content-type": 'application/json',
843
+ }
844
+ if database_id.nil?
845
+ raise Appwrite::Exception.new('Missing required parameter: "databaseId"')
846
+ end
847
+
848
+ if collection_id.nil?
849
+ raise Appwrite::Exception.new('Missing required parameter: "collectionId"')
850
+ end
851
+
852
+ if key.nil?
853
+ raise Appwrite::Exception.new('Missing required parameter: "key"')
854
+ end
855
+
856
+ if size.nil?
857
+ raise Appwrite::Exception.new('Missing required parameter: "size"')
858
+ end
859
+
860
+ if required.nil?
861
+ raise Appwrite::Exception.new('Missing required parameter: "required"')
862
+ end
863
+
864
+ .gsub('{databaseId}', database_id)
865
+ .gsub('{collectionId}', collection_id)
866
+
867
+ @client.call(
868
+ method: 'POST',
869
+ path: path,
870
+ headers: headers,
871
+ params: params,
872
+ response_type: Models::AttributeString
873
+ )
874
+ end
875
+
876
+
877
+ # Create a URL attribute.
878
+ #
879
+ #
880
+ # @param [String] database_id Database ID.
881
+ # @param [String] collection_id Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
882
+ # @param [String] key Attribute Key.
883
+ # @param [] required Is attribute required?
884
+ # @param [String] default Default value for attribute when not provided. Cannot be set when attribute is required.
885
+ # @param [] array Is attribute an array?
886
+ #
887
+ # @return [AttributeUrl]
888
+ def create_url_attribute(database_id:, collection_id:, key:, required:, default: nil, array: nil)
889
+
890
+ path = '/databases/{databaseId}/collections/{collectionId}/attributes/url'
891
+
892
+ params = {
893
+ key: key,
894
+ required: required,
895
+ default: default,
896
+ array: array,
897
+ }
898
+
899
+ headers = {
900
+ "content-type": 'application/json',
901
+ }
902
+ if database_id.nil?
903
+ raise Appwrite::Exception.new('Missing required parameter: "databaseId"')
904
+ end
905
+
906
+ if collection_id.nil?
907
+ raise Appwrite::Exception.new('Missing required parameter: "collectionId"')
908
+ end
909
+
910
+ if key.nil?
911
+ raise Appwrite::Exception.new('Missing required parameter: "key"')
912
+ end
913
+
914
+ if required.nil?
915
+ raise Appwrite::Exception.new('Missing required parameter: "required"')
916
+ end
917
+
918
+ .gsub('{databaseId}', database_id)
919
+ .gsub('{collectionId}', collection_id)
920
+
921
+ @client.call(
922
+ method: 'POST',
923
+ path: path,
924
+ headers: headers,
925
+ params: params,
926
+ response_type: Models::AttributeUrl
927
+ )
928
+ end
929
+
930
+
931
+ #
932
+ #
933
+ # @param [String] database_id Database ID.
934
+ # @param [String] collection_id Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
935
+ # @param [String] key Attribute Key.
936
+ #
937
+ # @return []
938
+ def get_attribute(database_id:, collection_id:, key:)
939
+
940
+ path = '/databases/{databaseId}/collections/{collectionId}/attributes/{key}'
941
+
942
+ params = {
943
+ }
944
+
945
+ headers = {
946
+ "content-type": 'application/json',
947
+ }
948
+ if database_id.nil?
949
+ raise Appwrite::Exception.new('Missing required parameter: "databaseId"')
950
+ end
951
+
952
+ if collection_id.nil?
953
+ raise Appwrite::Exception.new('Missing required parameter: "collectionId"')
954
+ end
955
+
956
+ if key.nil?
957
+ raise Appwrite::Exception.new('Missing required parameter: "key"')
958
+ end
959
+
960
+ .gsub('{databaseId}', database_id)
961
+ .gsub('{collectionId}', collection_id)
962
+ .gsub('{key}', key)
963
+
964
+ @client.call(
965
+ method: 'GET',
966
+ path: path,
967
+ headers: headers,
968
+ params: params,
969
+ )
970
+ end
971
+
972
+
973
+ #
974
+ #
975
+ # @param [String] database_id Database ID.
976
+ # @param [String] collection_id Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
977
+ # @param [String] key Attribute Key.
978
+ #
979
+ # @return []
980
+ def delete_attribute(database_id:, collection_id:, key:)
981
+
982
+ path = '/databases/{databaseId}/collections/{collectionId}/attributes/{key}'
983
+
984
+ params = {
985
+ }
986
+
987
+ headers = {
988
+ "content-type": 'application/json',
989
+ }
990
+ if database_id.nil?
991
+ raise Appwrite::Exception.new('Missing required parameter: "databaseId"')
992
+ end
993
+
994
+ if collection_id.nil?
995
+ raise Appwrite::Exception.new('Missing required parameter: "collectionId"')
996
+ end
997
+
998
+ if key.nil?
999
+ raise Appwrite::Exception.new('Missing required parameter: "key"')
1000
+ end
1001
+
1002
+ .gsub('{databaseId}', database_id)
1003
+ .gsub('{collectionId}', collection_id)
1004
+ .gsub('{key}', key)
1005
+
1006
+ @client.call(
1007
+ method: 'DELETE',
1008
+ path: path,
1009
+ headers: headers,
1010
+ params: params,
1011
+ )
1012
+ end
1013
+
1014
+
1015
+ # Get a list of all the user's documents in a given collection. You can use
1016
+ # the query params to filter your results. On admin mode, this endpoint will
1017
+ # return a list of all of documents belonging to the provided collectionId.
1018
+ # [Learn more about different API modes](/docs/admin).
1019
+ #
1020
+ # @param [String] database_id Database ID.
1021
+ # @param [String] collection_id Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
1022
+ # @param [Array] queries Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long.
1023
+ #
1024
+ # @return [DocumentList]
1025
+ def list_documents(database_id:, collection_id:, queries: nil)
1026
+
1027
+ path = '/databases/{databaseId}/collections/{collectionId}/documents'
1028
+
1029
+ params = {
1030
+ queries: queries,
1031
+ }
1032
+
1033
+ headers = {
1034
+ "content-type": 'application/json',
1035
+ }
1036
+ if database_id.nil?
1037
+ raise Appwrite::Exception.new('Missing required parameter: "databaseId"')
1038
+ end
1039
+
1040
+ if collection_id.nil?
1041
+ raise Appwrite::Exception.new('Missing required parameter: "collectionId"')
1042
+ end
1043
+
1044
+ .gsub('{databaseId}', database_id)
1045
+ .gsub('{collectionId}', collection_id)
1046
+
1047
+ @client.call(
1048
+ method: 'GET',
1049
+ path: path,
1050
+ headers: headers,
1051
+ params: params,
1052
+ response_type: Models::DocumentList
1053
+ )
1054
+ end
1055
+
1056
+
1057
+ # Create a new Document. Before using this route, you should create a new
1058
+ # collection resource using either a [server
1059
+ # integration](/docs/server/databases#databasesCreateCollection) API or
1060
+ # directly from your database console.
1061
+ #
1062
+ # @param [String] database_id Database ID.
1063
+ # @param [String] collection_id Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection). Make sure to define attributes before creating documents.
1064
+ # @param [String] document_id Document ID. Choose your own unique ID or pass the string &quot;unique()&quot; to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can&#039;t start with a special char. Max length is 36 chars.
1065
+ # @param [Hash] data Document data as JSON object.
1066
+ # @param [Array] permissions An array of permissions strings. By default the current user is granted with all permissions. [Learn more about permissions](/docs/permissions).
1067
+ #
1068
+ # @return [Document]
1069
+ def create_document(database_id:, collection_id:, document_id:, data:, permissions: nil)
1070
+
1071
+ path = '/databases/{databaseId}/collections/{collectionId}/documents'
1072
+
1073
+ params = {
1074
+ documentId: document_id,
1075
+ data: data,
1076
+ permissions: permissions,
1077
+ }
1078
+
1079
+ headers = {
1080
+ "content-type": 'application/json',
1081
+ }
1082
+ if database_id.nil?
1083
+ raise Appwrite::Exception.new('Missing required parameter: "databaseId"')
1084
+ end
1085
+
1086
+ if collection_id.nil?
1087
+ raise Appwrite::Exception.new('Missing required parameter: "collectionId"')
1088
+ end
1089
+
1090
+ if document_id.nil?
1091
+ raise Appwrite::Exception.new('Missing required parameter: "documentId"')
1092
+ end
1093
+
1094
+ if data.nil?
1095
+ raise Appwrite::Exception.new('Missing required parameter: "data"')
1096
+ end
1097
+
1098
+ .gsub('{databaseId}', database_id)
1099
+ .gsub('{collectionId}', collection_id)
1100
+
1101
+ @client.call(
1102
+ method: 'POST',
1103
+ path: path,
1104
+ headers: headers,
1105
+ params: params,
1106
+ response_type: Models::Document
1107
+ )
1108
+ end
1109
+
1110
+
1111
+ # Get a document by its unique ID. This endpoint response returns a JSON
1112
+ # object with the document data.
1113
+ #
1114
+ # @param [String] database_id Database ID.
1115
+ # @param [String] collection_id Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
1116
+ # @param [String] document_id Document ID.
1117
+ #
1118
+ # @return [Document]
1119
+ def get_document(database_id:, collection_id:, document_id:)
1120
+
1121
+ path = '/databases/{databaseId}/collections/{collectionId}/documents/{documentId}'
1122
+
1123
+ params = {
1124
+ }
1125
+
1126
+ headers = {
1127
+ "content-type": 'application/json',
1128
+ }
1129
+ if database_id.nil?
1130
+ raise Appwrite::Exception.new('Missing required parameter: "databaseId"')
1131
+ end
1132
+
1133
+ if collection_id.nil?
1134
+ raise Appwrite::Exception.new('Missing required parameter: "collectionId"')
1135
+ end
1136
+
1137
+ if document_id.nil?
1138
+ raise Appwrite::Exception.new('Missing required parameter: "documentId"')
1139
+ end
1140
+
1141
+ .gsub('{databaseId}', database_id)
1142
+ .gsub('{collectionId}', collection_id)
1143
+ .gsub('{documentId}', document_id)
1144
+
1145
+ @client.call(
1146
+ method: 'GET',
1147
+ path: path,
1148
+ headers: headers,
1149
+ params: params,
1150
+ response_type: Models::Document
1151
+ )
1152
+ end
1153
+
1154
+
1155
+ # Update a document by its unique ID. Using the patch method you can pass
1156
+ # only specific fields that will get updated.
1157
+ #
1158
+ # @param [String] database_id Database ID.
1159
+ # @param [String] collection_id Collection ID.
1160
+ # @param [String] document_id Document ID.
1161
+ # @param [Hash] data Document data as JSON object. Include only attribute and value pairs to be updated.
1162
+ # @param [Array] permissions An array of permissions strings. By default the current permissions are inherited. [Learn more about permissions](/docs/permissions).
1163
+ #
1164
+ # @return [Document]
1165
+ def update_document(database_id:, collection_id:, document_id:, data: nil, permissions: nil)
1166
+
1167
+ path = '/databases/{databaseId}/collections/{collectionId}/documents/{documentId}'
1168
+
1169
+ params = {
1170
+ data: data,
1171
+ permissions: permissions,
1172
+ }
1173
+
1174
+ headers = {
1175
+ "content-type": 'application/json',
1176
+ }
1177
+ if database_id.nil?
1178
+ raise Appwrite::Exception.new('Missing required parameter: "databaseId"')
1179
+ end
1180
+
1181
+ if collection_id.nil?
1182
+ raise Appwrite::Exception.new('Missing required parameter: "collectionId"')
1183
+ end
1184
+
1185
+ if document_id.nil?
1186
+ raise Appwrite::Exception.new('Missing required parameter: "documentId"')
1187
+ end
1188
+
1189
+ .gsub('{databaseId}', database_id)
1190
+ .gsub('{collectionId}', collection_id)
1191
+ .gsub('{documentId}', document_id)
1192
+
1193
+ @client.call(
1194
+ method: 'PATCH',
1195
+ path: path,
1196
+ headers: headers,
1197
+ params: params,
1198
+ response_type: Models::Document
1199
+ )
1200
+ end
1201
+
1202
+
1203
+ # Delete a document by its unique ID.
1204
+ #
1205
+ # @param [String] database_id Database ID.
1206
+ # @param [String] collection_id Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
1207
+ # @param [String] document_id Document ID.
1208
+ #
1209
+ # @return []
1210
+ def delete_document(database_id:, collection_id:, document_id:)
1211
+
1212
+ path = '/databases/{databaseId}/collections/{collectionId}/documents/{documentId}'
1213
+
1214
+ params = {
1215
+ }
1216
+
1217
+ headers = {
1218
+ "content-type": 'application/json',
1219
+ }
1220
+ if database_id.nil?
1221
+ raise Appwrite::Exception.new('Missing required parameter: "databaseId"')
1222
+ end
1223
+
1224
+ if collection_id.nil?
1225
+ raise Appwrite::Exception.new('Missing required parameter: "collectionId"')
1226
+ end
1227
+
1228
+ if document_id.nil?
1229
+ raise Appwrite::Exception.new('Missing required parameter: "documentId"')
1230
+ end
1231
+
1232
+ .gsub('{databaseId}', database_id)
1233
+ .gsub('{collectionId}', collection_id)
1234
+ .gsub('{documentId}', document_id)
1235
+
1236
+ @client.call(
1237
+ method: 'DELETE',
1238
+ path: path,
1239
+ headers: headers,
1240
+ params: params,
1241
+ )
1242
+ end
1243
+
1244
+
1245
+ #
1246
+ #
1247
+ # @param [String] database_id Database ID.
1248
+ # @param [String] collection_id Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
1249
+ #
1250
+ # @return [IndexList]
1251
+ def list_indexes(database_id:, collection_id:)
1252
+
1253
+ path = '/databases/{databaseId}/collections/{collectionId}/indexes'
1254
+
1255
+ params = {
1256
+ }
1257
+
1258
+ headers = {
1259
+ "content-type": 'application/json',
1260
+ }
1261
+ if database_id.nil?
1262
+ raise Appwrite::Exception.new('Missing required parameter: "databaseId"')
1263
+ end
1264
+
1265
+ if collection_id.nil?
1266
+ raise Appwrite::Exception.new('Missing required parameter: "collectionId"')
1267
+ end
1268
+
1269
+ .gsub('{databaseId}', database_id)
1270
+ .gsub('{collectionId}', collection_id)
1271
+
1272
+ @client.call(
1273
+ method: 'GET',
1274
+ path: path,
1275
+ headers: headers,
1276
+ params: params,
1277
+ response_type: Models::IndexList
1278
+ )
1279
+ end
1280
+
1281
+
1282
+ #
1283
+ #
1284
+ # @param [String] database_id Database ID.
1285
+ # @param [String] collection_id Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
1286
+ # @param [String] key Index Key.
1287
+ # @param [String] type Index type.
1288
+ # @param [Array] attributes Array of attributes to index. Maximum of 100 attributes are allowed, each 32 characters long.
1289
+ # @param [Array] orders Array of index orders. Maximum of 100 orders are allowed.
1290
+ #
1291
+ # @return [Index]
1292
+ def create_index(database_id:, collection_id:, key:, type:, attributes:, orders: nil)
1293
+
1294
+ path = '/databases/{databaseId}/collections/{collectionId}/indexes'
1295
+
1296
+ params = {
1297
+ key: key,
1298
+ type: type,
1299
+ attributes: attributes,
1300
+ orders: orders,
1301
+ }
1302
+
1303
+ headers = {
1304
+ "content-type": 'application/json',
1305
+ }
1306
+ if database_id.nil?
1307
+ raise Appwrite::Exception.new('Missing required parameter: "databaseId"')
1308
+ end
1309
+
1310
+ if collection_id.nil?
1311
+ raise Appwrite::Exception.new('Missing required parameter: "collectionId"')
1312
+ end
1313
+
1314
+ if key.nil?
1315
+ raise Appwrite::Exception.new('Missing required parameter: "key"')
1316
+ end
1317
+
1318
+ if type.nil?
1319
+ raise Appwrite::Exception.new('Missing required parameter: "type"')
1320
+ end
1321
+
1322
+ if attributes.nil?
1323
+ raise Appwrite::Exception.new('Missing required parameter: "attributes"')
1324
+ end
1325
+
1326
+ .gsub('{databaseId}', database_id)
1327
+ .gsub('{collectionId}', collection_id)
1328
+
1329
+ @client.call(
1330
+ method: 'POST',
1331
+ path: path,
1332
+ headers: headers,
1333
+ params: params,
1334
+ response_type: Models::Index
1335
+ )
1336
+ end
1337
+
1338
+
1339
+ #
1340
+ #
1341
+ # @param [String] database_id Database ID.
1342
+ # @param [String] collection_id Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
1343
+ # @param [String] key Index Key.
1344
+ #
1345
+ # @return [Index]
1346
+ def get_index(database_id:, collection_id:, key:)
1347
+
1348
+ path = '/databases/{databaseId}/collections/{collectionId}/indexes/{key}'
1349
+
1350
+ params = {
1351
+ }
1352
+
1353
+ headers = {
1354
+ "content-type": 'application/json',
1355
+ }
1356
+ if database_id.nil?
1357
+ raise Appwrite::Exception.new('Missing required parameter: "databaseId"')
1358
+ end
1359
+
1360
+ if collection_id.nil?
1361
+ raise Appwrite::Exception.new('Missing required parameter: "collectionId"')
1362
+ end
1363
+
1364
+ if key.nil?
1365
+ raise Appwrite::Exception.new('Missing required parameter: "key"')
1366
+ end
1367
+
1368
+ .gsub('{databaseId}', database_id)
1369
+ .gsub('{collectionId}', collection_id)
1370
+ .gsub('{key}', key)
1371
+
1372
+ @client.call(
1373
+ method: 'GET',
1374
+ path: path,
1375
+ headers: headers,
1376
+ params: params,
1377
+ response_type: Models::Index
1378
+ )
1379
+ end
1380
+
1381
+
1382
+ #
1383
+ #
1384
+ # @param [String] database_id Database ID.
1385
+ # @param [String] collection_id Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
1386
+ # @param [String] key Index Key.
1387
+ #
1388
+ # @return []
1389
+ def delete_index(database_id:, collection_id:, key:)
1390
+
1391
+ path = '/databases/{databaseId}/collections/{collectionId}/indexes/{key}'
1392
+
1393
+ params = {
1394
+ }
1395
+
1396
+ headers = {
1397
+ "content-type": 'application/json',
1398
+ }
1399
+ if database_id.nil?
1400
+ raise Appwrite::Exception.new('Missing required parameter: "databaseId"')
1401
+ end
1402
+
1403
+ if collection_id.nil?
1404
+ raise Appwrite::Exception.new('Missing required parameter: "collectionId"')
1405
+ end
1406
+
1407
+ if key.nil?
1408
+ raise Appwrite::Exception.new('Missing required parameter: "key"')
1409
+ end
1410
+
1411
+ .gsub('{databaseId}', database_id)
1412
+ .gsub('{collectionId}', collection_id)
1413
+ .gsub('{key}', key)
1414
+
1415
+ @client.call(
1416
+ method: 'DELETE',
1417
+ path: path,
1418
+ headers: headers,
1419
+ params: params,
1420
+ )
1421
+ end
1422
+
1423
+
1424
+ end
1425
+ end