appwrite 26.0.0 → 26.1.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 (58) hide show
  1. checksums.yaml +4 -4
  2. data/lib/appwrite/client.rb +1 -1
  3. data/lib/appwrite/enums/database_status.rb +11 -0
  4. data/lib/appwrite/enums/database_type.rb +3 -0
  5. data/lib/appwrite/enums/organization_key_scopes.rb +2 -0
  6. data/lib/appwrite/enums/project_key_scopes.rb +3 -0
  7. data/lib/appwrite/models/activity_event.rb +58 -3
  8. data/lib/appwrite/models/app.rb +152 -0
  9. data/lib/appwrite/models/app_installation.rb +72 -0
  10. data/lib/appwrite/models/app_installation_list.rb +32 -0
  11. data/lib/appwrite/models/app_key.rb +67 -0
  12. data/lib/appwrite/models/app_key_list.rb +32 -0
  13. data/lib/appwrite/models/app_scope.rb +47 -0
  14. data/lib/appwrite/models/app_scope_list.rb +32 -0
  15. data/lib/appwrite/models/app_secret.rb +67 -0
  16. data/lib/appwrite/models/app_secret_list.rb +32 -0
  17. data/lib/appwrite/models/app_secret_plaintext.rb +67 -0
  18. data/lib/appwrite/models/apps_list.rb +32 -0
  19. data/lib/appwrite/models/billing_plan.rb +5 -0
  20. data/lib/appwrite/models/database.rb +35 -6
  21. data/lib/appwrite/models/database_status.rb +62 -0
  22. data/lib/appwrite/models/database_status_connections.rb +32 -0
  23. data/lib/appwrite/models/database_status_replica.rb +42 -0
  24. data/lib/appwrite/models/database_status_volume.rb +42 -0
  25. data/lib/appwrite/models/dedicated_database.rb +267 -0
  26. data/lib/appwrite/models/dedicated_database_member.rb +42 -0
  27. data/lib/appwrite/models/dedicated_database_replicas.rb +37 -0
  28. data/lib/appwrite/models/dedicated_database_specification.rb +67 -0
  29. data/lib/appwrite/models/dedicated_database_specification_list.rb +37 -0
  30. data/lib/appwrite/models/dedicated_database_specification_pricing.rb +47 -0
  31. data/lib/appwrite/models/oauth2_approve.rb +27 -0
  32. data/lib/appwrite/models/oauth2_authorize.rb +32 -0
  33. data/lib/appwrite/models/oauth2_consent.rb +72 -0
  34. data/lib/appwrite/models/oauth2_consent_list.rb +32 -0
  35. data/lib/appwrite/models/oauth2_consent_token.rb +77 -0
  36. data/lib/appwrite/models/oauth2_consent_token_list.rb +32 -0
  37. data/lib/appwrite/models/oauth2_device_authorization.rb +52 -0
  38. data/lib/appwrite/models/oauth2_grant.rb +82 -0
  39. data/lib/appwrite/models/oauth2_organization.rb +27 -0
  40. data/lib/appwrite/models/oauth2_organization_list.rb +32 -0
  41. data/lib/appwrite/models/oauth2_par.rb +32 -0
  42. data/lib/appwrite/models/oauth2_project.rb +37 -0
  43. data/lib/appwrite/models/oauth2_project_list.rb +32 -0
  44. data/lib/appwrite/models/oauth2_reject.rb +27 -0
  45. data/lib/appwrite/models/oauth2_token.rb +57 -0
  46. data/lib/appwrite/models/project.rb +10 -0
  47. data/lib/appwrite/models/project_auth_method.rb +3 -3
  48. data/lib/appwrite/services/account.rb +209 -0
  49. data/lib/appwrite/services/apps.rb +813 -0
  50. data/lib/appwrite/services/backups.rb +25 -12
  51. data/lib/appwrite/services/oauth2.rb +525 -0
  52. data/lib/appwrite/services/organization.rb +168 -0
  53. data/lib/appwrite/services/project.rb +3 -1
  54. data/lib/appwrite/services/sites.rb +3 -1
  55. data/lib/appwrite/services/tables_db.rb +134 -2
  56. data/lib/appwrite/services/teams.rb +198 -0
  57. data/lib/appwrite.rb +38 -0
  58. metadata +40 -2
