appwrite 22.0.0 → 23.1.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 (116) hide show
  1. checksums.yaml +4 -4
  2. data/lib/appwrite/client.rb +35 -2
  3. data/lib/appwrite/enums/auth_method.rb +13 -0
  4. data/lib/appwrite/enums/build_runtime.rb +3 -0
  5. data/lib/appwrite/enums/email_template_locale.rb +137 -0
  6. data/lib/appwrite/enums/email_template_type.rb +13 -0
  7. data/lib/appwrite/enums/o_auth_provider.rb +6 -0
  8. data/lib/appwrite/enums/platform_type.rb +11 -0
  9. data/lib/appwrite/enums/project_policy.rb +15 -0
  10. data/lib/appwrite/enums/protocol_id.rb +9 -0
  11. data/lib/appwrite/enums/proxy_resource_type.rb +8 -0
  12. data/lib/appwrite/enums/proxy_rule_deployment_resource_type.rb +8 -0
  13. data/lib/appwrite/enums/proxy_rule_status.rb +9 -0
  14. data/lib/appwrite/enums/runtime.rb +3 -0
  15. data/lib/appwrite/enums/scopes.rb +44 -27
  16. data/lib/appwrite/enums/secure.rb +8 -0
  17. data/lib/appwrite/enums/service_id.rb +23 -0
  18. data/lib/appwrite/enums/status_code.rb +10 -0
  19. data/lib/appwrite/models/attribute_bigint.rb +96 -0
  20. data/lib/appwrite/models/auth_provider.rb +47 -0
  21. data/lib/appwrite/models/billing_limits.rb +62 -0
  22. data/lib/appwrite/models/block.rb +72 -0
  23. data/lib/appwrite/models/column_bigint.rb +96 -0
  24. data/lib/appwrite/models/dev_key.rb +62 -0
  25. data/lib/appwrite/models/email_template.rb +62 -0
  26. data/lib/appwrite/models/email_template_list.rb +32 -0
  27. data/lib/appwrite/models/ephemeral_key.rb +67 -0
  28. data/lib/appwrite/models/key.rb +67 -0
  29. data/lib/appwrite/models/key_list.rb +32 -0
  30. data/lib/appwrite/models/log.rb +5 -0
  31. data/lib/appwrite/models/membership.rb +5 -0
  32. data/lib/appwrite/models/mock_number.rb +42 -0
  33. data/lib/appwrite/models/mock_number_list.rb +32 -0
  34. data/lib/appwrite/models/o_auth2_amazon.rb +42 -0
  35. data/lib/appwrite/models/o_auth2_apple.rb +52 -0
  36. data/lib/appwrite/models/o_auth2_auth0.rb +47 -0
  37. data/lib/appwrite/models/o_auth2_authentik.rb +47 -0
  38. data/lib/appwrite/models/o_auth2_autodesk.rb +42 -0
  39. data/lib/appwrite/models/o_auth2_bitbucket.rb +42 -0
  40. data/lib/appwrite/models/o_auth2_bitly.rb +42 -0
  41. data/lib/appwrite/models/o_auth2_box.rb +42 -0
  42. data/lib/appwrite/models/o_auth2_dailymotion.rb +42 -0
  43. data/lib/appwrite/models/o_auth2_discord.rb +42 -0
  44. data/lib/appwrite/models/o_auth2_disqus.rb +42 -0
  45. data/lib/appwrite/models/o_auth2_dropbox.rb +42 -0
  46. data/lib/appwrite/models/o_auth2_etsy.rb +42 -0
  47. data/lib/appwrite/models/o_auth2_facebook.rb +42 -0
  48. data/lib/appwrite/models/o_auth2_figma.rb +42 -0
  49. data/lib/appwrite/models/o_auth2_fusion_auth.rb +47 -0
  50. data/lib/appwrite/models/o_auth2_github.rb +42 -0
  51. data/lib/appwrite/models/o_auth2_gitlab.rb +47 -0
  52. data/lib/appwrite/models/o_auth2_google.rb +42 -0
  53. data/lib/appwrite/models/o_auth2_keycloak.rb +52 -0
  54. data/lib/appwrite/models/o_auth2_kick.rb +42 -0
  55. data/lib/appwrite/models/o_auth2_linkedin.rb +42 -0
  56. data/lib/appwrite/models/o_auth2_microsoft.rb +47 -0
  57. data/lib/appwrite/models/o_auth2_notion.rb +42 -0
  58. data/lib/appwrite/models/o_auth2_oidc.rb +62 -0
  59. data/lib/appwrite/models/o_auth2_okta.rb +52 -0
  60. data/lib/appwrite/models/o_auth2_paypal.rb +42 -0
  61. data/lib/appwrite/models/o_auth2_podio.rb +42 -0
  62. data/lib/appwrite/models/o_auth2_provider_list.rb +32 -0
  63. data/lib/appwrite/models/o_auth2_salesforce.rb +42 -0
  64. data/lib/appwrite/models/o_auth2_slack.rb +42 -0
  65. data/lib/appwrite/models/o_auth2_spotify.rb +42 -0
  66. data/lib/appwrite/models/o_auth2_stripe.rb +42 -0
  67. data/lib/appwrite/models/o_auth2_tradeshift.rb +42 -0
  68. data/lib/appwrite/models/o_auth2_twitch.rb +42 -0
  69. data/lib/appwrite/models/o_auth2_word_press.rb +42 -0
  70. data/lib/appwrite/models/o_auth2_x.rb +42 -0
  71. data/lib/appwrite/models/o_auth2_yahoo.rb +42 -0
  72. data/lib/appwrite/models/o_auth2_yandex.rb +42 -0
  73. data/lib/appwrite/models/o_auth2_zoho.rb +42 -0
  74. data/lib/appwrite/models/o_auth2_zoom.rb +42 -0
  75. data/lib/appwrite/models/platform_android.rb +71 -0
  76. data/lib/appwrite/models/platform_apple.rb +71 -0
  77. data/lib/appwrite/models/platform_linux.rb +71 -0
  78. data/lib/appwrite/models/platform_list.rb +32 -0
  79. data/lib/appwrite/models/platform_web.rb +71 -0
  80. data/lib/appwrite/models/platform_windows.rb +71 -0
  81. data/lib/appwrite/models/policy_list.rb +32 -0
  82. data/lib/appwrite/models/policy_membership_privacy.rb +52 -0
  83. data/lib/appwrite/models/policy_password_dictionary.rb +32 -0
  84. data/lib/appwrite/models/policy_password_history.rb +32 -0
  85. data/lib/appwrite/models/policy_password_personal_data.rb +32 -0
  86. data/lib/appwrite/models/policy_session_alert.rb +32 -0
  87. data/lib/appwrite/models/policy_session_duration.rb +32 -0
  88. data/lib/appwrite/models/policy_session_invalidation.rb +32 -0
  89. data/lib/appwrite/models/policy_session_limit.rb +32 -0
  90. data/lib/appwrite/models/policy_user_limit.rb +32 -0
  91. data/lib/appwrite/models/project.rb +427 -0
  92. data/lib/appwrite/models/proxy_rule.rb +127 -0
  93. data/lib/appwrite/models/proxy_rule_list.rb +32 -0
  94. data/lib/appwrite/models/webhook.rb +20 -20
  95. data/lib/appwrite/service.rb +1 -1
  96. data/lib/appwrite/services/account.rb +47 -2
  97. data/lib/appwrite/services/activities.rb +3 -1
  98. data/lib/appwrite/services/avatars.rb +9 -1
  99. data/lib/appwrite/services/backups.rb +13 -1
  100. data/lib/appwrite/services/databases.rb +258 -6
  101. data/lib/appwrite/services/functions.rb +40 -8
  102. data/lib/appwrite/services/graphql.rb +5 -3
  103. data/lib/appwrite/services/health.rb +26 -1
  104. data/lib/appwrite/services/locale.rb +9 -1
  105. data/lib/appwrite/services/messaging.rb +49 -1
  106. data/lib/appwrite/services/project.rb +3251 -5
  107. data/lib/appwrite/services/proxy.rb +303 -0
  108. data/lib/appwrite/services/sites.rb +39 -8
  109. data/lib/appwrite/services/storage.rb +14 -1
  110. data/lib/appwrite/services/tables_db.rb +252 -6
  111. data/lib/appwrite/services/teams.rb +14 -1
  112. data/lib/appwrite/services/tokens.rb +6 -1
  113. data/lib/appwrite/services/users.rb +44 -1
  114. data/lib/appwrite/services/webhooks.rb +31 -21
  115. data/lib/appwrite.rb +86 -0
  116. metadata +88 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4f4a3d1bf31ce4e73601bc346a1e2d1607cc7660dab949aa3d7cdac1c5072901
