appwrite 25.1.0 → 26.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 (73) hide show
  1. checksums.yaml +4 -4
  2. data/lib/appwrite/client.rb +18 -4
  3. data/lib/appwrite/enums/billing_plan_group.rb +9 -0
  4. data/lib/appwrite/enums/database_status.rb +9 -0
  5. data/lib/appwrite/enums/o_auth2_oidc_prompt.rb +10 -0
  6. data/lib/appwrite/enums/o_auth_provider.rb +1 -0
  7. data/lib/appwrite/enums/organization_key_scopes.rb +4 -0
  8. data/lib/appwrite/enums/project_key_scopes.rb +7 -2
  9. data/lib/appwrite/enums/project_o_auth2_oidc_prompt.rb +10 -0
  10. data/lib/appwrite/enums/project_o_auth_provider_id.rb +1 -0
  11. data/lib/appwrite/enums/project_policy_id.rb +1 -0
  12. data/lib/appwrite/enums/project_service_id.rb +1 -0
  13. data/lib/appwrite/models/activity_event.rb +3 -73
  14. data/lib/appwrite/models/additional_resource.rb +52 -0
  15. data/lib/appwrite/models/backup_policy.rb +5 -0
  16. data/lib/appwrite/models/billing_plan.rb +379 -0
  17. data/lib/appwrite/models/billing_plan_addon.rb +32 -0
  18. data/lib/appwrite/models/billing_plan_addon_details.rb +62 -0
  19. data/lib/appwrite/models/billing_plan_dedicated_database_limits.rb +117 -0
  20. data/lib/appwrite/models/billing_plan_limits.rb +32 -0
  21. data/lib/appwrite/models/billing_plan_supported_addons.rb +37 -0
  22. data/lib/appwrite/models/block.rb +5 -0
  23. data/lib/appwrite/models/database.rb +19 -0
  24. data/lib/appwrite/models/locale.rb +58 -3
  25. data/lib/appwrite/models/membership.rb +5 -0
  26. data/lib/appwrite/models/o_auth2_appwrite.rb +42 -0
  27. data/lib/appwrite/models/o_auth2_oidc.rb +13 -3
  28. data/lib/appwrite/models/organization.rb +197 -0
  29. data/lib/appwrite/models/policy_deny_corporate_email.rb +32 -0
  30. data/lib/appwrite/models/policy_membership_privacy.rb +8 -3
  31. data/lib/appwrite/models/program.rb +67 -0
  32. data/lib/appwrite/models/project.rb +46 -11
  33. data/lib/appwrite/models/usage_billing_plan.rb +77 -0
  34. data/lib/appwrite/models/user.rb +25 -0
  35. data/lib/appwrite/query.rb +13 -1
  36. data/lib/appwrite/services/account.rb +42 -1
  37. data/lib/appwrite/services/activities.rb +2 -0
  38. data/lib/appwrite/services/advisor.rb +4 -0
  39. data/lib/appwrite/services/avatars.rb +8 -0
  40. data/lib/appwrite/services/backups.rb +25 -1
  41. data/lib/appwrite/services/databases.rb +107 -0
  42. data/lib/appwrite/services/functions.rb +30 -4
  43. data/lib/appwrite/services/graphql.rb +2 -0
  44. data/lib/appwrite/services/locale.rb +8 -0
  45. data/lib/appwrite/services/messaging.rb +42 -136
  46. data/lib/appwrite/services/organization.rb +268 -3
  47. data/lib/appwrite/services/presences.rb +4 -0
  48. data/lib/appwrite/services/project.rb +190 -9
  49. data/lib/appwrite/services/proxy.rb +7 -0
  50. data/lib/appwrite/services/sites.rb +25 -1
  51. data/lib/appwrite/services/storage.rb +11 -0
  52. data/lib/appwrite/services/tables_db.rb +68 -1
  53. data/lib/appwrite/services/teams.rb +11 -0
  54. data/lib/appwrite/services/tokens.rb +4 -0
  55. data/lib/appwrite/services/users.rb +38 -1
  56. data/lib/appwrite/services/webhooks.rb +5 -0
  57. data/lib/appwrite.rb +16 -15
  58. metadata +18 -17
  59. data/lib/appwrite/enums/health_antivirus_status.rb +0 -9
  60. data/lib/appwrite/enums/health_check_status.rb +0 -8
  61. data/lib/appwrite/enums/health_queue_name.rb +0 -19
  62. data/lib/appwrite/models/health_antivirus.rb +0 -49
  63. data/lib/appwrite/models/health_certificate.rb +0 -52
  64. data/lib/appwrite/models/health_queue.rb +0 -27
  65. data/lib/appwrite/models/health_status.rb +0 -53
  66. data/lib/appwrite/models/health_status_list.rb +0 -32
  67. data/lib/appwrite/models/health_time.rb +0 -37
  68. data/lib/appwrite/models/usage_event.rb +0 -72
  69. data/lib/appwrite/models/usage_event_list.rb +0 -32
  70. data/lib/appwrite/models/usage_gauge.rb +0 -47
  71. data/lib/appwrite/models/usage_gauge_list.rb +0 -32
  72. data/lib/appwrite/services/health.rb +0 -681
  73. data/lib/appwrite/services/usage.rb +0 -88
@@ -81,6 +81,7 @@ module Appwrite
81
81
  api_headers = {
82
82
  "X-Appwrite-Project": @client.get_config('project'),
83
83
  "content-type": 'application/json',
84
+ "accept": 'application/json',
84
85
  }
85
86
 
