appwrite 21.1.0 → 23.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 (56) hide show
  1. checksums.yaml +4 -4
  2. data/lib/appwrite/client.rb +48 -2
  3. data/lib/appwrite/enums/backup_services.rb +3 -0
  4. data/lib/appwrite/enums/build_runtime.rb +2 -0
  5. data/lib/appwrite/enums/database_type.rb +2 -0
  6. data/lib/appwrite/enums/databases_index_type.rb +10 -0
  7. data/lib/appwrite/enums/o_auth_provider.rb +1 -0
  8. data/lib/appwrite/enums/platform_type.rb +11 -0
  9. data/lib/appwrite/enums/protocol_id.rb +9 -0
  10. data/lib/appwrite/enums/runtime.rb +2 -0
  11. data/lib/appwrite/enums/scopes.rb +8 -0
  12. data/lib/appwrite/enums/service_id.rb +23 -0
  13. data/lib/appwrite/enums/{index_type.rb → tables_db_index_type.rb} +1 -1
  14. data/lib/appwrite/enums/template_reference_type.rb +1 -1
  15. data/lib/appwrite/models/auth_provider.rb +47 -0
  16. data/lib/appwrite/models/billing_limits.rb +62 -0
  17. data/lib/appwrite/models/block.rb +47 -0
  18. data/lib/appwrite/models/database.rb +2 -0
  19. data/lib/appwrite/models/dev_key.rb +62 -0
  20. data/lib/appwrite/models/function.rb +15 -5
  21. data/lib/appwrite/models/key.rb +67 -0
  22. data/lib/appwrite/models/key_list.rb +32 -0
  23. data/lib/appwrite/models/log.rb +5 -0
  24. data/lib/appwrite/models/mock_number.rb +32 -0
  25. data/lib/appwrite/models/platform_android.rb +71 -0
  26. data/lib/appwrite/models/platform_apple.rb +71 -0
  27. data/lib/appwrite/models/platform_linux.rb +71 -0
  28. data/lib/appwrite/models/platform_list.rb +32 -0
  29. data/lib/appwrite/models/platform_web.rb +71 -0
  30. data/lib/appwrite/models/platform_windows.rb +71 -0
  31. data/lib/appwrite/models/project.rb +412 -0
  32. data/lib/appwrite/models/site.rb +20 -5
  33. data/lib/appwrite/models/user.rb +13 -3
  34. data/lib/appwrite/models/webhook.rb +87 -0
  35. data/lib/appwrite/models/webhook_list.rb +32 -0
  36. data/lib/appwrite/service.rb +1 -1
  37. data/lib/appwrite/services/account.rb +47 -2
  38. data/lib/appwrite/services/activities.rb +3 -1
  39. data/lib/appwrite/services/avatars.rb +9 -1
  40. data/lib/appwrite/services/backups.rb +13 -1
  41. data/lib/appwrite/services/databases.rb +133 -7
  42. data/lib/appwrite/services/functions.rb +41 -7
  43. data/lib/appwrite/services/graphql.rb +5 -3
  44. data/lib/appwrite/services/health.rb +22 -117
  45. data/lib/appwrite/services/locale.rb +9 -1
  46. data/lib/appwrite/services/messaging.rb +49 -1
  47. data/lib/appwrite/services/project.rb +1011 -0
  48. data/lib/appwrite/services/sites.rb +44 -7
  49. data/lib/appwrite/services/storage.rb +14 -1
  50. data/lib/appwrite/services/tables_db.rb +133 -7
  51. data/lib/appwrite/services/teams.rb +14 -1
  52. data/lib/appwrite/services/tokens.rb +6 -1
  53. data/lib/appwrite/services/users.rb +85 -2
  54. data/lib/appwrite/services/webhooks.rb +249 -0
  55. data/lib/appwrite.rb +23 -1
  56. metadata +25 -3
