appwrite 28.3.1 → 28.4.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 (93) hide show
  1. checksums.yaml +4 -4
  2. data/lib/appwrite/client.rb +20 -4
  3. data/lib/appwrite/enums/billing_plan_group.rb +2 -0
  4. data/lib/appwrite/enums/build_runtime.rb +2 -0
  5. data/lib/appwrite/enums/databases_index_type.rb +1 -0
  6. data/lib/appwrite/enums/domain_registration_type.rb +10 -0
  7. data/lib/appwrite/enums/domain_transfer_status_enum.rb +14 -0
  8. data/lib/appwrite/enums/framework.rb +1 -0
  9. data/lib/appwrite/enums/id_token_provider.rb +8 -0
  10. data/lib/appwrite/enums/image_gravity.rb +1 -0
  11. data/lib/appwrite/enums/o_auth2_auth0_prompt.rb +9 -0
  12. data/lib/appwrite/enums/o_auth2_discord_prompt.rb +8 -0
  13. data/lib/appwrite/enums/o_auth2_github_prompt.rb +7 -0
  14. data/lib/appwrite/enums/o_auth2_kakao_prompt.rb +10 -0
  15. data/lib/appwrite/enums/o_auth2_microsoft_prompt.rb +10 -0
  16. data/lib/appwrite/enums/o_auth2_okta_prompt.rb +9 -0
  17. data/lib/appwrite/enums/o_auth2_salesforce_prompt.rb +8 -0
  18. data/lib/appwrite/enums/o_auth2_zoho_prompt.rb +7 -0
  19. data/lib/appwrite/enums/o_auth_provider.rb +3 -0
  20. data/lib/appwrite/enums/project_email_template_id.rb +2 -0
  21. data/lib/appwrite/enums/project_key_scopes.rb +4 -0
  22. data/lib/appwrite/enums/project_o_auth2_auth0_prompt.rb +9 -0
  23. data/lib/appwrite/enums/project_o_auth2_discord_prompt.rb +8 -0
  24. data/lib/appwrite/enums/project_o_auth2_git_hub_prompt.rb +7 -0
  25. data/lib/appwrite/enums/project_o_auth2_kakao_prompt.rb +10 -0
  26. data/lib/appwrite/enums/project_o_auth2_microsoft_prompt.rb +10 -0
  27. data/lib/appwrite/enums/project_o_auth2_okta_prompt.rb +9 -0
  28. data/lib/appwrite/enums/project_o_auth2_salesforce_prompt.rb +8 -0
  29. data/lib/appwrite/enums/project_o_auth2_zoho_prompt.rb +7 -0
  30. data/lib/appwrite/enums/project_o_auth_provider_id.rb +3 -0
  31. data/lib/appwrite/enums/project_policy_id.rb +2 -0
  32. data/lib/appwrite/enums/proxy_rule_deployment_resource_type.rb +1 -0
  33. data/lib/appwrite/enums/runtime.rb +2 -0
  34. data/lib/appwrite/enums/tables_db_index_type.rb +1 -0
  35. data/lib/appwrite/enums/waf_rule_action.rb +11 -0
  36. data/lib/appwrite/models/account.rb +143 -0
  37. data/lib/appwrite/models/billing_plan.rb +12 -0
  38. data/lib/appwrite/models/dedicated_database.rb +15 -0
  39. data/lib/appwrite/models/dedicated_database_specification.rb +20 -0
  40. data/lib/appwrite/models/dns_record.rb +83 -0
  41. data/lib/appwrite/models/dns_records_list.rb +33 -0
  42. data/lib/appwrite/models/domain.rb +109 -0
  43. data/lib/appwrite/models/domain_price.rb +63 -0
  44. data/lib/appwrite/models/domain_prices_list.rb +33 -0
  45. data/lib/appwrite/models/domain_transfer_status.rb +59 -0
  46. data/lib/appwrite/models/domains_list.rb +33 -0
  47. data/lib/appwrite/models/identity.rb +8 -3
  48. data/lib/appwrite/models/o_auth2_apple.rb +13 -3
  49. data/lib/appwrite/models/o_auth2_auth0.rb +23 -0
  50. data/lib/appwrite/models/o_auth2_discord.rb +25 -3
  51. data/lib/appwrite/models/o_auth2_github.rb +24 -3
  52. data/lib/appwrite/models/o_auth2_google.rb +17 -5
  53. data/lib/appwrite/models/o_auth2_kakao.rb +67 -0
  54. data/lib/appwrite/models/o_auth2_microsoft.rb +24 -0
  55. data/lib/appwrite/models/o_auth2_oidc.rb +4 -2
  56. data/lib/appwrite/models/o_auth2_okta.rb +23 -0
  57. data/lib/appwrite/models/o_auth2_salesforce.rb +25 -3
  58. data/lib/appwrite/models/o_auth2_tik_tok.rb +43 -0
  59. data/lib/appwrite/models/o_auth2_webflow.rb +43 -0
  60. data/lib/appwrite/models/o_auth2_zoho.rb +24 -3
  61. data/lib/appwrite/models/oauth2_introspection.rb +83 -0
  62. data/lib/appwrite/models/platform_android.rb +8 -3
  63. data/lib/appwrite/models/policy_password_pwned.rb +43 -0
  64. data/lib/appwrite/models/policy_password_rotation.rb +38 -0
  65. data/lib/appwrite/models/project.rb +15 -0
  66. data/lib/appwrite/models/project_service.rb +1 -0
  67. data/lib/appwrite/models/proxy_rule.rb +1 -0
  68. data/lib/appwrite/models/topic.rb +13 -3
  69. data/lib/appwrite/models/user.rb +5 -0
  70. data/lib/appwrite/models/waf_rule_bypass.rb +111 -0
  71. data/lib/appwrite/models/waf_rule_challenge.rb +126 -0
  72. data/lib/appwrite/models/waf_rule_deny.rb +111 -0
  73. data/lib/appwrite/models/waf_rule_list.rb +33 -0
  74. data/lib/appwrite/models/waf_rule_rate_limit.rb +136 -0
  75. data/lib/appwrite/models/waf_rule_redirect.rb +121 -0
  76. data/lib/appwrite/services/account.rb +301 -5
  77. data/lib/appwrite/services/avatars.rb +71 -0
  78. data/lib/appwrite/services/databases.rb +4 -1
  79. data/lib/appwrite/services/documents_db.rb +4 -1
  80. data/lib/appwrite/services/domains.rb +2318 -0
  81. data/lib/appwrite/services/functions.rb +11 -3
  82. data/lib/appwrite/services/locale.rb +49 -14
  83. data/lib/appwrite/services/messaging.rb +130 -6
  84. data/lib/appwrite/services/oauth2.rb +45 -0
  85. data/lib/appwrite/services/organization.rb +225 -0
  86. data/lib/appwrite/services/project.rb +439 -15
  87. data/lib/appwrite/services/sites.rb +11 -3
  88. data/lib/appwrite/services/tables_db.rb +4 -1
  89. data/lib/appwrite/services/teams.rb +4 -1
  90. data/lib/appwrite/services/vectors_db.rb +4 -1
  91. data/lib/appwrite/services/waf.rb +859 -0
  92. data/lib/appwrite.rb +42 -0
  93. metadata +44 -2
