appwrite 28.3.2 → 28.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. checksums.yaml +4 -4
  2. data/lib/appwrite/client.rb +20 -4
  3. data/lib/appwrite/enums/billing_plan_group.rb +2 -0
  4. data/lib/appwrite/enums/build_runtime.rb +2 -0
  5. data/lib/appwrite/enums/databases_index_type.rb +1 -0
  6. data/lib/appwrite/enums/domain_registration_type.rb +10 -0
  7. data/lib/appwrite/enums/domain_transfer_status_enum.rb +14 -0
  8. data/lib/appwrite/enums/framework.rb +1 -0
  9. data/lib/appwrite/enums/id_token_provider.rb +8 -0
  10. data/lib/appwrite/enums/image_gravity.rb +1 -0
  11. data/lib/appwrite/enums/o_auth2_auth0_prompt.rb +9 -0
  12. data/lib/appwrite/enums/o_auth2_discord_prompt.rb +8 -0
  13. data/lib/appwrite/enums/o_auth2_github_prompt.rb +7 -0
  14. data/lib/appwrite/enums/o_auth2_kakao_prompt.rb +10 -0
  15. data/lib/appwrite/enums/o_auth2_microsoft_prompt.rb +10 -0
  16. data/lib/appwrite/enums/o_auth2_okta_prompt.rb +9 -0
  17. data/lib/appwrite/enums/o_auth2_salesforce_prompt.rb +8 -0
  18. data/lib/appwrite/enums/o_auth2_zoho_prompt.rb +7 -0
  19. data/lib/appwrite/enums/o_auth_provider.rb +3 -0
  20. data/lib/appwrite/enums/project_email_template_id.rb +2 -0
  21. data/lib/appwrite/enums/project_key_scopes.rb +4 -0
  22. data/lib/appwrite/enums/project_o_auth2_auth0_prompt.rb +9 -0
  23. data/lib/appwrite/enums/project_o_auth2_discord_prompt.rb +8 -0
  24. data/lib/appwrite/enums/project_o_auth2_git_hub_prompt.rb +7 -0
  25. data/lib/appwrite/enums/project_o_auth2_kakao_prompt.rb +10 -0
  26. data/lib/appwrite/enums/project_o_auth2_microsoft_prompt.rb +10 -0
  27. data/lib/appwrite/enums/project_o_auth2_okta_prompt.rb +9 -0
  28. data/lib/appwrite/enums/project_o_auth2_salesforce_prompt.rb +8 -0
  29. data/lib/appwrite/enums/project_o_auth2_zoho_prompt.rb +7 -0
  30. data/lib/appwrite/enums/project_o_auth_provider_id.rb +3 -0
  31. data/lib/appwrite/enums/project_policy_id.rb +2 -0
  32. data/lib/appwrite/enums/proxy_rule_deployment_resource_type.rb +1 -0
  33. data/lib/appwrite/enums/runtime.rb +2 -0
  34. data/lib/appwrite/enums/tables_db_index_type.rb +1 -0
  35. data/lib/appwrite/enums/waf_rule_action.rb +11 -0
  36. data/lib/appwrite/models/account.rb +143 -0
  37. data/lib/appwrite/models/billing_plan.rb +12 -0
  38. data/lib/appwrite/models/dedicated_database.rb +15 -0
  39. data/lib/appwrite/models/dedicated_database_specification.rb +20 -0
  40. data/lib/appwrite/models/dns_record.rb +83 -0
  41. data/lib/appwrite/models/dns_records_list.rb +33 -0
  42. data/lib/appwrite/models/domain.rb +109 -0
  43. data/lib/appwrite/models/domain_price.rb +63 -0
  44. data/lib/appwrite/models/domain_prices_list.rb +33 -0
  45. data/lib/appwrite/models/domain_transfer_status.rb +59 -0
  46. data/lib/appwrite/models/domains_list.rb +33 -0
  47. data/lib/appwrite/models/identity.rb +8 -3
  48. data/lib/appwrite/models/o_auth2_apple.rb +13 -3
  49. data/lib/appwrite/models/o_auth2_auth0.rb +23 -0
  50. data/lib/appwrite/models/o_auth2_discord.rb +25 -3
  51. data/lib/appwrite/models/o_auth2_github.rb +24 -3
  52. data/lib/appwrite/models/o_auth2_google.rb +17 -5
  53. data/lib/appwrite/models/o_auth2_kakao.rb +67 -0
  54. data/lib/appwrite/models/o_auth2_microsoft.rb +24 -0
  55. data/lib/appwrite/models/o_auth2_oidc.rb +4 -2
  56. data/lib/appwrite/models/o_auth2_okta.rb +23 -0
  57. data/lib/appwrite/models/o_auth2_salesforce.rb +25 -3
  58. data/lib/appwrite/models/o_auth2_tik_tok.rb +43 -0
  59. data/lib/appwrite/models/o_auth2_webflow.rb +43 -0
  60. data/lib/appwrite/models/o_auth2_zoho.rb +24 -3
  61. data/lib/appwrite/models/oauth2_introspection.rb +83 -0
  62. data/lib/appwrite/models/platform_android.rb +8 -3
  63. data/lib/appwrite/models/policy_password_pwned.rb +43 -0
  64. data/lib/appwrite/models/policy_password_rotation.rb +38 -0
  65. data/lib/appwrite/models/project.rb +15 -0
  66. data/lib/appwrite/models/proxy_rule.rb +1 -0
  67. data/lib/appwrite/models/topic.rb +13 -3
  68. data/lib/appwrite/models/user.rb +5 -0
  69. data/lib/appwrite/models/waf_rule_bypass.rb +111 -0
  70. data/lib/appwrite/models/waf_rule_challenge.rb +126 -0
  71. data/lib/appwrite/models/waf_rule_deny.rb +111 -0
  72. data/lib/appwrite/models/waf_rule_list.rb +33 -0
  73. data/lib/appwrite/models/waf_rule_rate_limit.rb +136 -0
  74. data/lib/appwrite/models/waf_rule_redirect.rb +121 -0
  75. data/lib/appwrite/services/account.rb +301 -5
  76. data/lib/appwrite/services/avatars.rb +71 -0
  77. data/lib/appwrite/services/databases.rb +4 -1
  78. data/lib/appwrite/services/documents_db.rb +4 -1
  79. data/lib/appwrite/services/domains.rb +2318 -0
  80. data/lib/appwrite/services/functions.rb +11 -3
  81. data/lib/appwrite/services/locale.rb +49 -14
  82. data/lib/appwrite/services/messaging.rb +130 -6
  83. data/lib/appwrite/services/oauth2.rb +45 -0
  84. data/lib/appwrite/services/organization.rb +225 -0
  85. data/lib/appwrite/services/project.rb +439 -15
  86. data/lib/appwrite/services/sites.rb +11 -3
  87. data/lib/appwrite/services/tables_db.rb +4 -1
  88. data/lib/appwrite/services/teams.rb +4 -1
  89. data/lib/appwrite/services/vectors_db.rb +4 -1
  90. data/lib/appwrite/services/waf.rb +859 -0
  91. data/lib/appwrite.rb +42 -0
  92. metadata +44 -2
