appwrite 23.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 (87) hide show
  1. checksums.yaml +4 -4
  2. data/lib/appwrite/client.rb +28 -2
  3. data/lib/appwrite/enums/auth_method.rb +13 -0
  4. data/lib/appwrite/enums/build_runtime.rb +1 -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 +5 -0
  8. data/lib/appwrite/enums/project_policy.rb +15 -0
  9. data/lib/appwrite/enums/proxy_resource_type.rb +8 -0
  10. data/lib/appwrite/enums/proxy_rule_deployment_resource_type.rb +8 -0
  11. data/lib/appwrite/enums/proxy_rule_status.rb +9 -0
  12. data/lib/appwrite/enums/runtime.rb +1 -0
  13. data/lib/appwrite/enums/scopes.rb +44 -31
  14. data/lib/appwrite/enums/secure.rb +8 -0
  15. data/lib/appwrite/enums/status_code.rb +10 -0
  16. data/lib/appwrite/models/attribute_bigint.rb +96 -0
  17. data/lib/appwrite/models/block.rb +28 -3
  18. data/lib/appwrite/models/column_bigint.rb +96 -0
  19. data/lib/appwrite/models/email_template.rb +62 -0
  20. data/lib/appwrite/models/email_template_list.rb +32 -0
  21. data/lib/appwrite/models/ephemeral_key.rb +67 -0
  22. data/lib/appwrite/models/membership.rb +5 -0
  23. data/lib/appwrite/models/mock_number.rb +18 -8
  24. data/lib/appwrite/models/mock_number_list.rb +32 -0
  25. data/lib/appwrite/models/o_auth2_amazon.rb +42 -0
  26. data/lib/appwrite/models/o_auth2_apple.rb +52 -0
  27. data/lib/appwrite/models/o_auth2_auth0.rb +47 -0
  28. data/lib/appwrite/models/o_auth2_authentik.rb +47 -0
  29. data/lib/appwrite/models/o_auth2_autodesk.rb +42 -0
  30. data/lib/appwrite/models/o_auth2_bitbucket.rb +42 -0
  31. data/lib/appwrite/models/o_auth2_bitly.rb +42 -0
  32. data/lib/appwrite/models/o_auth2_box.rb +42 -0
  33. data/lib/appwrite/models/o_auth2_dailymotion.rb +42 -0
  34. data/lib/appwrite/models/o_auth2_discord.rb +42 -0
  35. data/lib/appwrite/models/o_auth2_disqus.rb +42 -0
  36. data/lib/appwrite/models/o_auth2_dropbox.rb +42 -0
  37. data/lib/appwrite/models/o_auth2_etsy.rb +42 -0
  38. data/lib/appwrite/models/o_auth2_facebook.rb +42 -0
  39. data/lib/appwrite/models/o_auth2_figma.rb +42 -0
  40. data/lib/appwrite/models/o_auth2_fusion_auth.rb +47 -0
  41. data/lib/appwrite/models/o_auth2_github.rb +42 -0
  42. data/lib/appwrite/models/o_auth2_gitlab.rb +47 -0
  43. data/lib/appwrite/models/o_auth2_google.rb +42 -0
  44. data/lib/appwrite/models/o_auth2_keycloak.rb +52 -0
  45. data/lib/appwrite/models/o_auth2_kick.rb +42 -0
  46. data/lib/appwrite/models/o_auth2_linkedin.rb +42 -0
  47. data/lib/appwrite/models/o_auth2_microsoft.rb +47 -0
  48. data/lib/appwrite/models/o_auth2_notion.rb +42 -0
  49. data/lib/appwrite/models/o_auth2_oidc.rb +62 -0
  50. data/lib/appwrite/models/o_auth2_okta.rb +52 -0
  51. data/lib/appwrite/models/o_auth2_paypal.rb +42 -0
  52. data/lib/appwrite/models/o_auth2_podio.rb +42 -0
  53. data/lib/appwrite/models/o_auth2_provider_list.rb +32 -0
  54. data/lib/appwrite/models/o_auth2_salesforce.rb +42 -0
  55. data/lib/appwrite/models/o_auth2_slack.rb +42 -0
  56. data/lib/appwrite/models/o_auth2_spotify.rb +42 -0
  57. data/lib/appwrite/models/o_auth2_stripe.rb +42 -0
  58. data/lib/appwrite/models/o_auth2_tradeshift.rb +42 -0
  59. data/lib/appwrite/models/o_auth2_twitch.rb +42 -0
  60. data/lib/appwrite/models/o_auth2_word_press.rb +42 -0
  61. data/lib/appwrite/models/o_auth2_x.rb +42 -0
  62. data/lib/appwrite/models/o_auth2_yahoo.rb +42 -0
  63. data/lib/appwrite/models/o_auth2_yandex.rb +42 -0
  64. data/lib/appwrite/models/o_auth2_zoho.rb +42 -0
  65. data/lib/appwrite/models/o_auth2_zoom.rb +42 -0
  66. data/lib/appwrite/models/policy_list.rb +32 -0
  67. data/lib/appwrite/models/policy_membership_privacy.rb +52 -0
  68. data/lib/appwrite/models/policy_password_dictionary.rb +32 -0
  69. data/lib/appwrite/models/policy_password_history.rb +32 -0
  70. data/lib/appwrite/models/policy_password_personal_data.rb +32 -0
  71. data/lib/appwrite/models/policy_session_alert.rb +32 -0
  72. data/lib/appwrite/models/policy_session_duration.rb +32 -0
  73. data/lib/appwrite/models/policy_session_invalidation.rb +32 -0
  74. data/lib/appwrite/models/policy_session_limit.rb +32 -0
  75. data/lib/appwrite/models/policy_user_limit.rb +32 -0
  76. data/lib/appwrite/models/project.rb +20 -5
  77. data/lib/appwrite/models/proxy_rule.rb +127 -0
  78. data/lib/appwrite/models/proxy_rule_list.rb +32 -0
  79. data/lib/appwrite/services/account.rb +1 -1
  80. data/lib/appwrite/services/databases.rb +126 -0
  81. data/lib/appwrite/services/functions.rb +13 -7
  82. data/lib/appwrite/services/project.rb +2695 -288
  83. data/lib/appwrite/services/proxy.rb +303 -0
  84. data/lib/appwrite/services/sites.rb +13 -7
  85. data/lib/appwrite/services/tables_db.rb +120 -0
  86. data/lib/appwrite.rb +69 -0
  87. metadata +71 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 71453fa364510c42ae244dc43108518fd45bcd5eba4409148f181d544f61907e