4
- data.tar.gz: ce5739e6bdaa5f4a39c0d29153772395ad51dd53fcedea2114eff17f14fe2d67
3
+ metadata.gz: dd02865d4592c504a324c79a3ccea59c0ba3313fe92900258c345a04111e42be
4
+ data.tar.gz: c2e32abf40d1d34cbddbfeb2b4d18cafae12078099415b4fb3187ab446ba104e
5
5
  SHA512:
6
- metadata.gz: 0db71f51932537771194fc8595e4093ab39c694c57e3fe8672c785d8160b1899f94d2b253be40b0e808708edb3c460a6ba023f21fee1c94d181836f2502d80f5
7
- data.tar.gz: 22a815abefa4ed7cd85442cf03c01fa5cae995f3e53b91f05bf4f87982bd318f6f18b0b79b24194fd8569858c26bb0455decc79d01121164bd005df0b79cdf4f
6
+ metadata.gz: 43bc24286c2b16dc259a75ad951582904b362f5b82f78ad4dceaf5f886012dec71dd3f598637bd30dd4be279ada8db43ad9ab0a32731c95c7b9ead639490d099
7
+ data.tar.gz: 9ca861d212fcdf5471ef71026337e447dd33025111e0693bb0b48b1e17b71a06bc78fd670b4d3fe91fac6d339975a20c289fec4f2c37515c3f23e6359fe8534d
@@ -15,8 +15,8 @@ module Appwrite
15
15
  'x-sdk-name'=> 'Ruby',
