appwrite 2.2.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (168) hide show
  1. checksums.yaml +4 -4
  2. data/lib/appwrite/client.rb +134 -57
  3. data/lib/appwrite/exception.rb +5 -7
  4. data/lib/appwrite/file.rb +5 -13
  5. data/lib/appwrite/models/attribute_boolean.rb +52 -0
  6. data/lib/appwrite/models/attribute_email.rb +57 -0
  7. data/lib/appwrite/models/attribute_enum.rb +62 -0
  8. data/lib/appwrite/models/attribute_float.rb +62 -0
  9. data/lib/appwrite/models/attribute_integer.rb +62 -0
  10. data/lib/appwrite/models/attribute_ip.rb +57 -0
  11. data/lib/appwrite/models/attribute_list.rb +32 -0
  12. data/lib/appwrite/models/attribute_string.rb +57 -0
  13. data/lib/appwrite/models/attribute_url.rb +57 -0
  14. data/lib/appwrite/models/collection.rb +62 -0
  15. data/lib/appwrite/models/collection_list.rb +32 -0
  16. data/lib/appwrite/models/continent.rb +32 -0
  17. data/lib/appwrite/models/continent_list.rb +32 -0
  18. data/lib/appwrite/models/country.rb +32 -0
  19. data/lib/appwrite/models/country_list.rb +32 -0
  20. data/lib/appwrite/models/currency.rb +57 -0
  21. data/lib/appwrite/models/currency_list.rb +32 -0
  22. data/lib/appwrite/models/document.rb +50 -0
  23. data/lib/appwrite/models/document_list.rb +36 -0
  24. data/lib/appwrite/models/execution.rb +72 -0
  25. data/lib/appwrite/models/execution_list.rb +32 -0
  26. data/lib/appwrite/models/file.rb +62 -0
  27. data/lib/appwrite/models/file_list.rb +32 -0
  28. data/lib/appwrite/models/function.rb +92 -0
  29. data/lib/appwrite/models/function_list.rb +32 -0
  30. data/lib/appwrite/models/health_antivirus.rb +32 -0
  31. data/lib/appwrite/models/health_queue.rb +27 -0
  32. data/lib/appwrite/models/health_status.rb +32 -0
  33. data/lib/appwrite/models/health_time.rb +37 -0
  34. data/lib/appwrite/models/index.rb +47 -0
  35. data/lib/appwrite/models/index_list.rb +32 -0
  36. data/lib/appwrite/models/language.rb +37 -0
  37. data/lib/appwrite/models/language_list.rb +32 -0
  38. data/lib/appwrite/models/locale.rb +57 -0
  39. data/lib/appwrite/models/log.rb +127 -0
  40. data/lib/appwrite/models/log_list.rb +32 -0
  41. data/lib/appwrite/models/membership.rb +67 -0
  42. data/lib/appwrite/models/membership_list.rb +32 -0
  43. data/lib/appwrite/models/phone.rb +37 -0
  44. data/lib/appwrite/models/phone_list.rb +32 -0
  45. data/lib/appwrite/models/preferences.rb +30 -0
  46. data/lib/appwrite/models/runtime.rb +57 -0
  47. data/lib/appwrite/models/runtime_list.rb +32 -0
  48. data/lib/appwrite/models/session.rb +132 -0
  49. data/lib/appwrite/models/session_list.rb +32 -0
  50. data/lib/appwrite/models/tag.rb +47 -0
  51. data/lib/appwrite/models/tag_list.rb +32 -0
  52. data/lib/appwrite/models/team.rb +42 -0
  53. data/lib/appwrite/models/team_list.rb +32 -0
  54. data/lib/appwrite/models/token.rb +42 -0
  55. data/lib/appwrite/models/user.rb +62 -0
  56. data/lib/appwrite/models/user_list.rb +32 -0
  57. data/lib/appwrite/query.rb +42 -0
  58. data/lib/appwrite/service.rb +0 -5
  59. data/lib/appwrite/services/account.rb +380 -133
  60. data/lib/appwrite/services/avatars.rb +189 -125
  61. data/lib/appwrite/services/database.rb +876 -130
  62. data/lib/appwrite/services/functions.rb +366 -184
  63. data/lib/appwrite/services/health.rb +202 -58
  64. data/lib/appwrite/services/locale.rb +134 -32
  65. data/lib/appwrite/services/storage.rb +211 -118
  66. data/lib/appwrite/services/teams.rb +299 -118
  67. data/lib/appwrite/services/users.rb +372 -85
  68. data/lib/appwrite.rb +55 -0
  69. metadata +72 -103
  70. data/.travis.yml +0 -16
  71. data/CHANGELOG.md +0 -1
  72. data/Gemfile +0 -4
  73. data/LICENSE +0 -12
  74. data/README.md +0 -97
  75. data/appwrite.gemspec +0 -11
  76. data/docs/examples/account/create-recovery.md +0 -15
  77. data/docs/examples/account/create-verification.md +0 -15
  78. data/docs/examples/account/delete-session.md +0 -15
  79. data/docs/examples/account/delete-sessions.md +0 -15
  80. data/docs/examples/account/delete.md +0 -15
  81. data/docs/examples/account/get-logs.md +0 -15
  82. data/docs/examples/account/get-prefs.md +0 -15
  83. data/docs/examples/account/get-sessions.md +0 -15
  84. data/docs/examples/account/get.md +0 -15
  85. data/docs/examples/account/update-email.md +0 -15
  86. data/docs/examples/account/update-name.md +0 -15
  87. data/docs/examples/account/update-password.md +0 -15
  88. data/docs/examples/account/update-prefs.md +0 -15
  89. data/docs/examples/account/update-recovery.md +0 -15
  90. data/docs/examples/account/update-verification.md +0 -15
  91. data/docs/examples/avatars/get-browser.md +0 -15
  92. data/docs/examples/avatars/get-credit-card.md +0 -15
  93. data/docs/examples/avatars/get-favicon.md +0 -15
  94. data/docs/examples/avatars/get-flag.md +0 -15
  95. data/docs/examples/avatars/get-image.md +0 -15
  96. data/docs/examples/avatars/get-initials.md +0 -15
  97. data/docs/examples/avatars/get-q-r.md +0 -15
  98. data/docs/examples/database/create-collection.md +0 -15
  99. data/docs/examples/database/create-document.md +0 -15
  100. data/docs/examples/database/delete-collection.md +0 -15
  101. data/docs/examples/database/delete-document.md +0 -15
  102. data/docs/examples/database/get-collection.md +0 -15
  103. data/docs/examples/database/get-document.md +0 -15
  104. data/docs/examples/database/list-collections.md +0 -15
  105. data/docs/examples/database/list-documents.md +0 -15
  106. data/docs/examples/database/update-collection.md +0 -15
  107. data/docs/examples/database/update-document.md +0 -15
  108. data/docs/examples/functions/create-execution.md +0 -15
  109. data/docs/examples/functions/create-tag.md +0 -15
  110. data/docs/examples/functions/create.md +0 -15
  111. data/docs/examples/functions/delete-tag.md +0 -15
  112. data/docs/examples/functions/delete.md +0 -15
  113. data/docs/examples/functions/get-execution.md +0 -15
  114. data/docs/examples/functions/get-tag.md +0 -15
  115. data/docs/examples/functions/get.md +0 -15
  116. data/docs/examples/functions/list-executions.md +0 -15
  117. data/docs/examples/functions/list-tags.md +0 -15
  118. data/docs/examples/functions/list.md +0 -15
  119. data/docs/examples/functions/update-tag.md +0 -15
  120. data/docs/examples/functions/update.md +0 -15
  121. data/docs/examples/health/get-anti-virus.md +0 -15
  122. data/docs/examples/health/get-cache.md +0 -15
  123. data/docs/examples/health/get-d-b.md +0 -15
  124. data/docs/examples/health/get-queue-certificates.md +0 -15
  125. data/docs/examples/health/get-queue-functions.md +0 -15
  126. data/docs/examples/health/get-queue-logs.md +0 -15
  127. data/docs/examples/health/get-queue-tasks.md +0 -15
  128. data/docs/examples/health/get-queue-usage.md +0 -15
  129. data/docs/examples/health/get-queue-webhooks.md +0 -15
  130. data/docs/examples/health/get-storage-local.md +0 -15
  131. data/docs/examples/health/get-time.md +0 -15
  132. data/docs/examples/health/get.md +0 -15
  133. data/docs/examples/locale/get-continents.md +0 -15
  134. data/docs/examples/locale/get-countries-e-u.md +0 -15
  135. data/docs/examples/locale/get-countries-phones.md +0 -15
  136. data/docs/examples/locale/get-countries.md +0 -15
  137. data/docs/examples/locale/get-currencies.md +0 -15
  138. data/docs/examples/locale/get-languages.md +0 -15
  139. data/docs/examples/locale/get.md +0 -15
  140. data/docs/examples/storage/create-file.md +0 -15
  141. data/docs/examples/storage/delete-file.md +0 -15
  142. data/docs/examples/storage/get-file-download.md +0 -15
  143. data/docs/examples/storage/get-file-preview.md +0 -15
  144. data/docs/examples/storage/get-file-view.md +0 -15
  145. data/docs/examples/storage/get-file.md +0 -15
  146. data/docs/examples/storage/list-files.md +0 -15
  147. data/docs/examples/storage/update-file.md +0 -15
  148. data/docs/examples/teams/create-membership.md +0 -15
  149. data/docs/examples/teams/create.md +0 -15
  150. data/docs/examples/teams/delete-membership.md +0 -15
  151. data/docs/examples/teams/delete.md +0 -15
  152. data/docs/examples/teams/get-memberships.md +0 -15
  153. data/docs/examples/teams/get.md +0 -15
  154. data/docs/examples/teams/list.md +0 -15
  155. data/docs/examples/teams/update-membership-roles.md +0 -15
  156. data/docs/examples/teams/update-membership-status.md +0 -15
  157. data/docs/examples/teams/update.md +0 -15
  158. data/docs/examples/users/create.md +0 -15
  159. data/docs/examples/users/delete-session.md +0 -15
  160. data/docs/examples/users/delete-sessions.md +0 -15
  161. data/docs/examples/users/delete.md +0 -15
  162. data/docs/examples/users/get-logs.md +0 -15
  163. data/docs/examples/users/get-prefs.md +0 -15
  164. data/docs/examples/users/get-sessions.md +0 -15
  165. data/docs/examples/users/get.md +0 -15
  166. data/docs/examples/users/list.md +0 -15
  167. data/docs/examples/users/update-prefs.md +0 -15
  168. data/docs/examples/users/update-status.md +0 -15
