appwrite 23.1.0 → 24.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 (39) hide show
  1. checksums.yaml +4 -4
  2. data/lib/appwrite/client.rb +2 -2
  3. data/lib/appwrite/enums/o_auth2_google_prompt.rb +9 -0
  4. data/lib/appwrite/enums/o_auth_provider.rb +0 -2
  5. data/lib/appwrite/enums/{auth_method.rb → project_auth_method_id.rb} +1 -1
  6. data/lib/appwrite/enums/{email_template_type.rb → project_email_template_id.rb} +1 -1
  7. data/lib/appwrite/enums/{email_template_locale.rb → project_email_template_locale.rb} +1 -1
  8. data/lib/appwrite/enums/project_key_scopes.rb +100 -0
  9. data/lib/appwrite/enums/project_o_auth2_google_prompt.rb +9 -0
  10. data/lib/appwrite/enums/project_o_auth_provider_id.rb +51 -0
  11. data/lib/appwrite/enums/{project_policy.rb → project_policy_id.rb} +1 -1
  12. data/lib/appwrite/enums/{protocol_id.rb → project_protocol_id.rb} +1 -1
  13. data/lib/appwrite/enums/{service_id.rb → project_service_id.rb} +2 -1
  14. data/lib/appwrite/enums/{secure.rb → project_smtp_secure.rb} +1 -1
  15. data/lib/appwrite/enums/scopes.rb +7 -0
  16. data/lib/appwrite/models/database.rb +2 -2
  17. data/lib/appwrite/models/insight.rb +107 -0
  18. data/lib/appwrite/models/insight_cta.rb +42 -0
  19. data/lib/appwrite/models/insight_list.rb +32 -0
  20. data/lib/appwrite/models/o_auth2_google.rb +8 -3
  21. data/lib/appwrite/models/presence.rb +71 -0
  22. data/lib/appwrite/models/presence_list.rb +36 -0
  23. data/lib/appwrite/models/project.rb +15 -285
  24. data/lib/appwrite/models/project_auth_method.rb +53 -0
  25. data/lib/appwrite/models/project_protocol.rb +49 -0
  26. data/lib/appwrite/models/project_service.rb +64 -0
  27. data/lib/appwrite/models/report.rb +82 -0
  28. data/lib/appwrite/models/report_list.rb +32 -0
  29. data/lib/appwrite/models/usage_event.rb +72 -0
  30. data/lib/appwrite/models/usage_event_list.rb +32 -0
  31. data/lib/appwrite/models/usage_gauge.rb +37 -0
  32. data/lib/appwrite/models/usage_gauge_list.rb +32 -0
  33. data/lib/appwrite/services/advisor.rb +173 -0
  34. data/lib/appwrite/services/presences.rb +199 -0
  35. data/lib/appwrite/services/project.rb +170 -52
  36. data/lib/appwrite/services/usage.rb +86 -0
  37. data/lib/appwrite.rb +28 -8
  38. metadata +30 -10
  39. data/lib/appwrite/models/auth_provider.rb +0 -47
