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
@@ -0,0 +1,136 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class WafRuleRateLimit
6
+ attr_reader :id
7
+ attr_reader :created_at
8
+ attr_reader :updated_at
9
+ attr_reader :name
10
+ attr_reader :description
11
+ attr_reader :team_id
12
+ attr_reader :project_id
13
+ attr_reader :resource_type
14
+ attr_reader :resource_id
15
+ attr_reader :action
16
+ attr_reader :priority
17
+ attr_reader :enabled
18
+ attr_reader :conditions
19
+ attr_reader :config
20
+ attr_reader :limit
21
+ attr_reader :interval
22
+ attr_reader :key
23
+ attr_reader :strategy
24
+ attr_reader :max_bucket_size
25
+
26
+ def initialize(
27
+ id:,
28
+ created_at:,
29
+ updated_at:,
30
+ name:,
31
+ description:,
32
+ team_id:,
33
+ project_id:,
34
+ resource_type:,
35
+ resource_id:,
36
+ action:,
37
+ priority:,
38
+ enabled:,
39
+ conditions:,
40
+ config:,
41
+ limit:,
42
+ interval:,
43
+ key:,
44
+ strategy:,
45
+ max_bucket_size:
46
+ )
47
+ @id = id
48
+ @created_at = created_at
49
+ @updated_at = updated_at
50
+ @name = name
51
+ @description = description
52
+ @team_id = team_id
53
+ @project_id = project_id
54
+ @resource_type = resource_type
55
+ @resource_id = resource_id
56
+ @action = validate_action(action)
57
+ @priority = priority
58
+ @enabled = enabled
59
+ @conditions = conditions
60
+ @config = config
61
+ @limit = limit
62
+ @interval = interval
63
+ @key = key
64
+ @strategy = strategy
65
+ @max_bucket_size = max_bucket_size
66
+ end
67
+
68
+ def self.from(map:)
69
+ map = { "$id" => "", "$createdAt" => "", "$updatedAt" => "", "name" => "", "description" => "", "teamId" => "", "projectId" => "", "resourceType" => "api", "resourceId" => "", "priority" => 0, "enabled" => true, "conditions" => [], "config" => {}, "limit" => 100, "interval" => 3600, "key" => "ip", "strategy" => "fixedWindow", "maxBucketSize" => 0 }.merge(map)
70
+ WafRuleRateLimit.new(
71
+ id: map["$id"],
72
+ created_at: map["$createdAt"],
73
+ updated_at: map["$updatedAt"],
74
+ name: map["name"],
75
+ description: map["description"],
76
+ team_id: map["teamId"],
77
+ project_id: map["projectId"],
78
+ resource_type: map["resourceType"],
79
+ resource_id: map["resourceId"],
80
+ action: map["action"],
81
+ priority: map["priority"],
82
+ enabled: map["enabled"],
83
+ conditions: map["conditions"],
84
+ config: map["config"],
85
+ limit: map["limit"],
86
+ interval: map["interval"],
87
+ key: map["key"],
88
+ strategy: map["strategy"],
89
+ max_bucket_size: map["maxBucketSize"]
90
+ )
91
+ end
92
+
93
+ def to_map
94
+ {
95
+ "$id": @id,
96
+ "$createdAt": @created_at,
97
+ "$updatedAt": @updated_at,
98
+ "name": @name,
99
+ "description": @description,
100
+ "teamId": @team_id,
101
+ "projectId": @project_id,
102
+ "resourceType": @resource_type,
103
+ "resourceId": @resource_id,
104
+ "action": @action,
105
+ "priority": @priority,
106
+ "enabled": @enabled,
107
+ "conditions": @conditions,
108
+ "config": @config,
109
+ "limit": @limit,
110
+ "interval": @interval,
111
+ "key": @key,
112
+ "strategy": @strategy,
113
+ "maxBucketSize": @max_bucket_size
114
+ }
115
+ end
116
+
117
+ private
118
+
119
+ def validate_action(action)
120
+ valid_action = [
121
+ Appwrite::Enums::WafRuleAction::BYPASS,
122
+ Appwrite::Enums::WafRuleAction::DENY,
123
+ Appwrite::Enums::WafRuleAction::CHALLENGE,
124
+ Appwrite::Enums::WafRuleAction::RATELIMIT,
125
+ Appwrite::Enums::WafRuleAction::REDIRECT,
126
+ ]
127
+
128
+ unless valid_action.include?(action)
129
+ raise ArgumentError, "Invalid " + action + ". Must be one of: " + valid_action.join(', ')
130
+ end
131
+
132
+ action
133
+ end
134
+ end
135
+ end
136
+ end
@@ -0,0 +1,121 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class WafRuleRedirect
6
+ attr_reader :id
7
+ attr_reader :created_at
8
+ attr_reader :updated_at
9
+ attr_reader :name
10
+ attr_reader :description
11
+ attr_reader :team_id
12
+ attr_reader :project_id
13
+ attr_reader :resource_type
14
+ attr_reader :resource_id
15
+ attr_reader :action
16
+ attr_reader :priority
17
+ attr_reader :enabled
18
+ attr_reader :conditions
19
+ attr_reader :config
20
+ attr_reader :location
21
+ attr_reader :status_code
22
+
23
+ def initialize(
24
+ id:,
25
+ created_at:,
26
+ updated_at:,
27
+ name:,
28
+ description:,
29
+ team_id:,
30
+ project_id:,
31
+ resource_type:,
32
+ resource_id:,
33
+ action:,
34
+ priority:,
35
+ enabled:,
36
+ conditions:,
37
+ config:,
38
+ location:,
39
+ status_code:
40
+ )
41
+ @id = id
42
+ @created_at = created_at
43
+ @updated_at = updated_at
44
+ @name = name
45
+ @description = description
46
+ @team_id = team_id
47
+ @project_id = project_id
48
+ @resource_type = resource_type
49
+ @resource_id = resource_id
50
+ @action = validate_action(action)
51
+ @priority = priority
52
+ @enabled = enabled
53
+ @conditions = conditions
54
+ @config = config
55
+ @location = location
56
+ @status_code = status_code
57
+ end
58
+
59
+ def self.from(map:)
60
+ map = { "$id" => "", "$createdAt" => "", "$updatedAt" => "", "name" => "", "description" => "", "teamId" => "", "projectId" => "", "resourceType" => "api", "resourceId" => "", "priority" => 0, "enabled" => true, "conditions" => [], "config" => {}, "location" => "/", "statusCode" => 302 }.merge(map)
61
+ WafRuleRedirect.new(
62
+ id: map["$id"],
63
+ created_at: map["$createdAt"],
64
+ updated_at: map["$updatedAt"],
65
+ name: map["name"],
66
+ description: map["description"],
67
+ team_id: map["teamId"],
68
+ project_id: map["projectId"],
69
+ resource_type: map["resourceType"],
70
+ resource_id: map["resourceId"],
71
+ action: map["action"],
72
+ priority: map["priority"],
73
+ enabled: map["enabled"],
74
+ conditions: map["conditions"],
75
+ config: map["config"],
76
+ location: map["location"],
77
+ status_code: map["statusCode"]
78
+ )
79
+ end
80
+
81
+ def to_map
82
+ {
83
+ "$id": @id,
84
+ "$createdAt": @created_at,
85
+ "$updatedAt": @updated_at,
86
+ "name": @name,
87
+ "description": @description,
88
+ "teamId": @team_id,
89
+ "projectId": @project_id,
90
+ "resourceType": @resource_type,
91
+ "resourceId": @resource_id,
92
+ "action": @action,
93
+ "priority": @priority,
94
+ "enabled": @enabled,
95
+ "conditions": @conditions,
96
+ "config": @config,
97
+ "location": @location,
98
+ "statusCode": @status_code
99
+ }
100
+ end
101
+
102
+ private
103
+
104
+ def validate_action(action)
105
+ valid_action = [
106
+ Appwrite::Enums::WafRuleAction::BYPASS,
107
+ Appwrite::Enums::WafRuleAction::DENY,
108
+ Appwrite::Enums::WafRuleAction::CHALLENGE,
109
+ Appwrite::Enums::WafRuleAction::RATELIMIT,
110
+ Appwrite::Enums::WafRuleAction::REDIRECT,
111
+ ]
112
+
113
+ unless valid_action.include?(action)
114
+ raise ArgumentError, "Invalid " + action + ". Must be one of: " + valid_action.join(', ')
115
+ end
116
+
117
+ action
118
+ end
119
+ end
120
+ end
121
+ end
@@ -48,6 +48,7 @@ module Appwrite
48
48
  end