@@ -1,33 +1,64 @@
1
+ #frozen_string_literal: true
2
+
1
3
  module Appwrite
2
4
  class Functions < Service
3
5
 
4
- def list(search: nil, limit: nil, offset: nil, order_type: nil)
6
+ include Models
7
+ # Get a list of all the project's functions. You can use the query params to
8
+ # filter your results.
9
+ #
10
+ # @param [string] search Search term to filter your list results. Max length: 256 chars.
11
+ # @param [number] limit Maximum number of functions to return in response. By default will return maximum 25 results. Maximum of 100 results allowed per request.
12
+ # @param [number] offset Offset value. The default value is 0. Use this value to manage pagination. [learn more about pagination](https://appwrite.io/docs/pagination)
13
+ # @param [string] cursor ID of the function used as the starting point for the query, excluding the function itself. Should be used for efficient pagination when working with large sets of data. [learn more about pagination](https://appwrite.io/docs/pagination)
14
+ # @param [string] cursor_direction Direction of the cursor.
15
+ # @param [string] order_type Order result by ASC or DESC order.
16
+ #
17
+ # @return [FunctionList]
18
+ def list(search: nil, limit: nil, offset: nil, cursor: nil, cursor_direction: nil, order_type: nil)
5
19
  path = '/functions'
