appwrite 23.0.0 → 24.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 (112) hide show
  1. checksums.yaml +4 -4
  2. data/lib/appwrite/client.rb +28 -2
  3. data/lib/appwrite/enums/build_runtime.rb +1 -0
  4. data/lib/appwrite/enums/o_auth2_google_prompt.rb +9 -0
  5. data/lib/appwrite/enums/o_auth_provider.rb +3 -0
  6. data/lib/appwrite/enums/project_auth_method_id.rb +13 -0
  7. data/lib/appwrite/enums/project_email_template_id.rb +13 -0
  8. data/lib/appwrite/enums/project_email_template_locale.rb +137 -0
  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_id.rb +15 -0
  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/project_smtp_secure.rb +8 -0
  16. data/lib/appwrite/enums/proxy_resource_type.rb +8 -0
  17. data/lib/appwrite/enums/proxy_rule_deployment_resource_type.rb +8 -0
  18. data/lib/appwrite/enums/proxy_rule_status.rb +9 -0
  19. data/lib/appwrite/enums/runtime.rb +1 -0
  20. data/lib/appwrite/enums/scopes.rb +51 -31
  21. data/lib/appwrite/enums/status_code.rb +10 -0
  22. data/lib/appwrite/models/attribute_bigint.rb +96 -0
  23. data/lib/appwrite/models/block.rb +28 -3
  24. data/lib/appwrite/models/column_bigint.rb +96 -0
  25. data/lib/appwrite/models/database.rb +2 -2
  26. data/lib/appwrite/models/email_template.rb +62 -0
  27. data/lib/appwrite/models/email_template_list.rb +32 -0
  28. data/lib/appwrite/models/ephemeral_key.rb +67 -0
  29. data/lib/appwrite/models/insight.rb +107 -0
  30. data/lib/appwrite/models/insight_cta.rb +42 -0
  31. data/lib/appwrite/models/insight_list.rb +32 -0
  32. data/lib/appwrite/models/membership.rb +5 -0
  33. data/lib/appwrite/models/mock_number.rb +18 -8
  34. data/lib/appwrite/models/mock_number_list.rb +32 -0
  35. data/lib/appwrite/models/o_auth2_amazon.rb +42 -0
  36. data/lib/appwrite/models/o_auth2_apple.rb +52 -0
  37. data/lib/appwrite/models/o_auth2_auth0.rb +47 -0
  38. data/lib/appwrite/models/o_auth2_authentik.rb +47 -0
  39. data/lib/appwrite/models/o_auth2_autodesk.rb +42 -0
  40. data/lib/appwrite/models/o_auth2_bitbucket.rb +42 -0
  41. data/lib/appwrite/models/o_auth2_bitly.rb +42 -0
  42. data/lib/appwrite/models/o_auth2_box.rb +42 -0
  43. data/lib/appwrite/models/o_auth2_dailymotion.rb +42 -0
  44. data/lib/appwrite/models/o_auth2_discord.rb +42 -0
  45. data/lib/appwrite/models/o_auth2_disqus.rb +42 -0
  46. data/lib/appwrite/models/o_auth2_dropbox.rb +42 -0
  47. data/lib/appwrite/models/o_auth2_etsy.rb +42 -0
  48. data/lib/appwrite/models/o_auth2_facebook.rb +42 -0
  49. data/lib/appwrite/models/o_auth2_figma.rb +42 -0
  50. data/lib/appwrite/models/o_auth2_fusion_auth.rb +47 -0
  51. data/lib/appwrite/models/o_auth2_github.rb +42 -0
  52. data/lib/appwrite/models/o_auth2_gitlab.rb +47 -0
  53. data/lib/appwrite/models/o_auth2_google.rb +47 -0
  54. data/lib/appwrite/models/o_auth2_keycloak.rb +52 -0
  55. data/lib/appwrite/models/o_auth2_kick.rb +42 -0
  56. data/lib/appwrite/models/o_auth2_linkedin.rb +42 -0
  57. data/lib/appwrite/models/o_auth2_microsoft.rb +47 -0
  58. data/lib/appwrite/models/o_auth2_notion.rb +42 -0
  59. data/lib/appwrite/models/o_auth2_oidc.rb +62 -0
  60. data/lib/appwrite/models/o_auth2_okta.rb +52 -0
  61. data/lib/appwrite/models/o_auth2_paypal.rb +42 -0
  62. data/lib/appwrite/models/o_auth2_podio.rb +42 -0
  63. data/lib/appwrite/models/o_auth2_provider_list.rb +32 -0
  64. data/lib/appwrite/models/o_auth2_salesforce.rb +42 -0
  65. data/lib/appwrite/models/o_auth2_slack.rb +42 -0
  66. data/lib/appwrite/models/o_auth2_spotify.rb +42 -0
  67. data/lib/appwrite/models/o_auth2_stripe.rb +42 -0
  68. data/lib/appwrite/models/o_auth2_tradeshift.rb +42 -0
  69. data/lib/appwrite/models/o_auth2_twitch.rb +42 -0
  70. data/lib/appwrite/models/o_auth2_word_press.rb +42 -0
  71. data/lib/appwrite/models/o_auth2_x.rb +42 -0
  72. data/lib/appwrite/models/o_auth2_yahoo.rb +42 -0
  73. data/lib/appwrite/models/o_auth2_yandex.rb +42 -0
  74. data/lib/appwrite/models/o_auth2_zoho.rb +42 -0
  75. data/lib/appwrite/models/o_auth2_zoom.rb +42 -0
  76. data/lib/appwrite/models/policy_list.rb +32 -0
  77. data/lib/appwrite/models/policy_membership_privacy.rb +52 -0
  78. data/lib/appwrite/models/policy_password_dictionary.rb +32 -0
  79. data/lib/appwrite/models/policy_password_history.rb +32 -0
  80. data/lib/appwrite/models/policy_password_personal_data.rb +32 -0
  81. data/lib/appwrite/models/policy_session_alert.rb +32 -0
  82. data/lib/appwrite/models/policy_session_duration.rb +32 -0
  83. data/lib/appwrite/models/policy_session_invalidation.rb +32 -0
  84. data/lib/appwrite/models/policy_session_limit.rb +32 -0
  85. data/lib/appwrite/models/policy_user_limit.rb +32 -0
  86. data/lib/appwrite/models/presence.rb +71 -0
  87. data/lib/appwrite/models/presence_list.rb +36 -0
  88. data/lib/appwrite/models/project.rb +25 -280
  89. data/lib/appwrite/models/project_auth_method.rb +53 -0
  90. data/lib/appwrite/models/project_protocol.rb +49 -0
  91. data/lib/appwrite/models/project_service.rb +64 -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/report.rb +82 -0
  95. data/lib/appwrite/models/report_list.rb +32 -0
  96. data/lib/appwrite/models/usage_event.rb +72 -0
  97. data/lib/appwrite/models/usage_event_list.rb +32 -0
  98. data/lib/appwrite/models/usage_gauge.rb +37 -0
  99. data/lib/appwrite/models/usage_gauge_list.rb +32 -0
  100. data/lib/appwrite/services/account.rb +1 -1
  101. data/lib/appwrite/services/advisor.rb +173 -0
  102. data/lib/appwrite/services/databases.rb +126 -0
  103. data/lib/appwrite/services/functions.rb +13 -7
  104. data/lib/appwrite/services/presences.rb +199 -0
  105. data/lib/appwrite/services/project.rb +2817 -292
  106. data/lib/appwrite/services/proxy.rb +303 -0
  107. data/lib/appwrite/services/sites.rb +13 -7
  108. data/lib/appwrite/services/tables_db.rb +120 -0
  109. data/lib/appwrite/services/usage.rb +86 -0
  110. data/lib/appwrite.rb +92 -3
  111. metadata +94 -5
  112. data/lib/appwrite/models/auth_provider.rb +0 -47