@@ -16,6 +16,7 @@ module Appwrite
16
16
  attr_reader :members
17
17
  attr_reader :webhooks
18
18
  attr_reader :waf_rules
19
+ attr_reader :environments
19
20
  attr_reader :projects
20
21
  attr_reader :platforms
21
22
  attr_reader :users
@@ -50,6 +51,7 @@ module Appwrite
50
51
  attr_reader :email_branding
51
52
  attr_reader :requires_payment_method
52
53
  attr_reader :requires_billing_address
54
+ attr_reader :eligible_countries
53
55
  attr_reader :is_available
54
56
  attr_reader :self_service
55
57
  attr_reader :premium_support
@@ -91,6 +93,7 @@ module Appwrite
91
93
  members:,
92
94
  webhooks:,
93
95
  waf_rules:,
96
+ environments:,
94
97
  projects:,
95
98
  platforms:,
96
99
  users:,
@@ -125,6 +128,7 @@ module Appwrite
125
128
  email_branding:,
126
129
  requires_payment_method:,
127
130
  requires_billing_address:,
131
+ eligible_countries:,
128
132
  is_available:,
129
133
  self_service:,
130
134
  premium_support:,
@@ -165,6 +169,7 @@ module Appwrite
165
169
  @members = members
166
170
  @webhooks = webhooks
167
171
  @waf_rules = waf_rules