@@ -0,0 +1,86 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ class Usage < Service
5
+
6
+ def initialize(client)
7
+ @client = client
8
+ end
9
+
10
+ # Query usage event metrics from the usage database. Returns individual event
11
+ # rows with full metadata. Pass Query objects as JSON strings to filter,
12
+ # paginate, and order results. Supported query methods: equal,
13
+ # greaterThanEqual, lessThanEqual, orderAsc, orderDesc, limit, offset.
14
+ # Supported filter attributes: metric, path, method, status, resource,
15
+ # resourceId, country, userAgent, time (these match the underlying column
16
+ # names — note that the response surfaces `resource` as `resourceType` and
17
+ # `country` as `countryCode`). When no time filter is supplied the endpoint
18
+ # defaults to the last 7 days. Default `limit(100)` is applied if none is
19
+ # given; user-supplied limits are capped at 500. The `total` field is capped
20
+ # at 5000 to keep counts predictable — pass `total=false` to skip the count
21
+ # entirely.
22
+ #
23
+ # @param [Array] queries Array of query strings as JSON. Supported: equal("metric", [...]), equal("path", [...]), equal("method", [...]), equal("status", [...]), equal("resource", [...]), equal("resourceId", [...]), equal("country", [...]), equal("userAgent", [...]), greaterThanEqual("time", "..."), lessThanEqual("time", "..."), orderAsc("time"), orderDesc("time"), limit(N), offset(N).
24
+ # @param [] total When set to false, the total count returned will be 0 and will not be calculated.
25
+ #
26
+ # @return [UsageEventList]
27
+ def list_events(queries: nil, total: nil)
28
+ api_path = '/usage/events'
29
+
30
+ api_params = {
31
+ queries: queries,
32
+ total: total,
33
+ }
34
+
35
+ api_headers = {
36
+ }
37
+
38
+ @client.call(
39
+ method: 'GET',
40
+ path: api_path,
41
+ headers: api_headers,
42
+ params: api_params,
43
+ response_type: Models::UsageEventList
44
+ )
45
+
46
+ end
47
+
48
+ # Query usage gauge metrics (point-in-time resource snapshots) from the usage
49
+ # database. Returns individual gauge snapshots with metric, value, and
50
+ # timestamp. Pass Query objects as JSON strings to filter, paginate, and
51
+ # order results. Supported query methods: equal, greaterThanEqual,
52
+ # lessThanEqual, orderAsc, orderDesc, limit, offset. Supported filter
53
+ # attributes: metric, time. Use `orderDesc("time"), limit(1)` to fetch the
54
+ # most recent snapshot. When no time filter is supplied the endpoint defaults
55
+ # to the last 7 days. Default `limit(100)` is applied if none is given;
56
+ # user-supplied limits are capped at 500. The `total` field is capped at 5000
57
+ # to keep counts predictable — pass `total=false` to skip the count
58
+ # entirely.
59
+ #
60
+ # @param [Array] queries Array of query strings as JSON. Supported: equal("metric", [...]), greaterThanEqual("time", "..."), lessThanEqual("time", "..."), orderAsc("time"), orderDesc("time"), limit(N), offset(N).
61
+ # @param [] total When set to false, the total count returned will be 0 and will not be calculated.
62
+ #
63
+ # @return [UsageGaugeList]
64
+ def list_gauges(queries: nil, total: nil)
65
+ api_path = '/usage/gauges'
66
+
67
+ api_params = {
68
+ queries: queries,
69
+ total: total,
70
+ }
71
+
72
+ api_headers = {
73
+ }
74
+
75
+ @client.call(
76
+ method: 'GET',
77
+ path: api_path,
78
+ headers: api_headers,
79
+ params: api_params,
80
+ response_type: Models::UsageGaugeList
81
+ )
82
+
83
+ end
84
+
85
+ end
86
+ end
data/lib/appwrite.rb CHANGED
@@ -15,6 +15,7 @@ require_relative 'appwrite/operator'
15
15
 
16
16
  require_relative 'appwrite/models/row_list'
17
17
  require_relative 'appwrite/models/document_list'
18
+ require_relative 'appwrite/models/presence_list'
18
19
  require_relative 'appwrite/models/table_list'
19
20
  require_relative 'appwrite/models/collection_list'
20
21
  require_relative 'appwrite/models/database_list'
@@ -56,6 +57,8 @@ require_relative 'appwrite/models/subscriber_list'
56
57
  require_relative 'appwrite/models/target_list'
57
58
  require_relative 'appwrite/models/transaction_list'
58
59
  require_relative 'appwrite/models/specification_list'
60
+ require_relative 'appwrite/models/insight_list'
61
+ require_relative 'appwrite/models/report_list'
59
62
  require_relative 'appwrite/models/database'
60
63
  require_relative 'appwrite/models/collection'
61
64
  require_relative 'appwrite/models/attribute_list'
@@ -101,6 +104,7 @@ require_relative 'appwrite/models/index'
101
104
  require_relative 'appwrite/models/column_index'
102
105
  require_relative 'appwrite/models/row'
103
106
  require_relative 'appwrite/models/document'
107
+ require_relative 'appwrite/models/presence'
104
108
  require_relative 'appwrite/models/log'
105
109
  require_relative 'appwrite/models/user'
106
110
  require_relative 'appwrite/models/algo_md5'
@@ -130,6 +134,9 @@ require_relative 'appwrite/models/framework_adapter'
130
134
  require_relative 'appwrite/models/deployment'
131
135
  require_relative 'appwrite/models/execution'
132
136
  require_relative 'appwrite/models/project'
137
+ require_relative 'appwrite/models/project_auth_method'
138
+ require_relative 'appwrite/models/project_service'
139
+ require_relative 'appwrite/models/project_protocol'
133
140
  require_relative 'appwrite/models/webhook'
134
141
  require_relative 'appwrite/models/key'
