appwrite 23.1.0 → 24.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 (43) hide show
  1. checksums.yaml +4 -4
  2. data/lib/appwrite/client.rb +2 -2
  3. data/lib/appwrite/enums/build_runtime.rb +3 -0
  4. data/lib/appwrite/enums/o_auth2_google_prompt.rb +9 -0
  5. data/lib/appwrite/enums/o_auth_provider.rb +0 -2
  6. data/lib/appwrite/enums/{auth_method.rb → project_auth_method_id.rb} +1 -1
  7. data/lib/appwrite/enums/{email_template_type.rb → project_email_template_id.rb} +1 -1
  8. data/lib/appwrite/enums/{email_template_locale.rb → project_email_template_locale.rb} +1 -1
  9. data/lib/appwrite/enums/project_key_scopes.rb +100 -0
  10. data/lib/appwrite/enums/project_o_auth2_google_prompt.rb +9 -0
  11. data/lib/appwrite/enums/project_o_auth_provider_id.rb +51 -0
  12. data/lib/appwrite/enums/{project_policy.rb → project_policy_id.rb} +1 -1
  13. data/lib/appwrite/enums/{protocol_id.rb → project_protocol_id.rb} +1 -1
  14. data/lib/appwrite/enums/{service_id.rb → project_service_id.rb} +2 -1
  15. data/lib/appwrite/enums/{secure.rb → project_smtp_secure.rb} +1 -1
  16. data/lib/appwrite/enums/runtime.rb +3 -0
  17. data/lib/appwrite/enums/scopes.rb +7 -0
  18. data/lib/appwrite/models/billing_limits.rb +8 -8
  19. data/lib/appwrite/models/database.rb +2 -2
  20. data/lib/appwrite/models/file.rb +5 -0
  21. data/lib/appwrite/models/insight.rb +107 -0
  22. data/lib/appwrite/models/insight_cta.rb +42 -0
  23. data/lib/appwrite/models/insight_list.rb +32 -0
  24. data/lib/appwrite/models/o_auth2_google.rb +8 -3
  25. data/lib/appwrite/models/presence.rb +71 -0
  26. data/lib/appwrite/models/presence_list.rb +36 -0
  27. data/lib/appwrite/models/project.rb +16 -286
  28. data/lib/appwrite/models/project_auth_method.rb +53 -0
  29. data/lib/appwrite/models/project_protocol.rb +49 -0
  30. data/lib/appwrite/models/project_service.rb +64 -0
  31. data/lib/appwrite/models/report.rb +82 -0
  32. data/lib/appwrite/models/report_list.rb +32 -0
  33. data/lib/appwrite/models/usage_event.rb +72 -0
  34. data/lib/appwrite/models/usage_event_list.rb +32 -0
  35. data/lib/appwrite/models/usage_gauge.rb +37 -0
  36. data/lib/appwrite/models/usage_gauge_list.rb +32 -0
  37. data/lib/appwrite/services/advisor.rb +173 -0
  38. data/lib/appwrite/services/presences.rb +199 -0
  39. data/lib/appwrite/services/project.rb +170 -52
  40. data/lib/appwrite/services/usage.rb +86 -0
  41. data/lib/appwrite.rb +28 -8
  42. metadata +30 -10
  43. data/lib/appwrite/models/auth_provider.rb +0 -47
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dd02865d4592c504a324c79a3ccea59c0ba3313fe92900258c345a04111e42be
4
- data.tar.gz: c2e32abf40d1d34cbddbfeb2b4d18cafae12078099415b4fb3187ab446ba104e
3
+ metadata.gz: 117e69f27971b35ba99f0ccc63cfb9a3494955eef4e214048b38aa4ba57e1b80
4
+ data.tar.gz: d0e41de1a5f8550c33b3db61262a9e4f7b4facfafdfccc63f1e2a9d9947b045e
5
5
  SHA512:
6
- metadata.gz: 43bc24286c2b16dc259a75ad951582904b362f5b82f78ad4dceaf5f886012dec71dd3f598637bd30dd4be279ada8db43ad9ab0a32731c95c7b9ead639490d099
7
- data.tar.gz: 9ca861d212fcdf5471ef71026337e447dd33025111e0693bb0b48b1e17b71a06bc78fd670b4d3fe91fac6d339975a20c289fec4f2c37515c3f23e6359fe8534d
6
+ metadata.gz: 5ef18be9f1d2867aac51d1bd83955e5da5e9cf6f92d6d42759d1e7f45c1e95f4e66606e70e1e965e7092f3274923dd04f9cf041a51eaf9a6b7b0df085bfa31d7
7
+ data.tar.gz: 7afc04eac74397f0381624d0a3ddce3da33ff80468414856b6ec9e35028437ccee66bfc71f88af12c7f8242def21f63e783053112029271b4e90248a014b74b1
@@ -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.1.0',
19
- 'X-Appwrite-Response-Format' => '1.9.4'
18
+ 'x-sdk-version'=> '24.1.0',
19
+ 'X-Appwrite-Response-Format' => '1.9.5'
20
20
  }
21
21
  @endpoint = 'https://cloud.appwrite.io/v1'
22
22
  end
@@ -32,6 +32,9 @@ module Appwrite
32
32
  PYTHON_ML_3_11 = 'python-ml-3.11'
33
33
  PYTHON_ML_3_12 = 'python-ml-3.12'
34
34
  PYTHON_ML_3_13 = 'python-ml-3.13'
35
+ DENO_1_21 = 'deno-1.21'
36
+ DENO_1_24 = 'deno-1.24'
37
+ DENO_1_35 = 'deno-1.35'
35
38
  DENO_1_40 = 'deno-1.40'
36
39
  DENO_1_46 = 'deno-1.46'
37
40
  DENO_2_0 = 'deno-2.0'
@@ -0,0 +1,9 @@
1
+ module Appwrite
2
+ module Enums
3
+ module OAuth2GooglePrompt
4
+ NONE = 'none'
5
+ CONSENT = 'consent'
6
+ SELECT_ACCOUNT = 'select_account'
7
+ end
8
+ end
9
+ end
@@ -44,8 +44,6 @@ module Appwrite
44
44
  YANDEX = 'yandex'
45
45
  ZOHO = 'zoho'
46
46
  ZOOM = 'zoom'
47
- GITHUBIMAGINE = 'githubImagine'
48
- GOOGLEIMAGINE = 'googleImagine'
49
47
  end
50
48
  end
51
49
  end
@@ -1,6 +1,6 @@
1
1
  module Appwrite
2
2
  module Enums
3
- module AuthMethod
3
+ module ProjectAuthMethodId
4
4
  EMAIL_PASSWORD = 'email-password'
5
5
  MAGIC_URL = 'magic-url'
6
6
  EMAIL_OTP = 'email-otp'
@@ -1,6 +1,6 @@
1
1
  module Appwrite
2
2
  module Enums
3
- module EmailTemplateType
3
+ module ProjectEmailTemplateId
4
4
  VERIFICATION = 'verification'
5
5
  MAGICSESSION = 'magicSession'
6
6
  RECOVERY = 'recovery'
@@ -1,6 +1,6 @@
1
1
  module Appwrite
2
2
  module Enums
3
- module EmailTemplateLocale
3
+ module ProjectEmailTemplateLocale
4
4
  AF = 'af'
5
5
  AR_AE = 'ar-ae'
6
6
  AR_BH = 'ar-bh'