@@ -0,0 +1,249 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ class Webhooks < Service
5
+
6
+ def initialize(client)
7
+ @client = client
8
+ end
9
+
10
+ # Get a list of all webhooks belonging to the project. You can use the query
11
+ # params 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/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, url, authUsername, tls, events, enabled, logs, attempts
14
+ # @param [] total When set to false, the total count returned will be 0 and will not be calculated.
15
+ #
16
+ # @return [WebhookList]
17
+ def list(queries: nil, total: nil)
18
+ api_path = '/webhooks'
19
+
20
+ api_params = {
21
+ queries: queries,
22
+ total: total,
23
+ }
24
+
25
+ api_headers = {
26
+ }
27
+
28
+ @client.call(
29
+ method: 'GET',
30
+ path: api_path,
31
+ headers: api_headers,
32
+ params: api_params,
33
+ response_type: Models::WebhookList
34
+ )
35
+
36
+ end
37
+
38
+ # Create a new webhook. Use this endpoint to configure a URL that will
39
+ # receive events from Appwrite when specific events occur.
40
+ #
41
+ # @param [String] webhook_id Webhook ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.
42
+ # @param [String] url Webhook URL.
43
+ # @param [String] name Webhook name. Max length: 128 chars.
44
+ # @param [Array] events Events list. Maximum of 100 events are allowed.
45
+ # @param [] enabled Enable or disable a webhook.
46
+ # @param [] tls Certificate verification, false for disabled or true for enabled.
47
+ # @param [String] auth_username Webhook HTTP user. Max length: 256 chars.
48
+ # @param [String] auth_password Webhook HTTP password. Max length: 256 chars.
49
+ # @param [String] secret Webhook secret key. If not provided, a new key will be generated automatically. Key must be at least 8 characters long, and at max 256 characters.
50
+ #
51
+ # @return [Webhook]
52
+ def create(webhook_id:, url:, name:, events:, enabled: nil, tls: nil, auth_username: nil, auth_password: nil, secret: nil)
53
+ api_path = '/webhooks'
54
+
55
+ if webhook_id.nil?
56
+ raise Appwrite::Exception.new('Missing required parameter: "webhookId"')
57
+ end
58
+
59
+ if url.nil?
60
+ raise Appwrite::Exception.new('Missing required parameter: "url"')
61
+ end
62
+
63
+ if name.nil?
64
+ raise Appwrite::Exception.new('Missing required parameter: "name"')
65
+ end
66
+
67
+ if events.nil?
68
+ raise Appwrite::Exception.new('Missing required parameter: "events"')
69
+ end
70
+
71
+ api_params = {
72
+ webhookId: webhook_id,
73
+ url: url,
74
+ name: name,
75
+ events: events,
76
+ enabled: enabled,
77
+ tls: tls,
78
+ authUsername: auth_username,
79
+ authPassword: auth_password,
80
+ secret: secret,
81
+ }
82
+
83
+ api_headers = {
84
+ "content-type": 'application/json',
85
+ }
86
+
87
+ @client.call(
88
+ method: 'POST',
89
+ path: api_path,
90
+ headers: api_headers,
91
+ params: api_params,
92
+ response_type: Models::Webhook
93
+ )
94
+
95
+ end
96
+
97
+ # Get a webhook by its unique ID. This endpoint returns details about a
98
+ # specific webhook configured for a project.
99
+ #
100
+ # @param [String] webhook_id Webhook ID.
101
+ #
102
+ # @return [Webhook]
103
+ def get(webhook_id:)
104
+ api_path = '/webhooks/{webhookId}'
105
+ .gsub('{webhookId}', webhook_id)
106
+
107
+ if webhook_id.nil?
108
+ raise Appwrite::Exception.new('Missing required parameter: "webhookId"')
109
+ end
110
+
111
+ api_params = {
112
+ }
113
+
114
+ api_headers = {
115
+ }
116
+
117
+ @client.call(
118
+ method: 'GET',
119
+ path: api_path,
120
+ headers: api_headers,
121
+ params: api_params,
122
+ response_type: Models::Webhook
123
+ )
124
+
125
+ end
126
+
127
+ # Update a webhook by its unique ID. Use this endpoint to update the URL,
128
+ # events, or status of an existing webhook.
129
+ #
130
+ # @param [String] webhook_id Webhook ID.
131
+ # @param [String] name Webhook name. Max length: 128 chars.
132
+ # @param [String] url Webhook URL.
133
+ # @param [Array] events Events list. Maximum of 100 events are allowed.
134
+ # @param [] enabled Enable or disable a webhook.
135
+ # @param [] tls Certificate verification, false for disabled or true for enabled.
136
+ # @param [String] auth_username Webhook HTTP user. Max length: 256 chars.
137
+ # @param [String] auth_password Webhook HTTP password. Max length: 256 chars.
138
+ #
139
+ # @return [Webhook]
140
+ def update(webhook_id:, name:, url:, events:, enabled: nil, tls: nil, auth_username: nil, auth_password: nil)
141
+ api_path = '/webhooks/{webhookId}'
142
+ .gsub('{webhookId}', webhook_id)
143
+
144
+ if webhook_id.nil?
145
+ raise Appwrite::Exception.new('Missing required parameter: "webhookId"')
146
+ end
147
+
148
+ if name.nil?
149
+ raise Appwrite::Exception.new('Missing required parameter: "name"')
150
+ end
151
+
152
+ if url.nil?
153
+ raise Appwrite::Exception.new('Missing required parameter: "url"')
154
+ end
155
+
156
+ if events.nil?
157
+ raise Appwrite::Exception.new('Missing required parameter: "events"')
158
+ end
159
+
160
+ api_params = {
161
+ name: name,
162
+ url: url,
163
+ events: events,
164
+ enabled: enabled,
165
+ tls: tls,
166
+ authUsername: auth_username,
167
+ authPassword: auth_password,
168
+ }
169
+
170
+ api_headers = {
171
+ "content-type": 'application/json',
172
+ }
173
+
174
+ @client.call(
175
+ method: 'PUT',
176
+ path: api_path,
177
+ headers: api_headers,
178
+ params: api_params,
179
+ response_type: Models::Webhook
180
+ )
181
+
182
+ end
183
+
184
+ # Delete a webhook by its unique ID. Once deleted, the webhook will no longer
185
+ # receive project events.
186
+ #
187
+ # @param [String] webhook_id Webhook ID.
188
+ #
189
+ # @return []
190
+ def delete(webhook_id:)
191
+ api_path = '/webhooks/{webhookId}'
192
+ .gsub('{webhookId}', webhook_id)
193
+
194
+ if webhook_id.nil?
195
+ raise Appwrite::Exception.new('Missing required parameter: "webhookId"')
196
+ end
197
+
198
+ api_params = {
199
+ }
200
+
201
+ api_headers = {
202
+ "content-type": 'application/json',
203
+ }
204
+
205
+ @client.call(
206
+ method: 'DELETE',
207
+ path: api_path,
208
+ headers: api_headers,
209
+ params: api_params,
210
+ )
211
+
212
+ end
213
+
214
+ # Update the webhook signing key. This endpoint can be used to regenerate the
215
+ # signing key used to sign and validate payload deliveries for a specific
216
+ # webhook.
217
+ #
218
+ # @param [String] webhook_id Webhook ID.
219
+ # @param [String] secret Webhook secret key. If not provided, a new key will be generated automatically. Key must be at least 8 characters long, and at max 256 characters.
220
+ #
221
+ # @return [Webhook]
222
+ def update_secret(webhook_id:, secret: nil)
223
+ api_path = '/webhooks/{webhookId}/secret'
224
+ .gsub('{webhookId}', webhook_id)
225
+
226
+ if webhook_id.nil?
227
+ raise Appwrite::Exception.new('Missing required parameter: "webhookId"')
228
+ end
229
+
230
+ api_params = {
231
+ secret: secret,
232
+ }
233
+
234
+ api_headers = {
235
+ "content-type": 'application/json',
236
+ }
237
+
238
+ @client.call(
239
+ method: 'PATCH',
240
+ path: api_path,
241
+ headers: api_headers,
242
+ params: api_params,
243
+ response_type: Models::Webhook
244
+ )
245
+
246
+ end
247
+
248
+ end
249
+ end
data/lib/appwrite.rb CHANGED
@@ -35,6 +35,8 @@ require_relative 'appwrite/models/framework_list'
35
35
  require_relative 'appwrite/models/runtime_list'