135
142
  require_relative 'appwrite/models/ephemeral_key'
@@ -185,7 +192,6 @@ require_relative 'appwrite/models/policy_session_invalidation'
185
192
  require_relative 'appwrite/models/policy_session_limit'
186
193
  require_relative 'appwrite/models/policy_user_limit'
187
194
  require_relative 'appwrite/models/policy_membership_privacy'
188
- require_relative 'appwrite/models/auth_provider'
189
195
  require_relative 'appwrite/models/platform_web'
190
196
  require_relative 'appwrite/models/platform_apple'
191
197
  require_relative 'appwrite/models/platform_android'
@@ -217,12 +223,19 @@ require_relative 'appwrite/models/topic'
217
223
  require_relative 'appwrite/models/transaction'
218
224
  require_relative 'appwrite/models/subscriber'
219
225
  require_relative 'appwrite/models/target'
226
+ require_relative 'appwrite/models/insight'
227
+ require_relative 'appwrite/models/insight_cta'
228
+ require_relative 'appwrite/models/report'
220
229
  require_relative 'appwrite/models/activity_event'
221
230
  require_relative 'appwrite/models/backup_archive'
222
231
  require_relative 'appwrite/models/billing_limits'
223
232
  require_relative 'appwrite/models/block'
224
233
  require_relative 'appwrite/models/backup_policy'
225
234
  require_relative 'appwrite/models/backup_restoration'
235
+ require_relative 'appwrite/models/usage_event'
236
+ require_relative 'appwrite/models/usage_event_list'
237
+ require_relative 'appwrite/models/usage_gauge'
238
+ require_relative 'appwrite/models/usage_gauge_list'
226
239
  require_relative 'appwrite/models/activity_event_list'
227
240
  require_relative 'appwrite/models/backup_archive_list'
228
241
  require_relative 'appwrite/models/backup_policy_list'
@@ -252,13 +265,16 @@ require_relative 'appwrite/enums/execution_method'
252
265
  require_relative 'appwrite/enums/name'
253
266
  require_relative 'appwrite/enums/message_priority'
254
267
  require_relative 'appwrite/enums/smtp_encryption'
255
- require_relative 'appwrite/enums/auth_method'
256
- require_relative 'appwrite/enums/project_policy'
257
- require_relative 'appwrite/enums/protocol_id'
258
- require_relative 'appwrite/enums/service_id'
259
- require_relative 'appwrite/enums/secure'
260
- require_relative 'appwrite/enums/email_template_type'
261
- require_relative 'appwrite/enums/email_template_locale'
268
+ require_relative 'appwrite/enums/project_auth_method_id'
269
+ require_relative 'appwrite/enums/project_key_scopes'
270
+ require_relative 'appwrite/enums/project_o_auth2_google_prompt'
271
+ require_relative 'appwrite/enums/project_o_auth_provider_id'
272
+ require_relative 'appwrite/enums/project_policy_id'
273
+ require_relative 'appwrite/enums/project_protocol_id'
274
+ require_relative 'appwrite/enums/project_service_id'
275
+ require_relative 'appwrite/enums/project_smtp_secure'
276
+ require_relative 'appwrite/enums/project_email_template_id'
277
+ require_relative 'appwrite/enums/project_email_template_locale'
262
278
  require_relative 'appwrite/enums/status_code'
263
279
  require_relative 'appwrite/enums/proxy_resource_type'
264
280
  require_relative 'appwrite/enums/framework'
@@ -276,6 +292,7 @@ require_relative 'appwrite/enums/index_status'
276
292
  require_relative 'appwrite/enums/deployment_status'
277
293
  require_relative 'appwrite/enums/execution_trigger'
278
294
  require_relative 'appwrite/enums/execution_status'
295
+ require_relative 'appwrite/enums/o_auth2_google_prompt'
279
296
  require_relative 'appwrite/enums/platform_type'
280
297
  require_relative 'appwrite/enums/health_antivirus_status'
281
298
  require_relative 'appwrite/enums/health_check_status'
@@ -293,12 +310,15 @@ require_relative 'appwrite/services/graphql'
293
310
  require_relative 'appwrite/services/health'
294
311
  require_relative 'appwrite/services/locale'
295
312
  require_relative 'appwrite/services/messaging'
313
+ require_relative 'appwrite/services/presences'
296
314
  require_relative 'appwrite/services/project'
297
315
  require_relative 'appwrite/services/proxy'
316
+ require_relative 'appwrite/services/advisor'
298
317
  require_relative 'appwrite/services/sites'