@@ -0,0 +1,100 @@
1
+ module Appwrite
2
+ module Enums
3
+ module ProjectKeyScopes
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'
20
+ USERS_READ = 'users.read'
21
+ USERS_WRITE = 'users.write'
22
+ SESSIONS_READ = 'sessions.read'
23
+ SESSIONS_WRITE = 'sessions.write'
24
+ TEAMS_READ = 'teams.read'
25
+ TEAMS_WRITE = 'teams.write'
26
+ DATABASES_READ = 'databases.read'
27
+ DATABASES_WRITE = 'databases.write'
28
+ TABLES_READ = 'tables.read'
29
+ TABLES_WRITE = 'tables.write'
30
+ COLUMNS_READ = 'columns.read'
31
+ COLUMNS_WRITE = 'columns.write'
32
+ INDEXES_READ = 'indexes.read'
33
+ INDEXES_WRITE = 'indexes.write'
34
+ ROWS_READ = 'rows.read'
35
+ ROWS_WRITE = 'rows.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'
42
+ BUCKETS_READ = 'buckets.read'
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'
48
+ FUNCTIONS_READ = 'functions.read'
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'
54
+ SITES_READ = 'sites.read'
55
+ SITES_WRITE = 'sites.write'
56
+ LOG_READ = 'log.read'
57
+ LOG_WRITE = 'log.write'
58
+ PROVIDERS_READ = 'providers.read'
59
+ PROVIDERS_WRITE = 'providers.write'
60
+ TOPICS_READ = 'topics.read'
61
+ TOPICS_WRITE = 'topics.write'
62
+ SUBSCRIBERS_READ = 'subscribers.read'
63
+ SUBSCRIBERS_WRITE = 'subscribers.write'
64
+ TARGETS_READ = 'targets.read'
65
+ TARGETS_WRITE = 'targets.write'
66
+ MESSAGES_READ = 'messages.read'
67
+ MESSAGES_WRITE = 'messages.write'
68
+ RULES_READ = 'rules.read'
69
+ RULES_WRITE = 'rules.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'
76
+ MIGRATIONS_READ = 'migrations.read'
77
+ MIGRATIONS_WRITE = 'migrations.write'
78
+ SCHEDULES_READ = 'schedules.read'
79
+ SCHEDULES_WRITE = 'schedules.write'
80
+ VCS_READ = 'vcs.read'
81
+ VCS_WRITE = 'vcs.write'
82
+ INSIGHTS_READ = 'insights.read'
83
+ INSIGHTS_WRITE = 'insights.write'
84
+ REPORTS_READ = 'reports.read'
85
+ REPORTS_WRITE = 'reports.write'
86
+ PRESENCES_READ = 'presences.read'
87
+ PRESENCES_WRITE = 'presences.write'
88
+ BACKUPS_POLICIES_READ = 'backups.policies.read'
89
+ BACKUPS_POLICIES_WRITE = 'backups.policies.write'
90
+ ARCHIVES_READ = 'archives.read'
91
+ ARCHIVES_WRITE = 'archives.write'
92
+ RESTORATIONS_READ = 'restorations.read'
93
+ RESTORATIONS_WRITE = 'restorations.write'
94
+ DOMAINS_READ = 'domains.read'
95
+ DOMAINS_WRITE = 'domains.write'
96
+ EVENTS_READ = 'events.read'
97
+ USAGE_READ = 'usage.read'
98
+ end
99
+ end
100
+ end
@@ -0,0 +1,9 @@
1
+ module Appwrite
2
+ module Enums
3
+ module ProjectOAuth2GooglePrompt
4
+ NONE = 'none'
5
+ CONSENT = 'consent'
6
+ SELECT_ACCOUNT = 'select_account'
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,51 @@
1
+ module Appwrite
2
+ module Enums
3
+ module ProjectOAuthProviderId
4
+ AMAZON = 'amazon'
5
+ APPLE = 'apple'
6
+ AUTH0 = 'auth0'
7
+ AUTHENTIK = 'authentik'
8
+ AUTODESK = 'autodesk'
9
+ BITBUCKET = 'bitbucket'
10
+ BITLY = 'bitly'
11
+ BOX = 'box'
12
+ DAILYMOTION = 'dailymotion'
13
+ DISCORD = 'discord'
14
+ DISQUS = 'disqus'
15
+ DROPBOX = 'dropbox'
16
+ ETSY = 'etsy'
17
+ FACEBOOK = 'facebook'
18
+ FIGMA = 'figma'
19
+ FUSIONAUTH = 'fusionauth'
20
+ GITHUB = 'github'
21
+ GITLAB = 'gitlab'
22
+ GOOGLE = 'google'
23
+ KEYCLOAK = 'keycloak'
24
+ KICK = 'kick'
25
+ LINKEDIN = 'linkedin'
26
+ MICROSOFT = 'microsoft'
27
+ NOTION = 'notion'
28
+ OIDC = 'oidc'
29
+ OKTA = 'okta'
30
+ PAYPAL = 'paypal'
31
+ PAYPALSANDBOX = 'paypalSandbox'
32
+ PODIO = 'podio'
33
+ SALESFORCE = 'salesforce'
34
+ SLACK = 'slack'
35
+ SPOTIFY = 'spotify'
36
+ STRIPE = 'stripe'
37
+ TRADESHIFT = 'tradeshift'
38
+ TRADESHIFTBOX = 'tradeshiftBox'
39
+ TWITCH = 'twitch'
40
+ WORDPRESS = 'wordpress'
41
+ X = 'x'
42
+ YAHOO = 'yahoo'
43
+ YAMMER = 'yammer'
44
+ YANDEX = 'yandex'
45
+ ZOHO = 'zoho'
46
+ ZOOM = 'zoom'
47
+ GITHUBIMAGINE = 'githubImagine'
48
+ GOOGLEIMAGINE = 'googleImagine'
49
+ end
50
+ end
51
+ end
@@ -1,6 +1,6 @@
1
1
  module Appwrite
