appwrite 26.0.0 → 27.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 (86) hide show
  1. checksums.yaml +4 -4
  2. data/lib/appwrite/client.rb +16 -2
  3. data/lib/appwrite/enums/authentication_factor.rb +1 -0
  4. data/lib/appwrite/enums/build_runtime.rb +1 -0
  5. data/lib/appwrite/enums/database_status.rb +11 -0
  6. data/lib/appwrite/enums/database_type.rb +3 -0
  7. data/lib/appwrite/enums/embedding_model.rb +10 -0
  8. data/lib/appwrite/enums/invalidation_type.rb +9 -0
  9. data/lib/appwrite/enums/organization_key_scopes.rb +2 -0
  10. data/lib/appwrite/enums/project_key_scopes.rb +5 -0
  11. data/lib/appwrite/enums/project_policy_id.rb +1 -0
  12. data/lib/appwrite/enums/runtime.rb +1 -0
  13. data/lib/appwrite/models/activity_event.rb +58 -3
  14. data/lib/appwrite/models/app.rb +152 -0
  15. data/lib/appwrite/models/app_installation.rb +72 -0
  16. data/lib/appwrite/models/app_installation_list.rb +32 -0
  17. data/lib/appwrite/models/app_key.rb +67 -0
  18. data/lib/appwrite/models/app_key_list.rb +32 -0
  19. data/lib/appwrite/models/app_scope.rb +47 -0
  20. data/lib/appwrite/models/app_scope_list.rb +32 -0
  21. data/lib/appwrite/models/app_secret.rb +67 -0
  22. data/lib/appwrite/models/app_secret_list.rb +32 -0
  23. data/lib/appwrite/models/app_secret_plaintext.rb +67 -0
  24. data/lib/appwrite/models/apps_list.rb +32 -0
  25. data/lib/appwrite/models/billing_plan.rb +9 -4
  26. data/lib/appwrite/models/billing_plan_addon.rb +6 -6
  27. data/lib/appwrite/models/billing_plan_addon_details.rb +1 -1
  28. data/lib/appwrite/models/database.rb +35 -6
  29. data/lib/appwrite/models/database_migration.rb +102 -0
  30. data/lib/appwrite/models/database_migration_list.rb +32 -0
  31. data/lib/appwrite/models/database_status.rb +92 -0
  32. data/lib/appwrite/models/database_status_connections.rb +32 -0
  33. data/lib/appwrite/models/database_status_replica.rb +42 -0
  34. data/lib/appwrite/models/database_status_volume.rb +42 -0
  35. data/lib/appwrite/models/dedicated_database.rb +262 -0
  36. data/lib/appwrite/models/dedicated_database_member.rb +42 -0
  37. data/lib/appwrite/models/dedicated_database_operation.rb +77 -0
  38. data/lib/appwrite/models/dedicated_database_operation_list.rb +32 -0
  39. data/lib/appwrite/models/dedicated_database_replicas.rb +62 -0
  40. data/lib/appwrite/models/dedicated_database_specification.rb +67 -0
  41. data/lib/appwrite/models/dedicated_database_specification_list.rb +37 -0
  42. data/lib/appwrite/models/dedicated_database_specification_pricing.rb +42 -0
  43. data/lib/appwrite/models/embedding.rb +42 -0
  44. data/lib/appwrite/models/embedding_list.rb +32 -0
  45. data/lib/appwrite/models/file.rb +10 -0
  46. data/lib/appwrite/models/mfa_challenge_secret.rb +47 -0
  47. data/lib/appwrite/models/mfa_factors.rb +8 -3
  48. data/lib/appwrite/models/oauth2_approve.rb +27 -0
  49. data/lib/appwrite/models/oauth2_authorize.rb +32 -0
  50. data/lib/appwrite/models/oauth2_consent.rb +72 -0
  51. data/lib/appwrite/models/oauth2_consent_list.rb +32 -0
  52. data/lib/appwrite/models/oauth2_consent_token.rb +77 -0
  53. data/lib/appwrite/models/oauth2_consent_token_list.rb +32 -0
  54. data/lib/appwrite/models/oauth2_device_authorization.rb +52 -0
  55. data/lib/appwrite/models/oauth2_grant.rb +82 -0
  56. data/lib/appwrite/models/oauth2_organization.rb +27 -0
  57. data/lib/appwrite/models/oauth2_organization_list.rb +32 -0
  58. data/lib/appwrite/models/oauth2_par.rb +32 -0
  59. data/lib/appwrite/models/oauth2_project.rb +37 -0
  60. data/lib/appwrite/models/oauth2_project_list.rb +32 -0
  61. data/lib/appwrite/models/oauth2_reject.rb +27 -0
  62. data/lib/appwrite/models/oauth2_token.rb +57 -0
  63. data/lib/appwrite/models/organization.rb +12 -12
  64. data/lib/appwrite/models/policy_mfa_factors.rb +47 -0
  65. data/lib/appwrite/models/project.rb +15 -0
  66. data/lib/appwrite/models/project_auth_method.rb +3 -3
  67. data/lib/appwrite/models/proxy_invalidation.rb +42 -0
  68. data/lib/appwrite/models/usage_billing_plan.rb +9 -9
  69. data/lib/appwrite/services/account.rb +210 -33
  70. data/lib/appwrite/services/activities.rb +1 -1
  71. data/lib/appwrite/services/apps.rb +855 -0
  72. data/lib/appwrite/services/backups.rb +31 -12
  73. data/lib/appwrite/services/databases.rb +4 -4
  74. data/lib/appwrite/services/embeddings.rb +48 -0
  75. data/lib/appwrite/services/functions.rb +1 -1
  76. data/lib/appwrite/services/oauth2.rb +525 -0
  77. data/lib/appwrite/services/organization.rb +168 -0
  78. data/lib/appwrite/services/project.rb +54 -57
  79. data/lib/appwrite/services/proxy.rb +44 -0
  80. data/lib/appwrite/services/sites.rb +4 -2
  81. data/lib/appwrite/services/storage.rb +4 -2
  82. data/lib/appwrite/services/tables_db.rb +378 -6
  83. data/lib/appwrite/services/teams.rb +198 -0
  84. data/lib/appwrite/services/users.rb +38 -0
  85. data/lib/appwrite.rb +50 -0
  86. metadata +52 -2