6
20
 
7
- params = {}
8
-
9
- if !search.nil?
10
- params[:search] = search
11
- end
12
-
13
- if !limit.nil?
14
- params[:limit] = limit
15
- end
16
-
17
- if !offset.nil?
18
- params[:offset] = offset
19
- end
21
+ params = {
22
+ search: search,
23
+ limit: limit,
24
+ offset: offset,
25
+ cursor: cursor,
26
+ cursorDirection: cursor_direction,
27
+ orderType: order_type,
28
+ }
29
+
30
+ headers = {
31
+ "content-type": 'application/json',
32
+ }
33
+
34
+ @client.call(
35
+ method: 'GET',
36
+ path: path,
37
+ params: params,
38
+ headers: headers,
39
+ response_type: FunctionList
40
+ )
41
+ end
20
42
 
21
- if !order_type.nil?
22
- params[:orderType] = order_type
43
+ # Create a new function. You can pass a list of
44
+ # [permissions](/docs/permissions) to allow different project users or team
45
+ # with access to execute the function using the client API.
46
+ #
47
+ # @param [string] function_id Function ID. Choose your own unique ID or pass the string `unique()` 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.
48
+ # @param [string] name Function name. Max length: 128 chars.
49
+ # @param [array] execute An array of strings with execution permissions. By default no user is granted with any execute permissions. [learn more about permissions](https://appwrite.io/docs/permissions) and get a full list of available permissions.
50
+ # @param [string] runtime Execution runtime.
51
+ # @param [object] vars Key-value JSON object that will be passed to the function as environment variables.
52
+ # @param [array] events Events list.
53
+ # @param [string] schedule Schedule CRON syntax.
54
+ # @param [number] timeout Function maximum execution time in seconds.
55
+ #
56
+ # @return [Function]
57
+ def create(function_id:, name:, execute:, runtime:, vars: nil, events: nil, schedule: nil, timeout: nil)
58
+ if function_id.nil?
59
+ raise Appwrite::Exception.new('Missing required parameter: "functionId"')
23
60
  end