172
+ @environments = environments
168
173
  @projects = projects
169
174
  @platforms = platforms
170
175
  @users = users
@@ -199,6 +204,7 @@ module Appwrite
199
204
  @email_branding = email_branding
200
205
  @requires_payment_method = requires_payment_method
201
206
  @requires_billing_address = requires_billing_address
207
+ @eligible_countries = eligible_countries
202
208
  @is_available = is_available
203
209
  @self_service = self_service
204
210
  @premium_support = premium_support
@@ -242,6 +248,7 @@ module Appwrite
242
248
  members: map["members"],
243
249
  webhooks: map["webhooks"],
244
250
  waf_rules: map["wafRules"],
251
+ environments: map["environments"],
245
252
  projects: map["projects"],
246
253
  platforms: map["platforms"],
247
254
  users: map["users"],
@@ -276,6 +283,7 @@ module Appwrite
276
283
  email_branding: map["emailBranding"],
277
284
  requires_payment_method: map["requiresPaymentMethod"],
278
285
  requires_billing_address: map["requiresBillingAddress"],
286
+ eligible_countries: map["eligibleCountries"],
279
287
  is_available: map["isAvailable"],
280
288
  self_service: map["selfService"],
281
289
  premium_support: map["premiumSupport"],
@@ -320,6 +328,7 @@ module Appwrite
320
328
  "members": @members,
321
329
  "webhooks": @webhooks,
322
330
  "wafRules": @waf_rules,
331
+ "environments": @environments,
323
332
  "projects": @projects,
324
333
  "platforms": @platforms,
325
334
  "users": @users,
@@ -354,6 +363,7 @@ module Appwrite
354
363
  "emailBranding": @email_branding,
355
364
  "requiresPaymentMethod": @requires_payment_method,
356
365
  "requiresBillingAddress": @requires_billing_address,
366
+ "eligibleCountries": @eligible_countries,
357
367
  "isAvailable": @is_available,
358
368
  "selfService": @self_service,
359
369
  "premiumSupport": @premium_support,
@@ -388,6 +398,8 @@ module Appwrite
388
398
  def validate_group(group)
389
399
  valid_group = [
390
400
  Appwrite::Enums::BillingPlanGroup::STARTER,
401
+ Appwrite::Enums::BillingPlanGroup::FREE,
402
+ Appwrite::Enums::BillingPlanGroup::START,
391
403
  Appwrite::Enums::BillingPlanGroup::PRO,
392
404
  Appwrite::Enums::BillingPlanGroup::SCALE,
393
405
  ]
@@ -29,6 +29,9 @@ module Appwrite
29
29
  attr_reader :cpu
30
30
  attr_reader :memory
31
31
  attr_reader :storage
32
+ attr_reader :storage_status
33
+ attr_reader :storage_target_gb
34
+ attr_reader :storage_resize_started_at
32
35
  attr_reader :storage_class
33
36
  attr_reader :storage_max_gb
34
37
  attr_reader :node_pool
@@ -80,6 +83,9 @@ module Appwrite
80
83
  cpu:,
81
84
  memory:,
82
85
  storage:,
86
+ storage_status:,
87
+ storage_target_gb:,
88
+ storage_resize_started_at:,
83
89
  storage_class:,
84
90
  storage_max_gb:,
85
91
  node_pool:,
@@ -130,6 +136,9 @@ module Appwrite
130
136
  @cpu = cpu
131
137
  @memory = memory
132
138
  @storage = storage
139
+ @storage_status = storage_status
140
+ @storage_target_gb = storage_target_gb
141
+ @storage_resize_started_at = storage_resize_started_at
133
142
  @storage_class = storage_class
134
143
  @storage_max_gb = storage_max_gb
135
144
  @node_pool = node_pool
@@ -183,6 +192,9 @@ module Appwrite
183
192
  cpu: map["cpu"],
184
193
  memory: map["memory"],
185
194
  storage: map["storage"],
195
+ storage_status: map["storageStatus"],
196
+ storage_target_gb: map["storageTargetGb"],
197
+ storage_resize_started_at: map["storageResizeStartedAt"],
186
198
  storage_class: map["storageClass"],
187
199
  storage_max_gb: map["storageMaxGb"],
188
200
  node_pool: map["nodePool"],
@@ -237,6 +249,9 @@ module Appwrite
237
249
  "cpu": @cpu,