@@ -0,0 +1,67 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class AppSecret
6
+ attr_reader :id
7
+ attr_reader :created_at
8
+ attr_reader :updated_at
9
+ attr_reader :app_id
10
+ attr_reader :secret
11
+ attr_reader :hint
12
+ attr_reader :created_by_id
13
+ attr_reader :created_by_name
14
+ attr_reader :last_accessed_at
15
+
16
+ def initialize(
17
+ id:,
18
+ created_at:,
19
+ updated_at:,
20
+ app_id:,
21
+ secret:,
22
+ hint:,
23
+ created_by_id:,
24
+ created_by_name:,
25
+ last_accessed_at:
26
+ )
27
+ @id = id
28
+ @created_at = created_at
29
+ @updated_at = updated_at
30
+ @app_id = app_id
31
+ @secret = secret
32
+ @hint = hint
33
+ @created_by_id = created_by_id
34
+ @created_by_name = created_by_name
35
+ @last_accessed_at = last_accessed_at
36
+ end
37
+
38
+ def self.from(map:)
39
+ AppSecret.new(
40
+ id: map["$id"],
41
+ created_at: map["$createdAt"],
42
+ updated_at: map["$updatedAt"],
43
+ app_id: map["appId"],
44
+ secret: map["secret"],
45
+ hint: map["hint"],
46
+ created_by_id: map["createdById"],
47
+ created_by_name: map["createdByName"],
48
+ last_accessed_at: map["lastAccessedAt"]
49
+ )
50
+ end
51
+
52
+ def to_map
53
+ {
54
+ "$id": @id,
55
+ "$createdAt": @created_at,
56
+ "$updatedAt": @updated_at,
57
+ "appId": @app_id,
58
+ "secret": @secret,
59
+ "hint": @hint,
60
+ "createdById": @created_by_id,
61
+ "createdByName": @created_by_name,
62
+ "lastAccessedAt": @last_accessed_at
63
+ }
64
+ end
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,32 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class AppSecretList
6
+ attr_reader :total
7
+ attr_reader :secrets
8
+
9
+ def initialize(
10
+ total:,
11
+ secrets:
12
+ )
13
+ @total = total
14
+ @secrets = secrets
15
+ end
16
+
17
+ def self.from(map:)
18
+ AppSecretList.new(
19
+ total: map["total"],
20
+ secrets: map["secrets"].map { |it| AppSecret.from(map: it) }
21
+ )
22
+ end
23
+
24
+ def to_map
25
+ {
26
+ "total": @total,
27
+ "secrets": @secrets.map { |it| it.to_map }
28
+ }
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,67 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class AppSecretPlaintext
6
+ attr_reader :id
7
+ attr_reader :created_at
8
+ attr_reader :updated_at
9
+ attr_reader :app_id
10
+ attr_reader :secret
11
+ attr_reader :hint
12
+ attr_reader :created_by_id
13
+ attr_reader :created_by_name
14
+ attr_reader :last_accessed_at
15
+
16
+ def initialize(
17
+ id:,
18
+ created_at:,
19
+ updated_at:,
20
+ app_id:,
21
+ secret:,
22
+ hint:,
23
+ created_by_id:,
24
+ created_by_name:,
25
+ last_accessed_at:
26
+ )
27
+ @id = id
28
+ @created_at = created_at
29
+ @updated_at = updated_at
30
+ @app_id = app_id
31
+ @secret = secret
32
+ @hint = hint
33
+ @created_by_id = created_by_id
34
+ @created_by_name = created_by_name
35
+ @last_accessed_at = last_accessed_at
36
+ end
37
+
38
+ def self.from(map:)
39
+ AppSecretPlaintext.new(
40
+ id: map["$id"],
41
+ created_at: map["$createdAt"],
42
+ updated_at: map["$updatedAt"],
43
+ app_id: map["appId"],
44
+ secret: map["secret"],
45
+ hint: map["hint"],
46
+ created_by_id: map["createdById"],
47
+ created_by_name: map["createdByName"],
48
+ last_accessed_at: map["lastAccessedAt"]
49
+ )
50
+ end
51
+
52
+ def to_map
53
+ {
54
+ "$id": @id,
55
+ "$createdAt": @created_at,
56
+ "$updatedAt": @updated_at,
57
+ "appId": @app_id,
58
+ "secret": @secret,
59
+ "hint": @hint,
60
+ "createdById": @created_by_id,
61
+ "createdByName": @created_by_name,
62
+ "lastAccessedAt": @last_accessed_at
63
+ }
64
+ end
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,32 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class AppsList
6
+ attr_reader :total
7
+ attr_reader :apps
8
+
9
+ def initialize(
10
+ total:,
11
+ apps:
12
+ )
13
+ @total = total
14
+ @apps = apps
15
+ end
16
+
17
+ def self.from(map:)
18
+ AppsList.new(
19
+ total: map["total"],
20
+ apps: map["apps"].map { |it| App.from(map: it) }
21
+ )
22
+ end
23
+
24
+ def to_map
25
+ {
26
+ "total": @total,
27
+ "apps": @apps.map { |it| it.to_map }
28
+ }
29
+ end
30
+ end
31
+ end
32
+ end
@@ -15,6 +15,7 @@ module Appwrite
15
15
  attr_reader :screenshots_generated
