appwrite 25.1.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 (109) hide show
  1. checksums.yaml +4 -4
  2. data/lib/appwrite/client.rb +18 -4
  3. data/lib/appwrite/enums/billing_plan_group.rb +9 -0
  4. data/lib/appwrite/enums/database_status.rb +20 -0
  5. data/lib/appwrite/enums/database_type.rb +3 -0
  6. data/lib/appwrite/enums/o_auth2_oidc_prompt.rb +10 -0
  7. data/lib/appwrite/enums/o_auth_provider.rb +1 -0
  8. data/lib/appwrite/enums/organization_key_scopes.rb +6 -0
  9. data/lib/appwrite/enums/project_key_scopes.rb +10 -2
  10. data/lib/appwrite/enums/project_o_auth2_oidc_prompt.rb +10 -0
  11. data/lib/appwrite/enums/project_o_auth_provider_id.rb +1 -0
  12. data/lib/appwrite/enums/project_policy_id.rb +1 -0
  13. data/lib/appwrite/enums/project_service_id.rb +1 -0
  14. data/lib/appwrite/models/activity_event.rb +55 -70
  15. data/lib/appwrite/models/additional_resource.rb +52 -0
  16. data/lib/appwrite/models/app.rb +152 -0
  17. data/lib/appwrite/models/app_installation.rb +72 -0
  18. data/lib/appwrite/models/app_installation_list.rb +32 -0
  19. data/lib/appwrite/models/app_key.rb +67 -0
  20. data/lib/appwrite/models/{usage_gauge_list.rb → app_key_list.rb} +7 -7
  21. data/lib/appwrite/models/app_scope.rb +47 -0
  22. data/lib/appwrite/models/{usage_event_list.rb → app_scope_list.rb} +7 -7
  23. data/lib/appwrite/models/app_secret.rb +67 -0
  24. data/lib/appwrite/models/{health_status_list.rb → app_secret_list.rb} +7 -7
  25. data/lib/appwrite/models/app_secret_plaintext.rb +67 -0
  26. data/lib/appwrite/models/apps_list.rb +32 -0
  27. data/lib/appwrite/models/backup_policy.rb +5 -0
  28. data/lib/appwrite/models/billing_plan.rb +384 -0
  29. data/lib/appwrite/models/billing_plan_addon.rb +32 -0
  30. data/lib/appwrite/models/billing_plan_addon_details.rb +62 -0
  31. data/lib/appwrite/models/billing_plan_dedicated_database_limits.rb +117 -0
  32. data/lib/appwrite/models/billing_plan_limits.rb +32 -0
  33. data/lib/appwrite/models/billing_plan_supported_addons.rb +37 -0
  34. data/lib/appwrite/models/block.rb +5 -0
  35. data/lib/appwrite/models/database.rb +54 -6
  36. data/lib/appwrite/models/database_status.rb +62 -0
  37. data/lib/appwrite/models/database_status_connections.rb +32 -0
  38. data/lib/appwrite/models/database_status_replica.rb +42 -0
  39. data/lib/appwrite/models/database_status_volume.rb +42 -0
  40. data/lib/appwrite/models/dedicated_database.rb +267 -0
  41. data/lib/appwrite/models/dedicated_database_member.rb +42 -0
  42. data/lib/appwrite/models/dedicated_database_replicas.rb +37 -0
  43. data/lib/appwrite/models/dedicated_database_specification.rb +67 -0
  44. data/lib/appwrite/models/dedicated_database_specification_list.rb +37 -0
  45. data/lib/appwrite/models/dedicated_database_specification_pricing.rb +47 -0
  46. data/lib/appwrite/models/locale.rb +58 -3
  47. data/lib/appwrite/models/membership.rb +5 -0
  48. data/lib/appwrite/models/o_auth2_appwrite.rb +42 -0
  49. data/lib/appwrite/models/o_auth2_oidc.rb +13 -3
  50. data/lib/appwrite/models/oauth2_approve.rb +27 -0
  51. data/lib/appwrite/models/oauth2_authorize.rb +32 -0
  52. data/lib/appwrite/models/oauth2_consent.rb +72 -0
  53. data/lib/appwrite/models/oauth2_consent_list.rb +32 -0
  54. data/lib/appwrite/models/oauth2_consent_token.rb +77 -0
  55. data/lib/appwrite/models/oauth2_consent_token_list.rb +32 -0
  56. data/lib/appwrite/models/oauth2_device_authorization.rb +52 -0
  57. data/lib/appwrite/models/oauth2_grant.rb +82 -0
  58. data/lib/appwrite/models/{health_queue.rb → oauth2_organization.rb} +7 -7
  59. data/lib/appwrite/models/oauth2_organization_list.rb +32 -0
  60. data/lib/appwrite/models/oauth2_par.rb +32 -0
  61. data/lib/appwrite/models/oauth2_project.rb +37 -0
  62. data/lib/appwrite/models/oauth2_project_list.rb +32 -0
  63. data/lib/appwrite/models/oauth2_reject.rb +27 -0
  64. data/lib/appwrite/models/oauth2_token.rb +57 -0
  65. data/lib/appwrite/models/organization.rb +197 -0
  66. data/lib/appwrite/models/policy_deny_corporate_email.rb +32 -0
  67. data/lib/appwrite/models/policy_membership_privacy.rb +8 -3
  68. data/lib/appwrite/models/program.rb +67 -0
  69. data/lib/appwrite/models/project.rb +56 -11
  70. data/lib/appwrite/models/project_auth_method.rb +3 -3
  71. data/lib/appwrite/models/usage_billing_plan.rb +77 -0
  72. data/lib/appwrite/models/user.rb +25 -0
  73. data/lib/appwrite/query.rb +13 -1
  74. data/lib/appwrite/services/account.rb +251 -1
  75. data/lib/appwrite/services/activities.rb +2 -0
  76. data/lib/appwrite/services/advisor.rb +4 -0
  77. data/lib/appwrite/services/apps.rb +813 -0
  78. data/lib/appwrite/services/avatars.rb +8 -0
  79. data/lib/appwrite/services/backups.rb +38 -1
  80. data/lib/appwrite/services/databases.rb +107 -0
  81. data/lib/appwrite/services/functions.rb +30 -4
  82. data/lib/appwrite/services/graphql.rb +2 -0
  83. data/lib/appwrite/services/locale.rb +8 -0
  84. data/lib/appwrite/services/messaging.rb +42 -136
  85. data/lib/appwrite/services/oauth2.rb +525 -0
  86. data/lib/appwrite/services/organization.rb +436 -3
  87. data/lib/appwrite/services/presences.rb +4 -0
  88. data/lib/appwrite/services/project.rb +192 -9
  89. data/lib/appwrite/services/proxy.rb +7 -0
  90. data/lib/appwrite/services/sites.rb +28 -2
  91. data/lib/appwrite/services/storage.rb +11 -0
  92. data/lib/appwrite/services/tables_db.rb +201 -2
  93. data/lib/appwrite/services/teams.rb +209 -0
  94. data/lib/appwrite/services/tokens.rb +4 -0
  95. data/lib/appwrite/services/users.rb +38 -1
  96. data/lib/appwrite/services/webhooks.rb +5 -0
  97. data/lib/appwrite.rb +54 -15
  98. metadata +56 -17
  99. data/lib/appwrite/enums/health_antivirus_status.rb +0 -9
  100. data/lib/appwrite/enums/health_check_status.rb +0 -8
  101. data/lib/appwrite/enums/health_queue_name.rb +0 -19
  102. data/lib/appwrite/models/health_antivirus.rb +0 -49
  103. data/lib/appwrite/models/health_certificate.rb +0 -52
  104. data/lib/appwrite/models/health_status.rb +0 -53
  105. data/lib/appwrite/models/health_time.rb +0 -37
  106. data/lib/appwrite/models/usage_event.rb +0 -72
  107. data/lib/appwrite/models/usage_gauge.rb +0 -47
  108. data/lib/appwrite/services/health.rb +0 -681
  109. data/lib/appwrite/services/usage.rb +0 -88