2
2
  module Enums
3
- module ProjectPolicy
3
+ module ProjectPolicyId
4
4
  PASSWORD_DICTIONARY = 'password-dictionary'
5
5
  PASSWORD_HISTORY = 'password-history'
6
6
  PASSWORD_PERSONAL_DATA = 'password-personal-data'
@@ -1,6 +1,6 @@
1
1
  module Appwrite
2
2
  module Enums
3
- module ProtocolId
3
+ module ProjectProtocolId
4
4
  REST = 'rest'
5
5
  GRAPHQL = 'graphql'
6
6
  WEBSOCKET = 'websocket'
@@ -1,6 +1,6 @@
1
1
  module Appwrite
2
2
  module Enums
3
- module ServiceId
3
+ module ProjectServiceId
4
4
  ACCOUNT = 'account'
5
5
  AVATARS = 'avatars'
6
6
  DATABASES = 'databases'
@@ -18,6 +18,7 @@ module Appwrite
18
18
  GRAPHQL = 'graphql'
19
19
  MIGRATIONS = 'migrations'
20
20
  MESSAGING = 'messaging'
21
+ ADVISOR = 'advisor'
21
22
  end
22
23
  end
23
24
  end
@@ -1,6 +1,6 @@
1
1
  module Appwrite
2
2
  module Enums
3
- module Secure
3
+ module ProjectSMTPSecure
4
4
  TLS = 'tls'
5
5
  SSL = 'ssl'
6
6
  end
@@ -32,6 +32,9 @@ module Appwrite
32
32
  PYTHON_ML_3_11 = 'python-ml-3.11'
33
33
  PYTHON_ML_3_12 = 'python-ml-3.12'
34
34
  PYTHON_ML_3_13 = 'python-ml-3.13'
35
+ DENO_1_21 = 'deno-1.21'
36
+ DENO_1_24 = 'deno-1.24'
37
+ DENO_1_35 = 'deno-1.35'
35
38
  DENO_1_40 = 'deno-1.40'
36
39
  DENO_1_46 = 'deno-1.46'
37
40
  DENO_2_0 = 'deno-2.0'
@@ -79,6 +79,12 @@ module Appwrite
79
79
  SCHEDULES_WRITE = 'schedules.write'
80
80
  VCS_READ = 'vcs.read'
81
81
  VCS_WRITE = 'vcs.write'
82
+ INSIGHTS_READ = 'insights.read'
83
+ INSIGHTS_WRITE = 'insights.write'
84
+ REPORTS_READ = 'reports.read'
85
+ REPORTS_WRITE = 'reports.write'
86
+ PRESENCES_READ = 'presences.read'
87
+ PRESENCES_WRITE = 'presences.write'
82
88
  BACKUPS_POLICIES_READ = 'backups.policies.read'
83
89
  BACKUPS_POLICIES_WRITE = 'backups.policies.write'
84
90
  ARCHIVES_READ = 'archives.read'
@@ -88,6 +94,7 @@ module Appwrite
88
94
  DOMAINS_READ = 'domains.read'
89
95
  DOMAINS_WRITE = 'domains.write'
90
96
  EVENTS_READ = 'events.read'
97
+ USAGE_READ = 'usage.read'
91
98
  end
92
99
  end
93
100
  end
@@ -13,14 +13,14 @@ module Appwrite
13
13
  attr_reader :budget_limit
14
14
 
15
15
  def initialize(
16
- bandwidth:,
17
- storage:,
18
- users:,
19
- executions:,
20
- gb_hours:,
21
- image_transformations:,
22
- auth_phone:,
23
- budget_limit:
16
+ bandwidth: ,
17
+ storage: ,
18
+ users: ,
19
+ executions: ,
20
+ gb_hours: ,
21
+ image_transformations: ,
22
+ auth_phone: ,
23
+ budget_limit:
24
24
  )
25
25
  @bandwidth = bandwidth