16
16
  'x-sdk-platform'=> 'server',
17
17
  'x-sdk-language'=> 'ruby',
18
- 'x-sdk-version'=> '22.0.0',
19
- 'X-Appwrite-Response-Format' => '1.9.0'
18
+ 'x-sdk-version'=> '23.1.0',
19
+ 'X-Appwrite-Response-Format' => '1.9.4'
20
20
  }
21
21
  @endpoint = 'https://cloud.appwrite.io/v1'
22
22
  end
@@ -97,6 +97,32 @@ module Appwrite
97
97
  self
98
98
  end
99
99
 
100
+ # Set DevKey
101
+ #
102
+ # Your secret dev API key
103
+ #
104
+ # @param [String] value The value to set for the DevKey header
105
+ #
106
+ # @return [self]
107
+ def set_dev_key(value)
108
+ add_header('x-appwrite-dev-key', value)
109
+
110
+ self
111
+ end
112
+
113
+ # Set Cookie
114
+ #
115
+ # The user cookie to authenticate with. Used by SDKs that forward an incoming Cookie header in server-side runtimes.
116
+ #
117
+ # @param [String] value The value to set for the Cookie header
118
+ #
119
+ # @return [self]
120
+ def set_cookie(value)
121
+ add_header('cookie', value)
122
+
123
+ self
124
+ end
125
+
100
126
  # Set ImpersonateUserId
101
127
  #
102
128
  # Impersonate a user by ID on an already user-authenticated request. Requires the current request to be authenticated as a user with impersonator capability; X-Appwrite-Key alone is not sufficient. Impersonator users are intentionally granted users.read so they can discover a target before impersonation begins. Internal audit logs still attribute actions to the original impersonator and record the impersonated target only in internal audit payload data.
@@ -174,6 +200,13 @@ module Appwrite
174
200
  self
175
201
  end
176
202
 
203
+ # Get request headers
204
+ #
205
+ # @return [Hash]
206
+ def get_headers
207
+ @headers.dup
208
+ end
209
+
177
210
  # Send the HTTP request.
178
211
  #
179
212
  # @param [String] method The HTTP method for the request
@@ -0,0 +1,13 @@
1
+ module Appwrite
2
+ module Enums
3
+ module AuthMethod
4
+ EMAIL_PASSWORD = 'email-password'
5
+ MAGIC_URL = 'magic-url'
6
+ EMAIL_OTP = 'email-otp'
7
+ ANONYMOUS = 'anonymous'
8
+ INVITES = 'invites'
9
+ JWT = 'jwt'
10
+ PHONE = 'phone'
11
+ end
12
+ end
13
+ end
@@ -49,6 +49,7 @@ module Appwrite
49
49
  DART_3_8 = 'dart-3.8'
50
50
  DART_3_9 = 'dart-3.9'
51
51
  DART_3_10 = 'dart-3.10'