@@ -6,6 +6,7 @@ module Appwrite
6
6
  attr_reader :created_at
7
7
  attr_reader :resource_type
8
8
  attr_reader :resource_id
9
+ attr_reader :mode
9
10
  attr_reader :reason
10
11
  attr_reader :expired_at
11
12
  attr_reader :project_name
@@ -18,6 +19,7 @@ module Appwrite
18
19
  created_at:,
19
20
  resource_type:,
20
21
  resource_id:,
22
+ mode:,
21
23
  reason: ,
22
24
  expired_at: ,
23
25
  project_name:,
@@ -29,6 +31,7 @@ module Appwrite
29
31
  @created_at = created_at
30
32
  @resource_type = resource_type
31
33
  @resource_id = resource_id
34
+ @mode = mode
32
35
  @reason = reason
33
36
  @expired_at = expired_at
34
37
  @project_name = project_name
@@ -43,6 +46,7 @@ module Appwrite
43
46
  created_at: map["$createdAt"],
44
47
  resource_type: map["resourceType"],
45
48
  resource_id: map["resourceId"],
49
+ mode: map["mode"],
46
50
  reason: map["reason"],
47
51
  expired_at: map["expiredAt"],
48
52
  project_name: map["projectName"],
@@ -58,6 +62,7 @@ module Appwrite
58
62
  "$createdAt": @created_at,