26
26
  @storage = storage
@@ -40,8 +40,8 @@ module Appwrite
40
40
  updated_at: map["$updatedAt"],
41
41
  enabled: map["enabled"],
42
42
  type: map["type"],
43
- policies: map["policies"].map { |it| Index.from(map: it) },
44
- archives: map["archives"].map { |it| Collection.from(map: it) }
43
+ policies: map["policies"].map { |it| BackupPolicy.from(map: it) },
44
+ archives: map["archives"].map { |it| BackupArchive.from(map: it) }
45
45
  )
46
46
  end
47
47
 
@@ -12,6 +12,7 @@ module Appwrite
12
12
  attr_reader :signature
13
13
  attr_reader :mime_type
14
14
  attr_reader :size_original
15
+ attr_reader :size_actual
15
16
  attr_reader :chunks_total
16
17
  attr_reader :chunks_uploaded
17
18
  attr_reader :encryption
@@ -27,6 +28,7 @@ module Appwrite
27
28
  signature:,
28
29
  mime_type:,
29
30
  size_original:,
31
+ size_actual:,
30
32
  chunks_total:,
31
33
  chunks_uploaded:,
32
34
  encryption:,
@@ -41,6 +43,7 @@ module Appwrite
41
43
  @signature = signature
42
44
  @mime_type = mime_type
43
45
  @size_original = size_original
46
+ @size_actual = size_actual
44
47
  @chunks_total = chunks_total
45
48
  @chunks_uploaded = chunks_uploaded
46
49
  @encryption = encryption
@@ -58,6 +61,7 @@ module Appwrite
58
61
  signature: map["signature"],
59
62
  mime_type: map["mimeType"],
60
63
  size_original: map["sizeOriginal"],
64
+ size_actual: map["sizeActual"],
61
65
  chunks_total: map["chunksTotal"],
62
66
  chunks_uploaded: map["chunksUploaded"],
63
67
  encryption: map["encryption"],
@@ -76,6 +80,7 @@ module Appwrite
76
80
  "signature": @signature,
77
81
  "mimeType": @mime_type,
78
82
  "sizeOriginal": @size_original,
83
+ "sizeActual": @size_actual,
79
84
  "chunksTotal": @chunks_total,
80
85
  "chunksUploaded": @chunks_uploaded,
81
86
  "encryption": @encryption,