52
+ DART_3_11 = 'dart-3.11'
52
53
  DOTNET_6_0 = 'dotnet-6.0'
53
54
  DOTNET_7_0 = 'dotnet-7.0'
54
55
  DOTNET_8_0 = 'dotnet-8.0'
@@ -80,6 +81,7 @@ module Appwrite
80
81
  GO_1_24 = 'go-1.24'
81
82
  GO_1_25 = 'go-1.25'
82
83
  GO_1_26 = 'go-1.26'
84
+ RUST_1_83 = 'rust-1.83'
83
85
  STATIC_1 = 'static-1'
84
86
  FLUTTER_3_24 = 'flutter-3.24'
85
87
  FLUTTER_3_27 = 'flutter-3.27'
@@ -87,6 +89,7 @@ module Appwrite
87
89
  FLUTTER_3_32 = 'flutter-3.32'
88
90
  FLUTTER_3_35 = 'flutter-3.35'
89
91
  FLUTTER_3_38 = 'flutter-3.38'
92
+ FLUTTER_3_41 = 'flutter-3.41'
90
93
  end
91
94
  end
92
95
  end
@@ -0,0 +1,137 @@
1
+ module Appwrite
2
+ module Enums
3
+ module EmailTemplateLocale
4
+ AF = 'af'
5
+ AR_AE = 'ar-ae'
6
+ AR_BH = 'ar-bh'
7
+ AR_DZ = 'ar-dz'
8
+ AR_EG = 'ar-eg'
9
+ AR_IQ = 'ar-iq'
10
+ AR_JO = 'ar-jo'
11
+ AR_KW = 'ar-kw'
12
+ AR_LB = 'ar-lb'
13
+ AR_LY = 'ar-ly'
14
+ AR_MA = 'ar-ma'
15
+ AR_OM = 'ar-om'
16
+ AR_QA = 'ar-qa'
17
+ AR_SA = 'ar-sa'
18
+ AR_SY = 'ar-sy'
19
+ AR_TN = 'ar-tn'
20
+ AR_YE = 'ar-ye'
21
+ AS = 'as'
22
+ AZ = 'az'
23
+ BE = 'be'
24
+ BG = 'bg'
25
+ BH = 'bh'
26
+ BN = 'bn'
27
+ BS = 'bs'
28
+ CA = 'ca'
29
+ CS = 'cs'
30
+ CY = 'cy'
31
+ DA = 'da'
32
+ DE = 'de'
33
+ DE_AT = 'de-at'
34
+ DE_CH = 'de-ch'
35
+ DE_LI = 'de-li'
36
+ DE_LU = 'de-lu'
37
+ EL = 'el'
38
+ EN = 'en'
39
+ EN_AU = 'en-au'
40
+ EN_BZ = 'en-bz'
41
+ EN_CA = 'en-ca'
42
+ EN_GB = 'en-gb'
43
+ EN_IE = 'en-ie'
44
+ EN_JM = 'en-jm'
45
+ EN_NZ = 'en-nz'
46
+ EN_TT = 'en-tt'
47
+ EN_US = 'en-us'
48
+ EN_ZA = 'en-za'
49
+ EO = 'eo'
50
+ ES = 'es'
51
+ ES_AR = 'es-ar'
52
+ ES_BO = 'es-bo'
53
+ ES_CL = 'es-cl'
54
+ ES_CO = 'es-co'
55
+ ES_CR = 'es-cr'
56
+ ES_DO = 'es-do'
57
+ ES_EC = 'es-ec'
58
+ ES_GT = 'es-gt'
59
+ ES_HN = 'es-hn'
60
+ ES_MX = 'es-mx'
61
+ ES_NI = 'es-ni'
62
+ ES_PA = 'es-pa'
63
+ ES_PE = 'es-pe'
64
+ ES_PR = 'es-pr'
65
+ ES_PY = 'es-py'
66
+ ES_SV = 'es-sv'
67
+ ES_UY = 'es-uy'
68
+ ES_VE = 'es-ve'
69
+ ET = 'et'
70
+ EU = 'eu'
71
+ FA = 'fa'
72
+ FI = 'fi'
73
+ FO = 'fo'
74
+ FR = 'fr'
75
+ FR_BE = 'fr-be'
76
+ FR_CA = 'fr-ca'
77
+ FR_CH = 'fr-ch'
78
+ FR_LU = 'fr-lu'
79
+ GA = 'ga'
80
+ GD = 'gd'
81
+ HE = 'he'
82
+ HI = 'hi'
83
+ HR = 'hr'
84
+ HU = 'hu'
85
+ ID = 'id'
86
+ IS = 'is'
87
+ IT = 'it'
88
+ IT_CH = 'it-ch'
89
+ JA = 'ja'
90
+ JI = 'ji'
91
+ KO = 'ko'
92
+ KU = 'ku'
93
+ LT = 'lt'
94
+ LV = 'lv'
95
+ MK = 'mk'
96
+ ML = 'ml'
97
+ MS = 'ms'
98
+ MT = 'mt'
99
+ NB = 'nb'
100
+ NE = 'ne'
101
+ NL = 'nl'
102
+ NL_BE = 'nl-be'
103
+ NN = 'nn'
104
+ NO = 'no'
105
+ PA = 'pa'
106
+ PL = 'pl'
107
+ PT = 'pt'
108
+ PT_BR = 'pt-br'
109
+ RM = 'rm'
110
+ RO = 'ro'
111
+ RO_MD = 'ro-md'
112
+ RU = 'ru'
113
+ RU_MD = 'ru-md'
114
+ SB = 'sb'
115
+ SK = 'sk'
116
+ SL = 'sl'
117
+ SQ = 'sq'
118
+ SR = 'sr'
119
+ SV = 'sv'
120
+ SV_FI = 'sv-fi'
121
+ TH = 'th'
122
+ TN = 'tn'
123
+ TR = 'tr'
124
+ TS = 'ts'
125
+ UA = 'ua'
126
+ UR = 'ur'
127
+ VE = 've'
128
+ VI = 'vi'
129
+ XH = 'xh'
130
+ ZH_CN = 'zh-cn'
131
+ ZH_HK = 'zh-hk'
132
+ ZH_SG = 'zh-sg'
133
+ ZH_TW = 'zh-tw'
134
+ ZU = 'zu'
135
+ end
136
+ end
137
+ end
@@ -0,0 +1,13 @@
1
+ module Appwrite
2
+ module Enums
3
+ module EmailTemplateType
4
+ VERIFICATION = 'verification'
5
+ MAGICSESSION = 'magicSession'
6
+ RECOVERY = 'recovery'
7
+ INVITATION = 'invitation'
8
+ MFACHALLENGE = 'mfaChallenge'
9
+ SESSIONALERT = 'sessionAlert'
10
+ OTPSESSION = 'otpSession'
11
+ end
12
+ end
13
+ end
@@ -16,9 +16,12 @@ module Appwrite
16
16
  ETSY = 'etsy'
