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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d33f32c4b7b5557724d97e3eab7874520e653dd702c1b41e16ef0049ad336f58
4
- data.tar.gz: 5137c83b95f254bf39775c0e43240e46f80eef5faf44ee3707747d3dd2ee8699
3
+ metadata.gz: 062d166c84de8d1922e7723fbbe7a74e5846f436c1bb7479405be6d0a930ff8b
4
+ data.tar.gz: 11d0067e314a64e574a70242dc0458e985d965a899ef7bb88a80789c3c5e4617
5
5
  SHA512:
6
- metadata.gz: 0ae10b86bf1314cf6c35501bee2fe9fcd59ccf34d8a0eddd328ab279768d0edf25bbc0e194127f89f4adf65b851761e45d3c839a7abbc34fc18ee77a15cce77f
7
- data.tar.gz: b4694dedb552937c1b1c48d98b7e7bd8bae0f9531990ee6684f7fea8a15ec6cb5c8745bb6570f2cc7daec3f6ce4c814e8f7d1af8aa10dc53e911cbfff4de28c6
6
+ metadata.gz: ba27595497a5133d6033c7d96bc0de5c340eea64ecee4d3b23d457277521bf584422c59f2d068cc8027418d1318baf69c3333f688bf088a2fe0f95527938de44
7
+ data.tar.gz: cf0d6a62a303215690733c199f631fabe55889b5364eff2c86701fb18ea726ed1450b55bb82e49408ef516e660115db58c14c379607a586d571d825b54341c2d
@@ -14,7 +14,7 @@ module Appwrite
14
14
  'x-sdk-name' => 'Ruby',
15
15
  'x-sdk-platform' => 'server',
16
16
  'x-sdk-language' => 'ruby',
17
- 'x-sdk-version' => '28.3.1',
17
+ 'x-sdk-version' => '28.4.0',
18
18
  'X-Appwrite-Response-Format' => '2.0.0'
19
19
  }
20
20
  @endpoint = 'https://cloud.appwrite.io/v1'
@@ -278,7 +278,8 @@ module Appwrite
278
278
  param_name: '',
279
279
  id_param_name: nil,
280
280
  on_progress: nil,
281
- response_type: nil
281
+ response_type: nil,
282
+ method: 'POST'
282
283
  )
283
284
  input_file = params[param_name.to_sym]
284
285
 
@@ -295,7 +296,7 @@ module Appwrite
295
296
  end
296
297
  params[param_name.to_sym] = input_file