@@ -0,0 +1,107 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class Insight
6
+ attr_reader :id
7
+ attr_reader :created_at
8
+ attr_reader :updated_at
9
+ attr_reader :report_id
10
+ attr_reader :type
11
+ attr_reader :severity
12
+ attr_reader :status
13
+ attr_reader :resource_type
14
+ attr_reader :resource_id
15
+ attr_reader :parent_resource_type
16
+ attr_reader :parent_resource_id
17
+ attr_reader :title
18
+ attr_reader :summary
19
+ attr_reader :ctas
20
+ attr_reader :analyzed_at
21
+ attr_reader :dismissed_at
22
+ attr_reader :dismissed_by
23
+
24
+ def initialize(
25
+ id:,
26
+ created_at:,
27
+ updated_at:,
28
+ report_id:,
29
+ type:,
30
+ severity:,
31
+ status:,
32
+ resource_type:,
33
+ resource_id:,
34
+ parent_resource_type:,
35
+ parent_resource_id:,
36
+ title:,
37
+ summary:,
38
+ ctas:,
39
+ analyzed_at: ,
40
+ dismissed_at: ,
41
+ dismissed_by:
42
+ )
43
+ @id = id
44
+ @created_at = created_at
45
+ @updated_at = updated_at
46
+ @report_id = report_id
47
+ @type = type
48
+ @severity = severity
49
+ @status = status
50
+ @resource_type = resource_type
51
+ @resource_id = resource_id
52
+ @parent_resource_type = parent_resource_type
53
+ @parent_resource_id = parent_resource_id
54
+ @title = title
55
+ @summary = summary
56
+ @ctas = ctas
57
+ @analyzed_at = analyzed_at
58
+ @dismissed_at = dismissed_at
59
+ @dismissed_by = dismissed_by
60
+ end
61
+
62
+ def self.from(map:)
63
+ Insight.new(
64
+ id: map["$id"],
65
+ created_at: map["$createdAt"],
66
+ updated_at: map["$updatedAt"],
67
+ report_id: map["reportId"],
68
+ type: map["type"],
69
+ severity: map["severity"],
70
+ status: map["status"],
71
+ resource_type: map["resourceType"],
72
+ resource_id: map["resourceId"],
73
+ parent_resource_type: map["parentResourceType"],
74
+ parent_resource_id: map["parentResourceId"],
75
+ title: map["title"],
76
+ summary: map["summary"],
77
+ ctas: map["ctas"].map { |it| InsightCTA.from(map: it) },
78
+ analyzed_at: map["analyzedAt"],
79
+ dismissed_at: map["dismissedAt"],
80
+ dismissed_by: map["dismissedBy"]
81
+ )
82
+ end
83
+
84
+ def to_map
85
+ {
86
+ "$id": @id,
87
+ "$createdAt": @created_at,
88
+ "$updatedAt": @updated_at,
89
+ "reportId": @report_id,
90
+ "type": @type,
91
+ "severity": @severity,
92
+ "status": @status,
93
+ "resourceType": @resource_type,
94
+ "resourceId": @resource_id,
95
+ "parentResourceType": @parent_resource_type,
96
+ "parentResourceId": @parent_resource_id,
97
+ "title": @title,
98
+ "summary": @summary,
99
+ "ctas": @ctas.map { |it| it.to_map },
100
+ "analyzedAt": @analyzed_at,
101
+ "dismissedAt": @dismissed_at,
102
+ "dismissedBy": @dismissed_by
103
+ }
104
+ end
105
+ end
106
+ end
107
+ end
@@ -0,0 +1,42 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class InsightCTA
6
+ attr_reader :label
7
+ attr_reader :service
8
+ attr_reader :method
9
+ attr_reader :params
10
+
11
+ def initialize(
12
+ label:,
13
+ service:,
14
+ method:,
15
+ params:
16
+ )
17
+ @label = label
18
+ @service = service
19
+ @method = method
20
+ @params = params
21
+ end
22
+
23
+ def self.from(map:)
24
+ InsightCTA.new(
25
+ label: map["label"],
26
+ service: map["service"],
27
+ method: map["method"],
28
+ params: map["params"]
29
+ )
30
+ end
31
+
32
+ def to_map
33
+ {
34
+ "label": @label,
35
+ "service": @service,
36
+ "method": @method,
37
+ "params": @params
38
+ }
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,32 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class InsightList
6
+ attr_reader :total
7
+ attr_reader :insights
8
+
9
+ def initialize(
10
+ total:,
11
+ insights:
12
+ )
13
+ @total = total
14
+ @insights = insights
15
+ end
16
+
17
+ def self.from(map:)
18
+ InsightList.new(
19
+ total: map["total"],
20
+ insights: map["insights"].map { |it| Insight.from(map: it) }
21
+ )
22
+ end
23
+
24
+ def to_map
25
+ {
26
+ "total": @total,
27
+ "insights": @insights.map { |it| it.to_map }
28
+ }
29
+ end
30
+ end
31
+ end
32
+ end
@@ -7,17 +7,20 @@ module Appwrite
7
7
  attr_reader :enabled
8
8
  attr_reader :client_id
9
9
  attr_reader :client_secret
10
+ attr_reader :prompt
10
11
 
11
12
  def initialize(
12
13
  id:,
13
14
  enabled:,
14
15
  client_id:,
15
- client_secret:
16
+ client_secret:,
17
+ prompt:
16
18
  )
17
19
  @id = id
18
20
  @enabled = enabled
19
21
  @client_id = client_id
20
22
  @client_secret = client_secret
23
+ @prompt = prompt
21
24
  end
22
25
 
23
26
  def self.from(map:)
@@ -25,7 +28,8 @@ module Appwrite
25
28
  id: map["$id"],
26
29
  enabled: map["enabled"],
27
30
  client_id: map["clientId"],
28
- client_secret: map["clientSecret"]
31
+ client_secret: map["clientSecret"],
32
+ prompt: map["prompt"]
29
33
  )
30
34
  end
31
35
 
@@ -34,7 +38,8 @@ module Appwrite
34
38
  "$id": @id,
35
39
  "enabled": @enabled,
36
40
  "clientId": @client_id,
37
- "clientSecret": @client_secret
41
+ "clientSecret": @client_secret,
42
+ "prompt": @prompt
38
43
  }
39
44
  end
40
45
  end