59
63
  "resourceType": @resource_type,
60
64
  "resourceId": @resource_id,
65
+ "mode": @mode,
61
66
  "reason": @reason,
62
67
  "expiredAt": @expired_at,
63
68
  "projectName": @project_name,
@@ -9,6 +9,10 @@ module Appwrite
9
9
  attr_reader :updated_at
10
10
  attr_reader :enabled
11
11
  attr_reader :type
12
+ attr_reader :status
13
+ attr_reader :engine
14
+ attr_reader :specification
15
+ attr_reader :replicas
12
16
  attr_reader :policies
13
17
  attr_reader :archives
14
18
 
@@ -19,8 +23,12 @@ module Appwrite
19
23
  updated_at:,
20
24
  enabled:,
21
25
  type:,
22
- policies:,
23
- archives:
26
+ status: ,
27
+ engine: ,
28
+ specification: ,
29
+ replicas: ,
30
+ policies: ,
31
+ archives:
24
32
  )
25
33
  @id = id
26
34
  @name = name
@@ -28,6 +36,10 @@ module Appwrite
28
36
  @updated_at = updated_at
29
37
  @enabled = enabled
30
38
  @type = validate_type(type)
39
+ @status = status.nil? ? status : validate_status(status)
40
+ @engine = engine
41
+ @specification = specification
42
+ @replicas = replicas
31
43
  @policies = policies
32
44
  @archives = archives
33
45
  end
@@ -40,8 +52,12 @@ module Appwrite
40
52
  updated_at: map["$updatedAt"],
41
53
  enabled: map["enabled"],
42
54
  type: map["type"],
43
- policies: map["policies"].map { |it| BackupPolicy.from(map: it) },
44
- archives: map["archives"].map { |it| BackupArchive.from(map: it) }
55
+ status: map["status"],
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) }
45
61
  )
46
62
  end
47
63
 
@@ -53,8 +69,12 @@ module Appwrite
53
69
  "$updatedAt": @updated_at,
54
70
  "enabled": @enabled,
55
71
  "type": @type,
56
- "policies": @policies.map { |it| it.to_map },
57
- "archives": @archives.map { |it| it.to_map }
72
+ "status": @status,
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 }
58
78
  }
59
79
  end
60
80
 
@@ -66,6 +86,9 @@ module Appwrite
66
86
  Appwrite::Enums::DatabaseType::TABLESDB,
67
87
  Appwrite::Enums::DatabaseType::DOCUMENTSDB,
68
88
  Appwrite::Enums::DatabaseType::VECTORSDB,
89
+ Appwrite::Enums::DatabaseType::MYSQL,
90
+ Appwrite::Enums::DatabaseType::POSTGRESQL,
91
+ Appwrite::Enums::DatabaseType::MONGODB,
69
92
  ]
70
93
 
71
94
  unless valid_type.include?(type)
@@ -75,6 +98,31 @@ module Appwrite
75
98
  type
76
99
  end
77
100
 
101
+ def validate_status(status)
102
+ valid_status = [
103
+ Appwrite::Enums::DatabaseStatus::PROVISIONING,
104
+ Appwrite::Enums::DatabaseStatus::READY,
105
+ Appwrite::Enums::DatabaseStatus::INACTIVE,
106
+ Appwrite::Enums::DatabaseStatus::PAUSED,
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,
117
+ ]
118
+
119
+ unless valid_status.include?(status)
120
+ raise ArgumentError, "Invalid " + status + ". Must be one of: " + valid_status.join(', ')
121
+ end
122
+
123
+ status
124
+ end
125
+
78
126
  end
79
127
  end
80
128
  end