16
16
  attr_reader :members
17
17
  attr_reader :webhooks
18
+ attr_reader :waf_rules
18
19
  attr_reader :projects
19
20
  attr_reader :platforms
20
21
  attr_reader :users
@@ -85,6 +86,7 @@ module Appwrite
85
86
  screenshots_generated:,
86
87
  members:,
87
88
  webhooks:,
89
+ waf_rules:,
88
90
  projects:,
89
91
  platforms:,
90
92
  users:,
@@ -154,6 +156,7 @@ module Appwrite
154
156
  @screenshots_generated = screenshots_generated
155
157
  @members = members
156
158
  @webhooks = webhooks
159
+ @waf_rules = waf_rules
157
160
  @projects = projects
158
161
  @platforms = platforms
159
162
  @users = users
@@ -226,6 +229,7 @@ module Appwrite
226
229
  screenshots_generated: map["screenshotsGenerated"],
227
230
  members: map["members"],
228
231
  webhooks: map["webhooks"],
232
+ waf_rules: map["wafRules"],
229
233
  projects: map["projects"],
230
234
  platforms: map["platforms"],
231
235
  users: map["users"],
@@ -299,6 +303,7 @@ module Appwrite
299
303
  "screenshotsGenerated": @screenshots_generated,
300
304
  "members": @members,
301
305
  "webhooks": @webhooks,
306
+ "wafRules": @waf_rules,
302
307
  "projects": @projects,
303
308
  "platforms": @platforms,
304
309
  "users": @users,
@@ -10,6 +10,9 @@ module Appwrite
10
10
  attr_reader :enabled
11
11
  attr_reader :type
12
12
  attr_reader :status
13
+ attr_reader :engine
14
+ attr_reader :specification
15
+ attr_reader :replicas
13
16
  attr_reader :policies
14
17
  attr_reader :archives
15
18
 
@@ -21,8 +24,11 @@ module Appwrite
21
24
  enabled:,
22
25
  type:,
23
26
  status: ,
24
- policies:,
25
- archives:
27
+ engine: ,
28
+ specification: ,
29
+ replicas: ,
30
+ policies: ,
31
+ archives:
26
32
  )