@@ -3,28 +3,38 @@
3
3
  module Appwrite
4
4
  module Models
5
5
  class MockNumber
6
- attr_reader :phone
6
+ attr_reader :number
7
7
  attr_reader :otp
8
+ attr_reader :created_at
9
+ attr_reader :updated_at
8
10
 
9
11
  def initialize(
10
- phone:,
11
- otp:
12
+ number:,
13
+ otp:,
14
+ created_at:,
15
+ updated_at:
12
16
  )
13
- @phone = phone
17
+ @number = number
14
18
  @otp = otp
19
+ @created_at = created_at
20
+ @updated_at = updated_at
15
21
  end
16
22
 
17
23
  def self.from(map:)
18
24
  MockNumber.new(
19
- phone: map["phone"],
20
- otp: map["otp"]
25
+ number: map["number"],
26
+ otp: map["otp"],
27
+ created_at: map["$createdAt"],
28
+ updated_at: map["$updatedAt"]
21
29
  )
22
30
  end
23
31
 
24
32
  def to_map
25
33
  {
26
- "phone": @phone,
27
- "otp": @otp
34
+ "number": @number,
35
+ "otp": @otp,
36
+ "$createdAt": @created_at,
37
+ "$updatedAt": @updated_at
28
38
  }
29
39
  end
