appwrite 21.1.0 → 22.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.
@@ -0,0 +1,239 @@
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, httpUser, security, 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
+ end
36
+
37
+ # Create a new webhook. Use this endpoint to configure a URL that will
38
+ # receive events from Appwrite when specific events occur.
39
+ #
40
+ # @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.
41
+ # @param [String] url Webhook URL.
42
+ # @param [String] name Webhook name. Max length: 128 chars.
43
+ # @param [Array] events Events list. Maximum of 100 events are allowed.
44
+ # @param [] enabled Enable or disable a webhook.
45
+ # @param [] security Certificate verification, false for disabled or true for enabled.
46
+ # @param [String] http_user Webhook HTTP user. Max length: 256 chars.
47
+ # @param [String] http_pass Webhook HTTP password. Max length: 256 chars.
48
+ #
49
+ # @return [Webhook]
50
+ def create(webhook_id:, url:, name:, events:, enabled: nil, security: nil, http_user: nil, http_pass: nil)
51
+ api_path = '/webhooks'
52
+
53
+ if webhook_id.nil?
54
+ raise Appwrite::Exception.new('Missing required parameter: "webhookId"')
55
+ end
56
+
57
+ if url.nil?
58
+ raise Appwrite::Exception.new('Missing required parameter: "url"')
59
+ end
60
+
61
+ if name.nil?
62
+ raise Appwrite::Exception.new('Missing required parameter: "name"')
63
+ end
64
+
65
+ if events.nil?
66
+ raise Appwrite::Exception.new('Missing required parameter: "events"')
67
+ end
68
+
69
+ api_params = {
70
+ webhookId: webhook_id,
71
+ url: url,
72
+ name: name,
73
+ events: events,
74
+ enabled: enabled,
75
+ security: security,
76
+ httpUser: http_user,
77
+ httpPass: http_pass,
78
+ }
79
+
80
+ api_headers = {
81
+ "content-type": 'application/json',
82
+ }
83
+
84
+ @client.call(
85
+ method: 'POST',
86
+ path: api_path,
87
+ headers: api_headers,
88
+ params: api_params,
89
+ response_type: Models::Webhook
90
+ )
91
+ end
92
+
93
+ # Get a webhook by its unique ID. This endpoint returns details about a
94
+ # specific webhook configured for a project.
95
+ #
96
+ # @param [String] webhook_id Webhook ID.
97
+ #
98
+ # @return [Webhook]
99
+ def get(webhook_id:)
100
+ api_path = '/webhooks/{webhookId}'
101
+ .gsub('{webhookId}', webhook_id)
102
+
103
+ if webhook_id.nil?
104
+ raise Appwrite::Exception.new('Missing required parameter: "webhookId"')
105
+ end
106
+
107
+ api_params = {
108
+ }
109
+
110
+ api_headers = {
111
+ }
112
+
113
+ @client.call(
114
+ method: 'GET',
115
+ path: api_path,
116
+ headers: api_headers,
117
+ params: api_params,
118
+ response_type: Models::Webhook
119
+ )
120
+ end
121
+
122
+ # Update a webhook by its unique ID. Use this endpoint to update the URL,
123
+ # events, or status of an existing webhook.
124
+ #
125
+ # @param [String] webhook_id Webhook ID.
126
+ # @param [String] name Webhook name. Max length: 128 chars.
127
+ # @param [String] url Webhook URL.
128
+ # @param [Array] events Events list. Maximum of 100 events are allowed.
129
+ # @param [] enabled Enable or disable a webhook.
130
+ # @param [] security Certificate verification, false for disabled or true for enabled.
131
+ # @param [String] http_user Webhook HTTP user. Max length: 256 chars.
132
+ # @param [String] http_pass Webhook HTTP password. Max length: 256 chars.
133
+ #
134
+ # @return [Webhook]
135
+ def update(webhook_id:, name:, url:, events:, enabled: nil, security: nil, http_user: nil, http_pass: nil)
136
+ api_path = '/webhooks/{webhookId}'
137
+ .gsub('{webhookId}', webhook_id)
138
+
139
+ if webhook_id.nil?
140
+ raise Appwrite::Exception.new('Missing required parameter: "webhookId"')
141
+ end
142
+
143
+ if name.nil?
144
+ raise Appwrite::Exception.new('Missing required parameter: "name"')
145
+ end
146
+
147
+ if url.nil?
148
+ raise Appwrite::Exception.new('Missing required parameter: "url"')
149
+ end
150
+
151
+ if events.nil?
152
+ raise Appwrite::Exception.new('Missing required parameter: "events"')
153
+ end
154
+
155
+ api_params = {
156
+ name: name,
157
+ url: url,
158
+ events: events,
159
+ enabled: enabled,
160
+ security: security,
161
+ httpUser: http_user,
162
+ httpPass: http_pass,
163
+ }
164
+
165
+ api_headers = {
166
+ "content-type": 'application/json',
167
+ }
168
+
169
+ @client.call(
170
+ method: 'PUT',
171
+ path: api_path,
172
+ headers: api_headers,
173
+ params: api_params,
174
+ response_type: Models::Webhook
175
+ )
176
+ end
177
+
178
+ # Delete a webhook by its unique ID. Once deleted, the webhook will no longer
179
+ # receive project events.
180
+ #
181
+ # @param [String] webhook_id Webhook ID.
182
+ #
183
+ # @return []
184
+ def delete(webhook_id:)
185
+ api_path = '/webhooks/{webhookId}'
186
+ .gsub('{webhookId}', webhook_id)
187
+
188
+ if webhook_id.nil?
189
+ raise Appwrite::Exception.new('Missing required parameter: "webhookId"')
190
+ end
191
+
192
+ api_params = {
193
+ }
194
+
195
+ api_headers = {
196
+ "content-type": 'application/json',
197
+ }
198
+
199
+ @client.call(
200
+ method: 'DELETE',
201
+ path: api_path,
202
+ headers: api_headers,
203
+ params: api_params,
204
+ )
205
+ end
206
+
207
+ # Update the webhook signature key. This endpoint can be used to regenerate
208
+ # the signature key used to sign and validate payload deliveries for a
209
+ # specific webhook.
210
+ #
211
+ # @param [String] webhook_id Webhook ID.
212
+ #
213
+ # @return [Webhook]
214
+ def update_signature(webhook_id:)
215
+ api_path = '/webhooks/{webhookId}/signature'
216
+ .gsub('{webhookId}', webhook_id)
217
+
218
+ if webhook_id.nil?
219
+ raise Appwrite::Exception.new('Missing required parameter: "webhookId"')
220
+ end
221
+
222
+ api_params = {
223
+ }
224
+
225
+ api_headers = {
226
+ "content-type": 'application/json',
227
+ }
228
+
229
+ @client.call(
230
+ method: 'PATCH',
231
+ path: api_path,
232
+ headers: api_headers,
233
+ params: api_params,
234
+ response_type: Models::Webhook
235
+ )
236
+ end
237
+
238
+ end
239
+ end
data/lib/appwrite.rb CHANGED
@@ -35,6 +35,7 @@ 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'
38
39
  require_relative 'appwrite/models/country_list'