@@ -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
@@ -0,0 +1,267 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class DedicatedDatabase
6
+ attr_reader :id
7
+ attr_reader :created_at
8
+ attr_reader :updated_at
9
+ attr_reader :project_id
10
+ attr_reader :name
11
+ attr_reader :api
12
+ attr_reader :engine
13
+ attr_reader :version
14
+ attr_reader :specification
15
+ attr_reader :backend
16
+ attr_reader :hostname
17
+ attr_reader :connection_port
18
+ attr_reader :connection_user
19
+ attr_reader :connection_password
20
+ attr_reader :connection_string
21
+ attr_reader :ssl
22
+ attr_reader :status
23
+ attr_reader :container_status
24
+ attr_reader :last_accessed_at
25
+ attr_reader :idle_until
26
+ attr_reader :lifecycle_state
27
+ attr_reader :idle_timeout_minutes
28
+ attr_reader :cpu
29
+ attr_reader :memory
30
+ attr_reader :storage
31
+ attr_reader :storage_class
32
+ attr_reader :storage_max_gb
33
+ attr_reader :node_pool
34
+ attr_reader :replicas
35
+ attr_reader :sync_mode
36
+ attr_reader :cross_region_replicas
37
+ attr_reader :network_max_connections
38
+ attr_reader :network_idle_timeout_seconds
39
+ attr_reader :network_ip_allowlist
40
+ attr_reader :backup_enabled
41
+ attr_reader :pitr
42
+ attr_reader :pitr_retention_days
43
+ attr_reader :storage_autoscaling
44
+ attr_reader :storage_autoscaling_threshold_percent
45
+ attr_reader :storage_autoscaling_max_gb
46
+ attr_reader :maintenance_window_day
47
+ attr_reader :maintenance_window_hour_utc
48
+ attr_reader :metrics_enabled
49
+ attr_reader :sql_api_enabled
50
+ attr_reader :sql_api_allowed_statements
51
+ attr_reader :sql_api_max_rows
52
+ attr_reader :sql_api_max_bytes
53
+ attr_reader :sql_api_timeout_seconds
54
+ attr_reader :error
55
+
56
+ def initialize(
57
+ id:,
58
+ created_at:,
59
+ updated_at:,
60
+ project_id:,
61
+ name:,
62
+ api:,
63
+ engine:,
64
+ version:,
65
+ specification:,
66
+ backend:,
67
+ hostname:,
68
+ connection_port:,
69
+ connection_user:,
70
+ connection_password:,
71
+ connection_string:,
72
+ ssl:,
73
+ status:,
74
+ container_status:,
75
+ last_accessed_at: ,
76
+ idle_until: ,
77
+ lifecycle_state:,
78
+ idle_timeout_minutes:,
79
+ cpu:,
80
+ memory:,
81
+ storage:,
82
+ storage_class:,
83
+ storage_max_gb:,
84
+ node_pool:,
85
+ replicas:,
86
+ sync_mode:,
87
+ cross_region_replicas:,
88
+ network_max_connections:,
89
+ network_idle_timeout_seconds:,
90
+ network_ip_allowlist:,
91
+ backup_enabled:,
92
+ pitr:,
93
+ pitr_retention_days:,
94
+ storage_autoscaling:,
95
+ storage_autoscaling_threshold_percent:,
96
+ storage_autoscaling_max_gb:,
97
+ maintenance_window_day:,
98
+ maintenance_window_hour_utc:,
99
+ metrics_enabled:,
100
+ sql_api_enabled:,
101
+ sql_api_allowed_statements:,
102
+ sql_api_max_rows:,
103
+ sql_api_max_bytes:,
104
+ sql_api_timeout_seconds:,
105
+ error:
106
+ )
107
+ @id = id
108
+ @created_at = created_at
109
+ @updated_at = updated_at
110
+ @project_id = project_id
111
+ @name = name
112
+ @api = api
113
+ @engine = engine
114
+ @version = version
115
+ @specification = specification
116
+ @backend = backend
117
+ @hostname = hostname
118
+ @connection_port = connection_port
119
+ @connection_user = connection_user
120
+ @connection_password = connection_password
121
+ @connection_string = connection_string
122
+ @ssl = ssl
123
+ @status = status
124
+ @container_status = container_status
125
+ @last_accessed_at = last_accessed_at
126
+ @idle_until = idle_until
127
+ @lifecycle_state = lifecycle_state
128
+ @idle_timeout_minutes = idle_timeout_minutes
129
+ @cpu = cpu
130
+ @memory = memory
131
+ @storage = storage
132
+ @storage_class = storage_class
133
+ @storage_max_gb = storage_max_gb
134
+ @node_pool = node_pool
135
+ @replicas = replicas
136
+ @sync_mode = sync_mode
137
+ @cross_region_replicas = cross_region_replicas
138
+ @network_max_connections = network_max_connections
139
+ @network_idle_timeout_seconds = network_idle_timeout_seconds
140
+ @network_ip_allowlist = network_ip_allowlist
141
+ @backup_enabled = backup_enabled
142
+ @pitr = pitr
143
+ @pitr_retention_days = pitr_retention_days
144
+ @storage_autoscaling = storage_autoscaling
145
+ @storage_autoscaling_threshold_percent = storage_autoscaling_threshold_percent
146
+ @storage_autoscaling_max_gb = storage_autoscaling_max_gb
147
+ @maintenance_window_day = maintenance_window_day
148
+ @maintenance_window_hour_utc = maintenance_window_hour_utc
149
+ @metrics_enabled = metrics_enabled
150
+ @sql_api_enabled = sql_api_enabled
151
+ @sql_api_allowed_statements = sql_api_allowed_statements
152
+ @sql_api_max_rows = sql_api_max_rows
153
+ @sql_api_max_bytes = sql_api_max_bytes
154
+ @sql_api_timeout_seconds = sql_api_timeout_seconds
155
+ @error = error
156
+ end
157
+
158
+ def self.from(map:)
159
+ DedicatedDatabase.new(
160
+ id: map["$id"],
161
+ created_at: map["$createdAt"],
162
+ updated_at: map["$updatedAt"],
163
+ project_id: map["projectId"],
164
+ name: map["name"],
165
+ api: map["api"],
166
+ engine: map["engine"],
167
+ version: map["version"],
168
+ specification: map["specification"],
169
+ backend: map["backend"],
170
+ hostname: map["hostname"],
171
+ connection_port: map["connectionPort"],
172
+ connection_user: map["connectionUser"],
173
+ connection_password: map["connectionPassword"],
174
+ connection_string: map["connectionString"],
175
+ ssl: map["ssl"],
176
+ status: map["status"],
177
+ container_status: map["containerStatus"],
178
+ last_accessed_at: map["lastAccessedAt"],
179
+ idle_until: map["idleUntil"],
180
+ lifecycle_state: map["lifecycleState"],
181
+ idle_timeout_minutes: map["idleTimeoutMinutes"],
182
+ cpu: map["cpu"],
183
+ memory: map["memory"],
184
+ storage: map["storage"],
185
+ storage_class: map["storageClass"],
186
+ storage_max_gb: map["storageMaxGb"],
187
+ node_pool: map["nodePool"],
188
+ replicas: map["replicas"],
189
+ sync_mode: map["syncMode"],
190
+ cross_region_replicas: map["crossRegionReplicas"],
191
+ network_max_connections: map["networkMaxConnections"],
192
+ network_idle_timeout_seconds: map["networkIdleTimeoutSeconds"],
193
+ network_ip_allowlist: map["networkIPAllowlist"],
194
+ backup_enabled: map["backupEnabled"],
195
+ pitr: map["pitr"],
196
+ pitr_retention_days: map["pitrRetentionDays"],
197
+ storage_autoscaling: map["storageAutoscaling"],
198
+ storage_autoscaling_threshold_percent: map["storageAutoscalingThresholdPercent"],
199
+ storage_autoscaling_max_gb: map["storageAutoscalingMaxGb"],
200
+ maintenance_window_day: map["maintenanceWindowDay"],
201
+ maintenance_window_hour_utc: map["maintenanceWindowHourUtc"],
202
+ metrics_enabled: map["metricsEnabled"],
203
+ sql_api_enabled: map["sqlApiEnabled"],
204
+ sql_api_allowed_statements: map["sqlApiAllowedStatements"],
205
+ sql_api_max_rows: map["sqlApiMaxRows"],
206
+ sql_api_max_bytes: map["sqlApiMaxBytes"],
207
+ sql_api_timeout_seconds: map["sqlApiTimeoutSeconds"],
208
+ error: map["error"]
209
+ )
210
+ end
211
+
212
+ def to_map
213
+ {
214
+ "$id": @id,
215
+ "$createdAt": @created_at,
216
+ "$updatedAt": @updated_at,
217
+ "projectId": @project_id,
218
+ "name": @name,
219
+ "api": @api,
220
+ "engine": @engine,
221
+ "version": @version,
222
+ "specification": @specification,
223
+ "backend": @backend,
224
+ "hostname": @hostname,
225
+ "connectionPort": @connection_port,
226
+ "connectionUser": @connection_user,
227
+ "connectionPassword": @connection_password,
228
+ "connectionString": @connection_string,
229
+ "ssl": @ssl,
230
+ "status": @status,
231
+ "containerStatus": @container_status,
232
+ "lastAccessedAt": @last_accessed_at,
233
+ "idleUntil": @idle_until,
234
+ "lifecycleState": @lifecycle_state,
235
+ "idleTimeoutMinutes": @idle_timeout_minutes,
236
+ "cpu": @cpu,
237
+ "memory": @memory,
238
+ "storage": @storage,
239
+ "storageClass": @storage_class,
240
+ "storageMaxGb": @storage_max_gb,
241
+ "nodePool": @node_pool,
242
+ "replicas": @replicas,
243
+ "syncMode": @sync_mode,
244
+ "crossRegionReplicas": @cross_region_replicas,
245
+ "networkMaxConnections": @network_max_connections,
246
+ "networkIdleTimeoutSeconds": @network_idle_timeout_seconds,
247
+ "networkIPAllowlist": @network_ip_allowlist,
248
+ "backupEnabled": @backup_enabled,
249
+ "pitr": @pitr,
250
+ "pitrRetentionDays": @pitr_retention_days,
251
+ "storageAutoscaling": @storage_autoscaling,
252
+ "storageAutoscalingThresholdPercent": @storage_autoscaling_threshold_percent,
253
+ "storageAutoscalingMaxGb": @storage_autoscaling_max_gb,
254
+ "maintenanceWindowDay": @maintenance_window_day,
255
+ "maintenanceWindowHourUtc": @maintenance_window_hour_utc,
256
+ "metricsEnabled": @metrics_enabled,
257
+ "sqlApiEnabled": @sql_api_enabled,
258
+ "sqlApiAllowedStatements": @sql_api_allowed_statements,
259
+ "sqlApiMaxRows": @sql_api_max_rows,
260
+ "sqlApiMaxBytes": @sql_api_max_bytes,
261
+ "sqlApiTimeoutSeconds": @sql_api_timeout_seconds,
262
+ "error": @error
263
+ }
264
+ end
265
+ end
266
+ end
267
+ end
@@ -0,0 +1,42 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class DedicatedDatabaseMember
6
+ attr_reader :id
7
+ attr_reader :role
8
+ attr_reader :status
9
+ attr_reader :lag_seconds
10
+
11
+ def initialize(
12
+ id:,
13
+ role:,
14
+ status:,
15
+ lag_seconds:
16
+ )
17
+ @id = id
18
+ @role = role
19
+ @status = status
20
+ @lag_seconds = lag_seconds
21
+ end
22
+
23
+ def self.from(map:)
24
+ DedicatedDatabaseMember.new(
25
+ id: map["$id"],
26
+ role: map["role"],
27
+ status: map["status"],
28
+ lag_seconds: map["lagSeconds"]
29
+ )
30
+ end
31
+
32
+ def to_map
33
+ {
34
+ "$id": @id,
35
+ "role": @role,
36
+ "status": @status,
37
+ "lagSeconds": @lag_seconds
38
+ }
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,37 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class DedicatedDatabaseReplicas
6
+ attr_reader :replicas
7
+ attr_reader :sync_mode
8
+ attr_reader :members
9
+
10
+ def initialize(
11
+ replicas:,
12
+ sync_mode:,
13
+ members:
14
+ )
15
+ @replicas = replicas
16
+ @sync_mode = sync_mode
17
+ @members = members
18
+ end
19
+
20
+ def self.from(map:)
21
+ DedicatedDatabaseReplicas.new(
22
+ replicas: map["replicas"],
23
+ sync_mode: map["syncMode"],
24
+ members: map["members"].map { |it| DedicatedDatabaseMember.from(map: it) }
25
+ )
26
+ end
27
+
28
+ def to_map
29
+ {
30
+ "replicas": @replicas,
31
+ "syncMode": @sync_mode,
32
+ "members": @members.map { |it| it.to_map }
33
+ }
34
+ end
35
+ end
36
+ end
37
+ end