24
61
 
25
- return @client.call('get', path, {
26
- 'content-type' => 'application/json',
27
- }, params);
28
- end
29
-
30
- def create(name:, execute:, env:, vars: nil, events: nil, schedule: nil, timeout: nil)
31
62
  if name.nil?
32
63
  raise Appwrite::Exception.new('Missing required parameter: "name"')
33
64
  end
@@ -36,47 +67,64 @@ module Appwrite
36
67
  raise Appwrite::Exception.new('Missing required parameter: "execute"')
37
68
  end
38
69
 
39
- if env.nil?
40
- raise Appwrite::Exception.new('Missing required parameter: "env"')
70
+ if runtime.nil?
71
+ raise Appwrite::Exception.new('Missing required parameter: "runtime"')
41
72
  end
42
73
 
43
74
  path = '/functions'
44
75
 
45
- params = {}
46
-
47
- if !name.nil?
48
- params[:name] = name
49
- end
50
-
51
- if !execute.nil?
52
- params[:execute] = execute
53
- end
54
-
55
- if !env.nil?
56
- params[:env] = env
57
- end
58
-
59
- if !vars.nil?
60
- params[:vars] = vars
61
- end
62
-
63
- if !events.nil?
64
- params[:events] = events
65
- end
66
-
67
- if !schedule.nil?
68
- params[:schedule] = schedule
69
- end
70
-
71
- if !timeout.nil?
72
- params[:timeout] = timeout
73
- end
76
+ params = {
77
+ functionId: function_id,
78
+ name: name,
79
+ execute: execute,
80
+ runtime: runtime,
81
+ vars: vars,
82
+ events: events,
83
+ schedule: schedule,
84
+ timeout: timeout,
85
+ }
86
+
87
+ headers = {
88
+ "content-type": 'application/json',
89
+ }
90
+
91
+ @client.call(
92
+ method: 'POST',
93
+ path: path,
94
+ params: params,
95
+ headers: headers,
96
+ response_type: Function
97
+ )
98
+ end
74
99
 
75
- return @client.call('post', path, {
76
- 'content-type' => 'application/json',
77
- }, params);
100
+ # Get a list of all runtimes that are currently active in your project.
101
+ #
102
+ #
103
+ # @return [RuntimeList]
104
+ def list_runtimes()
105
+ path = '/functions/runtimes'
106
+
107
+ params = {
108
+ }
109
+
110
+ headers = {
111
+ "content-type": 'application/json',
112
+ }
113
+
114
+ @client.call(
115
+ method: 'GET',
116
+ path: path,
117
+ params: params,
118
+ headers: headers,
119
+ response_type: RuntimeList
120
+ )
78
121
  end