27
33
  @id = id
28
34
  @name = name
@@ -31,6 +37,9 @@ module Appwrite
31
37
  @enabled = enabled
32
38
  @type = validate_type(type)
33
39
  @status = status.nil? ? status : validate_status(status)
40
+ @engine = engine
41
+ @specification = specification
42
+ @replicas = replicas
34
43
  @policies = policies
35
44
  @archives = archives
36
45
  end
@@ -44,8 +53,11 @@ module Appwrite
44
53
  enabled: map["enabled"],
45
54
  type: map["type"],
46
55
  status: map["status"],
47
- policies: map["policies"].map { |it| BackupPolicy.from(map: it) },
48
- archives: map["archives"].map { |it| BackupArchive.from(map: it) }
56
+ engine: map["engine"],
57
+ specification: map["specification"],
58
+ replicas: map["replicas"],
59
+ policies: map["policies"]&.map { |it| BackupPolicy.from(map: it) },
60
+ archives: map["archives"]&.map { |it| BackupArchive.from(map: it) }
49
61
  )
50
62
  end
51
63
 
@@ -58,8 +70,11 @@ module Appwrite
58
70
  "enabled": @enabled,
59
71
  "type": @type,
60
72
  "status": @status,
61
- "policies": @policies.map { |it| it.to_map },
62
- "archives": @archives.map { |it| it.to_map }
73
+ "engine": @engine,
74
+ "specification": @specification,
75
+ "replicas": @replicas,
76
+ "policies": @policies&.map { |it| it.to_map },
77
+ "archives": @archives&.map { |it| it.to_map }
63
78
  }
64
79
  end
65
80
 
@@ -71,6 +86,9 @@ module Appwrite
71
86
  Appwrite::Enums::DatabaseType::TABLESDB,
72
87
  Appwrite::Enums::DatabaseType::DOCUMENTSDB,
73
88
  Appwrite::Enums::DatabaseType::VECTORSDB,
89
+ Appwrite::Enums::DatabaseType::MYSQL,
90
+ Appwrite::Enums::DatabaseType::POSTGRESQL,
91
+ Appwrite::Enums::DatabaseType::MONGODB,
74
92
  ]
75
93
 
76
94
  unless valid_type.include?(type)
@@ -84,7 +102,18 @@ module Appwrite
84
102
  valid_status = [
85
103
  Appwrite::Enums::DatabaseStatus::PROVISIONING,
86
104
  Appwrite::Enums::DatabaseStatus::READY,
105
+ Appwrite::Enums::DatabaseStatus::INACTIVE,
106
+ Appwrite::Enums::DatabaseStatus::PAUSED,
87
107
  Appwrite::Enums::DatabaseStatus::FAILED,
108
+ Appwrite::Enums::DatabaseStatus::DELETING,
109
+ Appwrite::Enums::DatabaseStatus::DELETED,
110
+ Appwrite::Enums::DatabaseStatus::RESTORING,
111
+ Appwrite::Enums::DatabaseStatus::SCALING,
112
+ Appwrite::Enums::DatabaseStatus::UPGRADING,
113
+ Appwrite::Enums::DatabaseStatus::MIGRATING,
114
+ Appwrite::Enums::DatabaseStatus::PAUSING,
115
+ Appwrite::Enums::DatabaseStatus::RESUMING,
116
+ Appwrite::Enums::DatabaseStatus::FAILING_OVER,
88
117
  ]
89
118
 
90
119
  unless valid_status.include?(status)