299
318
  require_relative 'appwrite/services/storage'
300
319
  require_relative 'appwrite/services/tables_db'
301
320
  require_relative 'appwrite/services/teams'
302
321
  require_relative 'appwrite/services/tokens'
322
+ require_relative 'appwrite/services/usage'
303
323
  require_relative 'appwrite/services/users'
304
324
  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: 23.1.0
4
+ version: 24.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-05-08 00:00:00.000000000 Z
11
+ date: 2026-05-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mime-types
@@ -34,7 +34,6 @@ files:
34
34
  - lib/appwrite/client.rb
35
35
  - lib/appwrite/enums/adapter.rb
36
36
  - lib/appwrite/enums/attribute_status.rb
37
- - lib/appwrite/enums/auth_method.rb
38
37
  - lib/appwrite/enums/authentication_factor.rb
39
38
  - lib/appwrite/enums/authenticator_type.rb
40
39
  - lib/appwrite/enums/backup_services.rb
@@ -48,8 +47,6 @@ files:
48
47
  - lib/appwrite/enums/databases_index_type.rb
49
48
  - lib/appwrite/enums/deployment_download_type.rb
50
49
  - lib/appwrite/enums/deployment_status.rb
51
- - lib/appwrite/enums/email_template_locale.rb
52
- - lib/appwrite/enums/email_template_type.rb
53
50
  - lib/appwrite/enums/execution_method.rb
54
51
  - lib/appwrite/enums/execution_status.rb
55
52
  - lib/appwrite/enums/execution_trigger.rb
@@ -64,12 +61,21 @@ files:
64
61
  - lib/appwrite/enums/message_status.rb
65
62
  - lib/appwrite/enums/messaging_provider_type.rb
66
63
  - lib/appwrite/enums/name.rb
64
+ - lib/appwrite/enums/o_auth2_google_prompt.rb
67
65
  - lib/appwrite/enums/o_auth_provider.rb
68
66
  - lib/appwrite/enums/order_by.rb
69
67
  - lib/appwrite/enums/password_hash.rb
70
68
  - lib/appwrite/enums/platform_type.rb
71
- - lib/appwrite/enums/project_policy.rb
72
- - lib/appwrite/enums/protocol_id.rb
69
+ - lib/appwrite/enums/project_auth_method_id.rb
70
+ - lib/appwrite/enums/project_email_template_id.rb
71
+ - lib/appwrite/enums/project_email_template_locale.rb
72
+ - lib/appwrite/enums/project_key_scopes.rb
73
+ - lib/appwrite/enums/project_o_auth2_google_prompt.rb
74
+ - lib/appwrite/enums/project_o_auth_provider_id.rb
75
+ - lib/appwrite/enums/project_policy_id.rb
76
+ - lib/appwrite/enums/project_protocol_id.rb
77
+ - lib/appwrite/enums/project_service_id.rb
78
+ - lib/appwrite/enums/project_smtp_secure.rb
73
79
  - lib/appwrite/enums/proxy_resource_type.rb
74
80
  - lib/appwrite/enums/proxy_rule_deployment_resource_type.rb
75
81
  - lib/appwrite/enums/proxy_rule_status.rb
@@ -77,8 +83,6 @@ files:
77
83
  - lib/appwrite/enums/relationship_type.rb
78
84
  - lib/appwrite/enums/runtime.rb
79
85
  - lib/appwrite/enums/scopes.rb
80
- - lib/appwrite/enums/secure.rb
81
- - lib/appwrite/enums/service_id.rb
82
86
  - lib/appwrite/enums/smtp_encryption.rb
83
87
  - lib/appwrite/enums/status_code.rb
84
88
  - lib/appwrite/enums/tables_db_index_type.rb
@@ -117,7 +121,6 @@ files:
117
121
  - lib/appwrite/models/attribute_text.rb
118
122
  - lib/appwrite/models/attribute_url.rb
119
123
  - lib/appwrite/models/attribute_varchar.rb
120
- - lib/appwrite/models/auth_provider.rb
121
124
  - lib/appwrite/models/backup_archive.rb
122
125
  - lib/appwrite/models/backup_archive_list.rb
123
126
  - lib/appwrite/models/backup_policy.rb
@@ -187,6 +190,9 @@ files:
187
190
  - lib/appwrite/models/identity_list.rb
188
191
  - lib/appwrite/models/index.rb
189
192
  - lib/appwrite/models/index_list.rb