238
250
  "memory": @memory,
239
251
  "storage": @storage,
252
+ "storageStatus": @storage_status,
253
+ "storageTargetGb": @storage_target_gb,
254
+ "storageResizeStartedAt": @storage_resize_started_at,
240
255
  "storageClass": @storage_class,
241
256
  "storageMaxGb": @storage_max_gb,
242
257
  "nodePool": @node_pool,
@@ -6,6 +6,10 @@ module Appwrite
6
6
  attr_reader :slug
7
7
  attr_reader :name
8
8
  attr_reader :price
9
+ attr_reader :storage_overage_rate
10
+ attr_reader :bandwidth_overage_rate
11
+ attr_reader :replica_rate
12
+ attr_reader :pitr_rate
9
13
  attr_reader :cpu
10
14
  attr_reader :memory
11
15
  attr_reader :max_connections
@@ -17,6 +21,10 @@ module Appwrite
17
21
  slug:,
18
22
  name:,
19
23
  price:,
24
+ storage_overage_rate:,
25
+ bandwidth_overage_rate:,
26
+ replica_rate:,
27
+ pitr_rate:,
20
28
  cpu:,
21
29
  memory:,
22
30
  max_connections:,
@@ -27,6 +35,10 @@ module Appwrite
27
35
  @slug = slug
28
36
  @name = name
29
37
  @price = price
38
+ @storage_overage_rate = storage_overage_rate
39
+ @bandwidth_overage_rate = bandwidth_overage_rate
40
+ @replica_rate = replica_rate
41
+ @pitr_rate = pitr_rate
30
42
  @cpu = cpu
31
43
  @memory = memory
32
44
  @max_connections = max_connections
@@ -40,6 +52,10 @@ module Appwrite
40
52
  slug: map["slug"],
41
53
  name: map["name"],
42
54
  price: map["price"],
55
+ storage_overage_rate: map["storageOverageRate"],
56
+ bandwidth_overage_rate: map["bandwidthOverageRate"],
57
+ replica_rate: map["replicaRate"],
58
+ pitr_rate: map["pitrRate"],
43
59
  cpu: map["cpu"],
44
60
  memory: map["memory"],
45
61
  max_connections: map["maxConnections"],
@@ -54,6 +70,10 @@ module Appwrite
54
70
  "slug": @slug,
55
71
  "name": @name,
56
72
  "price": @price,
73
+ "storageOverageRate": @storage_overage_rate,
74
+ "bandwidthOverageRate": @bandwidth_overage_rate,
75
+ "replicaRate": @replica_rate,
76
+ "pitrRate": @pitr_rate,
57
77
  "cpu": @cpu,
58
78
  "memory": @memory,
59
79
  "maxConnections": @max_connections,