@@ -818,5 +818,230 @@ module Appwrite
818
818
  params: api_params,
819
819
  )
820
820
  end
821
+
822
+ # Get a list of all API keys of a project in your organization.
823
+ #
824
+ # @param [String] project_id Project unique ID.
825
+ # @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
826
+ # @param [] total When set to false, the total count returned will be 0 and will not be calculated.
827
+ #
828
+ # @return [KeyList]
829
+ def list_project_keys(
830
+ project_id:,
831
+ queries: nil,
832
+ total: nil
833
+ )
834
+ if project_id.nil?
835
+ raise Appwrite::Exception.new('Missing required parameter: "projectId"')
836
+ end
837
+
838
+ api_path = '/organization/projects/{projectId}/keys'
839
+ .gsub('{projectId}', project_id)
840
+
841
+ api_params = {
842
+ queries: queries,
843
+ total: total,
844
+ }
845
+
846
+ api_headers = {
847
+ "X-Appwrite-Project": @client.get_config('project'),
848
+ "accept": 'application/json',
849
+ }
850
+
851
+ @client.call(
852
+ method: 'GET',
853
+ path: api_path,
854
+ headers: api_headers,
855
+ params: api_params,
856
+ response_type: Models::KeyList
857
+ )
858
+ end
859
+
860
+ # Create a new ephemeral API key for a project in your organization. It's
861
+ # recommended to have multiple API keys with strict scopes for separate
862
+ # functions within your project.
863
+ #
864
+ # You can also create a standard API key if you need a longer-lived key
865
+ # instead.
866
+ #
867
+ # @param [String] project_id Project unique ID.
868
+ # @param [Array] scopes Key scopes list. Maximum of 200 scopes are allowed.
869
+ # @param [Integer] duration Time in seconds before ephemeral key expires. Maximum duration is 3600 seconds.
870
+ #
871
+ # @return [EphemeralKey]
872
+ def create_ephemeral_project_key(
873
+ project_id:,
874
+ scopes:,
875
+ duration:
876
+ )
877
+ if project_id.nil?
878
+ raise Appwrite::Exception.new('Missing required parameter: "projectId"')
879
+ end
880
+
881
+ if scopes.nil?
882
+ raise Appwrite::Exception.new('Missing required parameter: "scopes"')
883
+ end
884
+
885
+ if duration.nil?
886
+ raise Appwrite::Exception.new('Missing required parameter: "duration"')
887
+ end
888
+
889
+ api_path = '/organization/projects/{projectId}/keys/ephemeral'
890
+ .gsub('{projectId}', project_id)
891
+
892
+ api_params = {
893
+ scopes: scopes,
894
+ duration: duration,
895
+ }
896
+
897
+ api_headers = {
898
+ "X-Appwrite-Project": @client.get_config('project'),
899
+ "content-type": 'application/json',
900
+ "accept": 'application/json',
901
+ }
902
+
903
+ @client.call(
904
+ method: 'POST',
905
+ path: api_path,
906
+ headers: api_headers,
907
+ params: api_params,
908
+ response_type: Models::EphemeralKey
909
+ )
910
+ end
911
+
912
+ # Get a project key by its unique ID.
913
+ #
914
+ # @param [String] project_id Project unique ID.
915
+ # @param [String] key_id Key ID.
916
+ #
917
+ # @return [Key]
918
+ def get_project_key(
919
+ project_id:,
920
+ key_id:
921
+ )
922
+ if project_id.nil?
923
+ raise Appwrite::Exception.new('Missing required parameter: "projectId"')
924
+ end
925
+
926
+ if key_id.nil?
927
+ raise Appwrite::Exception.new('Missing required parameter: "keyId"')
928
+ end
929
+
930
+ api_path = '/organization/projects/{projectId}/keys/{keyId}'
931
+ .gsub('{projectId}', project_id)
932
+ .gsub('{keyId}', key_id)
933
+
934
+ api_params = {}
935
+
936
+ api_headers = {
937
+ "X-Appwrite-Project": @client.get_config('project'),
938
+ "accept": 'application/json',
939
+ }
940
+
941
+ @client.call(
942
+ method: 'GET',
943
+ path: api_path,
944
+ headers: api_headers,
945
+ params: api_params,
946
+ response_type: Models::Key
947
+ )
948
+ end
949
+
950
+ # Update a project key by its unique ID. Use this endpoint to update the
951
+ # name, scopes, or expiration time of an API key.
952
+ #
953
+ # @param [String] project_id Project unique ID.
954
+ # @param [String] key_id Key ID.
955
+ # @param [String] name Key name. Max length: 128 chars.
956
+ # @param [Array] scopes Key scopes list. Maximum of 200 scopes are allowed.
957
+ # @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.
958
+ #
959
+ # @return [Key]
960
+ def update_project_key(
961
+ project_id:,
962
+ key_id:,
963
+ name:,
964
+ scopes:,
965
+ expire: nil
966
+ )
967
+ if project_id.nil?
968
+ raise Appwrite::Exception.new('Missing required parameter: "projectId"')
969
+ end
970
+
971
+ if key_id.nil?
972
+ raise Appwrite::Exception.new('Missing required parameter: "keyId"')
973
+ end
974
+
975
+ if name.nil?
976
+ raise Appwrite::Exception.new('Missing required parameter: "name"')
977
+ end
978
+
979
+ if scopes.nil?
980
+ raise Appwrite::Exception.new('Missing required parameter: "scopes"')
981
+ end
982
+
983
+ api_path = '/organization/projects/{projectId}/keys/{keyId}'
984
+ .gsub('{projectId}', project_id)
985
+ .gsub('{keyId}', key_id)
986
+
987
+ api_params = {
988
+ name: name,
989
+ scopes: scopes,
990
+ expire: expire,
991
+ }
992
+
993
+ api_headers = {
994
+ "X-Appwrite-Project": @client.get_config('project'),
995
+ "content-type": 'application/json',
996
+ "accept": 'application/json',
997
+ }
998
+
999
+ @client.call(
1000
+ method: 'PUT',
1001
+ path: api_path,
1002
+ headers: api_headers,
1003
+ params: api_params,
1004
+ response_type: Models::Key
1005
+ )
1006
+ end
1007
+
1008
+ # Delete a project key by its unique ID. Once deleted, the key can no longer
1009
+ # be used to authenticate API calls.
1010
+ #
1011
+ # @param [String] project_id Project unique ID.
1012
+ # @param [String] key_id Key ID.
1013
+ #
1014
+ # @return []
1015
+ def delete_project_key(
1016
+ project_id:,
1017
+ key_id:
1018
+ )
1019
+ if project_id.nil?
1020
+ raise Appwrite::Exception.new('Missing required parameter: "projectId"')
1021
+ end
1022
+
1023
+ if key_id.nil?
1024
+ raise Appwrite::Exception.new('Missing required parameter: "keyId"')
1025
+ end
1026
+
1027
+ api_path = '/organization/projects/{projectId}/keys/{keyId}'
1028
+ .gsub('{projectId}', project_id)
1029
+ .gsub('{keyId}', key_id)
1030
+
1031
+ api_params = {}
1032
+
1033
+ api_headers = {
1034
+ "X-Appwrite-Project": @client.get_config('project'),
1035
+ "content-type": 'application/json',
1036
+ "accept": 'application/json',
1037
+ }
1038
+
1039
+ @client.call(
1040
+ method: 'DELETE',
1041
+ path: api_path,
1042
+ headers: api_headers,
1043
+ params: api_params,
1044
+ )
1045
+ end
821
1046
  end
822
1047
  end