17
17
  FACEBOOK = 'facebook'
18
18
  FIGMA = 'figma'
19
+ FUSIONAUTH = 'fusionauth'
19
20
  GITHUB = 'github'
20
21
  GITLAB = 'gitlab'
21
22
  GOOGLE = 'google'
23
+ KEYCLOAK = 'keycloak'
24
+ KICK = 'kick'
22
25
  LINKEDIN = 'linkedin'
23
26
  MICROSOFT = 'microsoft'
24
27
  NOTION = 'notion'
@@ -35,11 +38,14 @@ module Appwrite
35
38
  TRADESHIFTBOX = 'tradeshiftBox'
36
39
  TWITCH = 'twitch'
37
40
  WORDPRESS = 'wordpress'
41
+ X = 'x'
38
42
  YAHOO = 'yahoo'
39
43
  YAMMER = 'yammer'
40
44
  YANDEX = 'yandex'
41
45
  ZOHO = 'zoho'
42
46
  ZOOM = 'zoom'
47
+ GITHUBIMAGINE = 'githubImagine'
48
+ GOOGLEIMAGINE = 'googleImagine'
43
49
  end
44
50
  end
45
51
  end
@@ -0,0 +1,11 @@
1
+ module Appwrite
2
+ module Enums
3
+ module PlatformType
4
+ WINDOWS = 'windows'
5
+ APPLE = 'apple'
6
+ ANDROID = 'android'
7
+ LINUX = 'linux'
8
+ WEB = 'web'
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,15 @@
1
+ module Appwrite
2
+ module Enums
3
+ module ProjectPolicy
4
+ PASSWORD_DICTIONARY = 'password-dictionary'
5
+ PASSWORD_HISTORY = 'password-history'
6
+ PASSWORD_PERSONAL_DATA = 'password-personal-data'
7
+ SESSION_ALERT = 'session-alert'
8
+ SESSION_DURATION = 'session-duration'
9
+ SESSION_INVALIDATION = 'session-invalidation'
10
+ SESSION_LIMIT = 'session-limit'
11
+ USER_LIMIT = 'user-limit'
12
+ MEMBERSHIP_PRIVACY = 'membership-privacy'
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,9 @@
1
+ module Appwrite
2
+ module Enums
3
+ module ProtocolId
4
+ REST = 'rest'
5
+ GRAPHQL = 'graphql'
6
+ WEBSOCKET = 'websocket'
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,8 @@
1
+ module Appwrite
2
+ module Enums
3
+ module ProxyResourceType
4
+ SITE = 'site'
5
+ FUNCTION = 'function'
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ module Appwrite
2
+ module Enums
3
+ module ProxyRuleDeploymentResourceType
4
+ FUNCTION = 'function'
5
+ SITE = 'site'
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,9 @@
1
+ module Appwrite
2
+ module Enums
3
+ module ProxyRuleStatus
4
+ UNVERIFIED = 'unverified'
5
+ VERIFYING = 'verifying'
6
+ VERIFIED = 'verified'
7
+ end
8
+ end
9
+ end
@@ -49,6 +49,7 @@ module Appwrite
49
49
  DART_3_8 = 'dart-3.8'
