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
@@ -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
  OAuth2HuggingFace.new(
25
26
  id: map["$id"],
26
27
  enabled: map["enabled"],
@@ -0,0 +1,67 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class OAuth2Kakao
6
+ attr_reader :id
7
+ attr_reader :enabled
8
+ attr_reader :client_id
9
+ attr_reader :client_secret
10
+ attr_reader :prompt
11
+
12
+ def initialize(
13
+ id:,
14
+ enabled:,
15
+ client_id:,
16
+ client_secret:,
17
+ prompt:
18
+ )
19
+ @id = id
20
+ @enabled = enabled
21
+ @client_id = client_id
22
+ @client_secret = client_secret
23
+ @prompt = validate_prompt(prompt)
24
+ end
25
+
26
+ def self.from(map:)
27
+ map = { "$id" => "", "enabled" => false, "clientId" => "", "clientSecret" => "", "prompt" => [] }.merge(map)
28
+ OAuth2Kakao.new(
29
+ id: map["$id"],
30
+ enabled: map["enabled"],
31
+ client_id: map["clientId"],
32
+ client_secret: map["clientSecret"],
33
+ prompt: map["prompt"]
34
+ )
35
+ end
36
+
37
+ def to_map
38
+ {
39
+ "$id": @id,
40
+ "enabled": @enabled,
41
+ "clientId": @client_id,
42
+ "clientSecret": @client_secret,
43
+ "prompt": @prompt
44
+ }
45
+ end
46
+
47
+ private
48
+
49
+ def validate_prompt(prompt)
50
+ valid_prompt = [
51
+ Appwrite::Enums::OAuth2KakaoPrompt::NONE,
52
+ Appwrite::Enums::OAuth2KakaoPrompt::LOGIN,
53
+ Appwrite::Enums::OAuth2KakaoPrompt::CREATE,
54
+ Appwrite::Enums::OAuth2KakaoPrompt::SELECT_ACCOUNT,
55
+ ]
56
+
57
+ (prompt || []).each do |value|
58
+ unless valid_prompt.include?(value)
59
+ raise ArgumentError, "Invalid " + value.to_s + ". Must be one of: " + valid_prompt.join(', ')
60
+ end
61
+ end
62
+
63
+ prompt
64
+ end
65
+ end
66
+ end
67
+ end
@@ -27,6 +27,7 @@ module Appwrite
27
27
  end
28
28
 
29
29
  def self.from(map:)
30
+ map = { "$id" => "", "enabled" => false, "clientId" => "", "clientSecret" => "", "endpoint" => "", "realmName" => "" }.merge(map)
30
31
  OAuth2Keycloak.new(
31
32
  id: map["$id"],
32
33
  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
  OAuth2Kick.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" => "", "primaryClientSecret" => "" }.merge(map)
24
25
  OAuth2Linkedin.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 :application_id
9
9
  attr_reader :application_secret
10
+ attr_reader :prompt
10
11
  attr_reader :tenant
11
12
 
12
13
  def initialize(
@@ -14,21 +15,25 @@ module Appwrite
14
15
  enabled:,
15
16
  application_id:,
16
17
  application_secret:,
18
+ prompt:,
17
19
  tenant:
18
20
  )
19
21
  @id = id
20
22
  @enabled = enabled
21
23
  @application_id = application_id
22
24
  @application_secret = application_secret
25
+ @prompt = validate_prompt(prompt)
23
26
  @tenant = tenant
24
27
  end
25
28
 
26
29
  def self.from(map:)
30
+ map = { "$id" => "", "enabled" => false, "applicationId" => "", "applicationSecret" => "", "prompt" => [], "tenant" => "" }.merge(map)
27
31
  OAuth2Microsoft.new(
28
32
  id: map["$id"],
29
33
  enabled: map["enabled"],
30
34
  application_id: map["applicationId"],
31
35
  application_secret: map["applicationSecret"],
36
+ prompt: map["prompt"],
32
37
  tenant: map["tenant"]
33
38
  )
34
39
  end
@@ -39,9 +44,29 @@ module Appwrite
39
44
  "enabled": @enabled,
40
45
  "applicationId": @application_id,
41
46
  "applicationSecret": @application_secret,
47
+ "prompt": @prompt,
42
48
  "tenant": @tenant
43
49
  }
44
50
  end
51
+
52
+ private
53
+
54
+ def validate_prompt(prompt)
55
+ valid_prompt = [
56
+ Appwrite::Enums::OAuth2MicrosoftPrompt::NONE,
57
+ Appwrite::Enums::OAuth2MicrosoftPrompt::LOGIN,
58
+ Appwrite::Enums::OAuth2MicrosoftPrompt::CONSENT,
59
+ Appwrite::Enums::OAuth2MicrosoftPrompt::SELECT_ACCOUNT,
60
+ ]
61
+
62
+ (prompt || []).each do |value|
63
+ unless valid_prompt.include?(value)
64
+ raise ArgumentError, "Invalid " + value.to_s + ". Must be one of: " + valid_prompt.join(', ')
65
+ end
66
+ end
67
+
68
+ prompt
69
+ end
45
70
  end
46
71
  end
47
72
  end
@@ -21,6 +21,7 @@ module Appwrite
21
21
  end
22
22
 
23
23
  def self.from(map:)
24
+ map = { "$id" => "", "enabled" => false, "oauthClientId" => "", "oauthClientSecret" => "" }.merge(map)
24
25
  OAuth2Notion.new(
25
26
  id: map["$id"],
26
27
  enabled: map["enabled"],
@@ -7,11 +7,11 @@ 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 :well_known_url
11
12
  attr_reader :authorization_url
12
13
  attr_reader :token_url
13
14
  attr_reader :user_info_url
14
- attr_reader :prompt
15
15
  attr_reader :max_age
16
16
 
17
17
  def initialize(
@@ -19,36 +19,37 @@ module Appwrite
19
19
  enabled:,
20
20
  client_id:,
21
21
  client_secret:,
22
+ prompt:,
22
23
  well_known_url:,
23
24
  authorization_url:,
24
25
  token_url:,
25
26
  user_info_url:,
26
- prompt:,
27
- max_age:
27
+ max_age: nil
28
28
  )
29
29
  @id = id
30
30
  @enabled = enabled
31
31
  @client_id = client_id
32
32
  @client_secret = client_secret
33
+ @prompt = validate_prompt(prompt)
33
34
  @well_known_url = well_known_url
34
35
  @authorization_url = authorization_url
35
36
  @token_url = token_url
36
37
  @user_info_url = user_info_url
37
- @prompt = validate_prompt(prompt)
38
38
  @max_age = max_age
39
39
  end
40
40
 
41
41
  def self.from(map:)
42
+ map = { "$id" => "", "enabled" => false, "clientId" => "", "clientSecret" => "", "prompt" => [], "wellKnownURL" => "", "authorizationURL" => "", "tokenURL" => "", "userInfoURL" => "" }.merge(map)
42
43
  OAuth2Oidc.new(
43
44
  id: map["$id"],
44
45
  enabled: map["enabled"],
45
46
  client_id: map["clientId"],
46
47
  client_secret: map["clientSecret"],
48
+ prompt: map["prompt"],
47
49
  well_known_url: map["wellKnownURL"],
48
50
  authorization_url: map["authorizationURL"],
49
51
  token_url: map["tokenURL"],
50
52
  user_info_url: map["userInfoURL"],
51
- prompt: map["prompt"],
52
53
  max_age: map["maxAge"]
53
54
  )
54
55
  end
@@ -59,11 +60,11 @@ module Appwrite
59
60
  "enabled": @enabled,
60
61
  "clientId": @client_id,
61
62
  "clientSecret": @client_secret,
63
+ "prompt": @prompt,
62
64
  "wellKnownURL": @well_known_url,
63
65
  "authorizationURL": @authorization_url,
64
66
  "tokenURL": @token_url,
65
67
  "userInfoURL": @user_info_url,
66
- "prompt": @prompt,
67
68
  "maxAge": @max_age
68
69
  }
69
70
  end
@@ -78,8 +79,10 @@ module Appwrite
78
79
  Appwrite::Enums::OAuth2OidcPrompt::SELECT_ACCOUNT,
79
80
  ]