4
- data.tar.gz: '018040e5e8aab6d7ebc649f0754ce43a32cf1a64bebb70c2b5b4c93781c70add'
3
+ metadata.gz: dd02865d4592c504a324c79a3ccea59c0ba3313fe92900258c345a04111e42be
4
+ data.tar.gz: c2e32abf40d1d34cbddbfeb2b4d18cafae12078099415b4fb3187ab446ba104e
5
5
  SHA512:
6
- metadata.gz: bbd44f5cf20c90fe3f628a2badb9ed1766960d3605569475ca36b5bcb32931fbbd8a804e8036fbef454c7d73ff7b52c1c301111777eff84d7780661dbbd5a6c7
7
- data.tar.gz: 68008c910bd8e7350dc6cc7b33c692b25ccdc4d8f45df13453ded2456c2b7cd62100838c157160c25d836a6fa5496cf75cb89bb2f5340e78dc5f14b244a11bee
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'=> '23.0.0',
19
- 'X-Appwrite-Response-Format' => '1.9.1'
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.
@@ -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
@@ -81,6 +81,7 @@ module Appwrite
81
81
  GO_1_24 = 'go-1.24'
82
82
  GO_1_25 = 'go-1.25'
83
83
  GO_1_26 = 'go-1.26'
84
+ RUST_1_83 = 'rust-1.83'
84
85
  STATIC_1 = 'static-1'