50
50
  DART_3_9 = 'dart-3.9'
51
51
  DART_3_10 = 'dart-3.10'
52
+ DART_3_11 = 'dart-3.11'
52
53
  DOTNET_6_0 = 'dotnet-6.0'
53
54
  DOTNET_7_0 = 'dotnet-7.0'
54
55
  DOTNET_8_0 = 'dotnet-8.0'
@@ -80,6 +81,7 @@ module Appwrite
80
81
  GO_1_24 = 'go-1.24'
81
82
  GO_1_25 = 'go-1.25'
82
83
  GO_1_26 = 'go-1.26'
84
+ RUST_1_83 = 'rust-1.83'
83
85
  STATIC_1 = 'static-1'
84
86
  FLUTTER_3_24 = 'flutter-3.24'
85
87
  FLUTTER_3_27 = 'flutter-3.27'
@@ -87,6 +89,7 @@ module Appwrite
87
89
  FLUTTER_3_32 = 'flutter-3.32'
88
90
  FLUTTER_3_35 = 'flutter-3.35'
89
91
  FLUTTER_3_38 = 'flutter-3.38'
92
+ FLUTTER_3_41 = 'flutter-3.41'
90
93
  end
91
94
  end
92
95
  end
@@ -1,69 +1,86 @@
1
1
  module Appwrite
2
2
  module Enums
3
3
  module Scopes
4
- SESSIONS_WRITE = 'sessions.write'
4
+ PROJECT_READ = 'project.read'
5
+ PROJECT_WRITE = 'project.write'
6
+ KEYS_READ = 'keys.read'
7
+ KEYS_WRITE = 'keys.write'
8
+ PLATFORMS_READ = 'platforms.read'
9
+ PLATFORMS_WRITE = 'platforms.write'
10
+ MOCKS_READ = 'mocks.read'
11
+ MOCKS_WRITE = 'mocks.write'
12
+ POLICIES_READ = 'policies.read'
13
+ POLICIES_WRITE = 'policies.write'
14
+ PROJECT_POLICIES_READ = 'project.policies.read'
15
+ PROJECT_POLICIES_WRITE = 'project.policies.write'
16
+ TEMPLATES_READ = 'templates.read'
17
+ TEMPLATES_WRITE = 'templates.write'
18
+ OAUTH2_READ = 'oauth2.read'
19
+ OAUTH2_WRITE = 'oauth2.write'
5
20
  USERS_READ = 'users.read'
6
21
  USERS_WRITE = 'users.write'
22
+ SESSIONS_READ = 'sessions.read'
23
+ SESSIONS_WRITE = 'sessions.write'
7
24
  TEAMS_READ = 'teams.read'
8
25
  TEAMS_WRITE = 'teams.write'
9
26
  DATABASES_READ = 'databases.read'
10
27
  DATABASES_WRITE = 'databases.write'
11
- COLLECTIONS_READ = 'collections.read'
12
- COLLECTIONS_WRITE = 'collections.write'
13
28
  TABLES_READ = 'tables.read'