86
87
  @client.call(
@@ -109,6 +110,7 @@ module Appwrite
109
110
 
110
111
  api_headers = {
111
112
  "X-Appwrite-Project": @client.get_config('project'),
113
+ "accept": 'application/json',
112
114
  }
113
115
 
114
116
  @client.call(
@@ -129,7 +131,7 @@ module Appwrite
129
131
  #
130
132
  # @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.
131
133
  # @param [String] name Key name. Max length: 128 chars.
132
- # @param [Array] scopes Key scopes list. Maximum of 100 scopes are allowed.
134
+ # @param [Array] scopes Key scopes list. Maximum of 200 scopes are allowed.
133
135
  # @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.
134
136
  #
135
137
  # @return [Key]
@@ -158,6 +160,7 @@ module Appwrite
158
160
  api_headers = {
159
161
  "X-Appwrite-Project": @client.get_config('project'),
160
162
  "content-type": 'application/json',
163
+ "accept": 'application/json',
161
164
  }
162
165
 
163
166
  @client.call(
@@ -176,7 +179,7 @@ module Appwrite
176
179
  # You can also create a standard API key if you need a longer-lived key
177
180
  # instead.
178
181
  #
179
- # @param [Array] scopes Key scopes list. Maximum of 100 scopes are allowed.
182
+ # @param [Array] scopes Key scopes list. Maximum of 200 scopes are allowed.
180
183
  # @param [Integer] duration Time in seconds before ephemeral key expires. Maximum duration is 3600 seconds.
181
184
  #
182
185
  # @return [EphemeralKey]
@@ -199,6 +202,7 @@ module Appwrite
199
202
  api_headers = {
200
203
  "X-Appwrite-Project": @client.get_config('project'),
201
204
  "content-type": 'application/json',
205
+ "accept": 'application/json',
202
206
  }
203
207
 
204
208
  @client.call(
@@ -229,6 +233,7 @@ module Appwrite
229
233
 
230
234
  api_headers = {
231
235
  "X-Appwrite-Project": @client.get_config('project'),
236
+ "accept": 'application/json',
232
237
  }
233
238
 
234
239
  @client.call(
@@ -246,7 +251,7 @@ module Appwrite
246
251
  #
247
252
  # @param [String] key_id Key ID.
248
253
  # @param [String] name Key name. Max length: 128 chars.
249
- # @param [Array] scopes Key scopes list. Maximum of 100 scopes are allowed.
254
+ # @param [Array] scopes Key scopes list. Maximum of 200 scopes are allowed.
250
255
  # @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.
251
256
  #
252
257
  # @return [Key]
@@ -275,6 +280,7 @@ module Appwrite
275
280
  api_headers = {
276
281
  "X-Appwrite-Project": @client.get_config('project'),
277
282
  "content-type": 'application/json',
283
+ "accept": 'application/json',
278
284
  }
279
285
 
280
286
  @client.call(
@@ -338,6 +344,7 @@ module Appwrite
338
344
  api_headers = {
339
345
  "X-Appwrite-Project": @client.get_config('project'),
340
346
  "content-type": 'application/json',
347
+ "accept": 'application/json',
341
348
  }
342
349
 
343
350
  @client.call(
@@ -367,6 +374,7 @@ module Appwrite
367
374
 
368
375
  api_headers = {
369
376
  "X-Appwrite-Project": @client.get_config('project'),
377
+ "accept": 'application/json',
370
378
  }
371
379
 
372
380
  @client.call(
@@ -405,6 +413,7 @@ module Appwrite
405
413
  api_headers = {
406
414
  "X-Appwrite-Project": @client.get_config('project'),
407
415
  "content-type": 'application/json',
416
+ "accept": 'application/json',
408
417
  }
409
418
 
410
419
  @client.call(
@@ -436,6 +445,7 @@ module Appwrite
436
445
 
437
446
  api_headers = {
438
447
  "X-Appwrite-Project": @client.get_config('project'),
448
+ "accept": 'application/json',
439
449
  }
440
450
 
441
451
  @client.call(
@@ -474,6 +484,7 @@ module Appwrite
474
484
  api_headers = {
475
485
  "X-Appwrite-Project": @client.get_config('project'),
476
486
  "content-type": 'application/json',
487
+ "accept": 'application/json',
477
488
  }
478
489
 
479
490
  @client.call(
@@ -535,6 +546,7 @@ module Appwrite
535
546
 
536
547
  api_headers = {
537
548
  "X-Appwrite-Project": @client.get_config('project'),
549
+ "accept": 'application/json',
538
550
  }
539
551
 
540
552
  @client.call(
@@ -552,14 +564,20 @@ module Appwrite
552
564
  # @param [] enabled Enable or disable the OAuth2 server.
553
565
  # @param [String] authorization_url URL to your application with consent screen.
554
566
  # @param [Array] scopes List of allowed OAuth2 scopes. Maximum of 100 scopes are allowed, each up to 128 characters long.
567
+ # @param [Array] authorization_details_types List of accepted `authorization_details` types. Maximum of 100 types are allowed, each up to 128 characters long.
555
568
  # @param [Integer] access_token_duration Access token duration in seconds for confidential clients (server-side apps that authenticate with a client secret). Leave empty to use default 8 hours.
556
569
  # @param [Integer] refresh_token_duration Refresh token duration in seconds for confidential clients (server-side apps that authenticate with a client secret). Leave empty to use default 1 year.
557
570
  # @param [Integer] public_access_token_duration Access token duration in seconds for public clients (SPAs, mobile, and native apps that cannot keep a client secret). Leave empty to use default 1 hour.
558
571
  # @param [Integer] public_refresh_token_duration Refresh token duration in seconds for public clients (SPAs, mobile, and native apps that cannot keep a client secret). Leave empty to use default 30 days.
559
572
  # @param [] confidential_pkce When enabled, PKCE is required for confidential clients (server-side flows using client_secret). PKCE is always required for public clients regardless of this setting.
573
+ # @param [String] verification_url URL to your application page where users enter the device flow user code. Required to enable the Device Authorization Grant.
574
+ # @param [Integer] user_code_length Number of characters in the device flow user code, excluding the formatting separator. Shorter codes are easier to type but weaker; pair short codes with short expiry. Leave empty to use default 8.
575
+ # @param [String] user_code_format Character set for device flow user codes: `numeric` (digits only — best for numeric keypads and TV remotes), `alphabetic` (letters only), or `alphanumeric` (letters and digits — highest entropy per character). Defaults to `alphanumeric`.
576
+ # @param [Integer] device_code_duration Lifetime in seconds of device flow device codes and user codes. Device codes are intentionally short-lived. Leave empty to use default 600.
577
+ # @param [Array] default_scopes List of OAuth2 scopes used when an authorization request omits the scope parameter. Every default scope must also be allowed by the OAuth2 server. Maximum of 100 scopes are allowed, each up to 128 characters long.
560
578
  #
561
579
  # @return [Project]
562
- def update_o_auth2_server(enabled:, authorization_url:, scopes: nil, access_token_duration: nil, refresh_token_duration: nil, public_access_token_duration: nil, public_refresh_token_duration: nil, confidential_pkce: nil)
580
+ def update_o_auth2_server(enabled:, authorization_url:, scopes: nil, authorization_details_types: nil, access_token_duration: nil, refresh_token_duration: nil, public_access_token_duration: nil, public_refresh_token_duration: nil, confidential_pkce: nil, verification_url: nil, user_code_length: nil, user_code_format: nil, device_code_duration: nil, default_scopes: nil)
563
581
  api_path = '/project/oauth2-server'
564
582
 
565
583
  if enabled.nil?
@@ -574,16 +592,23 @@ module Appwrite
574
592
  enabled: enabled,
575
593
  authorizationUrl: authorization_url,
576
594
  scopes: scopes,
595
+ authorizationDetailsTypes: authorization_details_types,
577
596
  accessTokenDuration: access_token_duration,
578
597
  refreshTokenDuration: refresh_token_duration,
579
598
  publicAccessTokenDuration: public_access_token_duration,
580
599
  publicRefreshTokenDuration: public_refresh_token_duration,
581
600
  confidentialPkce: confidential_pkce,
601
+ verificationUrl: verification_url,
602
+ userCodeLength: user_code_length,
603
+ userCodeFormat: user_code_format,
604
+ deviceCodeDuration: device_code_duration,
605
+ defaultScopes: default_scopes,
582
606
  }
583
607
 
584
608
  api_headers = {
585
609
  "X-Appwrite-Project": @client.get_config('project'),
586
610
  "content-type": 'application/json',
611
+ "accept": 'application/json',
587
612
  }
588
613
 
589
614
  @client.call(
@@ -615,6 +640,7 @@ module Appwrite
615
640
  api_headers = {
616
641
  "X-Appwrite-Project": @client.get_config('project'),
617
642
  "content-type": 'application/json',
643
+ "accept": 'application/json',
618
644
  }
619
645
 
620
646
  @client.call(
@@ -650,6 +676,7 @@ module Appwrite
650
676
  api_headers = {
651
677
  "X-Appwrite-Project": @client.get_config('project'),
652
678
  "content-type": 'application/json',
679
+ "accept": 'application/json',
653
680
  }
654
681
 
655
682
  @client.call(
@@ -662,6 +689,38 @@ module Appwrite
662
689
 
663
690
  end
664
691
 
692
+ # Update the project OAuth2 Appwrite configuration.
693
+ #
694
+ # @param [String] client_id 'Client ID' of Appwrite OAuth2 app. For example: 6a42000000000000b5a0
695
+ # @param [String] client_secret 'Client Secret' of Appwrite OAuth2 app. For example: b86afd000000000000000000000000000000000000000000000000000ced5f93
696
+ # @param [] enabled OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.
697
+ #
698
+ # @return [OAuth2Appwrite]
699
+ def update_o_auth2_appwrite(client_id: nil, client_secret: nil, enabled: nil)
700
+ api_path = '/project/oauth2/appwrite'
701
+
702
+ api_params = {
703
+ clientId: client_id,
704
+ clientSecret: client_secret,
705
+ enabled: enabled,
706
+ }
707
+
708
+ api_headers = {
709
+ "X-Appwrite-Project": @client.get_config('project'),
710
+ "content-type": 'application/json',
711
+ "accept": 'application/json',
712
+ }
713
+
714
+ @client.call(
715
+ method: 'PATCH',
716
+ path: api_path,
717
+ headers: api_headers,
718
+ params: api_params,
719
+ response_type: Models::OAuth2Appwrite
720
+ )
721
+
722
+ end
723
+
665
724
  # Update the project OAuth2 Auth0 configuration.
666
725
  #
667
726
  # @param [String] client_id 'Client ID' of Auth0 OAuth2 app. For example: OaOkIA000000000000000000005KLSYq
@@ -683,6 +742,7 @@ module Appwrite
683
742
  api_headers = {
684
743
  "X-Appwrite-Project": @client.get_config('project'),
685
744
  "content-type": 'application/json',
745
+ "accept": 'application/json',
686
746
  }
687
747
 
688
748
  @client.call(
@@ -716,6 +776,7 @@ module Appwrite
716
776
  api_headers = {
717
777
  "X-Appwrite-Project": @client.get_config('project'),
718
778
  "content-type": 'application/json',
779
+ "accept": 'application/json',
719
780
  }
720
781
 
721
782
  @client.call(
@@ -747,6 +808,7 @@ module Appwrite
747
808
  api_headers = {
748
809
  "X-Appwrite-Project": @client.get_config('project'),
749
810
  "content-type": 'application/json',
811
+ "accept": 'application/json',
750
812
  }
751
813
 
752
814
  @client.call(
@@ -778,6 +840,7 @@ module Appwrite
778
840
  api_headers = {
779
841
  "X-Appwrite-Project": @client.get_config('project'),
780
842
  "content-type": 'application/json',
843
+ "accept": 'application/json',
781
844
  }
782
845
 
783
846
  @client.call(
@@ -809,6 +872,7 @@ module Appwrite
809
872
  api_headers = {
810
873
  "X-Appwrite-Project": @client.get_config('project'),
811
874
  "content-type": 'application/json',
875
+ "accept": 'application/json',
812
876
  }
813
877
 
814
878
  @client.call(
@@ -840,6 +904,7 @@ module Appwrite
840
904
  api_headers = {
841
905
  "X-Appwrite-Project": @client.get_config('project'),
842
906
  "content-type": 'application/json',
907
+ "accept": 'application/json',
843
908
  }
844
909
 
845
910
  @client.call(
@@ -871,6 +936,7 @@ module Appwrite
871
936
  api_headers = {
872
937
  "X-Appwrite-Project": @client.get_config('project'),
873
938
  "content-type": 'application/json',
939
+ "accept": 'application/json',
874
940
  }
875
941
 
876
942
  @client.call(
@@ -902,6 +968,7 @@ module Appwrite
902
968
  api_headers = {
903
969
  "X-Appwrite-Project": @client.get_config('project'),
904
970
  "content-type": 'application/json',
971
+ "accept": 'application/json',
905
972
  }
906
973
 
907
974
  @client.call(
@@ -933,6 +1000,7 @@ module Appwrite
933
1000
  api_headers = {
934
1001
  "X-Appwrite-Project": @client.get_config('project'),
935
1002
  "content-type": 'application/json',
1003
+ "accept": 'application/json',
936
1004
  }
937
1005
 
938
1006
  @client.call(
@@ -964,6 +1032,7 @@ module Appwrite
964
1032
  api_headers = {
965
1033
  "X-Appwrite-Project": @client.get_config('project'),
966
1034
  "content-type": 'application/json',
1035
+ "accept": 'application/json',
967
1036
  }
968
1037
 
969
1038
  @client.call(
@@ -995,6 +1064,7 @@ module Appwrite
995
1064
  api_headers = {
996
1065
  "X-Appwrite-Project": @client.get_config('project'),
997
1066
  "content-type": 'application/json',
1067
+ "accept": 'application/json',
998
1068
  }
999
1069
 
1000
1070
  @client.call(
@@ -1026,6 +1096,7 @@ module Appwrite
1026
1096
  api_headers = {
1027
1097
  "X-Appwrite-Project": @client.get_config('project'),
1028
1098
  "content-type": 'application/json',
1099
+ "accept": 'application/json',
1029
1100
  }
1030
1101
 
1031
1102
  @client.call(
@@ -1057,6 +1128,7 @@ module Appwrite
1057
1128
  api_headers = {
1058
1129
  "X-Appwrite-Project": @client.get_config('project'),
1059
1130
  "content-type": 'application/json',
1131
+ "accept": 'application/json',
1060
1132
  }
1061
1133
 
1062
1134
  @client.call(
@@ -1090,6 +1162,7 @@ module Appwrite
1090
1162
  api_headers = {
1091
1163
  "X-Appwrite-Project": @client.get_config('project'),
1092
1164
  "content-type": 'application/json',
1165
+ "accept": 'application/json',
1093
1166
  }
1094
1167
 
1095
1168
  @client.call(
@@ -1121,6 +1194,7 @@ module Appwrite
1121
1194
  api_headers = {
1122
1195
  "X-Appwrite-Project": @client.get_config('project'),
1123
1196
  "content-type": 'application/json',
1197
+ "accept": 'application/json',
1124
1198
  }
1125
1199
 
1126
1200
  @client.call(
@@ -1154,6 +1228,7 @@ module Appwrite
1154
1228
  api_headers = {
1155
1229
  "X-Appwrite-Project": @client.get_config('project'),
1156
1230
  "content-type": 'application/json',
1231
+ "accept": 'application/json',
1157
1232
  }
1158
1233
 
1159
1234
  @client.call(
@@ -1187,6 +1262,7 @@ module Appwrite
1187
1262
  api_headers = {
1188
1263
  "X-Appwrite-Project": @client.get_config('project'),
1189
1264
  "content-type": 'application/json',
1265
+ "accept": 'application/json',
1190
1266
  }
1191
1267
 
1192
1268
  @client.call(
@@ -1222,6 +1298,7 @@ module Appwrite
1222
1298
  api_headers = {
1223
1299
  "X-Appwrite-Project": @client.get_config('project'),
1224
1300
  "content-type": 'application/json',
1301
+ "accept": 'application/json',
1225
1302
  }
1226
1303
 
1227
1304
  @client.call(
@@ -1253,6 +1330,7 @@ module Appwrite
1253
1330
  api_headers = {
1254
1331
  "X-Appwrite-Project": @client.get_config('project'),
1255
1332
  "content-type": 'application/json',
1333
+ "accept": 'application/json',
1256
1334
  }
1257
1335
 
1258
1336
  @client.call(
@@ -1284,6 +1362,7 @@ module Appwrite
1284
1362
  api_headers = {
1285
1363
  "X-Appwrite-Project": @client.get_config('project'),
1286
1364
  "content-type": 'application/json',
1365
+ "accept": 'application/json',
1287
1366
  }
1288
1367
 
1289
1368
  @client.call(
@@ -1317,6 +1396,7 @@ module Appwrite
1317
1396
  api_headers = {
1318
1397
  "X-Appwrite-Project": @client.get_config('project'),
1319
1398
  "content-type": 'application/json',
1399
+ "accept": 'application/json',
1320
1400
  }
1321
1401
 
1322
1402
  @client.call(
@@ -1348,6 +1428,7 @@ module Appwrite
1348
1428
  api_headers = {
1349
1429
  "X-Appwrite-Project": @client.get_config('project'),
1350
1430
  "content-type": 'application/json',
1431
+ "accept": 'application/json',
1351
1432
  }
1352
1433
 
1353
1434
  @client.call(
@@ -1368,10 +1449,12 @@ module Appwrite
1368
1449
  # @param [String] authorization_url OpenID Connect authorization endpoint URL. Required when wellKnownURL is not provided. For example: https://myoauth.com/oauth2/authorize
1369
1450
  # @param [String] token_url OpenID Connect token endpoint URL. Required when wellKnownURL is not provided. For example: https://myoauth.com/oauth2/token
1370
1451
  # @param [String] user_info_url OpenID Connect user info endpoint URL. Required when wellKnownURL is not provided. For example: https://myoauth.com/oauth2/userinfo
1452
+ # @param [Array] prompt Array of OpenID Connect prompt values controlling the authentication and consent screens. If "none" is included, it must be the only element. "none" means: don't display any authentication or consent screens. "login" means: prompt the user to re-authenticate. "consent" means: prompt the user for consent. "select_account" means: prompt the user to select an account.
1453
+ # @param [Integer] max_age Maximum authentication age in seconds. When set, the user must have authenticated within this many seconds, otherwise they are prompted to re-authenticate.
1371
1454
  # @param [] enabled OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.
1372
1455
  #
1373
1456
  # @return [OAuth2Oidc]
1374
- def update_o_auth2_oidc(client_id: nil, client_secret: nil, well_known_url: nil, authorization_url: nil, token_url: nil, user_info_url: nil, enabled: nil)
1457
+ def update_o_auth2_oidc(client_id: nil, client_secret: nil, well_known_url: nil, authorization_url: nil, token_url: nil, user_info_url: nil, prompt: nil, max_age: nil, enabled: nil)
1375
1458
  api_path = '/project/oauth2/oidc'
1376
1459
 
1377
1460
  api_params = {
@@ -1381,12 +1464,15 @@ module Appwrite
1381
1464
  authorizationURL: authorization_url,
1382
1465
  tokenURL: token_url,
1383
1466
  userInfoURL: user_info_url,
1467
+ prompt: prompt,
1468
+ maxAge: max_age,
1384
1469
  enabled: enabled,
1385
1470
  }
1386
1471
 
1387
1472
  api_headers = {
1388
1473
  "X-Appwrite-Project": @client.get_config('project'),
1389
1474
  "content-type": 'application/json',
1475
+ "accept": 'application/json',
1390
1476
  }
1391
1477
 
1392
1478
  @client.call(
@@ -1422,6 +1508,7 @@ module Appwrite
1422
1508
  api_headers = {
1423
1509
  "X-Appwrite-Project": @client.get_config('project'),
1424
1510
  "content-type": 'application/json',
1511
+ "accept": 'application/json',
1425
1512
  }
1426
1513
 
1427
1514
  @client.call(
@@ -1453,6 +1540,7 @@ module Appwrite
1453
1540
  api_headers = {
1454
1541
  "X-Appwrite-Project": @client.get_config('project'),
1455
1542
  "content-type": 'application/json',
1543
+ "accept": 'application/json',
1456
1544
  }
1457
1545
 
1458
1546
  @client.call(
@@ -1484,6 +1572,7 @@ module Appwrite
1484
1572
  api_headers = {
1485
1573
  "X-Appwrite-Project": @client.get_config('project'),
1486
1574
  "content-type": 'application/json',
1575
+ "accept": 'application/json',
1487
1576
  }
1488
1577
 
1489
1578
  @client.call(
@@ -1515,6 +1604,7 @@ module Appwrite
1515
1604
  api_headers = {
1516
1605
  "X-Appwrite-Project": @client.get_config('project'),
1517
1606
  "content-type": 'application/json',
1607
+ "accept": 'application/json',
1518
1608
  }
1519
1609
 
1520
1610
  @client.call(
@@ -1546,6 +1636,7 @@ module Appwrite
1546
1636
  api_headers = {
1547
1637
  "X-Appwrite-Project": @client.get_config('project'),
1548
1638
  "content-type": 'application/json',
1639
+ "accept": 'application/json',
1549
1640
  }
1550
1641
 
1551
1642
  @client.call(
@@ -1577,6 +1668,7 @@ module Appwrite
1577
1668
  api_headers = {
1578
1669
  "X-Appwrite-Project": @client.get_config('project'),
1579
1670
  "content-type": 'application/json',
1671
+ "accept": 'application/json',
1580
1672
  }
1581
1673
 
1582
1674
  @client.call(
@@ -1608,6 +1700,7 @@ module Appwrite
1608
1700
  api_headers = {
1609
1701
  "X-Appwrite-Project": @client.get_config('project'),
1610
1702
  "content-type": 'application/json',
1703
+ "accept": 'application/json',
1611
1704
  }
1612
1705
 
1613
1706
  @client.call(
@@ -1639,6 +1732,7 @@ module Appwrite
1639
1732
  api_headers = {
1640
1733
  "X-Appwrite-Project": @client.get_config('project'),
1641
1734
  "content-type": 'application/json',
1735
+ "accept": 'application/json',
1642
1736
  }
1643
1737
 
1644
1738
  @client.call(
@@ -1670,6 +1764,7 @@ module Appwrite
1670
1764
  api_headers = {
1671
1765
  "X-Appwrite-Project": @client.get_config('project'),
1672
1766
  "content-type": 'application/json',
1767
+ "accept": 'application/json',
1673
1768
  }
1674
1769
 
1675
1770
  @client.call(
@@ -1701,6 +1796,7 @@ module Appwrite
1701
1796
  api_headers = {
1702
1797
  "X-Appwrite-Project": @client.get_config('project'),
1703
1798
  "content-type": 'application/json',
1799
+ "accept": 'application/json',
1704
1800
  }
1705
1801
 
1706
1802
  @client.call(
@@ -1732,6 +1828,7 @@ module Appwrite
1732
1828
  api_headers = {
1733
1829
  "X-Appwrite-Project": @client.get_config('project'),
1734
1830
  "content-type": 'application/json',
1831
+ "accept": 'application/json',
1735
1832
  }
1736
1833
 
1737
1834
  @client.call(
@@ -1763,6 +1860,7 @@ module Appwrite
1763
1860
  api_headers = {
1764
1861
  "X-Appwrite-Project": @client.get_config('project'),
1765
1862
  "content-type": 'application/json',
1863
+ "accept": 'application/json',
1766
1864
  }
1767
1865
 
1768
1866
  @client.call(
@@ -1794,6 +1892,7 @@ module Appwrite
1794
1892
  api_headers = {
1795
1893
  "X-Appwrite-Project": @client.get_config('project'),
1796
1894
  "content-type": 'application/json',
1895
+ "accept": 'application/json',
1797
1896
  }
1798
1897
 
1799
1898
  @client.call(
@@ -1825,6 +1924,7 @@ module Appwrite
1825
1924
  api_headers = {
1826
1925
  "X-Appwrite-Project": @client.get_config('project'),
1827
1926
  "content-type": 'application/json',
1927
+ "accept": 'application/json',
1828
1928
  }
1829
1929
 
1830
1930
  @client.call(
@@ -1856,6 +1956,7 @@ module Appwrite
1856
1956
  api_headers = {
1857
1957
  "X-Appwrite-Project": @client.get_config('project'),
1858
1958
  "content-type": 'application/json',
1959
+ "accept": 'application/json',
1859
1960
  }
1860
1961
 
1861
1962
  @client.call(
@@ -1887,6 +1988,7 @@ module Appwrite
1887
1988
  api_headers = {
1888
1989
  "X-Appwrite-Project": @client.get_config('project'),
1889
1990
  "content-type": 'application/json',
1991
+ "accept": 'application/json',
1890
1992
  }
1891
1993
 
1892
1994
  @client.call(
@@ -1918,6 +2020,7 @@ module Appwrite
1918
2020
  api_headers = {
1919
2021
  "X-Appwrite-Project": @client.get_config('project'),
1920
2022
  "content-type": 'application/json',
2023
+ "accept": 'application/json',
1921
2024
  }
1922
2025
 
1923
2026
  @client.call(
@@ -1949,6 +2052,7 @@ module Appwrite
1949
2052
 
1950
2053
  api_headers = {
1951
2054
  "X-Appwrite-Project": @client.get_config('project'),
2055
+ "accept": 'application/json',
1952
2056
  }
1953
2057
 
1954
2058
  response = @client.call(
@@ -2183,6 +2287,7 @@ module Appwrite
2183
2287
 
2184
2288
  api_headers = {
2185
2289
  "X-Appwrite-Project": @client.get_config('project'),
2290
+ "accept": 'application/json',
2186
2291
  }
2187
2292
 
2188
2293
  @client.call(
@@ -2228,6 +2333,7 @@ module Appwrite
2228
2333
  api_headers = {
2229
2334
  "X-Appwrite-Project": @client.get_config('project'),
2230
2335
  "content-type": 'application/json',
2336
+ "accept": 'application/json',
2231
2337
  }
2232
2338
 
2233
2339
  @client.call(
@@ -2272,6 +2378,7 @@ module Appwrite
2272
2378
  api_headers = {
2273
2379
  "X-Appwrite-Project": @client.get_config('project'),
2274
2380
  "content-type": 'application/json',
2381
+ "accept": 'application/json',
2275
2382
  }
2276
2383
 
2277
2384
  @client.call(
@@ -2317,6 +2424,7 @@ module Appwrite
2317
2424
  api_headers = {
2318
2425
  "X-Appwrite-Project": @client.get_config('project'),
2319
2426
  "content-type": 'application/json',
2427
+ "accept": 'application/json',
2320
2428
  }
2321
2429
 
2322
2430
  @client.call(
@@ -2361,6 +2469,7 @@ module Appwrite
2361
2469
  api_headers = {
2362
2470
  "X-Appwrite-Project": @client.get_config('project'),
2363
2471
  "content-type": 'application/json',
2472
+ "accept": 'application/json',
2364
2473
  }
2365
2474
 
2366
2475
  @client.call(
@@ -2406,6 +2515,7 @@ module Appwrite
2406
2515
  api_headers = {
2407
2516
  "X-Appwrite-Project": @client.get_config('project'),
2408
2517
  "content-type": 'application/json',
2518
+ "accept": 'application/json',
2409
2519
  }
2410
2520
 
2411
2521
  @client.call(
@@ -2450,6 +2560,7 @@ module Appwrite
2450
2560
  api_headers = {
2451
2561
  "X-Appwrite-Project": @client.get_config('project'),
2452
2562
  "content-type": 'application/json',
2563
+ "accept": 'application/json',
2453
2564
  }
2454
2565
 
2455
2566
  @client.call(
@@ -2495,6 +2606,7 @@ module Appwrite
2495
2606
  api_headers = {
2496
2607
  "X-Appwrite-Project": @client.get_config('project'),
2497
2608
  "content-type": 'application/json',
2609
+ "accept": 'application/json',
2498
2610
  }
2499
2611
 
2500
2612
  @client.call(
@@ -2539,6 +2651,7 @@ module Appwrite
2539
2651
  api_headers = {
2540
2652
  "X-Appwrite-Project": @client.get_config('project'),
2541
2653
  "content-type": 'application/json',
2654
+ "accept": 'application/json',
2542
2655
  }
2543
2656
 
2544
2657
  @client.call(
@@ -2584,6 +2697,7 @@ module Appwrite
2584
2697
  api_headers = {
2585
2698
  "X-Appwrite-Project": @client.get_config('project'),
2586
2699
  "content-type": 'application/json',
2700
+ "accept": 'application/json',
2587
2701
  }
2588
2702
 
2589
2703
  @client.call(
@@ -2628,6 +2742,7 @@ module Appwrite
2628
2742
  api_headers = {
2629
2743
  "X-Appwrite-Project": @client.get_config('project'),
2630
2744
  "content-type": 'application/json',
2745
+ "accept": 'application/json',
2631
2746
  }
2632
2747
 
2633
2748
  @client.call(
@@ -2659,6 +2774,7 @@ module Appwrite
2659
2774
 
2660
2775
  api_headers = {
2661
2776
  "X-Appwrite-Project": @client.get_config('project'),
2777
+ "accept": 'application/json',
2662
2778
  }
2663
2779
 
2664
2780
  response = @client.call(
@@ -2748,6 +2864,7 @@ module Appwrite
2748
2864
 
2749
2865
  api_headers = {
2750
2866
  "X-Appwrite-Project": @client.get_config('project'),
2867
+ "accept": 'application/json',
2751
2868
  }
2752
2869
 
2753
2870
  @client.call(
@@ -2780,6 +2897,40 @@ module Appwrite
2780
2897
  api_headers = {
2781
2898
  "X-Appwrite-Project": @client.get_config('project'),
2782
2899
  "content-type": 'application/json',
2900
+ "accept": 'application/json',
2901
+ }
2902
+
2903
+ @client.call(
2904
+ method: 'PATCH',
2905
+ path: api_path,
2906
+ headers: api_headers,
2907
+ params: api_params,
2908
+ response_type: Models::Project
2909
+ )
2910
+
2911
+ end
2912
+
2913
+ # Configures if only corporate email addresses (non-free and non-disposable
2914
+ # domains) are allowed during new user sign-ups and email updates.
2915
+ #
2916
+ # @param [] enabled Set whether or not to restrict sign-ups and email updates to corporate email addresses only.
2917
+ #
2918
+ # @return [Project]
2919
+ def update_deny_corporate_email_policy(enabled:)
2920
+ api_path = '/project/policies/deny-corporate-email'
2921
+
2922
+ if enabled.nil?
2923
+ raise Appwrite::Exception.new('Missing required parameter: "enabled"')
2924
+ end
2925
+
2926
+ api_params = {
2927
+ enabled: enabled,
2928
+ }
2929
+
2930
+ api_headers = {
2931
+ "X-Appwrite-Project": @client.get_config('project'),
2932
+ "content-type": 'application/json',
2933
+ "accept": 'application/json',
2783
2934
  }
2784
2935
 
2785
2936
  @client.call(
@@ -2812,6 +2963,7 @@ module Appwrite
2812
2963
  api_headers = {
2813
2964
  "X-Appwrite-Project": @client.get_config('project'),
2814
2965
  "content-type": 'application/json',
2966
+ "accept": 'application/json',
2815
2967
  }
2816
2968
 
2817
2969
  @client.call(
@@ -2844,6 +2996,7 @@ module Appwrite
2844
2996
  api_headers = {
2845
2997
  "X-Appwrite-Project": @client.get_config('project'),
2846
2998
  "content-type": 'application/json',
2999
+ "accept": 'application/json',
2847
3000
  }
2848
3001
 
2849
3002
  @client.call(
@@ -2865,9 +3018,10 @@ module Appwrite
2865
3018
  # @param [] user_phone Set to true if you want make user phone number visible to all team members, or false to hide it.
2866
3019
  # @param [] user_name Set to true if you want make user name visible to all team members, or false to hide it.
2867
3020
  # @param [] user_mfa Set to true if you want make user MFA status visible to all team members, or false to hide it.
3021
+ # @param [] user_accessed_at Set to true if you want make user last access time visible to all team members, or false to hide it.
2868
3022
  #
2869
3023
  # @return [Project]
2870
- def update_membership_privacy_policy(user_id: nil, user_email: nil, user_phone: nil, user_name: nil, user_mfa: nil)
3024
+ def update_membership_privacy_policy(user_id: nil, user_email: nil, user_phone: nil, user_name: nil, user_mfa: nil, user_accessed_at: nil)
2871
3025
  api_path = '/project/policies/membership-privacy'
2872
3026
 
2873
3027
  api_params = {
@@ -2876,11 +3030,13 @@ module Appwrite
2876
3030
  userPhone: user_phone,
2877
3031
  userName: user_name,
2878
3032
  userMFA: user_mfa,
3033
+ userAccessedAt: user_accessed_at,
2879
3034
  }
2880
3035
 
2881
3036
  api_headers = {
2882
3037
  "X-Appwrite-Project": @client.get_config('project'),
2883
3038
  "content-type": 'application/json',
3039
+ "accept": 'application/json',
2884
3040
  }
2885
3041
 
2886
3042
  @client.call(
@@ -2914,6 +3070,7 @@ module Appwrite
2914
3070
  api_headers = {
2915
3071
  "X-Appwrite-Project": @client.get_config('project'),
2916
3072
  "content-type": 'application/json',
3073
+ "accept": 'application/json',
2917
3074
  }
2918
3075
 
2919
3076
  @client.call(
@@ -2953,6 +3110,7 @@ module Appwrite
2953
3110
  api_headers = {
2954
3111
  "X-Appwrite-Project": @client.get_config('project'),
2955
3112
  "content-type": 'application/json',
3113
+ "accept": 'application/json',
2956
3114
  }
2957
3115
 
2958
3116
  @client.call(
@@ -2987,6 +3145,7 @@ module Appwrite
2987
3145
  api_headers = {
2988
3146
  "X-Appwrite-Project": @client.get_config('project'),
2989
3147
  "content-type": 'application/json',
3148
+ "accept": 'application/json',
2990
3149
  }
2991
3150
 
2992
3151
  @client.call(
@@ -3022,6 +3181,7 @@ module Appwrite
3022
3181
  api_headers = {
3023
3182
  "X-Appwrite-Project": @client.get_config('project'),
3024
3183
  "content-type": 'application/json',
3184
+ "accept": 'application/json',
3025
3185
  }
3026
3186
 
3027
3187
  @client.call(
@@ -3057,6 +3217,7 @@ module Appwrite
3057
3217
  api_headers = {
3058
3218
  "X-Appwrite-Project": @client.get_config('project'),
3059
3219
  "content-type": 'application/json',
3220
+ "accept": 'application/json',
3060
3221
  }
3061
3222
 
3062
3223
  @client.call(
@@ -3089,6 +3250,7 @@ module Appwrite
3089
3250
  api_headers = {
3090
3251
  "X-Appwrite-Project": @client.get_config('project'),
3091
3252
  "content-type": 'application/json',
3253
+ "accept": 'application/json',
3092
3254
  }
3093
3255
 
3094
3256
  @client.call(
@@ -3122,6 +3284,7 @@ module Appwrite
3122
3284
  api_headers = {
3123
3285
  "X-Appwrite-Project": @client.get_config('project'),
3124
3286
  "content-type": 'application/json',
3287
+ "accept": 'application/json',
3125
3288
  }
3126
3289
 
3127
3290
  @client.call(
@@ -3154,6 +3317,7 @@ module Appwrite
3154
3317
  api_headers = {
3155
3318
  "X-Appwrite-Project": @client.get_config('project'),
3156
3319
  "content-type": 'application/json',
3320
+ "accept": 'application/json',
3157
3321
  }
3158
3322
 
3159
3323
  @client.call(
@@ -3187,6 +3351,7 @@ module Appwrite
3187
3351
  api_headers = {
3188
3352
  "X-Appwrite-Project": @client.get_config('project'),
3189
3353
  "content-type": 'application/json',
3354
+ "accept": 'application/json',
3190
3355
  }
3191
3356
 
3192
3357
  @client.call(
@@ -3202,9 +3367,9 @@ module Appwrite
3202
3367
  # Get a policy by its unique ID. This endpoint returns the current
3203
3368
  # configuration for the requested project policy.
3204
3369
  #
3205
- # @param [ProjectPolicyId] policy_id Policy ID. Can be one of: password-dictionary, password-history, password-strength, password-personal-data, session-alert, session-duration, session-invalidation, session-limit, user-limit, membership-privacy, deny-aliased-email, deny-disposable-email, deny-free-email.
3370
+ # @param [ProjectPolicyId] policy_id Policy ID. Can be one of: password-dictionary, password-history, password-strength, password-personal-data, session-alert, session-duration, session-invalidation, session-limit, user-limit, membership-privacy, deny-aliased-email, deny-disposable-email, deny-free-email, deny-corporate-email.
3206
3371
  #
3207
- # @return [PolicyPasswordDictionary, PolicyPasswordHistory, PolicyPasswordStrength, PolicyPasswordPersonalData, PolicySessionAlert, PolicySessionDuration, PolicySessionInvalidation, PolicySessionLimit, PolicyUserLimit, PolicyMembershipPrivacy, PolicyDenyAliasedEmail, PolicyDenyDisposableEmail, PolicyDenyFreeEmail]
3372
+ # @return [PolicyPasswordDictionary, PolicyPasswordHistory, PolicyPasswordStrength, PolicyPasswordPersonalData, PolicySessionAlert, PolicySessionDuration, PolicySessionInvalidation, PolicySessionLimit, PolicyUserLimit, PolicyMembershipPrivacy, PolicyDenyAliasedEmail, PolicyDenyDisposableEmail, PolicyDenyFreeEmail, PolicyDenyCorporateEmail]
3208
3373
  def get_policy(policy_id:)
3209
3374
  api_path = '/project/policies/{policyId}'
3210
3375
  .gsub('{policyId}', policy_id)
@@ -3218,6 +3383,7 @@ module Appwrite
3218
3383
 
3219
3384
  api_headers = {
3220
3385
  "X-Appwrite-Project": @client.get_config('project'),
3386
+ "accept": 'application/json',
3221
3387
  }
3222
3388
 
3223
3389
  response = @client.call(
@@ -3296,6 +3462,11 @@ module Appwrite
3296
3462
  return Models::PolicyDenyFreeEmail.from(map: response)
3297
3463
  end
3298
3464
 
3465
+ if response['$id'] == 'deny-corporate-email'
3466
+
3467
+ return Models::PolicyDenyCorporateEmail.from(map: response)
3468
+ end
3469
+
3299
3470
  raise Exception, "Unable to match response to any expected response model"
3300
3471
 
3301
3472
  end
@@ -3326,6 +3497,7 @@ module Appwrite
3326
3497
  api_headers = {
3327
3498
  "X-Appwrite-Project": @client.get_config('project'),
3328
3499
  "content-type": 'application/json',
3500
+ "accept": 'application/json',
3329
3501
  }
3330
3502
 
3331
3503
  @client.call(
@@ -3341,7 +3513,7 @@ module Appwrite
3341
3513
  # Update properties of a specific service. Use this endpoint to enable or
3342
3514
  # disable a service in your project.
3343
3515
  #
3344
- # @param [ProjectServiceId] service_id Service name. Can be one of: account, avatars, databases, tablesdb, locale, health, project, storage, teams, users, vcs, sites, functions, proxy, graphql, migrations, messaging, advisor
3516
+ # @param [ProjectServiceId] service_id Service name. Can be one of: account, avatars, databases, tablesdb, locale, health, project, storage, teams, users, vcs, sites, functions, proxy, graphql, migrations, messaging, advisor, oauth2
3345
3517
  # @param [] enabled Service status.
3346
3518
  #
3347
3519
  # @return [Project]
@@ -3364,6 +3536,7 @@ module Appwrite
3364
3536
  api_headers = {
3365
3537
  "X-Appwrite-Project": @client.get_config('project'),
3366
3538
  "content-type": 'application/json',
3539
+ "accept": 'application/json',
3367
3540
  }
3368
3541
 
3369
3542
  @client.call(
@@ -3411,6 +3584,7 @@ module Appwrite
3411
3584
  api_headers = {
3412
3585
  "X-Appwrite-Project": @client.get_config('project'),
3413
3586
  "content-type": 'application/json',
3587
+ "accept": 'application/json',
3414
3588
  }
3415
3589
 
3416
3590
  @client.call(
@@ -3471,6 +3645,7 @@ module Appwrite
3471
3645
 
3472
3646
  api_headers = {
3473
3647
  "X-Appwrite-Project": @client.get_config('project'),
3648
+ "accept": 'application/json',
3474
3649
  }
3475
3650
 
3476
3651
  @client.call(
@@ -3517,6 +3692,7 @@ module Appwrite
3517
3692
  api_headers = {
3518
3693
  "X-Appwrite-Project": @client.get_config('project'),
3519
3694
  "content-type": 'application/json',
3695
+ "accept": 'application/json',
3520
3696
  }
3521
3697
 
3522
3698
  @client.call(
@@ -3551,6 +3727,7 @@ module Appwrite
3551
3727
 
3552
3728
  api_headers = {
3553
3729
  "X-Appwrite-Project": @client.get_config('project'),
3730
+ "accept": 'application/json',
3554
3731
  }
3555
3732
 
3556
3733
  @client.call(
@@ -3579,6 +3756,7 @@ module Appwrite
3579
3756
 
3580
3757
  api_headers = {
3581
3758
  "X-Appwrite-Project": @client.get_config('project'),
3759
+ "accept": 'application/json',
3582
3760
  }
3583
3761
 
3584
3762
  @client.call(
@@ -3625,6 +3803,7 @@ module Appwrite
3625
3803
  api_headers = {
3626
3804
  "X-Appwrite-Project": @client.get_config('project'),
3627
3805
  "content-type": 'application/json',
3806
+ "accept": 'application/json',
3628
3807
  }
3629
3808
 
3630
3809
  @client.call(
@@ -3655,6 +3834,7 @@ module Appwrite
3655
3834
 
3656
3835
  api_headers = {
3657
3836
  "X-Appwrite-Project": @client.get_config('project'),
3837
+ "accept": 'application/json',
3658
3838
  }
3659
3839
 
3660
3840
  @client.call(
@@ -3692,6 +3872,7 @@ module Appwrite
3692
3872
  api_headers = {
3693
3873
  "X-Appwrite-Project": @client.get_config('project'),
3694
3874
  "content-type": 'application/json',
3875
+ "accept": 'application/json',
3695
3876
  }
3696
3877
 
3697
3878
  @client.call(