30
40
  end
@@ -0,0 +1,32 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class MockNumberList
6
+ attr_reader :total
7
+ attr_reader :mock_numbers
8
+
9
+ def initialize(
10
+ total:,
11
+ mock_numbers:
12
+ )
13
+ @total = total
14
+ @mock_numbers = mock_numbers
15
+ end
16
+
17
+ def self.from(map:)
18
+ MockNumberList.new(
19
+ total: map["total"],
20
+ mock_numbers: map["mockNumbers"].map { |it| MockNumber.from(map: it) }
21
+ )
22
+ end
23
+
24
+ def to_map
25
+ {
26
+ "total": @total,
27
+ "mockNumbers": @mock_numbers.map { |it| it.to_map }
28
+ }
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,42 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class OAuth2Amazon
6
+ attr_reader :id
7
+ attr_reader :enabled
8
+ attr_reader :client_id
9
+ attr_reader :client_secret
10
+
11
+ def initialize(
12
+ id:,
13
+ enabled:,
14
+ client_id:,
15
+ client_secret:
16
+ )
17
+ @id = id
18
+ @enabled = enabled
19
+ @client_id = client_id
20
+ @client_secret = client_secret
21
+ end
22
+
23
+ def self.from(map:)
24
+ OAuth2Amazon.new(
25
+ id: map["$id"],
26
+ enabled: map["enabled"],
27
+ client_id: map["clientId"],
28
+ client_secret: map["clientSecret"]
29
+ )
30
+ end
31
+
32
+ def to_map
33
+ {
34
+ "$id": @id,
35
+ "enabled": @enabled,
36
+ "clientId": @client_id,
37
+ "clientSecret": @client_secret
38
+ }
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,52 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class OAuth2Apple
6
+ attr_reader :id
7
+ attr_reader :enabled
8
+ attr_reader :service_id
9
+ attr_reader :key_id
10
+ attr_reader :team_id
11
+ attr_reader :p8_file
12
+
13
+ def initialize(
14
+ id:,
15
+ enabled:,
16
+ service_id:,
17
+ key_id:,
18
+ team_id:,
19
+ p8_file:
20
+ )
21
+ @id = id
22
+ @enabled = enabled
23
+ @service_id = service_id
24
+ @key_id = key_id
25
+ @team_id = team_id
26
+ @p8_file = p8_file
27
+ end
28
+
29
+ def self.from(map:)
30
+ OAuth2Apple.new(
31
+ id: map["$id"],
32
+ enabled: map["enabled"],
33
+ service_id: map["serviceId"],
34
+ key_id: map["keyId"],
35
+ team_id: map["teamId"],
36
+ p8_file: map["p8File"]
37
+ )
38
+ end
39
+
40
+ def to_map
41
+ {
42
+ "$id": @id,
43
+ "enabled": @enabled,
44
+ "serviceId": @service_id,
45
+ "keyId": @key_id,
46
+ "teamId": @team_id,
47
+ "p8File": @p8_file
48
+ }
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,47 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class OAuth2Auth0
6
+ attr_reader :id
7
+ attr_reader :enabled
8
+ attr_reader :client_id
9
+ attr_reader :client_secret
10
+ attr_reader :endpoint
11
+
12
+ def initialize(
13
+ id:,
14
+ enabled:,
15
+ client_id:,
16
+ client_secret:,
17
+ endpoint:
18
+ )
19
+ @id = id
20
+ @enabled = enabled
21
+ @client_id = client_id
22
+ @client_secret = client_secret
23
+ @endpoint = endpoint
24
+ end
25
+
26
+ def self.from(map:)
27
+ OAuth2Auth0.new(
28
+ id: map["$id"],
29
+ enabled: map["enabled"],
30
+ client_id: map["clientId"],
31
+ client_secret: map["clientSecret"],
32
+ endpoint: map["endpoint"]
33
+ )
34
+ end
35
+
36
+ def to_map
37
+ {
38
+ "$id": @id,
39
+ "enabled": @enabled,
40
+ "clientId": @client_id,
41
+ "clientSecret": @client_secret,
42
+ "endpoint": @endpoint
43
+ }
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,47 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class OAuth2Authentik
6
+ attr_reader :id
7
+ attr_reader :enabled
8
+ attr_reader :client_id
9
+ attr_reader :client_secret
10
+ attr_reader :endpoint
11
+
12
+ def initialize(
13
+ id:,
14
+ enabled:,
15
+ client_id:,
16
+ client_secret:,
17
+ endpoint:
18
+ )
19
+ @id = id
20
+ @enabled = enabled
21
+ @client_id = client_id
22
+ @client_secret = client_secret
23
+ @endpoint = endpoint
24
+ end
25
+
26
+ def self.from(map:)
27
+ OAuth2Authentik.new(
28
+ id: map["$id"],
29
+ enabled: map["enabled"],
30
+ client_id: map["clientId"],
31
+ client_secret: map["clientSecret"],
32
+ endpoint: map["endpoint"]
33
+ )
34
+ end
35
+
36
+ def to_map
37
+ {
38
+ "$id": @id,
39
+ "enabled": @enabled,
40
+ "clientId": @client_id,
41
+ "clientSecret": @client_secret,
42
+ "endpoint": @endpoint
43
+ }
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,42 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class OAuth2Autodesk
6
+ attr_reader :id
7
+ attr_reader :enabled
8
+ attr_reader :client_id
9
+ attr_reader :client_secret
10
+
11
+ def initialize(
12
+ id:,
13
+ enabled:,
14
+ client_id:,
15
+ client_secret:
16
+ )
17
+ @id = id
18
+ @enabled = enabled
19
+ @client_id = client_id
20
+ @client_secret = client_secret
21
+ end
22
+
23
+ def self.from(map:)
24
+ OAuth2Autodesk.new(
25
+ id: map["$id"],
26
+ enabled: map["enabled"],
27
+ client_id: map["clientId"],
28
+ client_secret: map["clientSecret"]
29
+ )
30
+ end
31
+
32
+ def to_map
33
+ {
34
+ "$id": @id,
35
+ "enabled": @enabled,
36
+ "clientId": @client_id,
37
+ "clientSecret": @client_secret
38
+ }
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,42 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class OAuth2Bitbucket
6
+ attr_reader :id
7
+ attr_reader :enabled
8
+ attr_reader :key
9
+ attr_reader :secret
10
+
11
+ def initialize(
12
+ id:,
13
+ enabled:,
14
+ key:,
15
+ secret:
16
+ )
17
+ @id = id
18
+ @enabled = enabled
19
+ @key = key
20
+ @secret = secret
21
+ end
22
+
23
+ def self.from(map:)
24
+ OAuth2Bitbucket.new(
25
+ id: map["$id"],
26
+ enabled: map["enabled"],
27
+ key: map["key"],
28
+ secret: map["secret"]
29
+ )
30
+ end
31
+
32
+ def to_map
33
+ {
34
+ "$id": @id,
35
+ "enabled": @enabled,
36
+ "key": @key,
37
+ "secret": @secret
38
+ }
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,42 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class OAuth2Bitly
6
+ attr_reader :id
7
+ attr_reader :enabled
8
+ attr_reader :client_id
9
+ attr_reader :client_secret
10
+
11
+ def initialize(
12
+ id:,
13
+ enabled:,
14
+ client_id:,
15
+ client_secret:
16
+ )
17
+ @id = id
18
+ @enabled = enabled
19
+ @client_id = client_id
20
+ @client_secret = client_secret
21
+ end
22
+
23
+ def self.from(map:)
24
+ OAuth2Bitly.new(
25
+ id: map["$id"],
26
+ enabled: map["enabled"],
27
+ client_id: map["clientId"],
28
+ client_secret: map["clientSecret"]
29
+ )
30
+ end
31
+
32
+ def to_map
33
+ {
34
+ "$id": @id,
35
+ "enabled": @enabled,
36
+ "clientId": @client_id,
37
+ "clientSecret": @client_secret
38
+ }
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,42 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class OAuth2Box
6
+ attr_reader :id
7
+ attr_reader :enabled
8
+ attr_reader :client_id
9
+ attr_reader :client_secret
10
+
11
+ def initialize(
12
+ id:,
13
+ enabled:,
14
+ client_id:,
15
+ client_secret:
16
+ )
17
+ @id = id
18
+ @enabled = enabled
19
+ @client_id = client_id
20
+ @client_secret = client_secret
21
+ end
22
+
23
+ def self.from(map:)
24
+ OAuth2Box.new(
25
+ id: map["$id"],
26
+ enabled: map["enabled"],
27
+ client_id: map["clientId"],
28
+ client_secret: map["clientSecret"]
29
+ )
30
+ end
31
+
32
+ def to_map
33
+ {
34
+ "$id": @id,
35
+ "enabled": @enabled,
36
+ "clientId": @client_id,
37
+ "clientSecret": @client_secret
38
+ }
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,42 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class OAuth2Dailymotion
6
+ attr_reader :id
7
+ attr_reader :enabled
8
+ attr_reader :api_key
9
+ attr_reader :api_secret
10
+
11
+ def initialize(
12
+ id:,
13
+ enabled:,
14
+ api_key:,
15
+ api_secret:
16
+ )
17
+ @id = id
18
+ @enabled = enabled
19
+ @api_key = api_key
20
+ @api_secret = api_secret
21
+ end
22
+
23
+ def self.from(map:)
24
+ OAuth2Dailymotion.new(
25
+ id: map["$id"],
26
+ enabled: map["enabled"],
27
+ api_key: map["apiKey"],
28
+ api_secret: map["apiSecret"]
29
+ )
30
+ end
31
+
32
+ def to_map
33
+ {
34
+ "$id": @id,
35
+ "enabled": @enabled,
36
+ "apiKey": @api_key,
37
+ "apiSecret": @api_secret
38
+ }
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,42 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class OAuth2Discord
6
+ attr_reader :id
7
+ attr_reader :enabled
8
+ attr_reader :client_id
9
+ attr_reader :client_secret
10
+
11
+ def initialize(
12
+ id:,
13
+ enabled:,
14
+ client_id:,
15
+ client_secret:
16
+ )
17
+ @id = id
18
+ @enabled = enabled
19
+ @client_id = client_id
20
+ @client_secret = client_secret
21
+ end
22
+
23
+ def self.from(map:)
24
+ OAuth2Discord.new(
25
+ id: map["$id"],
26
+ enabled: map["enabled"],
27
+ client_id: map["clientId"],
28
+ client_secret: map["clientSecret"]
29
+ )
30
+ end
31
+
32
+ def to_map
33
+ {
34
+ "$id": @id,
35
+ "enabled": @enabled,
36
+ "clientId": @client_id,
37
+ "clientSecret": @client_secret
38
+ }
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,42 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class OAuth2Disqus
6
+ attr_reader :id
7
+ attr_reader :enabled
8
+ attr_reader :public_key
9
+ attr_reader :secret_key
10
+
11
+ def initialize(
12
+ id:,
13
+ enabled:,
14
+ public_key:,
15
+ secret_key:
16
+ )
17
+ @id = id
18
+ @enabled = enabled
19
+ @public_key = public_key
20
+ @secret_key = secret_key
21
+ end
22
+
23
+ def self.from(map:)
24
+ OAuth2Disqus.new(
25
+ id: map["$id"],
26
+ enabled: map["enabled"],
27
+ public_key: map["publicKey"],
28
+ secret_key: map["secretKey"]
29
+ )
30
+ end
31
+
32
+ def to_map
33
+ {
34
+ "$id": @id,
35
+ "enabled": @enabled,
36
+ "publicKey": @public_key,
37
+ "secretKey": @secret_key
38
+ }
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,42 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class OAuth2Dropbox
6
+ attr_reader :id
7
+ attr_reader :enabled
8
+ attr_reader :app_key
9
+ attr_reader :app_secret
10
+
11
+ def initialize(
12
+ id:,
13
+ enabled:,
14
+ app_key:,
15
+ app_secret:
16
+ )
17
+ @id = id
18
+ @enabled = enabled
19
+ @app_key = app_key
20
+ @app_secret = app_secret
21
+ end
22
+
23
+ def self.from(map:)
24
+ OAuth2Dropbox.new(
25
+ id: map["$id"],
26
+ enabled: map["enabled"],
27
+ app_key: map["appKey"],
28
+ app_secret: map["appSecret"]
29
+ )
30
+ end
31
+
32
+ def to_map
33
+ {
34
+ "$id": @id,
35
+ "enabled": @enabled,
36
+ "appKey": @app_key,
37
+ "appSecret": @app_secret
38
+ }
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,42 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class OAuth2Etsy
6
+ attr_reader :id
7
+ attr_reader :enabled
8
+ attr_reader :key_string
9
+ attr_reader :shared_secret
10
+
11
+ def initialize(
12
+ id:,
13
+ enabled:,
14
+ key_string:,
15
+ shared_secret:
16
+ )
17
+ @id = id
18
+ @enabled = enabled
19
+ @key_string = key_string
20
+ @shared_secret = shared_secret
21
+ end
22
+
23
+ def self.from(map:)
24
+ OAuth2Etsy.new(
25
+ id: map["$id"],
26
+ enabled: map["enabled"],
27
+ key_string: map["keyString"],
28
+ shared_secret: map["sharedSecret"]
29
+ )
30
+ end
31
+
32
+ def to_map
33
+ {
34
+ "$id": @id,
35
+ "enabled": @enabled,
36
+ "keyString": @key_string,
37
+ "sharedSecret": @shared_secret
38
+ }
39
+ end
40
+ end
41
+ end
42
+ end