297
298
  return call(
298
- method: 'POST',
299
+ method: method,
299
300
  path: path,
300
301
  headers: headers,
301
302
  params: params,
@@ -359,7 +360,7 @@ module Appwrite
359
360
  chunk_headers['x-appwrite-id'] = current_upload_id if current_upload_id
360
361
 
361
362
  call(
362
- method: 'POST',
363
+ method: method,
363
364
  path: path,
364
365
  headers: chunk_headers,
365
366
  params: chunk_params,
@@ -520,6 +521,10 @@ module Appwrite
520
521
  raise Appwrite::Exception.new(response.body, response.code, response, response.body)
521
522
  end
522
523
 
524
+ if response_type == "text"
525
+ return decode_text(response)
526
+ end
527
+
523
528
  if response.respond_to?("body_permitted?")
524
529
  return response.body if response.body_permitted?
525
530
  end
@@ -527,6 +532,17 @@ module Appwrite
527
532
  return response
528
533
  end
529
534
 
535
+ def decode_text(response)
536
+ charset = response.type_params['charset'] || 'utf-8'
537
+ encoding = begin
538
+ Encoding.find(charset)
539
+ rescue ArgumentError
540
+ Encoding::UTF_8
541
+ end
542
+
543
+ String.new(response.body.to_s, encoding: encoding).encode(Encoding::UTF_8)
544
+ end
545
+
530
546
  def encode_form_data(value, key = nil)
531
547
  case value
532
548
  when Hash
@@ -2,6 +2,8 @@ module Appwrite
2
2
  module Enums
3
3
  module BillingPlanGroup
4
4
  STARTER = 'starter'
5
+ FREE = 'free'
6
+ START = 'start'
5
7
  PRO = 'pro'
6
8
  SCALE = 'scale'
7
9
  end
@@ -52,6 +52,7 @@ module Appwrite
52
52
  DART_3_10 = 'dart-3.10'
53
53
  DART_3_11 = 'dart-3.11'
54
54
  DART_3_12 = 'dart-3.12'
55
+ DART_3_13 = 'dart-3.13'
55
56
  DOTNET_6_0 = 'dotnet-6.0'
56
57
  DOTNET_7_0 = 'dotnet-7.0'
57
58
  DOTNET_8_0 = 'dotnet-8.0'
@@ -94,6 +95,7 @@ module Appwrite
94
95
  FLUTTER_3_38 = 'flutter-3.38'
95
96
  FLUTTER_3_41 = 'flutter-3.41'
96
97
  FLUTTER_3_44 = 'flutter-3.44'
98
+ FLUTTER_3_47 = 'flutter-3.47'
97
99
  end
98
100
  end
99
101
  end
@@ -5,6 +5,7 @@ module Appwrite
5
5
  FULLTEXT = 'fulltext'
6
6
  UNIQUE = 'unique'
7
7
  SPATIAL = 'spatial'
8
+ TRIGRAM = 'trigram'
8
9
  end
9
10
  end
10
11
  end
@@ -0,0 +1,10 @@
1
+ module Appwrite
2
+ module Enums
3
+ module DomainRegistrationType
4
+ NEW = 'new'
5
+ TRANSFER = 'transfer'
6
+ RENEWAL = 'renewal'
7
+ TRADE = 'trade'
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,14 @@
1
+ module Appwrite
2
+ module Enums
3
+ module DomainTransferStatusEnum
4
+ TRANSFERRABLE = 'transferrable'
5
+ NOT_TRANSFERRABLE = 'not_transferrable'
6
+ PENDING_OWNER = 'pending_owner'
7
+ PENDING_ADMIN = 'pending_admin'
8
+ PENDING_REGISTRY = 'pending_registry'
9
+ COMPLETED = 'completed'
10
+ CANCELLED = 'cancelled'
11
+ SERVICE_UNAVAILABLE = 'service_unavailable'
12
+ end
13
+ end
14
+ end
@@ -13,6 +13,7 @@ module Appwrite
13
13
  REMIX = 'remix'
14
14
  LYNX = 'lynx'
15
15
  FLUTTER = 'flutter'
16
+ JASPR = 'jaspr'
16
17
  REACT_NATIVE = 'react-native'
17
18
  VITE = 'vite'
18
19
  OTHER = 'other'
@@ -0,0 +1,8 @@
1
+ module Appwrite
2
+ module Enums
3
+ module IdTokenProvider
4
+ APPLE = 'apple'
5
+ GOOGLE = 'google'
6
+ end
7
+ end
8
+ end
@@ -1,6 +1,7 @@
1
1
  module Appwrite
2
2
  module Enums
3
3
  module ImageGravity
4
+ AUTO = 'auto'
4
5
  CENTER = 'center'
5
6
  TOP_LEFT = 'top-left'
6
7
  TOP = 'top'
@@ -0,0 +1,9 @@
1
+ module Appwrite
2
+ module Enums
3
+ module OAuth2Auth0Prompt
4
+ NONE = 'none'
5
+ LOGIN = 'login'
6
+ CONSENT = 'consent'
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,8 @@
1
+ module Appwrite
2
+ module Enums
3
+ module OAuth2DiscordPrompt
4
+ NONE = 'none'
5
+ CONSENT = 'consent'
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,7 @@
1
+ module Appwrite
2
+ module Enums
3
+ module OAuth2GithubPrompt
4
+ SELECT_ACCOUNT = 'select_account'
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,10 @@
1
+ module Appwrite
2
+ module Enums
3
+ module OAuth2KakaoPrompt
4
+ NONE = 'none'
5
+ LOGIN = 'login'
6
+ CREATE = 'create'
7
+ SELECT_ACCOUNT = 'select_account'
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ module Appwrite
2
+ module Enums
3
+ module OAuth2MicrosoftPrompt
4
+ NONE = 'none'
5
+ LOGIN = 'login'
6
+ CONSENT = 'consent'
7
+ SELECT_ACCOUNT = 'select_account'
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,9 @@
1
+ module Appwrite
2
+ module Enums
3
+ module OAuth2OktaPrompt
4
+ NONE = 'none'
5
+ LOGIN = 'login'
6
+ CONSENT = 'consent'
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,8 @@
1
+ module Appwrite
2
+ module Enums
3
+ module OAuth2SalesforcePrompt
4
+ LOGIN = 'login'
5
+ CONSENT = 'consent'
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,7 @@
1
+ module Appwrite
2
+ module Enums
3
+ module OAuth2ZohoPrompt
4
+ CONSENT = 'consent'
5
+ end
6
+ end
7
+ end
@@ -23,6 +23,7 @@ module Appwrite
23
23
  GITLAB = 'gitlab'
24
24
  GOOGLE = 'google'
25
25
  HUGGINGFACE = 'huggingface'
26
+ KAKAO = 'kakao'
26
27
  KEYCLOAK = 'keycloak'
27
28
  KICK = 'kick'
28
29
  LINKEDIN = 'linkedin'
@@ -38,9 +39,11 @@ module Appwrite
38
39
  SLACK = 'slack'
39
40
  SPOTIFY = 'spotify'
40
41
  STRIPE = 'stripe'
42
+ TIKTOK = 'tiktok'
41
43
  TRADESHIFT = 'tradeshift'
42
44
  TRADESHIFTBOX = 'tradeshiftBox'
43
45
  TWITCH = 'twitch'
46
+ WEBFLOW = 'webflow'
44
47
  WORDPRESS = 'wordpress'
45
48
  X = 'x'
46
49
  YAHOO = 'yahoo'
@@ -8,6 +8,8 @@ module Appwrite
8
8
  MFACHALLENGE = 'mfaChallenge'
9
9
  SESSIONALERT = 'sessionAlert'
10
10
  OTPSESSION = 'otpSession'
11
+ OTPVERIFICATION = 'otpVerification'
12
+ OTPRECOVERY = 'otpRecovery'
11
13
  end
12
14
  end
13
15
  end
@@ -91,6 +91,7 @@ module Appwrite
91
91
  WEBHOOKS_WRITE = 'webhooks.write'
92
92
  LOCALE_READ = 'locale.read'
93
93
  AVATARS_READ = 'avatars.read'
94
+ AVATARS_WRITE = 'avatars.write'
94
95
  HEALTH_READ = 'health.read'
95
96
  ASSISTANT_READ = 'assistant.read'
96
97
  MIGRATIONS_READ = 'migrations.read'
@@ -105,6 +106,7 @@ module Appwrite
105
106
  REPORTS_WRITE = 'reports.write'
106
107
  PRESENCES_READ = 'presences.read'
107
108
  PRESENCES_WRITE = 'presences.write'
109
+ DEDICATEDDATABASES_EXECUTE = 'dedicatedDatabases.execute'
108
110
  BACKUPS_POLICIES_READ = 'backups.policies.read'
109
111
  BACKUPS_POLICIES_WRITE = 'backups.policies.write'
110
112
  ARCHIVES_READ = 'archives.read'
@@ -122,6 +124,8 @@ module Appwrite
122
124
  OAUTH2_READ = 'oauth2.read'
123
125
  OAUTH2_WRITE = 'oauth2.write'
124
126
  OAUTH2_INTROSPECT = 'oauth2.introspect'
127
+ ANALYTICS_READ = 'analytics.read'
128
+ ANALYTICS_WRITE = 'analytics.write'
125
129
  end
126
130
  end
127
131
  end
@@ -0,0 +1,9 @@
1
+ module Appwrite
2
+ module Enums
3
+ module ProjectOAuth2Auth0Prompt
4
+ NONE = 'none'
5
+ LOGIN = 'login'
6
+ CONSENT = 'consent'
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,8 @@
1
+ module Appwrite
2
+ module Enums
3
+ module ProjectOAuth2DiscordPrompt
4
+ NONE = 'none'
5
+ CONSENT = 'consent'
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,7 @@
1
+ module Appwrite
2
+ module Enums
3
+ module ProjectOAuth2GitHubPrompt
4
+ SELECT_ACCOUNT = 'select_account'
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,10 @@
1
+ module Appwrite
2
+ module Enums
3
+ module ProjectOAuth2KakaoPrompt
4
+ NONE = 'none'
5
+ LOGIN = 'login'
6
+ CREATE = 'create'
7
+ SELECT_ACCOUNT = 'select_account'
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ module Appwrite
2
+ module Enums
3
+ module ProjectOAuth2MicrosoftPrompt
4
+ NONE = 'none'
5
+ LOGIN = 'login'
6
+ CONSENT = 'consent'
7
+ SELECT_ACCOUNT = 'select_account'
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,9 @@
1
+ module Appwrite
2
+ module Enums
3
+ module ProjectOAuth2OktaPrompt
4
+ NONE = 'none'
5
+ LOGIN = 'login'
6
+ CONSENT = 'consent'
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,8 @@
1
+ module Appwrite
2
+ module Enums
3
+ module ProjectOAuth2SalesforcePrompt
4
+ LOGIN = 'login'
5
+ CONSENT = 'consent'
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,7 @@
1
+ module Appwrite
2
+ module Enums
3
+ module ProjectOAuth2ZohoPrompt
4
+ CONSENT = 'consent'
5
+ end
6
+ end
7
+ end
@@ -23,6 +23,7 @@ module Appwrite
23
23
  GITLAB = 'gitlab'
24
24
  GOOGLE = 'google'
25
25
  HUGGINGFACE = 'huggingface'
26
+ KAKAO = 'kakao'
26
27
  KEYCLOAK = 'keycloak'
27
28
  KICK = 'kick'
28
29
  LINKEDIN = 'linkedin'
@@ -38,9 +39,11 @@ module Appwrite
38
39
  SLACK = 'slack'
39
40
  SPOTIFY = 'spotify'
40
41
  STRIPE = 'stripe'
42
+ TIKTOK = 'tiktok'
41
43
  TRADESHIFT = 'tradeshift'
42
44
  TRADESHIFTBOX = 'tradeshiftBox'
43
45
  TWITCH = 'twitch'
46
+ WEBFLOW = 'webflow'
44
47
  WORDPRESS = 'wordpress'
45
48
  X = 'x'
46
49
  YAHOO = 'yahoo'
@@ -5,6 +5,8 @@ module Appwrite
5
5
  PASSWORD_HISTORY = 'password-history'
6
6
  PASSWORD_STRENGTH = 'password-strength'
7
7
  PASSWORD_PERSONAL_DATA = 'password-personal-data'
8
+ PASSWORD_PWNED = 'password-pwned'
9
+ PASSWORD_ROTATION = 'password-rotation'
8
10
  SESSION_ALERT = 'session-alert'
9
11
  SESSION_DURATION = 'session-duration'
10
12
  SESSION_INVALIDATION = 'session-invalidation'
@@ -3,6 +3,7 @@ module Appwrite
3
3
  module ProxyRuleDeploymentResourceType
4
4
  FUNCTION = 'function'
5
5
  SITE = 'site'
6
+ DEDICATEDDATABASE = 'dedicatedDatabase'
6
7
  end
7
8
  end
8
9
  end
@@ -52,6 +52,7 @@ module Appwrite
52
52
  DART_3_10 = 'dart-3.10'
53
53
  DART_3_11 = 'dart-3.11'
54
54
  DART_3_12 = 'dart-3.12'
55
+ DART_3_13 = 'dart-3.13'
55
56
  DOTNET_6_0 = 'dotnet-6.0'
56
57
  DOTNET_7_0 = 'dotnet-7.0'
57
58
  DOTNET_8_0 = 'dotnet-8.0'
@@ -94,6 +95,7 @@ module Appwrite
94
95
  FLUTTER_3_38 = 'flutter-3.38'
95
96
  FLUTTER_3_41 = 'flutter-3.41'
96
97
  FLUTTER_3_44 = 'flutter-3.44'
98
+ FLUTTER_3_47 = 'flutter-3.47'
97
99
  end
98
100
  end
99
101
  end
@@ -5,6 +5,7 @@ module Appwrite
5
5
  FULLTEXT = 'fulltext'
6
6
  UNIQUE = 'unique'
7
7
  SPATIAL = 'spatial'
8
+ TRIGRAM = 'trigram'
8
9
  end
9
10
  end
10
11
  end
@@ -0,0 +1,11 @@
1
+ module Appwrite
2
+ module Enums
3
+ module WafRuleAction
4
+ BYPASS = 'bypass'
5
+ DENY = 'deny'
6
+ CHALLENGE = 'challenge'
7
+ RATELIMIT = 'rateLimit'
8
+ REDIRECT = 'redirect'
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,143 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class Account
6
+ attr_reader :id
7
+ attr_reader :created_at
8
+ attr_reader :updated_at
9
+ attr_reader :name
10
+ attr_reader :registration
11
+ attr_reader :status
12
+ attr_reader :labels
13
+ attr_reader :password_update
14
+ attr_reader :email
15
+ attr_reader :phone
16
+ attr_reader :email_verification
17
+ attr_reader :email_canonical
18
+ attr_reader :email_is_free
19
+ attr_reader :email_is_disposable
20
+ attr_reader :email_is_corporate
21
+ attr_reader :email_is_canonical
22
+ attr_reader :password_pwned
23
+ attr_reader :phone_verification
24
+ attr_reader :mfa
25
+ attr_reader :prefs
26
+ attr_reader :targets
27
+ attr_reader :accessed_at
28
+ attr_reader :impersonator
29
+ attr_reader :impersonator_user_id
30
+
31
+ def initialize(
32
+ id:,
33
+ created_at:,
34
+ updated_at:,
35
+ name:,
36
+ registration:,
37
+ status:,
38
+ labels:,
39
+ password_update:,
40
+ email:,
41
+ phone:,
42
+ email_verification:,
43
+ email_canonical:,
44
+ email_is_free:,
45
+ email_is_disposable:,
46
+ email_is_corporate:,
47
+ email_is_canonical:,
48
+ password_pwned:,
49
+ phone_verification:,
50
+ mfa:,
51
+ prefs:,
52
+ targets:,
53
+ accessed_at:,
54
+ impersonator:,
55
+ impersonator_user_id:
56
+ )
57
+ @id = id
58
+ @created_at = created_at
59
+ @updated_at = updated_at
60
+ @name = name
61
+ @registration = registration
62
+ @status = status
63
+ @labels = labels
64
+ @password_update = password_update
65
+ @email = email
66
+ @phone = phone
67
+ @email_verification = email_verification
68
+ @email_canonical = email_canonical
69
+ @email_is_free = email_is_free
70
+ @email_is_disposable = email_is_disposable
71
+ @email_is_corporate = email_is_corporate
72
+ @email_is_canonical = email_is_canonical
73
+ @password_pwned = password_pwned
74
+ @phone_verification = phone_verification
75
+ @mfa = mfa
76
+ @prefs = prefs
77
+ @targets = targets
78
+ @accessed_at = accessed_at
79
+ @impersonator = impersonator
80
+ @impersonator_user_id = impersonator_user_id
81
+ end
82
+
83
+ def self.from(map:)
84
+ map = { "$id" => "", "$createdAt" => "", "$updatedAt" => "", "name" => "", "registration" => "", "status" => true, "labels" => [], "passwordUpdate" => "", "email" => "", "phone" => "", "emailVerification" => false, "phoneVerification" => false, "mfa" => false, "targets" => [], "accessedAt" => "" }.merge(map)
85
+ Account.new(
86
+ id: map["$id"],
87
+ created_at: map["$createdAt"],
88
+ updated_at: map["$updatedAt"],
89
+ name: map["name"],
90
+ registration: map["registration"],
91
+ status: map["status"],
92
+ labels: map["labels"],
93
+ password_update: map["passwordUpdate"],
94
+ email: map["email"],
95
+ phone: map["phone"],
96
+ email_verification: map["emailVerification"],
97
+ email_canonical: map["emailCanonical"],
98
+ email_is_free: map["emailIsFree"],
99
+ email_is_disposable: map["emailIsDisposable"],
100
+ email_is_corporate: map["emailIsCorporate"],
101
+ email_is_canonical: map["emailIsCanonical"],
102
+ password_pwned: map["passwordPwned"],
103
+ phone_verification: map["phoneVerification"],
104
+ mfa: map["mfa"],
105
+ prefs: Preferences.from(map: map["prefs"]),
106
+ targets: map["targets"].map { |it| Target.from(map: it) },
107
+ accessed_at: map["accessedAt"],
108
+ impersonator: map["impersonator"],
109
+ impersonator_user_id: map["impersonatorUserId"]
110
+ )
111
+ end
112
+
113
+ def to_map
114
+ {
115
+ "$id": @id,
116
+ "$createdAt": @created_at,
117
+ "$updatedAt": @updated_at,
118
+ "name": @name,
119
+ "registration": @registration,
120
+ "status": @status,
121
+ "labels": @labels,
122
+ "passwordUpdate": @password_update,
123
+ "email": @email,
124
+ "phone": @phone,
125
+ "emailVerification": @email_verification,
126
+ "emailCanonical": @email_canonical,
127
+ "emailIsFree": @email_is_free,
128
+ "emailIsDisposable": @email_is_disposable,
129
+ "emailIsCorporate": @email_is_corporate,
130
+ "emailIsCanonical": @email_is_canonical,
131
+ "passwordPwned": @password_pwned,
132
+ "phoneVerification": @phone_verification,
133
+ "mfa": @mfa,
134
+ "prefs": @prefs.to_map,
135
+ "targets": @targets.map { |it| it.to_map },
136
+ "accessedAt": @accessed_at,
137
+ "impersonator": @impersonator,
138
+ "impersonatorUserId": @impersonator_user_id
139
+ }
140
+ end
141
+ end
142
+ end
143
+ end