appwrite 28.3.2 → 29.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 (397) hide show
  1. checksums.yaml +4 -4
  2. data/lib/appwrite/client.rb +36 -20
  3. data/lib/appwrite/enums/billing_plan_group.rb +2 -1
  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/execution_trigger.rb +1 -0
  9. data/lib/appwrite/enums/framework.rb +1 -0
  10. data/lib/appwrite/enums/id_token_provider.rb +8 -0
  11. data/lib/appwrite/enums/image_gravity.rb +1 -0
  12. data/lib/appwrite/enums/o_auth2_auth0_prompt.rb +9 -0
  13. data/lib/appwrite/enums/o_auth2_discord_prompt.rb +8 -0
  14. data/lib/appwrite/enums/o_auth2_github_prompt.rb +7 -0
  15. data/lib/appwrite/enums/o_auth2_kakao_prompt.rb +10 -0
  16. data/lib/appwrite/enums/o_auth2_microsoft_prompt.rb +10 -0
  17. data/lib/appwrite/enums/o_auth2_okta_prompt.rb +9 -0
  18. data/lib/appwrite/enums/o_auth2_salesforce_prompt.rb +8 -0
  19. data/lib/appwrite/enums/o_auth2_zoho_prompt.rb +7 -0
  20. data/lib/appwrite/enums/o_auth_provider.rb +3 -0
  21. data/lib/appwrite/enums/project_email_template_id.rb +2 -0
  22. data/lib/appwrite/enums/project_key_scopes.rb +4 -0
  23. data/lib/appwrite/enums/project_o_auth2_auth0_prompt.rb +9 -0
  24. data/lib/appwrite/enums/project_o_auth2_discord_prompt.rb +8 -0
  25. data/lib/appwrite/enums/project_o_auth2_git_hub_prompt.rb +7 -0
  26. data/lib/appwrite/enums/project_o_auth2_kakao_prompt.rb +10 -0
  27. data/lib/appwrite/enums/project_o_auth2_microsoft_prompt.rb +10 -0
  28. data/lib/appwrite/enums/project_o_auth2_okta_prompt.rb +9 -0
  29. data/lib/appwrite/enums/project_o_auth2_salesforce_prompt.rb +8 -0
  30. data/lib/appwrite/enums/project_o_auth2_zoho_prompt.rb +7 -0
  31. data/lib/appwrite/enums/project_o_auth_provider_id.rb +3 -0
  32. data/lib/appwrite/enums/project_policy_id.rb +2 -0
  33. data/lib/appwrite/enums/proxy_rule_deployment_resource_type.rb +1 -0
  34. data/lib/appwrite/enums/proxy_rule_protocol.rb +8 -0
  35. data/lib/appwrite/enums/runtime.rb +2 -0
  36. data/lib/appwrite/enums/tables_db_index_type.rb +1 -0
  37. data/lib/appwrite/enums/waf_rule_action.rb +11 -0
  38. data/lib/appwrite/models/account.rb +143 -0
  39. data/lib/appwrite/models/activity_event.rb +1 -0
  40. data/lib/appwrite/models/activity_event_list.rb +1 -0
  41. data/lib/appwrite/models/additional_resource.rb +1 -0
  42. data/lib/appwrite/models/algo_argon2.rb +1 -0
  43. data/lib/appwrite/models/algo_bcrypt.rb +1 -0
  44. data/lib/appwrite/models/algo_md5.rb +1 -0
  45. data/lib/appwrite/models/algo_phpass.rb +1 -0
  46. data/lib/appwrite/models/algo_scrypt.rb +1 -0
  47. data/lib/appwrite/models/algo_scrypt_modified.rb +1 -0
  48. data/lib/appwrite/models/algo_sha.rb +1 -0
  49. data/lib/appwrite/models/app.rb +1 -0
  50. data/lib/appwrite/models/app_installation.rb +2 -1
  51. data/lib/appwrite/models/app_installation_list.rb +1 -0
  52. data/lib/appwrite/models/app_key.rb +2 -1
  53. data/lib/appwrite/models/app_key_list.rb +1 -0
  54. data/lib/appwrite/models/app_scope.rb +1 -0
  55. data/lib/appwrite/models/app_scope_list.rb +1 -0
  56. data/lib/appwrite/models/app_secret.rb +2 -1
  57. data/lib/appwrite/models/app_secret_list.rb +1 -0
  58. data/lib/appwrite/models/app_secret_plaintext.rb +2 -1
  59. data/lib/appwrite/models/apps_list.rb +1 -0
  60. data/lib/appwrite/models/attribute_bigint.rb +5 -4
  61. data/lib/appwrite/models/attribute_boolean.rb +3 -2
  62. data/lib/appwrite/models/attribute_datetime.rb +3 -2
  63. data/lib/appwrite/models/attribute_email.rb +3 -2
  64. data/lib/appwrite/models/attribute_enum.rb +3 -2
  65. data/lib/appwrite/models/attribute_float.rb +5 -4
  66. data/lib/appwrite/models/attribute_integer.rb +5 -4
  67. data/lib/appwrite/models/attribute_ip.rb +3 -2
  68. data/lib/appwrite/models/attribute_line.rb +3 -2
  69. data/lib/appwrite/models/attribute_list.rb +1 -0
  70. data/lib/appwrite/models/attribute_longtext.rb +4 -3
  71. data/lib/appwrite/models/attribute_mediumtext.rb +4 -3
  72. data/lib/appwrite/models/attribute_object.rb +2 -1
  73. data/lib/appwrite/models/attribute_point.rb +3 -2
  74. data/lib/appwrite/models/attribute_polygon.rb +3 -2
  75. data/lib/appwrite/models/attribute_relationship.rb +2 -1
  76. data/lib/appwrite/models/attribute_string.rb +4 -3
  77. data/lib/appwrite/models/attribute_text.rb +4 -3
  78. data/lib/appwrite/models/attribute_url.rb +3 -2
  79. data/lib/appwrite/models/attribute_varchar.rb +4 -3
  80. data/lib/appwrite/models/attribute_vector.rb +2 -1
  81. data/lib/appwrite/models/backup_archive.rb +5 -4
  82. data/lib/appwrite/models/backup_archive_list.rb +1 -0
  83. data/lib/appwrite/models/backup_policy.rb +3 -2
  84. data/lib/appwrite/models/backup_policy_list.rb +1 -0
  85. data/lib/appwrite/models/backup_restoration.rb +2 -1
  86. data/lib/appwrite/models/backup_restoration_list.rb +1 -0
  87. data/lib/appwrite/models/billing_limits.rb +8 -8
  88. data/lib/appwrite/models/billing_plan.rb +25 -13
  89. data/lib/appwrite/models/billing_plan_addon.rb +2 -2
  90. data/lib/appwrite/models/billing_plan_addon_details.rb +2 -1
  91. data/lib/appwrite/models/billing_plan_dedicated_database_limits.rb +19 -19
  92. data/lib/appwrite/models/billing_plan_limits.rb +2 -2
  93. data/lib/appwrite/models/billing_plan_supported_addons.rb +1 -0
  94. data/lib/appwrite/models/block.rb +4 -33
  95. data/lib/appwrite/models/bucket.rb +1 -0
  96. data/lib/appwrite/models/bucket_list.rb +1 -0
  97. data/lib/appwrite/models/collection.rb +1 -0
  98. data/lib/appwrite/models/collection_list.rb +1 -0
  99. data/lib/appwrite/models/column_bigint.rb +5 -4
  100. data/lib/appwrite/models/column_boolean.rb +3 -2
  101. data/lib/appwrite/models/column_datetime.rb +3 -2
  102. data/lib/appwrite/models/column_email.rb +3 -2
  103. data/lib/appwrite/models/column_enum.rb +3 -2
  104. data/lib/appwrite/models/column_float.rb +5 -4
  105. data/lib/appwrite/models/column_index.rb +2 -1
  106. data/lib/appwrite/models/column_index_list.rb +1 -0
  107. data/lib/appwrite/models/column_integer.rb +5 -4
  108. data/lib/appwrite/models/column_ip.rb +3 -2
  109. data/lib/appwrite/models/column_line.rb +3 -2
  110. data/lib/appwrite/models/column_list.rb +1 -0
  111. data/lib/appwrite/models/column_longtext.rb +4 -3
  112. data/lib/appwrite/models/column_mediumtext.rb +4 -3
  113. data/lib/appwrite/models/column_point.rb +3 -2
  114. data/lib/appwrite/models/column_polygon.rb +3 -2
  115. data/lib/appwrite/models/column_relationship.rb +2 -1
  116. data/lib/appwrite/models/column_string.rb +4 -3
  117. data/lib/appwrite/models/column_text.rb +4 -3
  118. data/lib/appwrite/models/column_url.rb +3 -2
  119. data/lib/appwrite/models/column_varchar.rb +4 -3
  120. data/lib/appwrite/models/continent.rb +1 -0
  121. data/lib/appwrite/models/continent_list.rb +1 -0
  122. data/lib/appwrite/models/country.rb +1 -0
  123. data/lib/appwrite/models/country_list.rb +1 -0
  124. data/lib/appwrite/models/currency.rb +1 -0
  125. data/lib/appwrite/models/currency_list.rb +1 -0
  126. data/lib/appwrite/models/database.rb +10 -9
  127. data/lib/appwrite/models/database_list.rb +1 -0
  128. data/lib/appwrite/models/database_migration.rb +1 -0
  129. data/lib/appwrite/models/database_migration_list.rb +1 -0
  130. data/lib/appwrite/models/database_status.rb +6 -5
  131. data/lib/appwrite/models/database_status_connections.rb +1 -0
  132. data/lib/appwrite/models/database_status_replica.rb +3 -2
  133. data/lib/appwrite/models/database_status_volume.rb +1 -0
  134. data/lib/appwrite/models/dedicated_database.rb +22 -6
  135. data/lib/appwrite/models/dedicated_database_backup.rb +6 -5
  136. data/lib/appwrite/models/dedicated_database_backup_list.rb +1 -0
  137. data/lib/appwrite/models/dedicated_database_backup_storage.rb +1 -0
  138. data/lib/appwrite/models/dedicated_database_branch.rb +2 -1
  139. data/lib/appwrite/models/dedicated_database_branch_list.rb +1 -0
  140. data/lib/appwrite/models/dedicated_database_execution.rb +1 -0
  141. data/lib/appwrite/models/dedicated_database_execution_column.rb +1 -0
  142. data/lib/appwrite/models/dedicated_database_extensions.rb +1 -0
  143. data/lib/appwrite/models/dedicated_database_list.rb +1 -0
  144. data/lib/appwrite/models/dedicated_database_member.rb +3 -2
  145. data/lib/appwrite/models/dedicated_database_operation.rb +4 -3
  146. data/lib/appwrite/models/dedicated_database_operation_list.rb +1 -0
  147. data/lib/appwrite/models/dedicated_database_pitr_windows.rb +1 -0
  148. data/lib/appwrite/models/dedicated_database_pooler.rb +1 -0
  149. data/lib/appwrite/models/dedicated_database_replicas.rb +3 -2
  150. data/lib/appwrite/models/dedicated_database_restoration.rb +11 -5
  151. data/lib/appwrite/models/dedicated_database_restoration_list.rb +1 -0
  152. data/lib/appwrite/models/dedicated_database_specification.rb +21 -0
  153. data/lib/appwrite/models/dedicated_database_specification_list.rb +4 -8
  154. data/lib/appwrite/models/deployment.rb +1 -0
  155. data/lib/appwrite/models/deployment_list.rb +1 -0
  156. data/lib/appwrite/models/dns_record.rb +83 -0
  157. data/lib/appwrite/models/dns_records_list.rb +33 -0
  158. data/lib/appwrite/models/document.rb +1 -0
  159. data/lib/appwrite/models/document_list.rb +1 -0
  160. data/lib/appwrite/models/domain.rb +109 -0
  161. data/lib/appwrite/models/domain_price.rb +63 -0
  162. data/lib/appwrite/models/domain_prices_list.rb +33 -0
  163. data/lib/appwrite/models/domain_transfer_status.rb +59 -0
  164. data/lib/appwrite/models/domains_list.rb +33 -0
  165. data/lib/appwrite/models/email_template.rb +1 -0
  166. data/lib/appwrite/models/email_template_list.rb +1 -0
  167. data/lib/appwrite/models/embedding.rb +1 -0
  168. data/lib/appwrite/models/embedding_list.rb +1 -0
  169. data/lib/appwrite/models/ephemeral_key.rb +1 -0
  170. data/lib/appwrite/models/execution.rb +3 -1
  171. data/lib/appwrite/models/execution_list.rb +1 -0
  172. data/lib/appwrite/models/file.rb +1 -0
  173. data/lib/appwrite/models/file_list.rb +1 -0
  174. data/lib/appwrite/models/framework.rb +1 -0
  175. data/lib/appwrite/models/framework_adapter.rb +2 -1
  176. data/lib/appwrite/models/framework_list.rb +1 -0
  177. data/lib/appwrite/models/function.rb +10 -4
  178. data/lib/appwrite/models/function_list.rb +1 -0
  179. data/lib/appwrite/models/headers.rb +1 -0
  180. data/lib/appwrite/models/identity.rb +9 -3
  181. data/lib/appwrite/models/identity_list.rb +1 -0
  182. data/lib/appwrite/models/index.rb +2 -1
  183. data/lib/appwrite/models/index_list.rb +1 -0
  184. data/lib/appwrite/models/insight.rb +4 -3
  185. data/lib/appwrite/models/insight_cta.rb +1 -0
  186. data/lib/appwrite/models/insight_list.rb +1 -0
  187. data/lib/appwrite/models/jwt.rb +1 -0
  188. data/lib/appwrite/models/key.rb +1 -0
  189. data/lib/appwrite/models/key_list.rb +1 -0
  190. data/lib/appwrite/models/language.rb +1 -0
  191. data/lib/appwrite/models/language_list.rb +1 -0
  192. data/lib/appwrite/models/locale.rb +12 -11
  193. data/lib/appwrite/models/locale_code.rb +1 -0
  194. data/lib/appwrite/models/locale_code_list.rb +1 -0
  195. data/lib/appwrite/models/membership.rb +1 -0
  196. data/lib/appwrite/models/membership_list.rb +1 -0
  197. data/lib/appwrite/models/message.rb +4 -3
  198. data/lib/appwrite/models/message_list.rb +1 -0
  199. data/lib/appwrite/models/mfa_challenge.rb +1 -0
  200. data/lib/appwrite/models/mfa_challenge_secret.rb +1 -0
  201. data/lib/appwrite/models/mfa_factors.rb +1 -0
  202. data/lib/appwrite/models/mfa_recovery_codes.rb +1 -0
  203. data/lib/appwrite/models/mfa_type.rb +1 -0
  204. data/lib/appwrite/models/mock_number.rb +1 -0
  205. data/lib/appwrite/models/mock_number_list.rb +1 -0
  206. data/lib/appwrite/models/o_auth2_amazon.rb +1 -0
  207. data/lib/appwrite/models/o_auth2_apple.rb +14 -3
  208. data/lib/appwrite/models/o_auth2_appwrite.rb +1 -0
  209. data/lib/appwrite/models/o_auth2_auth0.rb +24 -0
  210. data/lib/appwrite/models/o_auth2_authentik.rb +1 -0
  211. data/lib/appwrite/models/o_auth2_autodesk.rb +1 -0
  212. data/lib/appwrite/models/o_auth2_bitbucket.rb +1 -0
  213. data/lib/appwrite/models/o_auth2_bitly.rb +1 -0
  214. data/lib/appwrite/models/o_auth2_box.rb +1 -0
  215. data/lib/appwrite/models/o_auth2_cloudflare.rb +1 -0
  216. data/lib/appwrite/models/o_auth2_dailymotion.rb +1 -0
  217. data/lib/appwrite/models/o_auth2_discord.rb +26 -3
  218. data/lib/appwrite/models/o_auth2_disqus.rb +1 -0
  219. data/lib/appwrite/models/o_auth2_dropbox.rb +1 -0
  220. data/lib/appwrite/models/o_auth2_etsy.rb +1 -0
  221. data/lib/appwrite/models/o_auth2_facebook.rb +1 -0
  222. data/lib/appwrite/models/o_auth2_figma.rb +1 -0
  223. data/lib/appwrite/models/o_auth2_fusion_auth.rb +1 -0
  224. data/lib/appwrite/models/o_auth2_github.rb +25 -3
  225. data/lib/appwrite/models/o_auth2_gitlab.rb +1 -0
  226. data/lib/appwrite/models/o_auth2_google.rb +18 -5
  227. data/lib/appwrite/models/o_auth2_hugging_face.rb +1 -0
  228. data/lib/appwrite/models/o_auth2_kakao.rb +67 -0
  229. data/lib/appwrite/models/o_auth2_keycloak.rb +1 -0
  230. data/lib/appwrite/models/o_auth2_kick.rb +1 -0
  231. data/lib/appwrite/models/o_auth2_linkedin.rb +1 -0
  232. data/lib/appwrite/models/o_auth2_microsoft.rb +25 -0
  233. data/lib/appwrite/models/o_auth2_notion.rb +1 -0
  234. data/lib/appwrite/models/o_auth2_oidc.rb +11 -8
  235. data/lib/appwrite/models/o_auth2_okta.rb +24 -0
  236. data/lib/appwrite/models/o_auth2_paypal.rb +1 -0
  237. data/lib/appwrite/models/o_auth2_podio.rb +1 -0
  238. data/lib/appwrite/models/o_auth2_provider_list.rb +1 -0
  239. data/lib/appwrite/models/o_auth2_resend.rb +1 -0
  240. data/lib/appwrite/models/o_auth2_salesforce.rb +26 -3
  241. data/lib/appwrite/models/o_auth2_slack.rb +1 -0
  242. data/lib/appwrite/models/o_auth2_spotify.rb +1 -0
  243. data/lib/appwrite/models/o_auth2_stripe.rb +1 -0
  244. data/lib/appwrite/models/o_auth2_tik_tok.rb +43 -0
  245. data/lib/appwrite/models/o_auth2_tradeshift.rb +1 -0
  246. data/lib/appwrite/models/o_auth2_twitch.rb +1 -0
  247. data/lib/appwrite/models/o_auth2_webflow.rb +43 -0
  248. data/lib/appwrite/models/o_auth2_word_press.rb +1 -0
  249. data/lib/appwrite/models/o_auth2_x.rb +1 -0
  250. data/lib/appwrite/models/o_auth2_yahoo.rb +1 -0
  251. data/lib/appwrite/models/o_auth2_yandex.rb +1 -0
  252. data/lib/appwrite/models/o_auth2_zoho.rb +25 -3
  253. data/lib/appwrite/models/o_auth2_zoom.rb +1 -0
  254. data/lib/appwrite/models/oauth2_approve.rb +1 -0
  255. data/lib/appwrite/models/oauth2_authorize.rb +1 -0
  256. data/lib/appwrite/models/oauth2_consent.rb +1 -0
  257. data/lib/appwrite/models/oauth2_consent_list.rb +1 -0
  258. data/lib/appwrite/models/oauth2_consent_token.rb +1 -0
  259. data/lib/appwrite/models/oauth2_consent_token_list.rb +1 -0
  260. data/lib/appwrite/models/oauth2_device_authorization.rb +1 -0
  261. data/lib/appwrite/models/oauth2_grant.rb +1 -0
  262. data/lib/appwrite/models/oauth2_introspection.rb +83 -0
  263. data/lib/appwrite/models/oauth2_organization.rb +1 -0
  264. data/lib/appwrite/models/oauth2_organization_list.rb +1 -0
  265. data/lib/appwrite/models/oauth2_par.rb +1 -0
  266. data/lib/appwrite/models/oauth2_project.rb +1 -0
  267. data/lib/appwrite/models/oauth2_project_list.rb +1 -0
  268. data/lib/appwrite/models/oauth2_reject.rb +1 -0
  269. data/lib/appwrite/models/oauth2_token.rb +3 -2
  270. data/lib/appwrite/models/organization.rb +21 -20
  271. data/lib/appwrite/models/passkey.rb +1 -0
  272. data/lib/appwrite/models/passkey_challenge.rb +1 -0
  273. data/lib/appwrite/models/passkey_list.rb +1 -0
  274. data/lib/appwrite/models/phone.rb +1 -0
  275. data/lib/appwrite/models/phone_list.rb +1 -0
  276. data/lib/appwrite/models/platform_android.rb +9 -3
  277. data/lib/appwrite/models/platform_apple.rb +1 -0
  278. data/lib/appwrite/models/platform_linux.rb +1 -0
  279. data/lib/appwrite/models/platform_list.rb +1 -0
  280. data/lib/appwrite/models/platform_web.rb +1 -0
  281. data/lib/appwrite/models/platform_windows.rb +1 -0
  282. data/lib/appwrite/models/policy_deny_aliased_email.rb +1 -0
  283. data/lib/appwrite/models/policy_deny_corporate_email.rb +1 -0
  284. data/lib/appwrite/models/policy_deny_disposable_email.rb +1 -0
  285. data/lib/appwrite/models/policy_deny_free_email.rb +1 -0
  286. data/lib/appwrite/models/policy_list.rb +1 -0
  287. data/lib/appwrite/models/policy_membership_privacy.rb +1 -0
  288. data/lib/appwrite/models/policy_mfa_factors.rb +1 -0
  289. data/lib/appwrite/models/policy_passkey.rb +1 -0
  290. data/lib/appwrite/models/policy_password_dictionary.rb +1 -0
  291. data/lib/appwrite/models/policy_password_history.rb +1 -0
  292. data/lib/appwrite/models/policy_password_personal_data.rb +1 -0
  293. data/lib/appwrite/models/policy_password_pwned.rb +43 -0
  294. data/lib/appwrite/models/policy_password_rotation.rb +38 -0
  295. data/lib/appwrite/models/policy_password_strength.rb +1 -0
  296. data/lib/appwrite/models/policy_session_alert.rb +1 -0
  297. data/lib/appwrite/models/policy_session_duration.rb +1 -0
  298. data/lib/appwrite/models/policy_session_invalidation.rb +1 -0
  299. data/lib/appwrite/models/policy_session_limit.rb +1 -0
  300. data/lib/appwrite/models/policy_user_limit.rb +1 -0
  301. data/lib/appwrite/models/postgres_extension.rb +1 -0
  302. data/lib/appwrite/models/presence.rb +4 -3
  303. data/lib/appwrite/models/presence_list.rb +1 -0
  304. data/lib/appwrite/models/program.rb +1 -0
  305. data/lib/appwrite/models/project.rb +35 -24
  306. data/lib/appwrite/models/project_auth_method.rb +1 -0
  307. data/lib/appwrite/models/project_list.rb +1 -0
  308. data/lib/appwrite/models/project_protocol.rb +1 -0
  309. data/lib/appwrite/models/project_service.rb +1 -0
  310. data/lib/appwrite/models/provider.rb +2 -1
  311. data/lib/appwrite/models/provider_list.rb +1 -0
  312. data/lib/appwrite/models/proxy_invalidation.rb +1 -0
  313. data/lib/appwrite/models/proxy_rule.rb +24 -4
  314. data/lib/appwrite/models/proxy_rule_list.rb +1 -0
  315. data/lib/appwrite/models/report.rb +2 -1
  316. data/lib/appwrite/models/report_list.rb +1 -0
  317. data/lib/appwrite/models/resource_token.rb +1 -0
  318. data/lib/appwrite/models/resource_token_list.rb +1 -0
  319. data/lib/appwrite/models/row.rb +1 -0
  320. data/lib/appwrite/models/row_list.rb +1 -0
  321. data/lib/appwrite/models/runtime.rb +1 -0
  322. data/lib/appwrite/models/runtime_list.rb +1 -0
  323. data/lib/appwrite/models/session.rb +1 -0
  324. data/lib/appwrite/models/session_list.rb +1 -0
  325. data/lib/appwrite/models/site.rb +1 -0
  326. data/lib/appwrite/models/site_list.rb +1 -0
  327. data/lib/appwrite/models/specification.rb +1 -0
  328. data/lib/appwrite/models/specification_list.rb +1 -0
  329. data/lib/appwrite/models/subscriber.rb +1 -0
  330. data/lib/appwrite/models/subscriber_list.rb +1 -0
  331. data/lib/appwrite/models/table.rb +1 -0
  332. data/lib/appwrite/models/table_list.rb +1 -0
  333. data/lib/appwrite/models/target.rb +2 -1
  334. data/lib/appwrite/models/target_list.rb +1 -0
  335. data/lib/appwrite/models/team.rb +1 -0
  336. data/lib/appwrite/models/team_list.rb +1 -0
  337. data/lib/appwrite/models/token.rb +1 -0
  338. data/lib/appwrite/models/token_secret.rb +1 -0
  339. data/lib/appwrite/models/topic.rb +14 -3
  340. data/lib/appwrite/models/topic_list.rb +1 -0
  341. data/lib/appwrite/models/transaction.rb +1 -0
  342. data/lib/appwrite/models/transaction_list.rb +1 -0
  343. data/lib/appwrite/models/usage_billing_plan.rb +27 -27
  344. data/lib/appwrite/models/user.rb +16 -10
  345. data/lib/appwrite/models/user_list.rb +1 -0
  346. data/lib/appwrite/models/variable.rb +1 -0
  347. data/lib/appwrite/models/variable_list.rb +1 -0
  348. data/lib/appwrite/models/vectorsdb_collection.rb +1 -0
  349. data/lib/appwrite/models/vectorsdb_collection_list.rb +1 -0
  350. data/lib/appwrite/models/waf_rule_bypass.rb +111 -0
  351. data/lib/appwrite/models/waf_rule_challenge.rb +126 -0
  352. data/lib/appwrite/models/waf_rule_deny.rb +111 -0
  353. data/lib/appwrite/models/{log_list.rb → waf_rule_list.rb} +8 -7
  354. data/lib/appwrite/models/waf_rule_rate_limit.rb +136 -0
  355. data/lib/appwrite/models/waf_rule_redirect.rb +121 -0
  356. data/lib/appwrite/models/webhook.rb +1 -0
  357. data/lib/appwrite/models/webhook_list.rb +1 -0
  358. data/lib/appwrite/query/builder.rb +361 -0
  359. data/lib/appwrite/query.rb +190 -0
  360. data/lib/appwrite/services/account.rb +409 -133
  361. data/lib/appwrite/services/activities.rb +4 -4
  362. data/lib/appwrite/services/advisor.rb +19 -18
  363. data/lib/appwrite/services/apps.rb +89 -89
  364. data/lib/appwrite/services/avatars.rb +92 -21
  365. data/lib/appwrite/services/backups.rb +30 -30
  366. data/lib/appwrite/services/databases.rb +504 -453
  367. data/lib/appwrite/services/documents_db.rb +199 -191
  368. data/lib/appwrite/services/domains.rb +2318 -0
  369. data/lib/appwrite/services/embeddings.rb +2 -2
  370. data/lib/appwrite/services/functions.rb +128 -112
  371. data/lib/appwrite/services/graphql.rb +4 -4
  372. data/lib/appwrite/services/locale.rb +49 -14
  373. data/lib/appwrite/services/messaging.rb +281 -153
  374. data/lib/appwrite/services/mongo.rb +194 -130
  375. data/lib/appwrite/services/mysql.rb +212 -144
  376. data/lib/appwrite/services/oauth2.rb +72 -27
  377. data/lib/appwrite/services/organization.rb +255 -221
  378. data/lib/appwrite/services/postgresql.rb +226 -158
  379. data/lib/appwrite/services/presences.rb +17 -16
  380. data/lib/appwrite/services/project.rb +588 -157
  381. data/lib/appwrite/services/proxy.rb +70 -23
  382. data/lib/appwrite/services/sites.rb +119 -107
  383. data/lib/appwrite/services/storage.rb +62 -59
  384. data/lib/appwrite/services/tables_db.rb +617 -558
  385. data/lib/appwrite/services/teams.rb +87 -82
  386. data/lib/appwrite/services/tokens.rb +25 -24
  387. data/lib/appwrite/services/users.rb +170 -199
  388. data/lib/appwrite/services/vectors_db.rb +185 -177
  389. data/lib/appwrite/services/waf.rb +859 -0
  390. data/lib/appwrite/services/webhooks.rb +23 -22
  391. data/lib/appwrite/topic.rb +53 -0
  392. data/lib/appwrite.rb +48 -9
  393. metadata +47 -7
  394. data/lib/appwrite/enums/organization_key_scopes.rb +0 -22
  395. data/lib/appwrite/models/dedicated_database_specification_pricing.rb +0 -42
  396. data/lib/appwrite/models/dev_key.rb +0 -62
  397. data/lib/appwrite/models/log.rb +0 -132