36
36
  require_relative 'appwrite/models/deployment_list'
37
37
  require_relative 'appwrite/models/execution_list'
38
+ require_relative 'appwrite/models/webhook_list'
39
+ require_relative 'appwrite/models/key_list'
38
40
  require_relative 'appwrite/models/country_list'
39
41
  require_relative 'appwrite/models/continent_list'
40
42
  require_relative 'appwrite/models/language_list'
@@ -121,6 +123,18 @@ require_relative 'appwrite/models/framework'
121
123
  require_relative 'appwrite/models/framework_adapter'
122
124
  require_relative 'appwrite/models/deployment'
123
125
  require_relative 'appwrite/models/execution'
126
+ require_relative 'appwrite/models/project'
127
+ require_relative 'appwrite/models/webhook'
128
+ require_relative 'appwrite/models/key'
129
+ require_relative 'appwrite/models/dev_key'
130
+ require_relative 'appwrite/models/mock_number'
131
+ require_relative 'appwrite/models/auth_provider'
132
+ require_relative 'appwrite/models/platform_web'
133
+ require_relative 'appwrite/models/platform_apple'
134
+ require_relative 'appwrite/models/platform_android'
135
+ require_relative 'appwrite/models/platform_windows'
136
+ require_relative 'appwrite/models/platform_linux'
137
+ require_relative 'appwrite/models/platform_list'
124
138
  require_relative 'appwrite/models/variable'