39
40
  require_relative 'appwrite/models/continent_list'
40
41
  require_relative 'appwrite/models/language_list'
@@ -121,6 +122,7 @@ require_relative 'appwrite/models/framework'
121
122
  require_relative 'appwrite/models/framework_adapter'
122
123
  require_relative 'appwrite/models/deployment'
123
124
  require_relative 'appwrite/models/execution'
125
+ require_relative 'appwrite/models/webhook'
124
126
  require_relative 'appwrite/models/variable'
125
127
  require_relative 'appwrite/models/country'
126
128
  require_relative 'appwrite/models/continent'
@@ -166,7 +168,7 @@ require_relative 'appwrite/enums/image_format'
166
168
  require_relative 'appwrite/enums/backup_services'
167
169
  require_relative 'appwrite/enums/relationship_type'
168
170
  require_relative 'appwrite/enums/relation_mutate'
169
- require_relative 'appwrite/enums/index_type'
171
+ require_relative 'appwrite/enums/databases_index_type'
170
172
  require_relative 'appwrite/enums/order_by'
171
173
  require_relative 'appwrite/enums/runtime'
172
174
  require_relative 'appwrite/enums/scopes'
@@ -182,6 +184,7 @@ require_relative 'appwrite/enums/build_runtime'
182
184
  require_relative 'appwrite/enums/adapter'
183
185
  require_relative 'appwrite/enums/compression'
184
186
  require_relative 'appwrite/enums/image_gravity'
187
+ require_relative 'appwrite/enums/tables_db_index_type'
185
188
  require_relative 'appwrite/enums/password_hash'
186
189
  require_relative 'appwrite/enums/messaging_provider_type'
187
190
  require_relative 'appwrite/enums/database_type'
@@ -205,9 +208,11 @@ require_relative 'appwrite/services/graphql'
205
208
  require_relative 'appwrite/services/health'
206
209
  require_relative 'appwrite/services/locale'
207
210
  require_relative 'appwrite/services/messaging'
211
+ require_relative 'appwrite/services/project'
208
212
  require_relative 'appwrite/services/sites'
209
213
  require_relative 'appwrite/services/storage'
210
214
  require_relative 'appwrite/services/tables_db'
211
215
  require_relative 'appwrite/services/teams'
212
216
  require_relative 'appwrite/services/tokens'
213
217
  require_relative 'appwrite/services/users'
218
+ 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: 22.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-03-26 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
@@ -69,6 +69,7 @@ files:
69
69
  - lib/appwrite/enums/runtime.rb
70
70
  - lib/appwrite/enums/scopes.rb
71
71
  - lib/appwrite/enums/smtp_encryption.rb
72
+ - lib/appwrite/enums/tables_db_index_type.rb
72
73
  - lib/appwrite/enums/template_reference_type.rb
73
74
  - lib/appwrite/enums/theme.rb
74
75
  - lib/appwrite/enums/timezone.rb
@@ -215,6 +216,8 @@ files:
215
216
  - lib/appwrite/models/user_list.rb
216
217
  - lib/appwrite/models/variable.rb
217
218
  - lib/appwrite/models/variable_list.rb
219
+ - lib/appwrite/models/webhook.rb
220
+ - lib/appwrite/models/webhook_list.rb
218
221
  - lib/appwrite/operator.rb
219
222
  - lib/appwrite/permission.rb
220
223
  - lib/appwrite/query.rb
@@ -230,12 +233,14 @@ files:
230
233
  - lib/appwrite/services/health.rb
231
234
  - lib/appwrite/services/locale.rb
232
235
  - lib/appwrite/services/messaging.rb
236
+ - lib/appwrite/services/project.rb
233
237
  - lib/appwrite/services/sites.rb
234
238
  - lib/appwrite/services/storage.rb
235
239
  - lib/appwrite/services/tables_db.rb
236
240
  - lib/appwrite/services/teams.rb
237
241
  - lib/appwrite/services/tokens.rb
238
242
  - lib/appwrite/services/users.rb
243
+ - lib/appwrite/services/webhooks.rb
239
244
  homepage: https://appwrite.io/support
240
245
  licenses:
241
246
  - BSD-3-Clause