@@ -0,0 +1,47 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class AppScope
6
+ attr_reader :value
7
+ attr_reader :description
8
+ attr_reader :type
9
+ attr_reader :category
10
+ attr_reader :deprecated
11
+
12
+ def initialize(
13
+ value:,
14
+ description:,
15
+ type:,
16
+ category:,
17
+ deprecated:
18
+ )
19
+ @value = value
20
+ @description = description
21
+ @type = type
22
+ @category = category
23
+ @deprecated = deprecated
24
+ end
25
+
26
+ def self.from(map:)
27
+ AppScope.new(
28
+ value: map["value"],
29
+ description: map["description"],
30
+ type: map["type"],
31
+ category: map["category"],
32
+ deprecated: map["deprecated"]
33
+ )
34
+ end
35
+
36
+ def to_map
37
+ {
38
+ "value": @value,
39
+ "description": @description,
40
+ "type": @type,
41
+ "category": @category,
42
+ "deprecated": @deprecated
43
+ }
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,32 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class AppScopeList
6
+ attr_reader :total
7
+ attr_reader :scopes
8
+
9
+ def initialize(
10
+ total:,
11
+ scopes:
12
+ )
13
+ @total = total
14
+ @scopes = scopes
15
+ end
16
+
17
+ def self.from(map:)
18
+ AppScopeList.new(
19
+ total: map["total"],
20
+ scopes: map["scopes"].map { |it| AppScope.from(map: it) }
21
+ )
22
+ end
23
+
24
+ def to_map
25
+ {
26
+ "total": @total,
27
+ "scopes": @scopes.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 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
@@ -83,8 +84,9 @@ module Appwrite
83
84
  storage:,
84
85
  image_transformations:,
85
86
  screenshots_generated:,
86
- members:,
87
+ members: ,
87
88
  webhooks:,
89
+ waf_rules:,
88
90
  projects:,
89
91
  platforms:,
90
92
  users:,
@@ -106,7 +108,7 @@ module Appwrite
106
108
  topics:,
107
109
  auth_phone:,
108
110
  domains:,
109
- activity_logs:,
111
+ activity_logs: ,
110
112
  usage_logs:,
111
113
  usage_logs_intervals: ,
112
114
  project_inactivity_days:,
@@ -130,10 +132,10 @@ module Appwrite
130
132
  supports_free_email_validation:,
131
133
  supports_corporate_email_validation:,
132
134
  supports_project_specific_roles:,
133
- backups_enabled:,
135
+ backups_enabled: ,
134
136
  usage_per_project:,
135
137
  supported_addons:,
136
- backup_policies:,
138
+ backup_policies: ,
137
139
  deployment_size:,
138
140
  build_size:,
139
141
  databases_allow_encrypt:,
@@ -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,
@@ -7,8 +7,8 @@ module Appwrite
7
7
  attr_reader :projects
8
8
 
9
9
  def initialize(
10
- seats:,
11
- projects:
10
+ seats: ,
11
+ projects:
12
12
  )
13
13
  @seats = seats
14
14
  @projects = projects
@@ -16,15 +16,15 @@ module Appwrite
16
16
 
17
17
  def self.from(map:)
18
18
  BillingPlanAddon.new(
19
- seats: BillingPlanAddonDetails.from(map: map["seats"]),
20
- projects: BillingPlanAddonDetails.from(map: map["projects"])
19
+ seats: map["seats"].nil? ? nil : BillingPlanAddonDetails.from(map: map["seats"]),
20
+ projects: map["projects"].nil? ? nil : BillingPlanAddonDetails.from(map: map["projects"])
21
21
  )
22
22
  end
23
23
 
24
24
  def to_map
25
25
  {
26
- "seats": @seats.to_map,
27
- "projects": @projects.to_map
26
+ "seats": @seats&.to_map,
27
+ "projects": @projects&.to_map
28
28
  }
29
29
  end
30
30
  end
@@ -17,7 +17,7 @@ module Appwrite
17
17
  plan_included:,
18
18
  limit:,
19
19
  type:,
20
- currency:,
20
+ currency: ,
21
21
  price:,
22
22
  value:,
23
23
  invoice_desc:
@@ -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,102 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class DatabaseMigration
6
+ attr_reader :id
7
+ attr_reader :created_at
8
+ attr_reader :updated_at
9
+ attr_reader :project_id
10
+ attr_reader :database_id
11
+ attr_reader :specification
12
+ attr_reader :phase
13
+ attr_reader :attempt
14
+ attr_reader :last_error
15
+ attr_reader :lag_documents
16
+ attr_reader :verified_at
17
+ attr_reader :cutover_at
18
+ attr_reader :soak_until
19
+ attr_reader :auto_cutover
20
+ attr_reader :cutover_requested
21
+ attr_reader :paused
22
+
23
+ def initialize(
24
+ id:,
25
+ created_at:,
26
+ updated_at:,
27
+ project_id:,
28
+ database_id:,
29
+ specification:,
30
+ phase:,
31
+ attempt:,
32
+ last_error:,
33
+ lag_documents:,
34
+ verified_at:,
35
+ cutover_at:,
36
+ soak_until:,
37
+ auto_cutover:,
38
+ cutover_requested:,
39
+ paused:
40
+ )
41
+ @id = id
42
+ @created_at = created_at
43
+ @updated_at = updated_at
44
+ @project_id = project_id
45
+ @database_id = database_id
46
+ @specification = specification
47
+ @phase = phase
48
+ @attempt = attempt
49
+ @last_error = last_error
50
+ @lag_documents = lag_documents
51
+ @verified_at = verified_at
52
+ @cutover_at = cutover_at
53
+ @soak_until = soak_until
54
+ @auto_cutover = auto_cutover
55
+ @cutover_requested = cutover_requested
56
+ @paused = paused
57
+ end
58
+
59
+ def self.from(map:)
60
+ DatabaseMigration.new(
61
+ id: map["$id"],
62
+ created_at: map["$createdAt"],
63
+ updated_at: map["$updatedAt"],
64
+ project_id: map["projectId"],
65
+ database_id: map["databaseId"],
66
+ specification: map["specification"],
67
+ phase: map["phase"],
68
+ attempt: map["attempt"],
69
+ last_error: map["lastError"],
70
+ lag_documents: map["lagDocuments"],
71
+ verified_at: map["verifiedAt"],
72
+ cutover_at: map["cutoverAt"],
73
+ soak_until: map["soakUntil"],
74
+ auto_cutover: map["autoCutover"],
75
+ cutover_requested: map["cutoverRequested"],
76
+ paused: map["paused"]
77
+ )
78
+ end
79
+
80
+ def to_map
81
+ {
82
+ "$id": @id,
83
+ "$createdAt": @created_at,
84
+ "$updatedAt": @updated_at,
85
+ "projectId": @project_id,
86
+ "databaseId": @database_id,
87
+ "specification": @specification,
88
+ "phase": @phase,
89
+ "attempt": @attempt,
90
+ "lastError": @last_error,
91
+ "lagDocuments": @lag_documents,
92
+ "verifiedAt": @verified_at,
93
+ "cutoverAt": @cutover_at,
94
+ "soakUntil": @soak_until,
95
+ "autoCutover": @auto_cutover,
96
+ "cutoverRequested": @cutover_requested,
97
+ "paused": @paused
98
+ }
99
+ end
100
+ end
101
+ end
102
+ end
@@ -0,0 +1,32 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class DatabaseMigrationList
6
+ attr_reader :total
7
+ attr_reader :migrations
8
+
9
+ def initialize(
10
+ total:,
11
+ migrations:
12
+ )
13
+ @total = total
14
+ @migrations = migrations
15
+ end
16
+
17
+ def self.from(map:)
18
+ DatabaseMigrationList.new(
19
+ total: map["total"],
20
+ migrations: map["migrations"].map { |it| DatabaseMigration.from(map: it) }
21
+ )
22
+ end
23
+
24
+ def to_map
25
+ {
26
+ "total": @total,
27
+ "migrations": @migrations.map { |it| it.to_map }
28
+ }
29
+ end
30
+ end
31
+ end
32
+ end