125
139
  require_relative 'appwrite/models/country'
126
140
  require_relative 'appwrite/models/continent'
@@ -146,6 +160,8 @@ require_relative 'appwrite/models/subscriber'
146
160
  require_relative 'appwrite/models/target'
147
161
  require_relative 'appwrite/models/activity_event'
148
162
  require_relative 'appwrite/models/backup_archive'
163
+ require_relative 'appwrite/models/billing_limits'
164
+ require_relative 'appwrite/models/block'
149
165
  require_relative 'appwrite/models/backup_policy'
150
166
  require_relative 'appwrite/models/backup_restoration'
151
167
  require_relative 'appwrite/models/activity_event_list'
@@ -166,7 +182,7 @@ require_relative 'appwrite/enums/image_format'
166
182
  require_relative 'appwrite/enums/backup_services'
167
183
  require_relative 'appwrite/enums/relationship_type'
168
184
  require_relative 'appwrite/enums/relation_mutate'
169
- require_relative 'appwrite/enums/index_type'
185
+ require_relative 'appwrite/enums/databases_index_type'
170
186
  require_relative 'appwrite/enums/order_by'
171
187
  require_relative 'appwrite/enums/runtime'
172
188
  require_relative 'appwrite/enums/scopes'
@@ -177,11 +193,14 @@ require_relative 'appwrite/enums/execution_method'
177
193
  require_relative 'appwrite/enums/name'
178
194
  require_relative 'appwrite/enums/message_priority'
179
195
  require_relative 'appwrite/enums/smtp_encryption'
196
+ require_relative 'appwrite/enums/protocol_id'
197
+ require_relative 'appwrite/enums/service_id'
180
198
  require_relative 'appwrite/enums/framework'
181
199
  require_relative 'appwrite/enums/build_runtime'
182
200
  require_relative 'appwrite/enums/adapter'
183
201
  require_relative 'appwrite/enums/compression'
184
202
  require_relative 'appwrite/enums/image_gravity'