193
+ - lib/appwrite/models/insight.rb
194
+ - lib/appwrite/models/insight_cta.rb
195
+ - lib/appwrite/models/insight_list.rb
190
196
  - lib/appwrite/models/jwt.rb
191
197
  - lib/appwrite/models/key.rb
192
198
  - lib/appwrite/models/key_list.rb
@@ -267,11 +273,18 @@ files:
267
273
  - lib/appwrite/models/policy_session_limit.rb
268
274
  - lib/appwrite/models/policy_user_limit.rb
269
275
  - lib/appwrite/models/preferences.rb
276
+ - lib/appwrite/models/presence.rb
277
+ - lib/appwrite/models/presence_list.rb
270
278
  - lib/appwrite/models/project.rb
279
+ - lib/appwrite/models/project_auth_method.rb
280
+ - lib/appwrite/models/project_protocol.rb
281
+ - lib/appwrite/models/project_service.rb
271
282
  - lib/appwrite/models/provider.rb
272
283
  - lib/appwrite/models/provider_list.rb
273
284
  - lib/appwrite/models/proxy_rule.rb
274
285
  - lib/appwrite/models/proxy_rule_list.rb
286
+ - lib/appwrite/models/report.rb
287
+ - lib/appwrite/models/report_list.rb
275
288
  - lib/appwrite/models/resource_token.rb
276
289
  - lib/appwrite/models/resource_token_list.rb
277
290
  - lib/appwrite/models/row.rb
@@ -297,6 +310,10 @@ files:
297
310
  - lib/appwrite/models/topic_list.rb
298
311
  - lib/appwrite/models/transaction.rb
299
312
  - lib/appwrite/models/transaction_list.rb
313
+ - lib/appwrite/models/usage_event.rb
314
+ - lib/appwrite/models/usage_event_list.rb
315
+ - lib/appwrite/models/usage_gauge.rb
316
+ - lib/appwrite/models/usage_gauge_list.rb
300
317
  - lib/appwrite/models/user.rb
301
318
  - lib/appwrite/models/user_list.rb
302
319
  - lib/appwrite/models/variable.rb
@@ -310,6 +327,7 @@ files:
310
327
  - lib/appwrite/service.rb
311
328
  - lib/appwrite/services/account.rb
312
329
  - lib/appwrite/services/activities.rb
330
+ - lib/appwrite/services/advisor.rb
313
331
  - lib/appwrite/services/avatars.rb
314
332
  - lib/appwrite/services/backups.rb
315
333
  - lib/appwrite/services/databases.rb
@@ -318,6 +336,7 @@ files:
318
336
  - lib/appwrite/services/health.rb
319
337
  - lib/appwrite/services/locale.rb
320
338
  - lib/appwrite/services/messaging.rb
339
+ - lib/appwrite/services/presences.rb
321
340
  - lib/appwrite/services/project.rb
322
341
  - lib/appwrite/services/proxy.rb
323
342
  - lib/appwrite/services/sites.rb
@@ -325,6 +344,7 @@ files:
325
344
  - lib/appwrite/services/tables_db.rb
326
345
  - lib/appwrite/services/teams.rb
327
346
  - lib/appwrite/services/tokens.rb
347
+ - lib/appwrite/services/usage.rb
328
348
  - lib/appwrite/services/users.rb
329
349
  - lib/appwrite/services/webhooks.rb
330
350
  homepage: https://appwrite.io/support
@@ -1,47 +0,0 @@
1
- #frozen_string_literal: true
2
-
3
- module Appwrite
4
- module Models
5
- class AuthProvider
6
- attr_reader :key
7
- attr_reader :name
8
- attr_reader :app_id
9
- attr_reader :secret
10
- attr_reader :enabled
11
-
12
- def initialize(
13
- key:,
14
- name:,
15
- app_id:,
16
- secret:,
17
- enabled:
18
- )
19
- @key = key
20
- @name = name
21
- @app_id = app_id
22
- @secret = secret
23
- @enabled = enabled
24
- end
25
-
26
- def self.from(map:)
27
- AuthProvider.new(
28
- key: map["key"],
29
- name: map["name"],
30
- app_id: map["appId"],
31
- secret: map["secret"],
32
- enabled: map["enabled"]
33
- )
34
- end
35
-
36
- def to_map
37
- {
38
- "key": @key,
39
- "name": @name,
40
- "appId": @app_id,
41
- "secret": @secret,
42
- "enabled": @enabled
43
- }
44
- end
45
- end
46
- end
47
- end