80
81
 
81
- unless valid_prompt.include?(prompt)
82
- raise ArgumentError, "Invalid " + prompt + ". Must be one of: " + valid_prompt.join(', ')
82
+ (prompt || []).each do |value|
83
+ unless valid_prompt.include?(value)
84
+ raise ArgumentError, "Invalid " + value.to_s + ". Must be one of: " + valid_prompt.join(', ')
85
+ end
83
86
  end
84
87
 
85
88
  prompt
@@ -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 :domain
11
12
  attr_reader :authorization_server_id
12
13
 
@@ -15,6 +16,7 @@ module Appwrite
15
16
  enabled:,
16
17
  client_id:,
17
18
  client_secret:,
19
+ prompt:,
18
20
  domain:,
19
21
  authorization_server_id:
20
22
  )
@@ -22,16 +24,19 @@ module Appwrite
22
24
  @enabled = enabled
23
25
  @client_id = client_id
24
26
  @client_secret = client_secret
27
+ @prompt = validate_prompt(prompt)
25
28
  @domain = domain
26
29
  @authorization_server_id = authorization_server_id
27
30
  end
28
31
 
29
32
  def self.from(map:)
33
+ map = { "$id" => "", "enabled" => false, "clientId" => "", "clientSecret" => "", "prompt" => [], "domain" => "", "authorizationServerId" => "" }.merge(map)
30
34
  OAuth2Okta.new(
31
35
  id: map["$id"],
32
36
  enabled: map["enabled"],
33
37
  client_id: map["clientId"],
34
38
  client_secret: map["clientSecret"],
39
+ prompt: map["prompt"],
35
40
  domain: map["domain"],
36
41
  authorization_server_id: map["authorizationServerId"]
37
42
  )