203
+ require_relative 'appwrite/enums/tables_db_index_type'
185
204
  require_relative 'appwrite/enums/password_hash'
186
205
  require_relative 'appwrite/enums/messaging_provider_type'
187
206
  require_relative 'appwrite/enums/database_type'
@@ -191,6 +210,7 @@ require_relative 'appwrite/enums/index_status'
191
210
  require_relative 'appwrite/enums/deployment_status'
192
211
  require_relative 'appwrite/enums/execution_trigger'
193
212
  require_relative 'appwrite/enums/execution_status'
213
+ require_relative 'appwrite/enums/platform_type'
194
214
  require_relative 'appwrite/enums/health_antivirus_status'
195
215
  require_relative 'appwrite/enums/health_check_status'
196
216
  require_relative 'appwrite/enums/message_status'
@@ -205,9 +225,11 @@ require_relative 'appwrite/services/graphql'
205
225
  require_relative 'appwrite/services/health'
206
226
  require_relative 'appwrite/services/locale'
207
227
  require_relative 'appwrite/services/messaging'
228
+ require_relative 'appwrite/services/project'
208
229
  require_relative 'appwrite/services/sites'
209
230
  require_relative 'appwrite/services/storage'
210
231
  require_relative 'appwrite/services/tables_db'
211
232
  require_relative 'appwrite/services/teams'
212
233
  require_relative 'appwrite/services/tokens'
213
234
  require_relative 'appwrite/services/users'
235
+ require_relative 'appwrite/services/webhooks'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appwrite
3
3
  version: !ruby/object:Gem::Version
4
- version: 21.1.0
4
+ version: 23.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Appwrite Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-03-03 00:00:00.000000000 Z
11
+ date: 2026-04-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mime-types
@@ -44,6 +44,7 @@ files:
44
44
  - lib/appwrite/enums/compression.rb
45
45
  - lib/appwrite/enums/credit_card.rb
46
46
  - lib/appwrite/enums/database_type.rb
47
+ - lib/appwrite/enums/databases_index_type.rb
47
48
  - lib/appwrite/enums/deployment_download_type.rb
48
49
  - lib/appwrite/enums/deployment_status.rb
49
50
  - lib/appwrite/enums/execution_method.rb
@@ -56,7 +57,6 @@ files:
56
57
  - lib/appwrite/enums/image_format.rb
57
58
  - lib/appwrite/enums/image_gravity.rb
58
59
  - lib/appwrite/enums/index_status.rb
59
- - lib/appwrite/enums/index_type.rb
60
60
  - lib/appwrite/enums/message_priority.rb
61
61
  - lib/appwrite/enums/message_status.rb
62
62
  - lib/appwrite/enums/messaging_provider_type.rb
@@ -64,11 +64,15 @@ files:
64
64
  - lib/appwrite/enums/o_auth_provider.rb
65
65
  - lib/appwrite/enums/order_by.rb
66
66
  - lib/appwrite/enums/password_hash.rb
67
+ - lib/appwrite/enums/platform_type.rb
68
+ - lib/appwrite/enums/protocol_id.rb
67
69
  - lib/appwrite/enums/relation_mutate.rb
68
70
  - lib/appwrite/enums/relationship_type.rb
69
71
  - lib/appwrite/enums/runtime.rb
70
72
  - lib/appwrite/enums/scopes.rb
73
+ - lib/appwrite/enums/service_id.rb
71
74
  - lib/appwrite/enums/smtp_encryption.rb
75
+ - lib/appwrite/enums/tables_db_index_type.rb
72
76
  - lib/appwrite/enums/template_reference_type.rb
73
77
  - lib/appwrite/enums/theme.rb
74
78
  - lib/appwrite/enums/timezone.rb
@@ -103,12 +107,15 @@ files:
103
107
  - lib/appwrite/models/attribute_text.rb
104
108
  - lib/appwrite/models/attribute_url.rb
105
109
  - lib/appwrite/models/attribute_varchar.rb