@@ -0,0 +1,83 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class DnsRecord
6
+ attr_reader :id
7
+ attr_reader :created_at
8
+ attr_reader :updated_at
9
+ attr_reader :type
10
+ attr_reader :name
11
+ attr_reader :value
12
+ attr_reader :ttl
13
+ attr_reader :priority
14
+ attr_reader :lock
15
+ attr_reader :weight
16
+ attr_reader :port
17
+ attr_reader :comment
18
+
19
+ def initialize(
20
+ id:,
21
+ created_at:,
22
+ updated_at:,
23
+ type:,
24
+ name:,
25
+ value:,
26
+ ttl:,
27
+ priority:,
28
+ lock:,
29
+ weight:,
30
+ port:,
31
+ comment:
32
+ )
33
+ @id = id
34
+ @created_at = created_at
35
+ @updated_at = updated_at
36
+ @type = type
37
+ @name = name
38
+ @value = value
39
+ @ttl = ttl
40
+ @priority = priority
41
+ @lock = lock
42
+ @weight = weight
43
+ @port = port
44
+ @comment = comment
45
+ end
46
+
47
+ def self.from(map:)
48
+ map = { "$id" => "", "$createdAt" => "", "$updatedAt" => "", "type" => "", "name" => "", "value" => "", "ttl" => 3600, "priority" => 0, "lock" => false, "weight" => 0, "port" => 0, "comment" => "" }.merge(map)
49
+ DnsRecord.new(
50
+ id: map["$id"],
51
+ created_at: map["$createdAt"],
52
+ updated_at: map["$updatedAt"],
53
+ type: map["type"],
54
+ name: map["name"],
55
+ value: map["value"],
56
+ ttl: map["ttl"],
57
+ priority: map["priority"],
58
+ lock: map["lock"],
59
+ weight: map["weight"],
60
+ port: map["port"],
61
+ comment: map["comment"]
62
+ )
63
+ end
64
+
65
+ def to_map
66
+ {
67
+ "$id": @id,
68
+ "$createdAt": @created_at,
69
+ "$updatedAt": @updated_at,
70
+ "type": @type,
71
+ "name": @name,
72
+ "value": @value,
73
+ "ttl": @ttl,
74
+ "priority": @priority,
75
+ "lock": @lock,
76
+ "weight": @weight,
77
+ "port": @port,
78
+ "comment": @comment
79
+ }
80
+ end
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class DnsRecordsList
6
+ attr_reader :total
7
+ attr_reader :dns_records
8
+
9
+ def initialize(
10
+ total:,
11
+ dns_records:
12
+ )
13
+ @total = total
14
+ @dns_records = dns_records
15
+ end
16
+
17
+ def self.from(map:)
18
+ map = { "total" => 0, "dnsRecords" => [] }.merge(map)
19
+ DnsRecordsList.new(
20
+ total: map["total"],
21
+ dns_records: map["dnsRecords"].map { |it| DnsRecord.from(map: it) }
22
+ )
23
+ end
24
+
25
+ def to_map
26
+ {
27
+ "total": @total,
28
+ "dnsRecords": @dns_records.map { |it| it.to_map }
29
+ }
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,109 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class Domain
6
+ attr_reader :id
7
+ attr_reader :created_at
8
+ attr_reader :updated_at
9
+ attr_reader :domain
10
+ attr_reader :registrar
11
+ attr_reader :nameservers
12
+ attr_reader :expire
13
+ attr_reader :renewal
14
+ attr_reader :auto_renewal
15
+ attr_reader :renewal_price
16
+ attr_reader :transfer_status
17
+ attr_reader :team_id
18
+ attr_reader :dns_records
19
+
20
+ def initialize(
21
+ id:,
22
+ created_at:,
23
+ updated_at:,
24
+ domain:,
25
+ registrar:,
26
+ nameservers:,
27
+ expire:,
28
+ renewal:,
29
+ auto_renewal:,
30
+ renewal_price:,
31
+ transfer_status:,
32
+ team_id:,
33
+ dns_records:
34
+ )
35
+ @id = id
36
+ @created_at = created_at
37
+ @updated_at = updated_at
38
+ @domain = domain
39
+ @registrar = registrar
40
+ @nameservers = nameservers
41
+ @expire = expire
42
+ @renewal = renewal
43
+ @auto_renewal = auto_renewal
44
+ @renewal_price = renewal_price
45
+ @transfer_status = transfer_status.nil? ? transfer_status : validate_transfer_status(transfer_status)
46
+ @team_id = team_id
47
+ @dns_records = dns_records
48
+ end
49
+
50
+ def self.from(map:)
51
+ map = { "$id" => "", "$createdAt" => "", "$updatedAt" => "", "domain" => "", "registrar" => "", "nameservers" => "", "expire" => "", "renewal" => "", "autoRenewal" => false, "renewalPrice" => 0, "teamId" => "", "dnsRecords" => [] }.merge(map)
52
+ Domain.new(
53
+ id: map["$id"],
54
+ created_at: map["$createdAt"],
55
+ updated_at: map["$updatedAt"],
56
+ domain: map["domain"],
57
+ registrar: map["registrar"],
58
+ nameservers: map["nameservers"],
59
+ expire: map["expire"],
60
+ renewal: map["renewal"],
61
+ auto_renewal: map["autoRenewal"],
62
+ renewal_price: map["renewalPrice"],
63
+ transfer_status: map["transferStatus"],
64
+ team_id: map["teamId"],
65
+ dns_records: map["dnsRecords"].map { |it| DnsRecord.from(map: it) }
66
+ )
67
+ end
68
+
69
+ def to_map
70
+ {
71
+ "$id": @id,
72
+ "$createdAt": @created_at,
73
+ "$updatedAt": @updated_at,
74
+ "domain": @domain,
75
+ "registrar": @registrar,
76
+ "nameservers": @nameservers,
77
+ "expire": @expire,
78
+ "renewal": @renewal,
79
+ "autoRenewal": @auto_renewal,
80
+ "renewalPrice": @renewal_price,
81
+ "transferStatus": @transfer_status,
82
+ "teamId": @team_id,
83
+ "dnsRecords": @dns_records.map { |it| it.to_map }
84
+ }
85
+ end
86
+
87
+ private
88
+
89
+ def validate_transfer_status(transfer_status)
90
+ valid_transfer_status = [
91
+ Appwrite::Enums::DomainTransferStatusEnum::TRANSFERRABLE,
92
+ Appwrite::Enums::DomainTransferStatusEnum::NOT_TRANSFERRABLE,
93
+ Appwrite::Enums::DomainTransferStatusEnum::PENDING_OWNER,
94
+ Appwrite::Enums::DomainTransferStatusEnum::PENDING_ADMIN,
95
+ Appwrite::Enums::DomainTransferStatusEnum::PENDING_REGISTRY,
96
+ Appwrite::Enums::DomainTransferStatusEnum::COMPLETED,
97
+ Appwrite::Enums::DomainTransferStatusEnum::CANCELLED,
98
+ Appwrite::Enums::DomainTransferStatusEnum::SERVICE_UNAVAILABLE,
99
+ ]
100
+
101
+ unless valid_transfer_status.include?(transfer_status)
102
+ raise ArgumentError, "Invalid " + transfer_status + ". Must be one of: " + valid_transfer_status.join(', ')
103
+ end
104
+
105
+ transfer_status
106
+ end
107
+ end
108
+ end
109
+ end
@@ -0,0 +1,63 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class DomainPrice
6
+ attr_reader :domain
7
+ attr_reader :tld
8
+ attr_reader :available
9
+ attr_reader :price
10
+ attr_reader :period_years
11
+ attr_reader :premium
12
+ attr_reader :renewal_price
13
+ attr_reader :renewal_period_years
14
+
15
+ def initialize(
16
+ domain:,
17
+ tld:,
18
+ available:,
19
+ price:,
20
+ period_years:,
21
+ premium:,
22
+ renewal_price:,
23
+ renewal_period_years:
24
+ )
25
+ @domain = domain
26
+ @tld = tld
27
+ @available = available
28
+ @price = price
29
+ @period_years = period_years
30
+ @premium = premium
31
+ @renewal_price = renewal_price
32
+ @renewal_period_years = renewal_period_years
33
+ end
34
+
35
+ def self.from(map:)
36
+ map = { "domain" => "", "tld" => "", "available" => false, "periodYears" => 1, "premium" => false, "renewalPeriodYears" => 1 }.merge(map)
37
+ DomainPrice.new(
38
+ domain: map["domain"],
39
+ tld: map["tld"],
40
+ available: map["available"],
41
+ price: map["price"],
42
+ period_years: map["periodYears"],
43
+ premium: map["premium"],
44
+ renewal_price: map["renewalPrice"],
45
+ renewal_period_years: map["renewalPeriodYears"]
46
+ )
47
+ end
48
+
49
+ def to_map
50
+ {
51
+ "domain": @domain,
52
+ "tld": @tld,
53
+ "available": @available,
54
+ "price": @price,
55
+ "periodYears": @period_years,
56
+ "premium": @premium,
57
+ "renewalPrice": @renewal_price,
58
+ "renewalPeriodYears": @renewal_period_years
59
+ }
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class DomainPricesList
6
+ attr_reader :total
7
+ attr_reader :prices
8
+
9
+ def initialize(
10
+ total:,
11
+ prices:
12
+ )
13
+ @total = total
14
+ @prices = prices
15
+ end
16
+
17
+ def self.from(map:)
18
+ map = { "total" => 0, "prices" => [] }.merge(map)
19
+ DomainPricesList.new(
20
+ total: map["total"],
21
+ prices: map["prices"].map { |it| DomainPrice.from(map: it) }
22
+ )
23
+ end
24
+
25
+ def to_map
26
+ {
27
+ "total": @total,
28
+ "prices": @prices.map { |it| it.to_map }
29
+ }
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,59 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class DomainTransferStatus
6
+ attr_reader :status
7
+ attr_reader :reason
8
+ attr_reader :timestamp
9
+
10
+ def initialize(
11
+ status:,
12
+ reason:,
13
+ timestamp:
14
+ )
15
+ @status = validate_status(status)
16
+ @reason = reason
17
+ @timestamp = timestamp
18
+ end
19
+
20
+ def self.from(map:)
21
+ map = { "status" => "pending_registry", "reason" => "", "timestamp" => "" }.merge(map)
22
+ DomainTransferStatus.new(
23
+ status: map["status"],
24
+ reason: map["reason"],
25
+ timestamp: map["timestamp"]
26
+ )
27
+ end
28
+
29
+ def to_map
30
+ {
31
+ "status": @status,
32
+ "reason": @reason,
33
+ "timestamp": @timestamp
34
+ }
35
+ end
36
+
37
+ private
38
+
39
+ def validate_status(status)
40
+ valid_status = [
41
+ Appwrite::Enums::DomainTransferStatusEnum::TRANSFERRABLE,
42
+ Appwrite::Enums::DomainTransferStatusEnum::NOT_TRANSFERRABLE,
43
+ Appwrite::Enums::DomainTransferStatusEnum::PENDING_OWNER,
44
+ Appwrite::Enums::DomainTransferStatusEnum::PENDING_ADMIN,
45
+ Appwrite::Enums::DomainTransferStatusEnum::PENDING_REGISTRY,
46
+ Appwrite::Enums::DomainTransferStatusEnum::COMPLETED,
47
+ Appwrite::Enums::DomainTransferStatusEnum::CANCELLED,
48
+ Appwrite::Enums::DomainTransferStatusEnum::SERVICE_UNAVAILABLE,
49
+ ]
50
+
51
+ unless valid_status.include?(status)
52
+ raise ArgumentError, "Invalid " + status + ". Must be one of: " + valid_status.join(', ')
53
+ end
54
+
55
+ status
56
+ end
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class DomainsList
6
+ attr_reader :total
7
+ attr_reader :domains
8
+
9
+ def initialize(
10
+ total:,
11
+ domains:
12
+ )
13
+ @total = total
14
+ @domains = domains
15
+ end
16
+
17
+ def self.from(map:)
18
+ map = { "total" => 0, "domains" => [] }.merge(map)
19
+ DomainsList.new(
20
+ total: map["total"],
21
+ domains: map["domains"].map { |it| Domain.from(map: it) }
22
+ )
23
+ end
24
+
25
+ def to_map
26
+ {
27
+ "total": @total,
28
+ "domains": @domains.map { |it| it.to_map }
29
+ }
30
+ end
31
+ end
32
+ end
33
+ end
@@ -13,6 +13,7 @@ module Appwrite
13
13
  attr_reader :provider_access_token