@@ -43,10 +48,29 @@ module Appwrite
43
48
  "enabled": @enabled,
44
49
  "clientId": @client_id,
45
50
  "clientSecret": @client_secret,
51
+ "prompt": @prompt,
46
52
  "domain": @domain,
47
53
  "authorizationServerId": @authorization_server_id
48
54
  }
49
55
  end
56
+
57
+ private
58
+
59
+ def validate_prompt(prompt)
60
+ valid_prompt = [
61
+ Appwrite::Enums::OAuth2OktaPrompt::NONE,
62
+ Appwrite::Enums::OAuth2OktaPrompt::LOGIN,
63
+ Appwrite::Enums::OAuth2OktaPrompt::CONSENT,
64
+ ]
65
+
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
70
+ end
71
+
72
+ prompt
73
+ end
50
74
  end
51
75
  end
52
76
  end
@@ -21,6 +21,7 @@ module Appwrite
21
21
  end
22
22
 
23
23
  def self.from(map:)
24
+ map = { "$id" => "", "enabled" => false, "clientId" => "", "secretKey" => "" }.merge(map)
24
25
  OAuth2Paypal.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
  OAuth2Podio.new(
25
26
  id: map["$id"],
26
27
  enabled: map["enabled"],
@@ -15,6 +15,7 @@ module Appwrite
15
15
  end
16
16
 
17
17
  def self.from(map:)
18
+ map = { "total" => 0, "providers" => [] }.merge(map)
18
19
  OAuth2ProviderList.new(
19
20
  total: map["total"],
20
21
  providers: map["providers"]
@@ -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
  OAuth2Resend.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 :customer_key
9
9
  attr_reader :customer_secret
10
+ attr_reader :prompt
10
11
 
11
12
  def initialize(
12
13
  id:,
13
14
  enabled:,
14
15
  customer_key:,
15
- customer_secret:
16
+ customer_secret:,
17
+ prompt:
16
18
  )
17
19
  @id = id
18
20
  @enabled = enabled
19
21
  @customer_key = customer_key
20
22
  @customer_secret = customer_secret
23
+ @prompt = validate_prompt(prompt)
21
24
  end
22
25
 
23
26
  def self.from(map:)
27
+ map = { "$id" => "", "enabled" => false, "customerKey" => "", "customerSecret" => "", "prompt" => [] }.merge(map)
24
28
  OAuth2Salesforce.new(
25
29
  id: map["$id"],
26
30
  enabled: map["enabled"],
27
31
  customer_key: map["customerKey"],
28
- customer_secret: map["customerSecret"]
32
+ customer_secret: map["customerSecret"],
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
  "customerKey": @customer_key,
37
- "customerSecret": @customer_secret
42
+ "customerSecret": @customer_secret,
43
+ "prompt": @prompt
38
44
  }
39
45
  end
46
+
47
+ private
48
+
49
+ def validate_prompt(prompt)
50
+ valid_prompt = [
51
+ Appwrite::Enums::OAuth2SalesforcePrompt::LOGIN,
52
+ Appwrite::Enums::OAuth2SalesforcePrompt::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, "clientId" => "", "clientSecret" => "" }.merge(map)
24
25
  OAuth2Slack.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
  OAuth2Spotify.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" => "", "apiSecretKey" => "" }.merge(map)
24
25
  OAuth2Stripe.new(
25
26
  id: map["$id"],
26
27
  enabled: map["enabled"],
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class OAuth2TikTok
6
+ attr_reader :id
7
+ attr_reader :enabled
8
+ attr_reader :client_id
9
+ attr_reader :client_secret
10
+
11
+ def initialize(
12
+ id:,
13
+ enabled:,
14
+ client_id:,
15
+ client_secret:
16
+ )
17
+ @id = id
18
+ @enabled = enabled
19
+ @client_id = client_id
20
+ @client_secret = client_secret
21
+ end
22
+
23
+ def self.from(map:)
24
+ map = { "$id" => "", "enabled" => false, "clientId" => "", "clientSecret" => "" }.merge(map)
25
+ OAuth2TikTok.new(
26
+ id: map["$id"],
27
+ enabled: map["enabled"],
28
+ client_id: map["clientId"],
29
+ client_secret: map["clientSecret"]
30
+ )
31
+ end
32
+
33
+ def to_map
34
+ {
35
+ "$id": @id,
36
+ "enabled": @enabled,
37
+ "clientId": @client_id,
38
+ "clientSecret": @client_secret
39
+ }
40
+ end
41
+ end
42
+ end
43
+ end
@@ -21,6 +21,7 @@ module Appwrite
21
21
  end
22
22
 
23
23
  def self.from(map:)
24
+ map = { "$id" => "", "enabled" => false, "oauth2ClientId" => "", "oauth2ClientSecret" => "" }.merge(map)
24
25
  OAuth2Tradeshift.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
  OAuth2Twitch.new(
25
26
  id: map["$id"],
26
27
  enabled: map["enabled"],
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class OAuth2Webflow
6
+ attr_reader :id
7
+ attr_reader :enabled
8
+ attr_reader :client_id
9
+ attr_reader :client_secret
10
+
11
+ def initialize(
12
+ id:,
13
+ enabled:,
14
+ client_id:,
15
+ client_secret:
16
+ )
17
+ @id = id
18
+ @enabled = enabled
19
+ @client_id = client_id
20
+ @client_secret = client_secret
21
+ end
22
+
23
+ def self.from(map:)
24
+ map = { "$id" => "", "enabled" => false, "clientId" => "", "clientSecret" => "" }.merge(map)
25
+ OAuth2Webflow.new(
26
+ id: map["$id"],
27
+ enabled: map["enabled"],
28
+ client_id: map["clientId"],
29
+ client_secret: map["clientSecret"]
30
+ )
31
+ end
32
+
33
+ def to_map
34
+ {
35
+ "$id": @id,
36
+ "enabled": @enabled,
37
+ "clientId": @client_id,
38
+ "clientSecret": @client_secret
39
+ }
40
+ end
41
+ end
42
+ end
43
+ 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
  OAuth2WordPress.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, "customerKey" => "", "secretKey" => "" }.merge(map)
24
25
  OAuth2X.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
  OAuth2Yahoo.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
  OAuth2Yandex.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
  OAuth2Zoho.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::OAuth2ZohoPrompt::CONSENT,
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
@@ -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
  OAuth2Zoom.new(
25
26
  id: map["$id"],
26
27
  enabled: map["enabled"],