110
+ - lib/appwrite/models/auth_provider.rb
106
111
  - lib/appwrite/models/backup_archive.rb
107
112
  - lib/appwrite/models/backup_archive_list.rb
108
113
  - lib/appwrite/models/backup_policy.rb
109
114
  - lib/appwrite/models/backup_policy_list.rb
110
115
  - lib/appwrite/models/backup_restoration.rb
111
116
  - lib/appwrite/models/backup_restoration_list.rb
117
+ - lib/appwrite/models/billing_limits.rb
118
+ - lib/appwrite/models/block.rb
112
119
  - lib/appwrite/models/bucket.rb
113
120
  - lib/appwrite/models/bucket_list.rb
114
121
  - lib/appwrite/models/collection.rb
@@ -143,6 +150,7 @@ files:
143
150
  - lib/appwrite/models/database_list.rb
144
151
  - lib/appwrite/models/deployment.rb
145
152
  - lib/appwrite/models/deployment_list.rb
153
+ - lib/appwrite/models/dev_key.rb
146
154
  - lib/appwrite/models/document.rb
147
155
  - lib/appwrite/models/document_list.rb
148
156
  - lib/appwrite/models/execution.rb
@@ -166,6 +174,8 @@ files:
166
174
  - lib/appwrite/models/index.rb
167
175
  - lib/appwrite/models/index_list.rb
168
176
  - lib/appwrite/models/jwt.rb
177
+ - lib/appwrite/models/key.rb
178
+ - lib/appwrite/models/key_list.rb
169
179
  - lib/appwrite/models/language.rb
170
180
  - lib/appwrite/models/language_list.rb
171
181
  - lib/appwrite/models/locale.rb
@@ -181,9 +191,17 @@ files:
181
191
  - lib/appwrite/models/mfa_factors.rb
182
192
  - lib/appwrite/models/mfa_recovery_codes.rb
183
193
  - lib/appwrite/models/mfa_type.rb
194
+ - lib/appwrite/models/mock_number.rb
184
195
  - lib/appwrite/models/phone.rb
185
196
  - lib/appwrite/models/phone_list.rb
197
+ - lib/appwrite/models/platform_android.rb
198
+ - lib/appwrite/models/platform_apple.rb
199
+ - lib/appwrite/models/platform_linux.rb
200
+ - lib/appwrite/models/platform_list.rb
201
+ - lib/appwrite/models/platform_web.rb
202
+ - lib/appwrite/models/platform_windows.rb
186
203
  - lib/appwrite/models/preferences.rb
204
+ - lib/appwrite/models/project.rb
187
205
  - lib/appwrite/models/provider.rb
188
206
  - lib/appwrite/models/provider_list.rb
189
207
  - lib/appwrite/models/resource_token.rb
@@ -215,6 +233,8 @@ files:
215
233
  - lib/appwrite/models/user_list.rb
216
234
  - lib/appwrite/models/variable.rb
217
235
  - lib/appwrite/models/variable_list.rb
236
+ - lib/appwrite/models/webhook.rb
237
+ - lib/appwrite/models/webhook_list.rb
218
238
  - lib/appwrite/operator.rb
219
239
  - lib/appwrite/permission.rb
220
240
  - lib/appwrite/query.rb
@@ -230,12 +250,14 @@ files:
230
250
  - lib/appwrite/services/health.rb
231
251
  - lib/appwrite/services/locale.rb
232
252
  - lib/appwrite/services/messaging.rb
253
+ - lib/appwrite/services/project.rb
233
254
  - lib/appwrite/services/sites.rb
234
255
  - lib/appwrite/services/storage.rb
235
256
  - lib/appwrite/services/tables_db.rb
236
257
  - lib/appwrite/services/teams.rb
237
258
  - lib/appwrite/services/tokens.rb
238
259
  - lib/appwrite/services/users.rb
260
+ - lib/appwrite/services/webhooks.rb
239
261
  homepage: https://appwrite.io/support
240
262
  licenses:
241
263
  - BSD-3-Clause