79
122
 
123
+ # Get a function by its unique ID.
124
+ #
125
+ # @param [string] function_id Function ID.
126
+ #
127
+ # @return [Function]
80
128
  def get(function_id:)
81
129
  if function_id.nil?
82
130
  raise Appwrite::Exception.new('Missing required parameter: "functionId"')
@@ -85,13 +133,33 @@ module Appwrite
85
133
  path = '/functions/{functionId}'
86
134
  .gsub('{functionId}', function_id)
87
135
 
88
- params = {}
136
+ params = {
137
+ }
89
138
 
90
- return @client.call('get', path, {
91
- 'content-type' => 'application/json',
92
- }, params);
139
+ headers = {
140
+ "content-type": 'application/json',
141
+ }
142
+
143
+ @client.call(
144
+ method: 'GET',
145
+ path: path,
146
+ params: params,
147
+ headers: headers,
148
+ response_type: Function
149
+ )
93
150
  end
94
151
 
152
+ # Update function by its unique ID.
153
+ #
154
+ # @param [string] function_id Function ID.
155
+ # @param [string] name Function name. Max length: 128 chars.
156
+ # @param [array] execute An array of strings with execution permissions. By default no user is granted with any execute permissions. [learn more about permissions](https://appwrite.io/docs/permissions) and get a full list of available permissions.
157
+ # @param [object] vars Key-value JSON object that will be passed to the function as environment variables.
158
+ # @param [array] events Events list.
159
+ # @param [string] schedule Schedule CRON syntax.
160
+ # @param [number] timeout Maximum execution time in seconds.
161
+ #
162
+ # @return [Function]
95
163
  def update(function_id:, name:, execute:, vars: nil, events: nil, schedule: nil, timeout: nil)
96
164
  if function_id.nil?
97
165
  raise Appwrite::Exception.new('Missing required parameter: "functionId"')
@@ -108,37 +176,33 @@ module Appwrite
108
176
  path = '/functions/{functionId}'
109
177
  .gsub('{functionId}', function_id)
110
178
 
111
- params = {}
112
-
113
- if !name.nil?
114
- params[:name] = name
115
- end
116
-
117
- if !execute.nil?
118
- params[:execute] = execute
119
- end
120
-
121
- if !vars.nil?
122
- params[:vars] = vars
123
- end
124
-
125
- if !events.nil?
126
- params[:events] = events
127
- end
128
-
129
- if !schedule.nil?
130
- params[:schedule] = schedule
131
- end
132
-
133
- if !timeout.nil?
134
- params[:timeout] = timeout
135
- end
136
-
137
- return @client.call('put', path, {
138
- 'content-type' => 'application/json',
139
- }, params);
179
+ params = {
180
+ name: name,
181
+ execute: execute,
182
+ vars: vars,
183
+ events: events,
184
+ schedule: schedule,
185
+ timeout: timeout,
186
+ }
187
+
188
+ headers = {
189
+ "content-type": 'application/json',
190
+ }
191
+
192
+ @client.call(
193
+ method: 'PUT',
194
+ path: path,
195
+ params: params,
196
+ headers: headers,
197
+ response_type: Function
198
+ )
140
199
  end
141
200
 
201
+ # Delete a function by its unique ID.
202
+ #
203
+ # @param [string] function_id Function ID.
204
+ #
205
+ # @return []
142
206
  def delete(function_id:)
143
207
  if function_id.nil?
144
208
  raise Appwrite::Exception.new('Missing required parameter: "functionId"')
@@ -147,14 +211,35 @@ module Appwrite
147
211
  path = '/functions/{functionId}'
148
212
  .gsub('{functionId}', function_id)
149
213
 
150
- params = {}
214
+ params = {
215
+ }
151
216
 
152
- return @client.call('delete', path, {
153
- 'content-type' => 'application/json',
154
- }, params);
217
+ headers = {
218
+ "content-type": 'application/json',
219
+ }
220
+
221
+ @client.call(
222
+ method: 'DELETE',
223
+ path: path,
224
+ params: params,
225
+ headers: headers,
226
+ )
155
227
  end
156
228
 