14
29
  TABLES_WRITE = 'tables.write'
15
- ATTRIBUTES_READ = 'attributes.read'
16
- ATTRIBUTES_WRITE = 'attributes.write'
17
30
  COLUMNS_READ = 'columns.read'
18
31
  COLUMNS_WRITE = 'columns.write'
19
32
  INDEXES_READ = 'indexes.read'
20
33
  INDEXES_WRITE = 'indexes.write'
21
- DOCUMENTS_READ = 'documents.read'
22
- DOCUMENTS_WRITE = 'documents.write'
23
34
  ROWS_READ = 'rows.read'
24
35
  ROWS_WRITE = 'rows.write'
25
- FILES_READ = 'files.read'
26
- FILES_WRITE = 'files.write'
36
+ COLLECTIONS_READ = 'collections.read'
37
+ COLLECTIONS_WRITE = 'collections.write'
38
+ ATTRIBUTES_READ = 'attributes.read'
39
+ ATTRIBUTES_WRITE = 'attributes.write'
40
+ DOCUMENTS_READ = 'documents.read'
41
+ DOCUMENTS_WRITE = 'documents.write'
27
42
  BUCKETS_READ = 'buckets.read'
28
43
  BUCKETS_WRITE = 'buckets.write'
44
+ FILES_READ = 'files.read'
45
+ FILES_WRITE = 'files.write'
46
+ TOKENS_READ = 'tokens.read'
47
+ TOKENS_WRITE = 'tokens.write'
29
48
  FUNCTIONS_READ = 'functions.read'
30
49
  FUNCTIONS_WRITE = 'functions.write'
50
+ EXECUTIONS_READ = 'executions.read'
51
+ EXECUTIONS_WRITE = 'executions.write'
52
+ EXECUTION_READ = 'execution.read'
53
+ EXECUTION_WRITE = 'execution.write'
31
54
  SITES_READ = 'sites.read'
32
55
  SITES_WRITE = 'sites.write'
33
56
  LOG_READ = 'log.read'
34
57
  LOG_WRITE = 'log.write'
35
- EXECUTION_READ = 'execution.read'
36
- EXECUTION_WRITE = 'execution.write'
37
- LOCALE_READ = 'locale.read'
38
- AVATARS_READ = 'avatars.read'
39
- HEALTH_READ = 'health.read'
40
58
  PROVIDERS_READ = 'providers.read'
41
59
  PROVIDERS_WRITE = 'providers.write'
42
- MESSAGES_READ = 'messages.read'
43
- MESSAGES_WRITE = 'messages.write'
44
60
  TOPICS_READ = 'topics.read'
45
61
  TOPICS_WRITE = 'topics.write'
46
62
  SUBSCRIBERS_READ = 'subscribers.read'
47
63
  SUBSCRIBERS_WRITE = 'subscribers.write'
48
64
  TARGETS_READ = 'targets.read'
49
65
  TARGETS_WRITE = 'targets.write'
66
+ MESSAGES_READ = 'messages.read'
67
+ MESSAGES_WRITE = 'messages.write'
50
68
  RULES_READ = 'rules.read'
51
69
  RULES_WRITE = 'rules.write'
52
- SCHEDULES_READ = 'schedules.read'
53
- SCHEDULES_WRITE = 'schedules.write'
70
+ WEBHOOKS_READ = 'webhooks.read'
71
+ WEBHOOKS_WRITE = 'webhooks.write'
72
+ LOCALE_READ = 'locale.read'
73
+ AVATARS_READ = 'avatars.read'
74
+ HEALTH_READ = 'health.read'
75
+ ASSISTANT_READ = 'assistant.read'
54
76
  MIGRATIONS_READ = 'migrations.read'
55
77
  MIGRATIONS_WRITE = 'migrations.write'
78
+ SCHEDULES_READ = 'schedules.read'
79
+ SCHEDULES_WRITE = 'schedules.write'
56
80
  VCS_READ = 'vcs.read'
57
81
  VCS_WRITE = 'vcs.write'
58
- ASSISTANT_READ = 'assistant.read'
59
- TOKENS_READ = 'tokens.read'
60
- TOKENS_WRITE = 'tokens.write'
61
- WEBHOOKS_READ = 'webhooks.read'
62
- WEBHOOKS_WRITE = 'webhooks.write'
63
- PROJECT_READ = 'project.read'
64
- PROJECT_WRITE = 'project.write'
65
- POLICIES_WRITE = 'policies.write'
66
- POLICIES_READ = 'policies.read'
82
+ BACKUPS_POLICIES_READ = 'backups.policies.read'
83
+ BACKUPS_POLICIES_WRITE = 'backups.policies.write'
67
84
  ARCHIVES_READ = 'archives.read'