14
14
  attr_reader :provider_access_token_expiry
15
15
  attr_reader :provider_refresh_token
16
+ attr_reader :provider_id_token
16
17
 
17
18
  def initialize(
18
19
  id:,
@@ -24,7 +25,8 @@ module Appwrite
24
25
  provider_email:,
25
26
  provider_access_token:,
26
27
  provider_access_token_expiry:,
27
- provider_refresh_token:
28
+ provider_refresh_token:,
29
+ provider_id_token:
28
30
  )
29
31
  @id = id
30
32
  @created_at = created_at
@@ -36,6 +38,7 @@ module Appwrite
36
38
  @provider_access_token = provider_access_token
37
39
  @provider_access_token_expiry = provider_access_token_expiry
38
40
  @provider_refresh_token = provider_refresh_token
41
+ @provider_id_token = provider_id_token
39
42
  end
40
43
 
41
44
  def self.from(map:)
@@ -49,7 +52,8 @@ module Appwrite
49
52
  provider_email: map["providerEmail"],
50
53
  provider_access_token: map["providerAccessToken"],
51
54
  provider_access_token_expiry: map["providerAccessTokenExpiry"],
52
- provider_refresh_token: map["providerRefreshToken"]
55
+ provider_refresh_token: map["providerRefreshToken"],
56
+ provider_id_token: map["providerIdToken"]
53
57
  )
54
58
  end
55
59
 
@@ -64,7 +68,8 @@ module Appwrite
64
68
  "providerEmail": @provider_email,
65
69
  "providerAccessToken": @provider_access_token,
66
70
  "providerAccessTokenExpiry": @provider_access_token_expiry,
67
- "providerRefreshToken": @provider_refresh_token
71
+ "providerRefreshToken": @provider_refresh_token,
72
+ "providerIdToken": @provider_id_token
68
73
  }
69
74
  end
70
75
  end