157
- def list_executions(function_id:, search: nil, limit: nil, offset: nil, order_type: nil)
229
+ # Get a list of all the current user function execution logs. You can use the
230
+ # query params to filter your results. On admin mode, this endpoint will
231
+ # return a list of all of the project's executions. [Learn more about
232
+ # different API modes](/docs/admin).
233
+ #
234
+ # @param [string] function_id Function ID.
235
+ # @param [number] limit Maximum number of executions to return in response. By default will return maximum 25 results. Maximum of 100 results allowed per request.
236
+ # @param [number] offset Offset value. The default value is 0. Use this value to manage pagination. [learn more about pagination](https://appwrite.io/docs/pagination)
237
+ # @param [string] search Search term to filter your list results. Max length: 256 chars.
238
+ # @param [string] cursor ID of the execution used as the starting point for the query, excluding the execution itself. Should be used for efficient pagination when working with large sets of data. [learn more about pagination](https://appwrite.io/docs/pagination)
239
+ # @param [string] cursor_direction Direction of the cursor.
240
+ #
241
+ # @return [ExecutionList]
242
+ def list_executions(function_id:, limit: nil, offset: nil, search: nil, cursor: nil, cursor_direction: nil)
158
243
  if function_id.nil?
159
244
  raise Appwrite::Exception.new('Missing required parameter: "functionId"')
160
245
  end
@@ -162,29 +247,36 @@ module Appwrite
162
247
  path = '/functions/{functionId}/executions'
163
248
  .gsub('{functionId}', function_id)
164
249
 
165
- params = {}
166
-
167
- if !search.nil?
168
- params[:search] = search
169
- end
170
-
171
- if !limit.nil?
172
- params[:limit] = limit
173
- end
174
-
175
- if !offset.nil?
176
- params[:offset] = offset
177
- end
178
-
179
- if !order_type.nil?
180
- params[:orderType] = order_type
181
- end
182
-
183
- return @client.call('get', path, {
184
- 'content-type' => 'application/json',
185
- }, params);
250
+ params = {
251
+ limit: limit,
252
+ offset: offset,
253
+ search: search,
254
+ cursor: cursor,
255
+ cursorDirection: cursor_direction,
256
+ }
257
+
258
+ headers = {
259
+ "content-type": 'application/json',
260
+ }
261
+
262
+ @client.call(
263
+ method: 'GET',
264
+ path: path,
265
+ params: params,
266
+ headers: headers,
267
+ response_type: ExecutionList
268
+ )
186
269
  end
187
270
 
271
+ # Trigger a function execution. The returned object will return you the
272
+ # current execution status. You can ping the `Get Execution` endpoint to get
273
+ # updates on the current execution status. Once this endpoint is called, your
274
+ # function execution process will start asynchronously.
275
+ #
276
+ # @param [string] function_id Function ID.
277
+ # @param [string] data String of custom data to send to function.
278
+ #
279
+ # @return [Execution]
188
280
  def create_execution(function_id:, data: nil)
189
281
  if function_id.nil?
190
282
  raise Appwrite::Exception.new('Missing required parameter: "functionId"')
@@ -193,17 +285,29 @@ module Appwrite
193
285
  path = '/functions/{functionId}/executions'
194
286
  .gsub('{functionId}', function_id)
195
287
 
196
- params = {}
197
-
198
- if !data.nil?
199
- params[:data] = data
200
- end
201
-
202
- return @client.call('post', path, {
203
- 'content-type' => 'application/json',
204
- }, params);
288
+ params = {
289
+ data: data,
290
+ }
291
+
292
+ headers = {
293
+ "content-type": 'application/json',
294
+ }
295
+
296
+ @client.call(
297
+ method: 'POST',
298
+ path: path,
299
+ params: params,
300
+ headers: headers,
301
+ response_type: Execution
302
+ )
205
303
  end
206
304
 
305
+ # Get a function execution log by its unique ID.
306
+ #
307
+ # @param [string] function_id Function ID.
308
+ # @param [string] execution_id Execution ID.
309
+ #
310
+ # @return [Execution]
207
311
  def get_execution(function_id:, execution_id:)
208
312
  if function_id.nil?
209
313
  raise Appwrite::Exception.new('Missing required parameter: "functionId"')