49
49
 
50
50
  def self.from(map:)
51
+ map = { "$id" => "", "$createdAt" => "", "$updatedAt" => "", "name" => "", "url" => "", "events" => [], "tls" => true, "authUsername" => "", "authPassword" => "", "secret" => "", "enabled" => true, "logs" => "", "attempts" => 0 }.merge(map)
51
52
  Webhook.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, "webhooks" => [] }.merge(map)
18
19
  WebhookList.new(
19
20
  total: map["total"],
20
21
  webhooks: map["webhooks"].map { |it| Webhook.from(map: it) }
@@ -0,0 +1,361 @@
1
+ require 'json'
2
+
3
+ module Appwrite
4
+ class Query::Builder
5
+ def initialize
6
+ @queries = []
7
+ end
8
+
9
+ def build
10
+ return @queries.dup
11
+ end
12
+
13
+ def equal(attribute, value)
14
+ return push(Query.equal(attribute, value))
15
+ end
16
+
17
+ def not_equal(attribute, value)
18
+ return push(Query.not_equal(attribute, value))
19
+ end
20
+
21
+ def less_than(attribute, value)
22
+ return push(Query.less_than(attribute, value))
23
+ end
24
+
25
+ def less_than_equal(attribute, value)
26
+ return push(Query.less_than_equal(attribute, value))
27
+ end
28
+
29
+ def greater_than(attribute, value)
30
+ return push(Query.greater_than(attribute, value))
31
+ end
32
+
33
+ def greater_than_equal(attribute, value)
34
+ return push(Query.greater_than_equal(attribute, value))
35
+ end
36
+
37
+ def search(attribute, value)
38
+ return push(Query.search(attribute, value))
39
+ end
40
+
41
+ def is_null(attribute)
42
+ return push(Query.is_null(attribute))
43
+ end
44
+
45
+ def is_not_null(attribute)
46
+ return push(Query.is_not_null(attribute))
47
+ end
48
+
49
+ def between(attribute, start, ending)
50
+ return push(Query.between(attribute, start, ending))
51
+ end
52
+
53
+ def starts_with(attribute, value)
54
+ return push(Query.starts_with(attribute, value))
55
+ end
56
+
57
+ def ends_with(attribute, value)
58
+ return push(Query.ends_with(attribute, value))
59
+ end
60
+
61
+ def select(attributes)
62
+ return push(Query.select(attributes))
63
+ end
64
+
65
+ def cursor_after(id)
66
+ return push(Query.cursor_after(id))
67
+ end
68
+
69
+ def cursor_before(id)
70
+ return push(Query.cursor_before(id))
71
+ end
72
+
73
+ def order_asc(attribute)
74
+ return push(Query.order_asc(attribute))
75
+ end
76
+
77
+ def order_desc(attribute)
78
+ return push(Query.order_desc(attribute))
79
+ end
80
+
81
+ def order_random()
82
+ return push(Query.order_random())
83
+ end
84
+
85
+ def limit(limit)
86
+ return push(Query.limit(limit))
87
+ end
88
+
89
+ def offset(offset)
90
+ return push(Query.offset(offset))
91
+ end
92
+
93
+ def contains(attribute, value)
94
+ return push(Query.contains(attribute, value))
95
+ end
96
+
97
+ def contains_any(attribute, value)
98
+ return push(Query.contains_any(attribute, value))
99
+ end
100
+
101
+ def contains_all(attribute, value)
102
+ return push(Query.contains_all(attribute, value))
103
+ end
104
+
105
+ def not_contains(attribute, value)
106
+ return push(Query.not_contains(attribute, value))
107
+ end
108
+
109
+ def not_search(attribute, value)
110
+ return push(Query.not_search(attribute, value))
111
+ end
112
+
113
+ def not_between(attribute, start, ending)
114
+ return push(Query.not_between(attribute, start, ending))
115
+ end
116
+
117
+ def not_starts_with(attribute, value)
118
+ return push(Query.not_starts_with(attribute, value))
119
+ end
120
+
121
+ def not_ends_with(attribute, value)
122
+ return push(Query.not_ends_with(attribute, value))
123
+ end
124
+
125
+ def regex(attribute, pattern)
126
+ return push(Query.regex(attribute, pattern))
127
+ end
128
+
129
+ def exists(attributes)
130
+ return push(Query.exists(attributes))
131
+ end
132
+
133
+ def not_exists(attributes)
134
+ return push(Query.not_exists(attributes))
135
+ end
136
+
137
+ def created_before(value)
138
+ return push(Query.created_before(value))
139
+ end
140
+
141
+ def created_after(value)
142
+ return push(Query.created_after(value))
143
+ end
144
+
145
+ def created_between(start, ending)
146
+ return push(Query.created_between(start, ending))
147
+ end
148
+
149
+ def updated_before(value)
150
+ return push(Query.updated_before(value))
151
+ end
152
+
153
+ def updated_after(value)
154
+ return push(Query.updated_after(value))
155
+ end
156
+
157
+ def updated_between(start, ending)
158
+ return push(Query.updated_between(start, ending))
159
+ end
160
+
161
+ def or(queries)
162
+ return push(Query.or(queries))
163
+ end
164
+
165
+ def and(queries)
166
+ return push(Query.and(queries))
167
+ end
168
+
169
+ def elem_match(attribute, queries)
170
+ return push(Query.elem_match(attribute, queries))
171
+ end
172
+
173
+ def relationship(attribute, queries)
174
+ return push(Query.relationship(attribute, queries))
175
+ end
176
+
177
+ def distance_equal(attribute, values, distance, meters = true)
178
+ return push(Query.distance_equal(attribute, values, distance, meters))
179
+ end
180
+
181
+ def distance_not_equal(attribute, values, distance, meters = true)
182
+ return push(Query.distance_not_equal(attribute, values, distance, meters))
183
+ end
184
+
185
+ def distance_greater_than(attribute, values, distance, meters = true)
186
+ return push(Query.distance_greater_than(attribute, values, distance, meters))
187
+ end
188
+
189
+ def distance_less_than(attribute, values, distance, meters = true)
190
+ return push(Query.distance_less_than(attribute, values, distance, meters))
191
+ end
192
+
193
+ def intersects(attribute, values)
194
+ return push(Query.intersects(attribute, values))
195
+ end
196
+
197
+ def not_intersects(attribute, values)
198
+ return push(Query.not_intersects(attribute, values))
199
+ end
200
+
201
+ def crosses(attribute, values)
202
+ return push(Query.crosses(attribute, values))
203
+ end
204
+
205
+ def not_crosses(attribute, values)
206
+ return push(Query.not_crosses(attribute, values))
207
+ end
208
+
209
+ def overlaps(attribute, values)
210
+ return push(Query.overlaps(attribute, values))
211
+ end
212
+
213
+ def not_overlaps(attribute, values)
214
+ return push(Query.not_overlaps(attribute, values))
215
+ end
216
+
217
+ def touches(attribute, values)
218
+ return push(Query.touches(attribute, values))
219
+ end
220
+
221
+ def not_touches(attribute, values)
222
+ return push(Query.not_touches(attribute, values))
223
+ end
224
+
225
+ def count(attribute = '*', alias_name = '')
226
+ return push(Query.count(attribute, alias_name))
227
+ end
228
+
229
+ def count_distinct(attribute, alias_name = '')
230
+ return push(Query.count_distinct(attribute, alias_name))
231
+ end
232
+
233
+ def sum(attribute, alias_name = '')
234
+ return push(Query.sum(attribute, alias_name))
235
+ end
236
+
237
+ def avg(attribute, alias_name = '')
238
+ return push(Query.avg(attribute, alias_name))
239
+ end
240
+
241
+ def min(attribute, alias_name = '')
242
+ return push(Query.min(attribute, alias_name))
243
+ end
244
+
245
+ def max(attribute, alias_name = '')
246
+ return push(Query.max(attribute, alias_name))
247
+ end
248
+
249
+ def stddev(attribute, alias_name = '')
250
+ return push(Query.stddev(attribute, alias_name))
251
+ end
252
+
253
+ def stddev_pop(attribute, alias_name = '')
254
+ return push(Query.stddev_pop(attribute, alias_name))
255
+ end
256
+
257
+ def stddev_samp(attribute, alias_name = '')
258
+ return push(Query.stddev_samp(attribute, alias_name))
259
+ end
260
+
261
+ def variance(attribute, alias_name = '')
262
+ return push(Query.variance(attribute, alias_name))
263
+ end
264
+
265
+ def var_pop(attribute, alias_name = '')
266
+ return push(Query.var_pop(attribute, alias_name))
267
+ end
268
+
269
+ def var_samp(attribute, alias_name = '')
270
+ return push(Query.var_samp(attribute, alias_name))
271
+ end
272
+
273
+ def bit_and(attribute, alias_name = '')
274
+ return push(Query.bit_and(attribute, alias_name))
275
+ end
276
+
277
+ def bit_or(attribute, alias_name = '')
278
+ return push(Query.bit_or(attribute, alias_name))
279
+ end
280
+
281
+ def bit_xor(attribute, alias_name = '')
282
+ return push(Query.bit_xor(attribute, alias_name))
283
+ end
284
+
285
+ def group_by(attributes)
286
+ return push(Query.group_by(attributes))
287
+ end
288
+
289
+ def having(queries)
290
+ return push(Query.having(queries))
291
+ end
292
+
293
+ def distinct()
294
+ return push(Query.distinct())
295
+ end
296
+
297
+ def join(table, left, right = '', operator = '=', alias_name = '')
298
+ return push(Query.join(table, left, right, operator, alias_name))
299
+ end
300
+
301
+ def left_join(table, left, right = '', operator = '=', alias_name = '')
302
+ return push(Query.left_join(table, left, right, operator, alias_name))
303
+ end
304
+
305
+ def right_join(table, left, right = '', operator = '=', alias_name = '')
306
+ return push(Query.right_join(table, left, right, operator, alias_name))
307
+ end
308
+
309
+ def full_outer_join(table, left, right = '', operator = '=', alias_name = '')
310
+ return push(Query.full_outer_join(table, left, right, operator, alias_name))
311
+ end
312
+
313
+ def cross_join(table, alias_name = '')
314
+ return push(Query.cross_join(table, alias_name))
315
+ end
316
+
317
+ def vector_dot(attribute, vector)
318
+ return push(Query.vector_dot(attribute, vector))
319
+ end
320
+
321
+ def vector_cosine(attribute, vector)
322
+ return push(Query.vector_cosine(attribute, vector))
323
+ end
324
+
325
+ def vector_euclidean(attribute, vector)
326
+ return push(Query.vector_euclidean(attribute, vector))
327
+ end
328
+
329
+ def covers(attribute, values)
330
+ return push(Query.covers(attribute, values))
331
+ end
332
+
333
+ def not_covers(attribute, values)
334
+ return push(Query.not_covers(attribute, values))
335
+ end
336
+
337
+ def spatial_equals(attribute, values)
338
+ return push(Query.spatial_equals(attribute, values))
339
+ end
340
+
341
+ def not_spatial_equals(attribute, values)
342
+ return push(Query.not_spatial_equals(attribute, values))
343
+ end
344
+
345
+ def page(page, per_page = 25)
346
+ return push(Query.page(page, per_page))
347
+ end
348
+
349
+ private
350
+
351
+ def push(query)
352
+ if query.is_a?(Array)
353
+ @queries.concat(query)
354
+ else
355
+ @queries << query
356
+ end
357
+
358
+ return self
359
+ end
360
+ end
361
+ end