85
86
  FLUTTER_3_24 = 'flutter-3.24'
86
87
  FLUTTER_3_27 = 'flutter-3.27'
@@ -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'
@@ -41,6 +44,8 @@ module Appwrite
41
44
  YANDEX = 'yandex'
42
45
  ZOHO = 'zoho'
43
46
  ZOOM = 'zoom'
47
+ GITHUBIMAGINE = 'githubImagine'
48
+ GOOGLEIMAGINE = 'googleImagine'
44
49
  end
45
50
  end
46
51
  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,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
@@ -81,6 +81,7 @@ module Appwrite
81
81
  GO_1_24 = 'go-1.24'
82
82
  GO_1_25 = 'go-1.25'
83
83
  GO_1_26 = 'go-1.26'
84
+ RUST_1_83 = 'rust-1.83'
84
85
  STATIC_1 = 'static-1'
85
86
  FLUTTER_3_24 = 'flutter-3.24'
86
87
  FLUTTER_3_27 = 'flutter-3.27'
@@ -1,73 +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
- KEYS_READ = 'keys.read'
66
- KEYS_WRITE = 'keys.write'
67
- PLATFORMS_READ = 'platforms.read'
68
- PLATFORMS_WRITE = 'platforms.write'
69
- POLICIES_WRITE = 'policies.write'
70
- POLICIES_READ = 'policies.read'
82
+ BACKUPS_POLICIES_READ = 'backups.policies.read'
83
+ BACKUPS_POLICIES_WRITE = 'backups.policies.write'
71
84
  ARCHIVES_READ = 'archives.read'
72
85
  ARCHIVES_WRITE = 'archives.write'
73
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,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
@@ -8,19 +8,34 @@ module Appwrite
8
8
  attr_reader :resource_id
9
9
  attr_reader :reason
10
10
  attr_reader :expired_at
11
+ attr_reader :project_name
12
+ attr_reader :region
13
+ attr_reader :organization_name
14
+ attr_reader :organization_id
15
+ attr_reader :billing_plan
11
16
 
12
17
  def initialize(
13
18
  created_at:,
14
19
  resource_type:,
15
20
  resource_id:,
16
21
  reason: ,
17
- expired_at:
22
+ expired_at: ,
23
+ project_name:,
24
+ region:,
25
+ organization_name:,
26
+ organization_id:,
27
+ billing_plan:
18
28
  )
19
29
  @created_at = created_at
20
30
  @resource_type = resource_type
21
31
  @resource_id = resource_id
22
32
  @reason = reason
23
33
  @expired_at = expired_at
34
+ @project_name = project_name
35
+ @region = region
36
+ @organization_name = organization_name
37
+ @organization_id = organization_id
38
+ @billing_plan = billing_plan
24
39
  end
25
40
 
26
41
  def self.from(map:)
@@ -29,7 +44,12 @@ module Appwrite
29
44
  resource_type: map["resourceType"],
30
45
  resource_id: map["resourceId"],
31
46
  reason: map["reason"],
32
- expired_at: map["expiredAt"]
47
+ expired_at: map["expiredAt"],
48
+ project_name: map["projectName"],
49
+ region: map["region"],
50
+ organization_name: map["organizationName"],
51
+ organization_id: map["organizationId"],
52
+ billing_plan: map["billingPlan"]
33
53
  )
34
54
  end
35
55
 
@@ -39,7 +59,12 @@ module Appwrite
39
59
  "resourceType": @resource_type,
40
60
  "resourceId": @resource_id,
41
61
  "reason": @reason,
42
- "expiredAt": @expired_at
62
+ "expiredAt": @expired_at,
63
+ "projectName": @project_name,
64
+ "region": @region,
65
+ "organizationName": @organization_name,
66
+ "organizationId": @organization_id,
67
+ "billingPlan": @billing_plan
43
68
  }
44
69
  end
45
70
  end