@@ -217,13 +321,30 @@ module Appwrite
217
321
  .gsub('{functionId}', function_id)
218
322
  .gsub('{executionId}', execution_id)
219
323
 
220
- params = {}
324
+ params = {
325
+ }
326
+
327
+ headers = {
328
+ "content-type": 'application/json',
329
+ }
221
330
 
222
- return @client.call('get', path, {
223
- 'content-type' => 'application/json',
224
- }, params);
331
+ @client.call(
332
+ method: 'GET',
333
+ path: path,
334
+ params: params,
335
+ headers: headers,
336
+ response_type: Execution
337
+ )
225
338
  end
226
339
 
340
+ # Update the function code tag ID using the unique function ID. Use this
341
+ # endpoint to switch the code tag that should be executed by the execution
342
+ # endpoint.
343
+ #
344
+ # @param [string] function_id Function ID.
345
+ # @param [string] tag Tag ID.
346
+ #
347
+ # @return [Function]
227
348
  def update_tag(function_id:, tag:)
228
349
  if function_id.nil?
229
350
  raise Appwrite::Exception.new('Missing required parameter: "functionId"')
@@ -236,18 +357,36 @@ module Appwrite
236
357
  path = '/functions/{functionId}/tag'
237
358
  .gsub('{functionId}', function_id)
238
359
 
239
- params = {}
240
-
241
- if !tag.nil?
242
- params[:tag] = tag
243
- end
244
-
245
- return @client.call('patch', path, {
246
- 'content-type' => 'application/json',
247
- }, params);
360
+ params = {
361
+ tag: tag,
362
+ }
363
+
364
+ headers = {
365
+ "content-type": 'application/json',
366
+ }
367
+
368
+ @client.call(
369
+ method: 'PATCH',
370
+ path: path,
371
+ params: params,
372
+ headers: headers,
373
+ response_type: Function
374
+ )
248
375
  end
249
376
 
250
- def list_tags(function_id:, search: nil, limit: nil, offset: nil, order_type: nil)
377
+ # Get a list of all the project's code tags. You can use the query params to
378
+ # filter your results.
379
+ #
380
+ # @param [string] function_id Function ID.
381
+ # @param [string] search Search term to filter your list results. Max length: 256 chars.
382
+ # @param [number] limit Maximum number of tags to return in response. By default will return maximum 25 results. Maximum of 100 results allowed per request.
383
+ # @param [number] offset Offset value. The default value is 0. Use this value to manage pagination. [learn more about pagination](https://appwrite.io/docs/pagination)
384
+ # @param [string] cursor ID of the tag used as the starting point for the query, excluding the tag itself. Should be used for efficient pagination when working with large sets of data. [learn more about pagination](https://appwrite.io/docs/pagination)
385
+ # @param [string] cursor_direction Direction of the cursor.
386
+ # @param [string] order_type Order result by ASC or DESC order.
387
+ #
388
+ # @return [TagList]
389
+ def list_tags(function_id:, search: nil, limit: nil, offset: nil, cursor: nil, cursor_direction: nil, order_type: nil)
251
390
  if function_id.nil?
252
391
  raise Appwrite::Exception.new('Missing required parameter: "functionId"')
253
392
  end
@@ -255,29 +394,44 @@ module Appwrite
255
394
  path = '/functions/{functionId}/tags'
256
395
  .gsub('{functionId}', function_id)
257
396
 
258
- params = {}
259
-
260
- if !search.nil?
261
- params[:search] = search
262
- end
263
-
264
- if !limit.nil?
265
- params[:limit] = limit
266
- end
267
-
268
- if !offset.nil?
269
- params[:offset] = offset
270
- end
271
-
272
- if !order_type.nil?
273
- params[:orderType] = order_type
274
- end
275
-
276
- return @client.call('get', path, {
277
- 'content-type' => 'application/json',
278
- }, params);
397
+ params = {
398
+ search: search,
399
+ limit: limit,
400
+ offset: offset,
401
+ cursor: cursor,
402
+ cursorDirection: cursor_direction,
403
+ orderType: order_type,
404
+ }
405
+
406
+ headers = {
407
+ "content-type": 'application/json',
408
+ }
409
+
410
+ @client.call(
411
+ method: 'GET',
412
+ path: path,
413
+ params: params,
414
+ headers: headers,
415
+ response_type: TagList
416
+ )
279
417
  end
