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
@@ -37,12 +37,12 @@ module Appwrite
37
37
  def update(
38
38
  name:
39
39
  )
40
- api_path = '/organization'
41
-
42
40
  if name.nil?
43
41
  raise Appwrite::Exception.new('Missing required parameter: "name"')
44
42
  end
45
43
 
44
+ api_path = '/organization'
45
+
46
46
  api_params = {
47
47
  name: name,
48
48
  }
@@ -75,6 +75,7 @@ module Appwrite
75
75
  api_headers = {
76
76
  "X-Appwrite-Project": @client.get_config('project'),
77
77
  "content-type": 'application/json',
78
+ "accept": 'application/json',
78
79
  }
79
80
 
80
81
  @client.call(
@@ -129,12 +130,12 @@ module Appwrite
129
130
  app_id:,
130
131
  authorization_details: nil
131
132
  )
132
- api_path = '/organization/installations'
133
-
134
133
  if app_id.nil?
135
134
  raise Appwrite::Exception.new('Missing required parameter: "appId"')
136
135
  end
137
136
 
137
+ api_path = '/organization/installations'
138
+
138
139
  api_params = {
139
140
  appId: app_id,
140
141
  authorizationDetails: authorization_details,
@@ -164,13 +165,13 @@ module Appwrite
164
165
  def get_installation(
165
166
  installation_id:
166
167
  )
167
- api_path = '/organization/installations/{installationId}'
168
- .gsub('{installationId}', installation_id)
169
-
170
- if installation_id.nil?
168
+ if installation_id.nil? || installation_id == ''
171
169
  raise Appwrite::Exception.new('Missing required parameter: "installationId"')
172
170
  end
173
171
 
172
+ api_path = '/organization/installations/{installationId}'
173
+ .gsub('{installationId}', installation_id)
174
+
174
175
  api_params = {}
175
176
 
176
177
  api_headers = {
@@ -200,13 +201,13 @@ module Appwrite
200
201
  installation_id:,
201
202
  authorization_details: nil
202
203
  )
203
- api_path = '/organization/installations/{installationId}'
204
- .gsub('{installationId}', installation_id)
205
-
206
- if installation_id.nil?
204
+ if installation_id.nil? || installation_id == ''
207
205
  raise Appwrite::Exception.new('Missing required parameter: "installationId"')
208
206
  end
209
207
 
208
+ api_path = '/organization/installations/{installationId}'
209
+ .gsub('{installationId}', installation_id)
210
+
210
211
  api_params = {
211
212
  authorizationDetails: authorization_details,
212
213
  }
@@ -236,13 +237,13 @@ module Appwrite
236
237
  def delete_installation(
237
238
  installation_id:
238
239
  )
239
- api_path = '/organization/installations/{installationId}'
240
- .gsub('{installationId}', installation_id)
241
-
242
- if installation_id.nil?
240
+ if installation_id.nil? || installation_id == ''
243
241
  raise Appwrite::Exception.new('Missing required parameter: "installationId"')
244
242
  end
245
243
 
244
+ api_path = '/organization/installations/{installationId}'
245
+ .gsub('{installationId}', installation_id)
246
+
246
247
  api_params = {}
247
248
 
248
249
  api_headers = {
@@ -259,20 +260,23 @@ module Appwrite
259
260
  )
260
261
  end
261
262
 
262
- # Get a list of all API keys from the current organization.
263
+ # Get a list of all memberships from the current organization.
263
264
  #
264
- # @param [Array] queries Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: expire, accessedAt, name, scopes
265
+ # @param [Array] queries Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, teamId, invited, joined, confirm, roles
266
+ # @param [String] search Search term to filter your list results. Max length: 256 chars.
265
267
  # @param [] total When set to false, the total count returned will be 0 and will not be calculated.
266
268
  #
267
- # @return [KeyList]
268
- def list_keys(
269
+ # @return [MembershipList]
270
+ def list_memberships(
269
271
  queries: nil,
272
+ search: nil,
270
273
  total: nil
271
274
  )
272
- api_path = '/organization/keys'
275
+ api_path = '/organization/memberships'
273
276
 
274
277
  api_params = {
275
278
  queries: queries,
279
+ search: search,
276
280
  total: total,
277
281
  }
278
282
 
@@ -286,43 +290,43 @@ module Appwrite
286
290
  path: api_path,
287
291
  headers: api_headers,
288
292
  params: api_params,
289
- response_type: Models::KeyList
293
+ response_type: Models::MembershipList
290
294
  )
291
295
  end
292
296
 
293
- # Create a new organization API key.
297
+ # Invite a new member to join the current organization. An email with a link
298
+ # to join the organization will be sent to the new member's email address. If
299
+ # member doesn't exist in the project it will be automatically created.
294
300
  #
295
- # @param [String] key_id Key ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.
296
- # @param [String] name Key name. Max length: 128 chars.
297
- # @param [Array] scopes Key scopes list. Maximum of 200 scopes are allowed.
298
- # @param [String] expire Expiration time in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.
301
+ # @param [Array] roles Array of strings. Use this param to set the user roles in the organization. A role can be any string. Learn more about [roles and permissions](https://appwrite.io/docs/permissions). Maximum of 100 roles are allowed, each 81 characters long.
302
+ # @param [String] email Email of the new organization member.
303
+ # @param [String] user_id ID of the user to be added to the organization.
304
+ # @param [String] phone Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.
305
+ # @param [String] url URL to redirect the user back to your app from the invitation email. This parameter is not required when an API key is supplied.
306
+ # @param [String] name Name of the new organization member. Max length: 128 chars.
299
307
  #
300
- # @return [Key]
301
- def create_key(
302
- key_id:,
303
- name:,
304
- scopes:,
305
- expire: nil
308
+ # @return [Membership]
309
+ def create_membership(
310
+ roles:,
311
+ email: nil,
312
+ user_id: nil,
313
+ phone: nil,
314
+ url: nil,
315
+ name: nil
306
316
  )
307
- api_path = '/organization/keys'
308
-
309
- if key_id.nil?
310
- raise Appwrite::Exception.new('Missing required parameter: "keyId"')
311
- end
312
-
313
- if name.nil?
314
- raise Appwrite::Exception.new('Missing required parameter: "name"')
317
+ if roles.nil?
318
+ raise Appwrite::Exception.new('Missing required parameter: "roles"')
315
319
  end
316
320
 
317
- if scopes.nil?
318
- raise Appwrite::Exception.new('Missing required parameter: "scopes"')
319
- end
321
+ api_path = '/organization/memberships'
320
322
 
321
323
  api_params = {
322
- keyId: key_id,
324
+ email: email,
325
+ userId: user_id,
326
+ phone: phone,
327
+ roles: roles,
328
+ url: url,
323
329
  name: name,
324
- scopes: scopes,
325
- expire: expire,
326
330
  }
327
331
 
328
332
  api_headers = {
@@ -336,26 +340,25 @@ module Appwrite
336
340
  path: api_path,
337
341
  headers: api_headers,
338
342
  params: api_params,
339
- response_type: Models::Key
343
+ response_type: Models::Membership
340
344
  )
341
345
  end
342
346
 
343
- # Get a key by its unique ID. This endpoint returns details about a specific
344
- # API key in your organization including its scopes.
347
+ # Get a membership from the current organization by its unique ID.
345
348
  #
346
- # @param [String] key_id Key unique ID.
349
+ # @param [String] membership_id Membership ID.
347
350
  #
348
- # @return [Key]
349
- def get_key(
350
- key_id:
351
+ # @return [Membership]
352
+ def get_membership(
353
+ membership_id:
351
354
  )
352
- api_path = '/organization/keys/{keyId}'
353
- .gsub('{keyId}', key_id)
354
-
355
- if key_id.nil?
356
- raise Appwrite::Exception.new('Missing required parameter: "keyId"')
355
+ if membership_id.nil? || membership_id == ''
356
+ raise Appwrite::Exception.new('Missing required parameter: "membershipId"')
357
357
  end
358
358
 
359
+ api_path = '/organization/memberships/{membershipId}'
360
+ .gsub('{membershipId}', membership_id)
361
+
359
362
  api_params = {}
360
363
 
361
364
  api_headers = {
@@ -368,44 +371,33 @@ module Appwrite
368
371
  path: api_path,
369
372
  headers: api_headers,
370
373
  params: api_params,
371
- response_type: Models::Key
374
+ response_type: Models::Membership
372
375
  )
373
376
  end
374
377
 
375
- # Update a key by its unique ID. Use this endpoint to update the name,
376
- # scopes, or expiration time of an API key.
378
+ # Modify the roles of a member in the current organization.
377
379
  #
378
- # @param [String] key_id Key unique ID.
379
- # @param [String] name Key name. Max length: 128 chars.
380
- # @param [Array] scopes Key scopes list. Maximum of 200 scopes are allowed.
381
- # @param [String] expire Expiration time in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.
380
+ # @param [String] membership_id Membership ID.
381
+ # @param [Array] roles An array of strings. Use this param to set the user's roles in the organization. A role can be any string. Learn more about [roles and permissions](https://appwrite.io/docs/permissions). Maximum of 100 roles are allowed, each 81 characters long.
382
382
  #
383
- # @return [Key]
384
- def update_key(
385
- key_id:,
386
- name:,
387
- scopes:,
388
- expire: nil
383
+ # @return [Membership]
384
+ def update_membership(
385
+ membership_id:,
386
+ roles:
389
387
  )
390
- api_path = '/organization/keys/{keyId}'
391
- .gsub('{keyId}', key_id)
392
-
393
- if key_id.nil?
394
- raise Appwrite::Exception.new('Missing required parameter: "keyId"')
388
+ if membership_id.nil? || membership_id == ''
389
+ raise Appwrite::Exception.new('Missing required parameter: "membershipId"')
395
390
  end
396
391
 
397
- if name.nil?
398
- raise Appwrite::Exception.new('Missing required parameter: "name"')
392
+ if roles.nil?
393
+ raise Appwrite::Exception.new('Missing required parameter: "roles"')
399
394
  end
400
395
 
401
- if scopes.nil?
402
- raise Appwrite::Exception.new('Missing required parameter: "scopes"')
403
- end
396
+ api_path = '/organization/memberships/{membershipId}'
397
+ .gsub('{membershipId}', membership_id)
404
398
 
405
399
  api_params = {
406
- name: name,
407
- scopes: scopes,
408
- expire: expire,
400
+ roles: roles,
409
401
  }
410
402
 
411
403
  api_headers = {
@@ -415,35 +407,37 @@ module Appwrite
415
407
  }
416
408
 
417
409
  @client.call(
418
- method: 'PUT',
410
+ method: 'PATCH',
419
411
  path: api_path,
420
412
  headers: api_headers,
421
413
  params: api_params,
422
- response_type: Models::Key
414
+ response_type: Models::Membership
423
415
  )
424
416
  end
425
417
 
426
- # Delete a key by its unique ID. Once deleted, the key can no longer be used
427
- # to authenticate API calls.
418
+ # Remove a member from the current organization. The member is removed
419
+ # whether they accepted the invitation or not; a pending invitation is
420
+ # revoked.
428
421
  #
429
- # @param [String] key_id Key unique ID.
422
+ # @param [String] membership_id Membership ID.
430
423
  #
431
424
  # @return []
432
- def delete_key(
433
- key_id:
425
+ def delete_membership(
426
+ membership_id:
434
427
  )
435
- api_path = '/organization/keys/{keyId}'
436
- .gsub('{keyId}', key_id)
437
-
438
- if key_id.nil?
439
- raise Appwrite::Exception.new('Missing required parameter: "keyId"')
428
+ if membership_id.nil? || membership_id == ''
429
+ raise Appwrite::Exception.new('Missing required parameter: "membershipId"')
440
430
  end
441
431
 
432
+ api_path = '/organization/memberships/{membershipId}'
433
+ .gsub('{membershipId}', membership_id)
434
+
442
435
  api_params = {}
443
436
 
444
437
  api_headers = {
445
438
  "X-Appwrite-Project": @client.get_config('project'),
446
439
  "content-type": 'application/json',
440
+ "accept": 'application/json',
447
441
  }
448
442
 
449
443
  @client.call(
@@ -454,19 +448,20 @@ module Appwrite
454
448
  )
455
449
  end
456
450
 
457
- # Get a list of all memberships from the current organization.
451
+ # Get a list of all projects. You can use the query params to filter your
452
+ # results.
458
453
  #
459
- # @param [Array] queries Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, teamId, invited, joined, confirm, roles
454
+ # @param [Array] queries Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, teamId, labels, search, accessedAt
460
455
  # @param [String] search Search term to filter your list results. Max length: 256 chars.
461
456
  # @param [] total When set to false, the total count returned will be 0 and will not be calculated.
462
457
  #
463
- # @return [MembershipList]
464
- def list_memberships(
458
+ # @return [ProjectList]
459
+ def list_projects(
465
460
  queries: nil,
466
461
  search: nil,
467
462
  total: nil
468
463
  )
469
- api_path = '/organization/memberships'
464
+ api_path = '/organization/projects'
470
465
 
471
466
  api_params = {
472
467
  queries: queries,
@@ -484,43 +479,36 @@ module Appwrite
484
479
  path: api_path,
485
480
  headers: api_headers,
486
481
  params: api_params,
487
- response_type: Models::MembershipList
482
+ response_type: Models::ProjectList
488
483
  )
489
484
  end
490
485
 
491
- # Invite a new member to join the current organization. An email with a link
492
- # to join the organization will be sent to the new member's email address. If
493
- # member doesn't exist in the project it will be automatically created.
486
+ # Create a new project.
494
487
  #
495
- # @param [Array] roles Array of strings. Use this param to set the user roles in the organization. A role can be any string. Learn more about [roles and permissions](https://appwrite.io/docs/permissions). Maximum of 100 roles are allowed, each 81 characters long.
496
- # @param [String] email Email of the new organization member.
497
- # @param [String] user_id ID of the user to be added to the organization.
498
- # @param [String] phone Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.
499
- # @param [String] url URL to redirect the user back to your app from the invitation email. This parameter is not required when an API key is supplied.
500
- # @param [String] name Name of the new organization member. Max length: 128 chars.
488
+ # @param [String] project_id Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, and hyphen. Can't start with a special char. Max length is 36 chars.
489
+ # @param [String] name Project name. Max length: 128 chars.
490
+ # @param [Region] region Project Region.
501
491
  #
502
- # @return [Membership]
503
- def create_membership(
504
- roles:,
505
- email: nil,
506
- user_id: nil,
507
- phone: nil,
508
- url: nil,
509
- name: nil
492
+ # @return [Project]
493
+ def create_project(
494
+ project_id:,
495
+ name:,
496
+ region: nil
510
497
  )
511
- api_path = '/organization/memberships'
498
+ if project_id.nil?
499
+ raise Appwrite::Exception.new('Missing required parameter: "projectId"')
500
+ end
512
501
 
513
- if roles.nil?
514
- raise Appwrite::Exception.new('Missing required parameter: "roles"')
502
+ if name.nil?
503
+ raise Appwrite::Exception.new('Missing required parameter: "name"')
515
504
  end
516
505
 
506
+ api_path = '/organization/projects'
507
+
517
508
  api_params = {
518
- email: email,
519
- userId: user_id,
520
- phone: phone,
521
- roles: roles,
522
- url: url,
509
+ projectId: project_id,
523
510
  name: name,
511
+ region: region,
524
512
  }
525
513
 
526
514
  api_headers = {
@@ -534,25 +522,25 @@ module Appwrite
534
522
  path: api_path,
535
523
  headers: api_headers,
536
524
  params: api_params,
537
- response_type: Models::Membership
525
+ response_type: Models::Project
538
526
  )
539
527
  end
540
528
 
541
- # Get a membership from the current organization by its unique ID.
529
+ # Get a project.
542
530
  #
543
- # @param [String] membership_id Membership ID.
531
+ # @param [String] project_id Project unique ID.
544
532
  #
545
- # @return [Membership]
546
- def get_membership(
547
- membership_id:
533
+ # @return [Project]
534
+ def get_project(
535
+ project_id:
548
536
  )
549
- api_path = '/organization/memberships/{membershipId}'
550
- .gsub('{membershipId}', membership_id)
551
-
552
- if membership_id.nil?
553
- raise Appwrite::Exception.new('Missing required parameter: "membershipId"')
537
+ if project_id.nil? || project_id == ''
538
+ raise Appwrite::Exception.new('Missing required parameter: "projectId"')
554
539
  end
555
540
 
541
+ api_path = '/organization/projects/{projectId}'
542
+ .gsub('{projectId}', project_id)
543
+
556
544
  api_params = {}
557
545
 
558
546
  api_headers = {
@@ -565,33 +553,33 @@ module Appwrite
565
553
  path: api_path,
566
554
  headers: api_headers,
567
555
  params: api_params,
568
- response_type: Models::Membership
556
+ response_type: Models::Project
569
557
  )
570
558
  end
571
559
 
572
- # Modify the roles of a member in the current organization.
560
+ # Update a project by its unique ID.
573
561
  #
574
- # @param [String] membership_id Membership ID.
575
- # @param [Array] roles An array of strings. Use this param to set the user's roles in the organization. A role can be any string. Learn more about [roles and permissions](https://appwrite.io/docs/permissions). Maximum of 100 roles are allowed, each 81 characters long.
562
+ # @param [String] project_id Project unique ID.
563
+ # @param [String] name Project name. Max length: 128 chars.
576
564
  #
577
- # @return [Membership]
578
- def update_membership(
579
- membership_id:,
580
- roles:
565
+ # @return [Project]
566
+ def update_project(
567
+ project_id:,
568
+ name:
581
569
  )
582
- api_path = '/organization/memberships/{membershipId}'
583
- .gsub('{membershipId}', membership_id)
584
-
585
- if membership_id.nil?
586
- raise Appwrite::Exception.new('Missing required parameter: "membershipId"')
570
+ if project_id.nil? || project_id == ''
571
+ raise Appwrite::Exception.new('Missing required parameter: "projectId"')
587
572
  end
588
573
 
589
- if roles.nil?
590
- raise Appwrite::Exception.new('Missing required parameter: "roles"')
574
+ if name.nil?
575
+ raise Appwrite::Exception.new('Missing required parameter: "name"')
591
576
  end
592
577
 
578
+ api_path = '/organization/projects/{projectId}'
579
+ .gsub('{projectId}', project_id)
580
+
593
581
  api_params = {
594
- roles: roles,
582
+ name: name,
595
583
  }
596
584
 
597
585
  api_headers = {
@@ -605,32 +593,31 @@ module Appwrite
605
593
  path: api_path,
606
594
  headers: api_headers,
607
595
  params: api_params,
608
- response_type: Models::Membership
596
+ response_type: Models::Project
609
597
  )
610
598
  end
611
599
 
612
- # Remove a member from the current organization. The member is removed
613
- # whether they accepted the invitation or not; a pending invitation is
614
- # revoked.
600
+ # Delete a project by its unique ID.
615
601
  #
616
- # @param [String] membership_id Membership ID.
602
+ # @param [String] project_id Project unique ID.
617
603
  #
618
604
  # @return []
619
- def delete_membership(
620
- membership_id:
605
+ def delete_project(
606
+ project_id:
621
607
  )
622
- api_path = '/organization/memberships/{membershipId}'
623
- .gsub('{membershipId}', membership_id)
624
-
625
- if membership_id.nil?
626
- raise Appwrite::Exception.new('Missing required parameter: "membershipId"')
608
+ if project_id.nil? || project_id == ''
609
+ raise Appwrite::Exception.new('Missing required parameter: "projectId"')
627
610
  end
628
611
 
612
+ api_path = '/organization/projects/{projectId}'
613
+ .gsub('{projectId}', project_id)
614
+
629
615
  api_params = {}
630
616
 
631
617
  api_headers = {
632
618
  "X-Appwrite-Project": @client.get_config('project'),
633
619
  "content-type": 'application/json',
620
+ "accept": 'application/json',
634
621
  }
635
622
 
636
623
  @client.call(
@@ -641,24 +628,27 @@ module Appwrite
641
628
  )
642
629
  end
643
630
 
644
- # Get a list of all projects. You can use the query params to filter your
645
- # results.
631
+ # Get a list of all API keys of a project in your organization.
646
632
  #
647
- # @param [Array] queries Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, teamId, labels, search, accessedAt
648
- # @param [String] search Search term to filter your list results. Max length: 256 chars.
633
+ # @param [String] project_id Project unique ID.
634
+ # @param [Array] queries Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: expire, accessedAt, name, scopes
649
635
  # @param [] total When set to false, the total count returned will be 0 and will not be calculated.
650
636
  #
651
- # @return [ProjectList]
652
- def list_projects(
637
+ # @return [KeyList]
638
+ def list_project_keys(
639
+ project_id:,
653
640
  queries: nil,
654
- search: nil,
655
641
  total: nil
656
642
  )
657
- api_path = '/organization/projects'
643
+ if project_id.nil? || project_id == ''
644
+ raise Appwrite::Exception.new('Missing required parameter: "projectId"')
645
+ end
646
+
647
+ api_path = '/organization/projects/{projectId}/keys'
648
+ .gsub('{projectId}', project_id)
658
649
 
659
650
  api_params = {
660
651
  queries: queries,
661
- search: search,
662
652
  total: total,
663
653
  }
664
654
 
@@ -672,36 +662,45 @@ module Appwrite
672
662
  path: api_path,
673
663
  headers: api_headers,
674
664
  params: api_params,
675
- response_type: Models::ProjectList
665
+ response_type: Models::KeyList
676
666
  )
677
667
  end
678
668
 
679
- # Create a new project.
669
+ # Create a new ephemeral API key for a project in your organization. It's
670
+ # recommended to have multiple API keys with strict scopes for separate
671
+ # functions within your project.
680
672
  #
681
- # @param [String] project_id Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, and hyphen. Can't start with a special char. Max length is 36 chars.
682
- # @param [String] name Project name. Max length: 128 chars.
683
- # @param [Region] region Project Region.
673
+ # You can also create a standard API key if you need a longer-lived key
674
+ # instead.
684
675
  #
685
- # @return [Project]
686
- def create_project(
676
+ # @param [String] project_id Project unique ID.
677
+ # @param [Array] scopes Key scopes list. Maximum of 200 scopes are allowed.
678
+ # @param [Integer] duration Time in seconds before ephemeral key expires. Maximum duration is 3600 seconds.
679
+ #
680
+ # @return [EphemeralKey]
681
+ def create_ephemeral_project_key(
687
682
  project_id:,
688
- name:,
689
- region: nil
683
+ scopes:,
684
+ duration:
690
685
  )
691
- api_path = '/organization/projects'
692
-
693
- if project_id.nil?
686
+ if project_id.nil? || project_id == ''
694
687
  raise Appwrite::Exception.new('Missing required parameter: "projectId"')
695
688
  end
696
689
 
697
- if name.nil?
698
- raise Appwrite::Exception.new('Missing required parameter: "name"')
690
+ if scopes.nil?
691
+ raise Appwrite::Exception.new('Missing required parameter: "scopes"')
692
+ end
693
+
694
+ if duration.nil?
695
+ raise Appwrite::Exception.new('Missing required parameter: "duration"')
699
696
  end
700
697
 
698
+ api_path = '/organization/projects/{projectId}/keys/ephemeral'
699
+ .gsub('{projectId}', project_id)
700
+
701
701
  api_params = {
702
- projectId: project_id,
703
- name: name,
704
- region: region,
702
+ scopes: scopes,
703
+ duration: duration,
705
704
  }
706
705
 
707
706
  api_headers = {
@@ -715,29 +714,37 @@ module Appwrite
715
714
  path: api_path,
716
715
  headers: api_headers,
717
716
  params: api_params,
718
- response_type: Models::Project
717
+ response_type: Models::EphemeralKey
719
718
  )
720
719
  end
721
720
 
722
- # Get a project.
721
+ # Get a project key by its unique ID.
723
722
  #
724
723
  # @param [String] project_id Project unique ID.
724
+ # @param [String] key_id Key ID.
725
725
  #
726
- # @return [Project]
727
- def get_project(
728
- project_id:
726
+ # @return [Key]
727
+ def get_project_key(
728
+ project_id:,
729
+ key_id:
729
730
  )
730
- api_path = '/organization/projects/{projectId}'
731
- .gsub('{projectId}', project_id)
732
-
733
- if project_id.nil?
731
+ if project_id.nil? || project_id == ''
734
732
  raise Appwrite::Exception.new('Missing required parameter: "projectId"')
735
733
  end
736
734
 
735
+ if key_id.nil? || key_id == ''
736
+ raise Appwrite::Exception.new('Missing required parameter: "keyId"')
737
+ end
738
+
739
+ api_path = '/organization/projects/{projectId}/keys/{keyId}'
740
+ .gsub('{projectId}', project_id)
741
+ .gsub('{keyId}', key_id)
742
+
737
743
  api_params = {}
738
744
 
739
745
  api_headers = {
740
746
  "X-Appwrite-Project": @client.get_config('project'),
747
+ "accept": 'application/json',
741
748
  }
742
749
 
743
750
  @client.call(
@@ -745,33 +752,51 @@ module Appwrite
745
752
  path: api_path,
746
753
  headers: api_headers,
747
754
  params: api_params,
748
- response_type: Models::Project
755
+ response_type: Models::Key
749
756
  )
750
757
  end
751
758
 
752
- # Update a project by its unique ID.
759
+ # Update a project key by its unique ID. Use this endpoint to update the
760
+ # name, scopes, or expiration time of an API key.
753
761
  #
754
762
  # @param [String] project_id Project unique ID.
755
- # @param [String] name Project name. Max length: 128 chars.
763
+ # @param [String] key_id Key ID.
764
+ # @param [String] name Key name. Max length: 128 chars.
765
+ # @param [Array] scopes Key scopes list. Maximum of 200 scopes are allowed.
766
+ # @param [String] expire Expiration time in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.
756
767
  #
757
- # @return [Project]
758
- def update_project(
768
+ # @return [Key]
769
+ def update_project_key(
759
770
  project_id:,
760
- name:
771
+ key_id:,
772
+ name:,
773
+ scopes:,
774
+ expire: nil
761
775
  )
762
- api_path = '/organization/projects/{projectId}'
763
- .gsub('{projectId}', project_id)
764
-
765
- if project_id.nil?
776
+ if project_id.nil? || project_id == ''
766
777
  raise Appwrite::Exception.new('Missing required parameter: "projectId"')
767
778
  end
768
779
 
780
+ if key_id.nil? || key_id == ''
781
+ raise Appwrite::Exception.new('Missing required parameter: "keyId"')
782
+ end
783
+
769
784
  if name.nil?
770
785
  raise Appwrite::Exception.new('Missing required parameter: "name"')
771
786
  end
772
787
 
788
+ if scopes.nil?
789
+ raise Appwrite::Exception.new('Missing required parameter: "scopes"')
790
+ end
791
+
792
+ api_path = '/organization/projects/{projectId}/keys/{keyId}'
793
+ .gsub('{projectId}', project_id)
794
+ .gsub('{keyId}', key_id)
795
+
773
796
  api_params = {
774
797
  name: name,
798
+ scopes: scopes,
799
+ expire: expire,
775
800
  }
776
801
 
777
802
  api_headers = {
@@ -781,34 +806,43 @@ module Appwrite
781
806
  }
782
807
 
783
808
  @client.call(
784
- method: 'PATCH',
809
+ method: 'PUT',
785
810
  path: api_path,
786
811
  headers: api_headers,
787
812
  params: api_params,
788
- response_type: Models::Project
813
+ response_type: Models::Key
789
814
  )
790
815
  end
791
816
 
792
- # Delete a project by its unique ID.
817
+ # Delete a project key by its unique ID. Once deleted, the key can no longer
818
+ # be used to authenticate API calls.
793
819
  #
794
820
  # @param [String] project_id Project unique ID.
821
+ # @param [String] key_id Key ID.
795
822
  #
796
823
  # @return []
797
- def delete_project(
798
- project_id:
824
+ def delete_project_key(
825
+ project_id:,
826
+ key_id:
799
827
  )
800
- api_path = '/organization/projects/{projectId}'
801
- .gsub('{projectId}', project_id)
802
-
803
- if project_id.nil?
828
+ if project_id.nil? || project_id == ''
804
829
  raise Appwrite::Exception.new('Missing required parameter: "projectId"')
805
830
  end
806
831
 
832
+ if key_id.nil? || key_id == ''
833
+ raise Appwrite::Exception.new('Missing required parameter: "keyId"')
834
+ end
835
+
836
+ api_path = '/organization/projects/{projectId}/keys/{keyId}'
837
+ .gsub('{projectId}', project_id)
838
+ .gsub('{keyId}', key_id)
839
+
807
840
  api_params = {}
808
841
 
809
842
  api_headers = {
810
843
  "X-Appwrite-Project": @client.get_config('project'),
811
844
  "content-type": 'application/json',
845
+ "accept": 'application/json',
812
846
  }
813
847
 
814
848
  @client.call(