68
85
  ARCHIVES_WRITE = 'archives.write'
69
86
  RESTORATIONS_READ = 'restorations.read'
@@ -0,0 +1,8 @@
1
+ module Appwrite
2
+ module Enums
3
+ module Secure
4
+ TLS = 'tls'
5
+ SSL = 'ssl'
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,23 @@
1
+ module Appwrite
2
+ module Enums
3
+ module ServiceId
4
+ ACCOUNT = 'account'
5
+ AVATARS = 'avatars'
6
+ DATABASES = 'databases'
7
+ TABLESDB = 'tablesdb'
8
+ LOCALE = 'locale'
9
+ HEALTH = 'health'
10
+ PROJECT = 'project'
11
+ STORAGE = 'storage'
12
+ TEAMS = 'teams'
13
+ USERS = 'users'
14
+ VCS = 'vcs'
15
+ SITES = 'sites'
16
+ FUNCTIONS = 'functions'
17
+ PROXY = 'proxy'
18
+ GRAPHQL = 'graphql'
19
+ MIGRATIONS = 'migrations'
20
+ MESSAGING = 'messaging'
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,10 @@
1
+ module Appwrite
2
+ module Enums
3
+ module StatusCode
4
+ MOVED_PERMANENTLY_301 = '301'
5
+ FOUND_302 = '302'
6
+ TEMPORARY_REDIRECT_307 = '307'
7
+ PERMANENT_REDIRECT_308 = '308'
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,96 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class AttributeBigint
6
+ attr_reader :key
7
+ attr_reader :type
8
+ attr_reader :status
9
+ attr_reader :error
10
+ attr_reader :required
11
+ attr_reader :array
12
+ attr_reader :created_at
13
+ attr_reader :updated_at
14
+ attr_reader :min
15
+ attr_reader :max
16
+ attr_reader :default
17
+
18
+ def initialize(
19
+ key:,
20
+ type:,
21
+ status:,
22
+ error:,
23
+ required:,
24
+ array: ,
25
+ created_at:,
26
+ updated_at:,
27
+ min: ,
28
+ max: ,
29
+ default:
30
+ )
31
+ @key = key
32
+ @type = type
33
+ @status = validate_status(status)
34
+ @error = error
35
+ @required = required
36
+ @array = array
37
+ @created_at = created_at
38
+ @updated_at = updated_at
39
+ @min = min
40
+ @max = max
41
+ @default = default
42
+ end
43
+
44
+ def self.from(map:)
45
+ AttributeBigint.new(
46
+ key: map["key"],
47
+ type: map["type"],
48
+ status: map["status"],
49
+ error: map["error"],
50
+ required: map["required"],
51
+ array: map["array"],
52
+ created_at: map["$createdAt"],
53
+ updated_at: map["$updatedAt"],
54
+ min: map["min"],
55
+ max: map["max"],
56
+ default: map["default"]
57
+ )
58
+ end
59
+
60
+ def to_map
61
+ {
62
+ "key": @key,
63
+ "type": @type,
64
+ "status": @status,
65
+ "error": @error,
66
+ "required": @required,
67
+ "array": @array,
68
+ "$createdAt": @created_at,
69
+ "$updatedAt": @updated_at,
70
+ "min": @min,
71
+ "max": @max,
72
+ "default": @default
73
+ }
74
+ end
75
+
76
+ private
77
+
78
+ def validate_status(status)
79
+ valid_status = [
80
+ Appwrite::Enums::AttributeStatus::AVAILABLE,
81
+ Appwrite::Enums::AttributeStatus::PROCESSING,
82
+ Appwrite::Enums::AttributeStatus::DELETING,
83
+ Appwrite::Enums::AttributeStatus::STUCK,
84
+ Appwrite::Enums::AttributeStatus::FAILED,
85
+ ]
86
+
87
+ unless valid_status.include?(status)
88
+ raise ArgumentError, "Invalid " + status + ". Must be one of: " + valid_status.join(', ')
89
+ end
90
+
91
+ status
92
+ end
93
+
94
+ end
95
+ end
96
+ end