280
418
 
419
+ # Create a new function code tag. Use this endpoint to upload a new version
420
+ # of your code function. To execute your newly uploaded code, you'll need to
421
+ # update the function's tag to use your new tag UID.
422
+ #
423
+ # This endpoint accepts a tar.gz file compressed with your code. Make sure to
424
+ # include any dependencies your code has within the compressed file. You can
425
+ # learn more about code packaging in the [Appwrite Cloud Functions
426
+ # tutorial](/docs/functions).
427
+ #
428
+ # Use the "command" param to set the entry point used to execute your code.
429
+ #
430
+ # @param [string] function_id Function ID.
431
+ # @param [string] command Code execution command.
432
+ # @param [File] code Gzip file with your code package. When used with the Appwrite CLI, pass the path to your code directory, and the CLI will automatically package your code. Use a path that is within the current directory.
433
+ #
434
+ # @return [Tag]
281
435
  def create_tag(function_id:, command:, code:)
282
436
  if function_id.nil?
283
437
  raise Appwrite::Exception.new('Missing required parameter: "functionId"')
@@ -294,21 +448,30 @@ module Appwrite
294
448
  path = '/functions/{functionId}/tags'
295
449
  .gsub('{functionId}', function_id)
296
450
 
297
- params = {}
298
-
299
- if !command.nil?
300
- params[:command] = command
301
- end
302
-
303
- if !code.nil?
304
- params[:code] = code
305
- end
306
-
307
- return @client.call('post', path, {
308
- 'content-type' => 'multipart/form-data',
309
- }, params);
451
+ params = {
452
+ command: command,
453
+ code: code,
454
+ }
455
+
456
+ headers = {
457
+ "content-type": 'multipart/form-data',
458
+ }
459
+
460
+ @client.call(
461
+ method: 'POST',
462
+ path: path,
463
+ params: params,
464
+ headers: headers,
465
+ response_type: Tag
466
+ )
310
467
  end
311
468
 
469
+ # Get a code tag by its unique ID.
470
+ #
471
+ # @param [string] function_id Function ID.
472
+ # @param [string] tag_id Tag ID.
473
+ #
474
+ # @return [Tag]
312
475
  def get_tag(function_id:, tag_id:)
313
476
  if function_id.nil?
314
477
  raise Appwrite::Exception.new('Missing required parameter: "functionId"')
@@ -322,13 +485,28 @@ module Appwrite
322
485
  .gsub('{functionId}', function_id)
323
486
  .gsub('{tagId}', tag_id)
324
487
 
325
- params = {}
488
+ params = {
489
+ }
326
490
 
327
- return @client.call('get', path, {
328
- 'content-type' => 'application/json',
329
- }, params);
491
+ headers = {
492
+ "content-type": 'application/json',
493
+ }
494
+
495
+ @client.call(
496
+ method: 'GET',
497
+ path: path,
498
+ params: params,
499
+ headers: headers,
500
+ response_type: Tag
501
+ )
330
502
  end
331
503
 
504
+ # Delete a code tag by its unique ID.
505
+ #
506
+ # @param [string] function_id Function ID.
507
+ # @param [string] tag_id Tag ID.
508
+ #
509
+ # @return []
332
510
  def delete_tag(function_id:, tag_id:)
333
511
  if function_id.nil?
334
512
  raise Appwrite::Exception.new('Missing required parameter: "functionId"')
@@ -342,16 +520,20 @@ module Appwrite
342
520
  .gsub('{functionId}', function_id)
343
521
  .gsub('{tagId}', tag_id)
344
522
 
345
- params = {}
346
-
347
- return @client.call('delete', path, {
348
- 'content-type' => 'application/json',
349
- }, params);
350
- end
523
+ params = {
524
+ }
351
525
 
526
+ headers = {
527
+ "content-type": 'application/json',
528
+ }
352
529
 
353
- protected
530
+ @client.call(
531
+ method: 'DELETE',
532
+ path: path,
533
+ params: params,
534
+ headers: headers,
535
+ )
536
+ end
354
537
 
355
- private
356
538
  end
357
539
  end