@@ -0,0 +1,62 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class DatabaseStatus
6
+ attr_reader :health
7
+ attr_reader :ready
8
+ attr_reader :engine
9
+ attr_reader :version
10
+ attr_reader :uptime
11
+ attr_reader :connections
12
+ attr_reader :replicas
13
+ attr_reader :volumes
14
+
15
+ def initialize(
16
+ health:,
17
+ ready:,
18
+ engine:,
19
+ version:,
20
+ uptime:,
21
+ connections:,
22
+ replicas:,
23
+ volumes:
24
+ )
25
+ @health = health
26
+ @ready = ready
27
+ @engine = engine
28
+ @version = version
29
+ @uptime = uptime
30
+ @connections = connections
31
+ @replicas = replicas
32
+ @volumes = volumes
33
+ end
34
+
35
+ def self.from(map:)
36
+ DatabaseStatus.new(
37
+ health: map["health"],
38
+ ready: map["ready"],
39
+ engine: map["engine"],
40
+ version: map["version"],
41
+ uptime: map["uptime"],
42
+ connections: DatabaseStatusConnections.from(map: map["connections"]),
43
+ replicas: map["replicas"].map { |it| DatabaseStatusReplica.from(map: it) },
44
+ volumes: map["volumes"].map { |it| DatabaseStatusVolume.from(map: it) }
45
+ )
46
+ end
47
+
48
+ def to_map
49
+ {
50
+ "health": @health,
51
+ "ready": @ready,
52
+ "engine": @engine,
53
+ "version": @version,
54
+ "uptime": @uptime,
55
+ "connections": @connections.to_map,
56
+ "replicas": @replicas.map { |it| it.to_map },
57
+ "volumes": @volumes.map { |it| it.to_map }
58
+ }
59
+ end
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,32 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class DatabaseStatusConnections
6
+ attr_reader :current
7
+ attr_reader :max
8
+
9
+ def initialize(
10
+ current:,
11
+ max:
12
+ )
13
+ @current = current
14
+ @max = max
15
+ end
16
+
17
+ def self.from(map:)
18
+ DatabaseStatusConnections.new(
19
+ current: map["current"],
20
+ max: map["max"]
21
+ )
22
+ end
23
+
24
+ def to_map
25
+ {
26
+ "current": @current,
27
+ "max": @max
28
+ }
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,42 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class DatabaseStatusReplica
6
+ attr_reader :index
7
+ attr_reader :role
8
+ attr_reader :healthy
9
+ attr_reader :lag_seconds
10
+
11
+ def initialize(
12
+ index:,
13
+ role:,
14
+ healthy:,
15
+ lag_seconds:
16
+ )
17
+ @index = index
18
+ @role = role
19
+ @healthy = healthy
20
+ @lag_seconds = lag_seconds
21
+ end
22
+
23
+ def self.from(map:)
24
+ DatabaseStatusReplica.new(
25
+ index: map["index"],
26
+ role: map["role"],
27
+ healthy: map["healthy"],
28
+ lag_seconds: map["lagSeconds"]
29
+ )
30
+ end
31
+
32
+ def to_map
33
+ {
34
+ "index": @index,
35
+ "role": @role,
36
+ "healthy": @healthy,
37
+ "lagSeconds": @lag_seconds
38
+ }
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,42 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class DatabaseStatusVolume
6
+ attr_reader :xpath
7
+ attr_reader :used_percent
8
+ attr_reader :available
9
+ attr_reader :mounted
10
+
11
+ def initialize(
12
+ xpath:,
13
+ used_percent:,
14
+ available:,
15
+ mounted:
16
+ )
17
+ @xpath = xpath
18
+ @used_percent = used_percent
19
+ @available = available
20
+ @mounted = mounted
21
+ end
22
+
23
+ def self.from(map:)
24
+ DatabaseStatusVolume.new(
25
+ xpath: map["path"],
26
+ used_percent: map["usedPercent"],
27
+ available: map["available"],
28
+ mounted: map["mounted"]
29
+ )
30
+ end
31
+
32
+ def to_map
33
+ {
34
+ "path": @xpath,
35
+ "usedPercent": @used_percent,
36
+ "available": @available,
37
+ "mounted": @mounted
38
+ }
39
+ end
40
+ end
41
+ end
42
+ end