@@ -15,6 +15,7 @@ module Appwrite
15
15
  end
16
16
 
17
17
  def self.from(map:)
18
+ map = { "total" => 0, "keys" => [] }.merge(map)
18
19
  KeyList.new(
19
20
  total: map["total"],
20
21
  keys: map["keys"].map { |it| Key.from(map: it) }
@@ -18,6 +18,7 @@ module Appwrite
18
18
  end
19
19
 
20
20
  def self.from(map:)
21
+ map = { "name" => "", "code" => "", "nativeName" => "" }.merge(map)
21
22
  Language.new(
22
23
  name: map["name"],
23
24
  code: map["code"],
@@ -15,6 +15,7 @@ module Appwrite
15
15
  end
16
16
 
17
17
  def self.from(map:)
18
+ map = { "total" => 0, "languages" => [] }.merge(map)
18
19
  LanguageList.new(
19
20
  total: map["total"],
20
21
  languages: map["languages"].map { |it| Language.from(map: it) }
@@ -30,17 +30,17 @@ module Appwrite
30
30
  continent:,
31
31
  eu:,
32
32
  currency:,
33
- city:,
34
- time_zone:,
35
- postal_code:,
36
- latitude:,
37
- longitude:,
38
- autonomous_system_number:,
39
- autonomous_system_organization:,
40
- isp:,
41
- connection_type:,
42
- connection_usage_type:,
43
- connection_organization:
33
+ city: nil,
34
+ time_zone: nil,
35
+ postal_code: nil,
36
+ latitude: nil,
37
+ longitude: nil,
38
+ autonomous_system_number: nil,
39
+ autonomous_system_organization: nil,
40
+ isp: nil,
41
+ connection_type: nil,
42
+ connection_usage_type: nil,
43
+ connection_organization: nil
44
44
  )
45
45
  @ip = ip
46
46
  @country_code = country_code
@@ -63,6 +63,7 @@ module Appwrite
63
63
  end
64
64
 
65
65
  def self.from(map:)
66
+ map = { "ip" => "", "countryCode" => "", "country" => "", "continentCode" => "", "continent" => "", "eu" => false, "currency" => "" }.merge(map)
66
67
  Locale.new(
67
68
  ip: map["ip"],
68
69
  country_code: map["countryCode"],
@@ -15,6 +15,7 @@ module Appwrite
15
15
  end
16
16
 
17
17
  def self.from(map:)
18
+ map = { "code" => "", "name" => "" }.merge(map)
18
19
  LocaleCode.new(
19
20
  code: map["code"],
20
21
  name: map["name"]
@@ -15,6 +15,7 @@ module Appwrite
15
15
  end
16
16
 
17
17
  def self.from(map:)
18
+ map = { "total" => 0, "localeCodes" => [] }.merge(map)
18
19
  LocaleCodeList.new(
19
20
  total: map["total"],
20
21
  locale_codes: map["localeCodes"].map { |it| LocaleCode.from(map: it) }
@@ -54,6 +54,7 @@ module Appwrite
54
54
  end
55
55
 
56
56
  def self.from(map:)
57
+ map = { "$id" => "", "$createdAt" => "", "$updatedAt" => "", "userId" => "", "userName" => "", "userEmail" => "", "userPhone" => "", "teamId" => "", "teamName" => "", "invited" => "", "joined" => "", "confirm" => false, "mfa" => false, "userAccessedAt" => "", "roles" => [] }.merge(map)
57
58
  Membership.new(
58
59
  id: map["$id"],
59
60
  created_at: map["$createdAt"],
@@ -15,6 +15,7 @@ module Appwrite
15
15
  end
16
16
 
17
17
  def self.from(map:)
18
+ map = { "total" => 0, "memberships" => [] }.merge(map)
18
19
  MembershipList.new(
19
20
  total: map["total"],
20
21
  memberships: map["memberships"].map { |it| Membership.from(map: it) }
@@ -25,9 +25,9 @@ module Appwrite
25
25
  topics:,
26
26
  users:,
27
27
  targets:,
28
- scheduled_at:,
29
- delivered_at:,
30
- delivery_errors:,
28
+ scheduled_at: nil,
29
+ delivered_at: nil,
30
+ delivery_errors: nil,
31
31
  delivered_total:,
32
32
  data:,
33
33
  status:
@@ -48,6 +48,7 @@ module Appwrite
48
48
  end
49
49
 
50
50
  def self.from(map:)
51
+ map = { "$id" => "", "$createdAt" => "", "$updatedAt" => "", "providerType" => "", "topics" => [], "users" => [], "targets" => [], "deliveredTotal" => 0, "data" => {}, "status" => "draft" }.merge(map)
51
52
  Message.new(
52
53
  id: map["$id"],
53
54
  created_at: map["$createdAt"],
@@ -15,6 +15,7 @@ module Appwrite
15
15
  end
16
16
 
17
17
  def self.from(map:)
18
+ map = { "total" => 0, "messages" => [] }.merge(map)
18
19
  MessageList.new(
19
20
  total: map["total"],
20
21
  messages: map["messages"].map { |it| Message.from(map: it) }
@@ -21,6 +21,7 @@ module Appwrite
21
21
  end
22
22
 
23
23
  def self.from(map:)
24
+ map = { "$id" => "", "$createdAt" => "", "userId" => "", "expire" => "" }.merge(map)
24
25
  MfaChallenge.new(
25
26
  id: map["$id"],
26
27
  created_at: map["$createdAt"],
@@ -24,6 +24,7 @@ module Appwrite
24
24
  end
25
25
 
26
26
  def self.from(map:)
27
+ map = { "$id" => "", "$createdAt" => "", "userId" => "", "expire" => "", "code" => "" }.merge(map)
27
28
  MfaChallengeSecret.new(
28
29
  id: map["$id"],
29
30
  created_at: map["$createdAt"],
@@ -24,6 +24,7 @@ module Appwrite
24
24
  end
25
25
 
26
26
  def self.from(map:)
27
+ map = { "totp" => false, "phone" => false, "email" => false, "recoveryCode" => false, "custom" => false }.merge(map)
27
28
  MfaFactors.new(
28
29
  totp: map["totp"],
29
30
  phone: map["phone"],
@@ -12,6 +12,7 @@ module Appwrite
12
12
  end
13
13
 
14
14
  def self.from(map:)
15
+ map = { "recoveryCodes" => [] }.merge(map)
15
16
  MfaRecoveryCodes.new(
16
17
  recovery_codes: map["recoveryCodes"]
17
18
  )
@@ -15,6 +15,7 @@ module Appwrite
15
15
  end
16
16
 
17
17
  def self.from(map:)
18
+ map = { "secret" => "", "uri" => "" }.merge(map)
18
19
  MfaType.new(
19
20
  secret: map["secret"],
20
21
  uri: map["uri"]
@@ -21,6 +21,7 @@ module Appwrite
21
21
  end
22
22
 
23
23
  def self.from(map:)
24
+ map = { "number" => "", "otp" => "", "$createdAt" => "", "$updatedAt" => "" }.merge(map)
24
25
  MockNumber.new(
25
26
  number: map["number"],
26
27
  otp: map["otp"],
@@ -15,6 +15,7 @@ module Appwrite
15
15
  end
16
16
 
17
17
  def self.from(map:)
18
+ map = { "total" => 0, "mockNumbers" => [] }.merge(map)
18
19
  MockNumberList.new(
19
20
  total: map["total"],
20
21
  mock_numbers: map["mockNumbers"].map { |it| MockNumber.from(map: it) }
@@ -21,6 +21,7 @@ module Appwrite
21
21
  end
22
22
 
23
23
  def self.from(map:)
24
+ map = { "$id" => "", "enabled" => false, "clientId" => "", "clientSecret" => "" }.merge(map)
24
25
  OAuth2Amazon.new(
25
26
  id: map["$id"],
26
27
  enabled: map["enabled"],
@@ -9,6 +9,8 @@ module Appwrite
9
9
  attr_reader :key_id
10
10
  attr_reader :team_id
11
11
  attr_reader :p8_file
12
+ attr_reader :native_enabled
13
+ attr_reader :native_client_ids
12
14
 
13
15
  def initialize(
14
16
  id:,
@@ -16,7 +18,9 @@ module Appwrite
16
18
  service_id:,
17
19
  key_id:,
18
20
  team_id:,
19
- p8_file:
21
+ p8_file:,
22
+ native_enabled:,
23
+ native_client_ids:
20
24
  )
21
25
  @id = id
22
26
  @enabled = enabled
@@ -24,16 +28,21 @@ module Appwrite
24
28
  @key_id = key_id
25
29
  @team_id = team_id
26
30
  @p8_file = p8_file
31
+ @native_enabled = native_enabled
32
+ @native_client_ids = native_client_ids
27
33
  end
28
34
 
29
35
  def self.from(map:)
36
+ map = { "$id" => "", "enabled" => false, "serviceId" => "", "keyId" => "", "teamId" => "", "p8File" => "", "nativeEnabled" => false, "nativeClientIds" => [] }.merge(map)
30
37
  OAuth2Apple.new(
31
38
  id: map["$id"],
32
39
  enabled: map["enabled"],
33
40
  service_id: map["serviceId"],
34
41
  key_id: map["keyId"],
35
42
  team_id: map["teamId"],
36
- p8_file: map["p8File"]
43
+ p8_file: map["p8File"],
44
+ native_enabled: map["nativeEnabled"],
45
+ native_client_ids: map["nativeClientIds"]
37
46
  )
38
47
  end
39
48
 
@@ -44,7 +53,9 @@ module Appwrite
44
53
  "serviceId": @service_id,
45
54
  "keyId": @key_id,
46
55
  "teamId": @team_id,
47
- "p8File": @p8_file
56
+ "p8File": @p8_file,
57
+ "nativeEnabled": @native_enabled,
58
+ "nativeClientIds": @native_client_ids
48
59
  }
49
60
  end
50
61
  end
@@ -21,6 +21,7 @@ module Appwrite
21
21
  end
22
22
 
23
23
  def self.from(map:)
24
+ map = { "$id" => "", "enabled" => false, "clientId" => "", "clientSecret" => "" }.merge(map)
24
25
  OAuth2Appwrite.new(
25
26
  id: map["$id"],
26
27
  enabled: map["enabled"],
@@ -7,6 +7,7 @@ module Appwrite
7
7
  attr_reader :enabled
8
8
  attr_reader :client_id
9
9
  attr_reader :client_secret
10
+ attr_reader :prompt
10
11
  attr_reader :endpoint
11
12
 
12
13
  def initialize(
@@ -14,21 +15,25 @@ module Appwrite
14
15
  enabled:,
15
16
  client_id:,
16
17
  client_secret:,
18
+ prompt:,
17
19
  endpoint:
18
20
  )
19
21
  @id = id
20
22
  @enabled = enabled
21
23
  @client_id = client_id
22
24
  @client_secret = client_secret
25
+ @prompt = validate_prompt(prompt)
23
26
  @endpoint = endpoint
24
27
  end
25
28
 
26
29
  def self.from(map:)
30
+ map = { "$id" => "", "enabled" => false, "clientId" => "", "clientSecret" => "", "prompt" => [], "endpoint" => "" }.merge(map)
27
31
  OAuth2Auth0.new(
28
32
  id: map["$id"],
29
33
  enabled: map["enabled"],
30
34
  client_id: map["clientId"],
31
35
  client_secret: map["clientSecret"],
36
+ prompt: map["prompt"],
32
37
  endpoint: map["endpoint"]
33
38
  )
34
39
  end
@@ -39,9 +44,28 @@ module Appwrite
39
44
  "enabled": @enabled,
40
45
  "clientId": @client_id,
41
46
  "clientSecret": @client_secret,
47
+ "prompt": @prompt,
42
48
  "endpoint": @endpoint
43
49
  }
44
50
  end
51
+
52
+ private
53
+
54
+ def validate_prompt(prompt)
55
+ valid_prompt = [
56
+ Appwrite::Enums::OAuth2Auth0Prompt::NONE,
57
+ Appwrite::Enums::OAuth2Auth0Prompt::LOGIN,
58
+ Appwrite::Enums::OAuth2Auth0Prompt::CONSENT,
59
+ ]
60
+
61
+ (prompt || []).each do |value|
62
+ unless valid_prompt.include?(value)
63
+ raise ArgumentError, "Invalid " + value.to_s + ". Must be one of: " + valid_prompt.join(', ')
64
+ end
65
+ end
66
+
67
+ prompt
68
+ end
45
69
  end
46
70
  end
47
71
  end
@@ -24,6 +24,7 @@ module Appwrite
24
24
  end
25
25
 
26
26
  def self.from(map:)
27
+ map = { "$id" => "", "enabled" => false, "clientId" => "", "clientSecret" => "", "endpoint" => "" }.merge(map)
27
28
  OAuth2Authentik.new(
28
29
  id: map["$id"],
29
30
  enabled: map["enabled"],
@@ -21,6 +21,7 @@ module Appwrite
21
21
  end
22
22
 
23
23
  def self.from(map:)
24
+ map = { "$id" => "", "enabled" => false, "clientId" => "", "clientSecret" => "" }.merge(map)
24
25
  OAuth2Autodesk.new(
25
26
  id: map["$id"],
26
27
  enabled: map["enabled"],
@@ -21,6 +21,7 @@ module Appwrite
21
21
  end
22
22
 
23
23
  def self.from(map:)
24
+ map = { "$id" => "", "enabled" => false, "key" => "", "secret" => "" }.merge(map)
24
25
  OAuth2Bitbucket.new(
25
26
  id: map["$id"],
26
27
  enabled: map["enabled"],
@@ -21,6 +21,7 @@ module Appwrite
21
21
  end
22
22
 
23
23
  def self.from(map:)
24
+ map = { "$id" => "", "enabled" => false, "clientId" => "", "clientSecret" => "" }.merge(map)
24
25
  OAuth2Bitly.new(
25
26
  id: map["$id"],
26
27
  enabled: map["enabled"],
@@ -21,6 +21,7 @@ module Appwrite
21
21
  end
22
22
 
23
23
  def self.from(map:)
24
+ map = { "$id" => "", "enabled" => false, "clientId" => "", "clientSecret" => "" }.merge(map)
24
25
  OAuth2Box.new(
25
26
  id: map["$id"],
26
27
  enabled: map["enabled"],
@@ -21,6 +21,7 @@ module Appwrite
21
21
  end
22
22
 
23
23
  def self.from(map:)
24
+ map = { "$id" => "", "enabled" => false, "clientId" => "", "clientSecret" => "" }.merge(map)
24
25
  OAuth2Cloudflare.new(
25
26
  id: map["$id"],
26
27
  enabled: map["enabled"],
@@ -21,6 +21,7 @@ module Appwrite
21
21
  end
22
22
 
23
23
  def self.from(map:)
24
+ map = { "$id" => "", "enabled" => false, "apiKey" => "", "apiSecret" => "" }.merge(map)
24
25
  OAuth2Dailymotion.new(
25
26
  id: map["$id"],
26
27
  enabled: map["enabled"],
@@ -7,25 +7,30 @@ module Appwrite
7
7
  attr_reader :enabled
8
8
  attr_reader :client_id
9
9
  attr_reader :client_secret
10
+ attr_reader :prompt
10
11
 
11
12
  def initialize(
12
13
  id:,
13
14
  enabled:,
14
15
  client_id:,
15
- client_secret:
16
+ client_secret:,
17
+ prompt:
16
18
  )
17
19
  @id = id
18
20
  @enabled = enabled
19
21
  @client_id = client_id
20
22
  @client_secret = client_secret
23
+ @prompt = validate_prompt(prompt)
21
24
  end
22
25
 
23
26
  def self.from(map:)
27
+ map = { "$id" => "", "enabled" => false, "clientId" => "", "clientSecret" => "", "prompt" => [] }.merge(map)
24
28
  OAuth2Discord.new(
25
29
  id: map["$id"],
26
30
  enabled: map["enabled"],
27
31
  client_id: map["clientId"],
28
- client_secret: map["clientSecret"]
32
+ client_secret: map["clientSecret"],
33
+ prompt: map["prompt"]
29
34
  )
30
35
  end
31
36
 
@@ -34,9 +39,27 @@ module Appwrite
34
39
  "$id": @id,
35
40
  "enabled": @enabled,
36
41
  "clientId": @client_id,
37
- "clientSecret": @client_secret
42
+ "clientSecret": @client_secret,
43
+ "prompt": @prompt
38
44
  }
39
45
  end
46
+
47
+ private
48
+
49
+ def validate_prompt(prompt)
50
+ valid_prompt = [
51
+ Appwrite::Enums::OAuth2DiscordPrompt::NONE,
52
+ Appwrite::Enums::OAuth2DiscordPrompt::CONSENT,
53
+ ]
54
+
55
+ (prompt || []).each do |value|
56
+ unless valid_prompt.include?(value)
57
+ raise ArgumentError, "Invalid " + value.to_s + ". Must be one of: " + valid_prompt.join(', ')
58
+ end
59
+ end
60
+
61
+ prompt
62
+ end
40
63
  end
41
64
  end
42
65
  end
@@ -21,6 +21,7 @@ module Appwrite
21
21
  end
22
22
 
23
23
  def self.from(map:)
24
+ map = { "$id" => "", "enabled" => false, "publicKey" => "", "secretKey" => "" }.merge(map)
24
25
  OAuth2Disqus.new(
25
26
  id: map["$id"],
26
27
  enabled: map["enabled"],
@@ -21,6 +21,7 @@ module Appwrite
21
21
  end
22
22
 
23
23
  def self.from(map:)
24
+ map = { "$id" => "", "enabled" => false, "appKey" => "", "appSecret" => "" }.merge(map)
24
25
  OAuth2Dropbox.new(
25
26
  id: map["$id"],
26
27
  enabled: map["enabled"],
@@ -21,6 +21,7 @@ module Appwrite
21
21
  end
22
22
 
23
23
  def self.from(map:)
24
+ map = { "$id" => "", "enabled" => false, "keyString" => "", "sharedSecret" => "" }.merge(map)
24
25
  OAuth2Etsy.new(
25
26
  id: map["$id"],
26
27
  enabled: map["enabled"],
@@ -21,6 +21,7 @@ module Appwrite
21
21
  end
22
22
 
23
23
  def self.from(map:)
24
+ map = { "$id" => "", "enabled" => false, "appId" => "", "appSecret" => "" }.merge(map)
24
25
  OAuth2Facebook.new(
25
26
  id: map["$id"],
26
27
  enabled: map["enabled"],
@@ -21,6 +21,7 @@ module Appwrite
21
21
  end
22
22
 
23
23
  def self.from(map:)
24
+ map = { "$id" => "", "enabled" => false, "clientId" => "", "clientSecret" => "" }.merge(map)
24
25
  OAuth2Figma.new(
25
26
  id: map["$id"],
26
27
  enabled: map["enabled"],
@@ -24,6 +24,7 @@ module Appwrite
24
24
  end
25
25
 
26
26
  def self.from(map:)
27
+ map = { "$id" => "", "enabled" => false, "clientId" => "", "clientSecret" => "", "endpoint" => "" }.merge(map)
27
28
  OAuth2FusionAuth.new(
28
29
  id: map["$id"],
29
30
  enabled: map["enabled"],
@@ -7,25 +7,30 @@ module Appwrite
7
7
  attr_reader :enabled
8
8
  attr_reader :client_id
9
9
  attr_reader :client_secret
10
+ attr_reader :prompt
10
11
 
11
12
  def initialize(
12
13
  id:,
13
14
  enabled:,
14
15
  client_id:,
15
- client_secret:
16
+ client_secret:,
17
+ prompt:
16
18
  )
17
19
  @id = id
18
20
  @enabled = enabled
19
21
  @client_id = client_id
20
22
  @client_secret = client_secret
23
+ @prompt = validate_prompt(prompt)
21
24
  end
22
25
 
23
26
  def self.from(map:)
27
+ map = { "$id" => "", "enabled" => false, "clientId" => "", "clientSecret" => "", "prompt" => [] }.merge(map)
24
28
  OAuth2Github.new(
25
29
  id: map["$id"],
26
30
  enabled: map["enabled"],
27
31
  client_id: map["clientId"],
28
- client_secret: map["clientSecret"]
32
+ client_secret: map["clientSecret"],
33
+ prompt: map["prompt"]
29
34
  )
30
35
  end
31
36
 
@@ -34,9 +39,26 @@ module Appwrite
34
39
  "$id": @id,
35
40
  "enabled": @enabled,
36
41
  "clientId": @client_id,
37
- "clientSecret": @client_secret
42
+ "clientSecret": @client_secret,
43
+ "prompt": @prompt
38
44
  }
39
45
  end
46
+
47
+ private
48
+
49
+ def validate_prompt(prompt)
50
+ valid_prompt = [
51
+ Appwrite::Enums::OAuth2GithubPrompt::SELECT_ACCOUNT,
52
+ ]
53
+
54
+ (prompt || []).each do |value|
55
+ unless valid_prompt.include?(value)
56
+ raise ArgumentError, "Invalid " + value.to_s + ". Must be one of: " + valid_prompt.join(', ')
57
+ end
58
+ end
59
+
60
+ prompt
61
+ end
40
62
  end
41
63
  end
42
64
  end
@@ -24,6 +24,7 @@ module Appwrite
24
24
  end
25
25
 
26
26
  def self.from(map:)
27
+ map = { "$id" => "", "enabled" => false, "applicationId" => "", "secret" => "", "endpoint" => "" }.merge(map)
27
28
  OAuth2Gitlab.new(
28
29
  id: map["$id"],
29
30
  enabled: map["enabled"],
@@ -8,28 +8,37 @@ module Appwrite
8
8
  attr_reader :client_id
9
9
  attr_reader :client_secret
10
10
  attr_reader :prompt
11
+ attr_reader :native_enabled
12
+ attr_reader :native_client_ids
11
13
 
12
14
  def initialize(
13
15
  id:,
14
16
  enabled:,
15
17
  client_id:,
16
18
  client_secret:,
17
- prompt:
19
+ prompt:,
20
+ native_enabled:,
21
+ native_client_ids:
18
22
  )
19
23
  @id = id
20
24
  @enabled = enabled
21
25
  @client_id = client_id
22
26
  @client_secret = client_secret
23
27
  @prompt = validate_prompt(prompt)
28
+ @native_enabled = native_enabled
29
+ @native_client_ids = native_client_ids
24
30
  end
25
31
 
26
32
  def self.from(map:)
33
+ map = { "$id" => "", "enabled" => false, "clientId" => "", "clientSecret" => "", "prompt" => ["consent"], "nativeEnabled" => false, "nativeClientIds" => [] }.merge(map)
27
34
  OAuth2Google.new(
28
35
  id: map["$id"],
29
36
  enabled: map["enabled"],
30
37
  client_id: map["clientId"],
31
38
  client_secret: map["clientSecret"],
32
- prompt: map["prompt"]
39
+ prompt: map["prompt"],
40
+ native_enabled: map["nativeEnabled"],
41
+ native_client_ids: map["nativeClientIds"]
33
42
  )
34
43
  end
35
44
 
@@ -39,7 +48,9 @@ module Appwrite
39
48
  "enabled": @enabled,
40
49
  "clientId": @client_id,
41
50
  "clientSecret": @client_secret,
42
- "prompt": @prompt
51
+ "prompt": @prompt,
52
+ "nativeEnabled": @native_enabled,
53
+ "nativeClientIds": @native_client_ids
43
54
  }
44
55
  end
45
56
 
@@ -52,8 +63,10 @@ module Appwrite
52
63
  Appwrite::Enums::OAuth2GooglePrompt::SELECT_ACCOUNT,
53
64
  ]
54
65
 
55
- unless valid_prompt.include?(prompt)
56
- raise ArgumentError, "Invalid " + prompt + ". Must be one of: " + valid_prompt.join(', ')
66
+ (prompt || []).each do |value|
67
+ unless valid_prompt.include?(value)
68
+ raise ArgumentError, "Invalid " + value.to_s + ". Must be one of: " + valid_prompt.join(', ')
69
+ end
57
70
  end
58
71
 
59
72
  prompt