appwrite 26.0.0 → 27.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 (86) hide show
  1. checksums.yaml +4 -4
  2. data/lib/appwrite/client.rb +16 -2
  3. data/lib/appwrite/enums/authentication_factor.rb +1 -0
  4. data/lib/appwrite/enums/build_runtime.rb +1 -0
  5. data/lib/appwrite/enums/database_status.rb +11 -0
  6. data/lib/appwrite/enums/database_type.rb +3 -0
  7. data/lib/appwrite/enums/embedding_model.rb +10 -0
  8. data/lib/appwrite/enums/invalidation_type.rb +9 -0
  9. data/lib/appwrite/enums/organization_key_scopes.rb +2 -0
  10. data/lib/appwrite/enums/project_key_scopes.rb +5 -0
  11. data/lib/appwrite/enums/project_policy_id.rb +1 -0
  12. data/lib/appwrite/enums/runtime.rb +1 -0
  13. data/lib/appwrite/models/activity_event.rb +58 -3
  14. data/lib/appwrite/models/app.rb +152 -0
  15. data/lib/appwrite/models/app_installation.rb +72 -0
  16. data/lib/appwrite/models/app_installation_list.rb +32 -0
  17. data/lib/appwrite/models/app_key.rb +67 -0
  18. data/lib/appwrite/models/app_key_list.rb +32 -0
  19. data/lib/appwrite/models/app_scope.rb +47 -0
  20. data/lib/appwrite/models/app_scope_list.rb +32 -0
  21. data/lib/appwrite/models/app_secret.rb +67 -0
  22. data/lib/appwrite/models/app_secret_list.rb +32 -0
  23. data/lib/appwrite/models/app_secret_plaintext.rb +67 -0
  24. data/lib/appwrite/models/apps_list.rb +32 -0
  25. data/lib/appwrite/models/billing_plan.rb +9 -4
  26. data/lib/appwrite/models/billing_plan_addon.rb +6 -6
  27. data/lib/appwrite/models/billing_plan_addon_details.rb +1 -1
  28. data/lib/appwrite/models/database.rb +35 -6
  29. data/lib/appwrite/models/database_migration.rb +102 -0
  30. data/lib/appwrite/models/database_migration_list.rb +32 -0
  31. data/lib/appwrite/models/database_status.rb +92 -0
  32. data/lib/appwrite/models/database_status_connections.rb +32 -0
  33. data/lib/appwrite/models/database_status_replica.rb +42 -0
  34. data/lib/appwrite/models/database_status_volume.rb +42 -0
  35. data/lib/appwrite/models/dedicated_database.rb +262 -0
  36. data/lib/appwrite/models/dedicated_database_member.rb +42 -0
  37. data/lib/appwrite/models/dedicated_database_operation.rb +77 -0
  38. data/lib/appwrite/models/dedicated_database_operation_list.rb +32 -0
  39. data/lib/appwrite/models/dedicated_database_replicas.rb +62 -0
  40. data/lib/appwrite/models/dedicated_database_specification.rb +67 -0
  41. data/lib/appwrite/models/dedicated_database_specification_list.rb +37 -0
  42. data/lib/appwrite/models/dedicated_database_specification_pricing.rb +42 -0
  43. data/lib/appwrite/models/embedding.rb +42 -0
  44. data/lib/appwrite/models/embedding_list.rb +32 -0
  45. data/lib/appwrite/models/file.rb +10 -0
  46. data/lib/appwrite/models/mfa_challenge_secret.rb +47 -0
  47. data/lib/appwrite/models/mfa_factors.rb +8 -3
  48. data/lib/appwrite/models/oauth2_approve.rb +27 -0
  49. data/lib/appwrite/models/oauth2_authorize.rb +32 -0
  50. data/lib/appwrite/models/oauth2_consent.rb +72 -0
  51. data/lib/appwrite/models/oauth2_consent_list.rb +32 -0
  52. data/lib/appwrite/models/oauth2_consent_token.rb +77 -0
  53. data/lib/appwrite/models/oauth2_consent_token_list.rb +32 -0
  54. data/lib/appwrite/models/oauth2_device_authorization.rb +52 -0
  55. data/lib/appwrite/models/oauth2_grant.rb +82 -0
  56. data/lib/appwrite/models/oauth2_organization.rb +27 -0
  57. data/lib/appwrite/models/oauth2_organization_list.rb +32 -0
  58. data/lib/appwrite/models/oauth2_par.rb +32 -0
  59. data/lib/appwrite/models/oauth2_project.rb +37 -0
  60. data/lib/appwrite/models/oauth2_project_list.rb +32 -0
  61. data/lib/appwrite/models/oauth2_reject.rb +27 -0
  62. data/lib/appwrite/models/oauth2_token.rb +57 -0
  63. data/lib/appwrite/models/organization.rb +12 -12
  64. data/lib/appwrite/models/policy_mfa_factors.rb +47 -0
  65. data/lib/appwrite/models/project.rb +15 -0
  66. data/lib/appwrite/models/project_auth_method.rb +3 -3
  67. data/lib/appwrite/models/proxy_invalidation.rb +42 -0
  68. data/lib/appwrite/models/usage_billing_plan.rb +9 -9
  69. data/lib/appwrite/services/account.rb +210 -33
  70. data/lib/appwrite/services/activities.rb +1 -1
  71. data/lib/appwrite/services/apps.rb +855 -0
  72. data/lib/appwrite/services/backups.rb +31 -12
  73. data/lib/appwrite/services/databases.rb +4 -4
  74. data/lib/appwrite/services/embeddings.rb +48 -0
  75. data/lib/appwrite/services/functions.rb +1 -1
  76. data/lib/appwrite/services/oauth2.rb +525 -0
  77. data/lib/appwrite/services/organization.rb +168 -0
  78. data/lib/appwrite/services/project.rb +54 -57
  79. data/lib/appwrite/services/proxy.rb +44 -0
  80. data/lib/appwrite/services/sites.rb +4 -2
  81. data/lib/appwrite/services/storage.rb +4 -2
  82. data/lib/appwrite/services/tables_db.rb +378 -6
  83. data/lib/appwrite/services/teams.rb +198 -0
  84. data/lib/appwrite/services/users.rb +38 -0
  85. data/lib/appwrite.rb +50 -0
  86. metadata +52 -2
@@ -0,0 +1,67 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class DedicatedDatabaseSpecification
6
+ attr_reader :slug
7
+ attr_reader :name
8
+ attr_reader :price
9
+ attr_reader :cpu
10
+ attr_reader :memory
11
+ attr_reader :max_connections
12
+ attr_reader :included_storage
13
+ attr_reader :included_bandwidth
14
+ attr_reader :enabled
15
+
16
+ def initialize(
17
+ slug:,
18
+ name:,
19
+ price:,
20
+ cpu:,
21
+ memory:,
22
+ max_connections:,
23
+ included_storage:,
24
+ included_bandwidth:,
25
+ enabled:
26
+ )
27
+ @slug = slug
28
+ @name = name
29
+ @price = price
30
+ @cpu = cpu
31
+ @memory = memory
32
+ @max_connections = max_connections
33
+ @included_storage = included_storage
34
+ @included_bandwidth = included_bandwidth
35
+ @enabled = enabled
36
+ end
37
+
38
+ def self.from(map:)
39
+ DedicatedDatabaseSpecification.new(
40
+ slug: map["slug"],
41
+ name: map["name"],
42
+ price: map["price"],
43
+ cpu: map["cpu"],
44
+ memory: map["memory"],
45
+ max_connections: map["maxConnections"],
46
+ included_storage: map["includedStorage"],
47
+ included_bandwidth: map["includedBandwidth"],
48
+ enabled: map["enabled"]
49
+ )
50
+ end
51
+
52
+ def to_map
53
+ {
54
+ "slug": @slug,
55
+ "name": @name,
56
+ "price": @price,
57
+ "cpu": @cpu,
58
+ "memory": @memory,
59
+ "maxConnections": @max_connections,
60
+ "includedStorage": @included_storage,
61
+ "includedBandwidth": @included_bandwidth,
62
+ "enabled": @enabled
63
+ }
64
+ end
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,37 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class DedicatedDatabaseSpecificationList
6
+ attr_reader :specifications
7
+ attr_reader :total
8
+ attr_reader :pricing
9
+
10
+ def initialize(
11
+ specifications:,
12
+ total:,
13
+ pricing:
14
+ )
15
+ @specifications = specifications
16
+ @total = total
17
+ @pricing = pricing
18
+ end
19
+
20
+ def self.from(map:)
21
+ DedicatedDatabaseSpecificationList.new(
22
+ specifications: map["specifications"].map { |it| DedicatedDatabaseSpecification.from(map: it) },
23
+ total: map["total"],
24
+ pricing: DedicatedDatabaseSpecificationPricing.from(map: map["pricing"])
25
+ )
26
+ end
27
+
28
+ def to_map
29
+ {
30
+ "specifications": @specifications.map { |it| it.to_map },
31
+ "total": @total,
32
+ "pricing": @pricing.to_map
33
+ }
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,42 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class DedicatedDatabaseSpecificationPricing
6
+ attr_reader :storage_overage_rate
7
+ attr_reader :bandwidth_overage_rate
8
+ attr_reader :replica_rate
9
+ attr_reader :pitr_rate
10
+
11
+ def initialize(
12
+ storage_overage_rate:,
13
+ bandwidth_overage_rate:,
14
+ replica_rate:,
15
+ pitr_rate:
16
+ )
17
+ @storage_overage_rate = storage_overage_rate
18
+ @bandwidth_overage_rate = bandwidth_overage_rate
19
+ @replica_rate = replica_rate
20
+ @pitr_rate = pitr_rate
21
+ end
22
+
23
+ def self.from(map:)
24
+ DedicatedDatabaseSpecificationPricing.new(
25
+ storage_overage_rate: map["storageOverageRate"],
26
+ bandwidth_overage_rate: map["bandwidthOverageRate"],
27
+ replica_rate: map["replicaRate"],
28
+ pitr_rate: map["pitrRate"]
29
+ )
30
+ end
31
+
32
+ def to_map
33
+ {
34
+ "storageOverageRate": @storage_overage_rate,
35
+ "bandwidthOverageRate": @bandwidth_overage_rate,
36
+ "replicaRate": @replica_rate,
37
+ "pitrRate": @pitr_rate
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 Embedding
6
+ attr_reader :model
7
+ attr_reader :dimension
8
+ attr_reader :embedding
9
+ attr_reader :error
10
+
11
+ def initialize(
12
+ model:,
13
+ dimension:,
14
+ embedding:,
15
+ error:
16
+ )
17
+ @model = model
18
+ @dimension = dimension
19
+ @embedding = embedding
20
+ @error = error
21
+ end
22
+
23
+ def self.from(map:)
24
+ Embedding.new(
25
+ model: map["model"],
26
+ dimension: map["dimension"],
27
+ embedding: map["embedding"],
28
+ error: map["error"]
29
+ )
30
+ end
31
+
32
+ def to_map
33
+ {
34
+ "model": @model,
35
+ "dimension": @dimension,
36
+ "embedding": @embedding,
37
+ "error": @error
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 EmbeddingList
6
+ attr_reader :total
7
+ attr_reader :embeddings
8
+
9
+ def initialize(
10
+ total:,
11
+ embeddings:
12
+ )
13
+ @total = total
14
+ @embeddings = embeddings
15
+ end
16
+
17
+ def self.from(map:)
18
+ EmbeddingList.new(
19
+ total: map["total"],
20
+ embeddings: map["embeddings"].map { |it| Embedding.from(map: it) }
21
+ )
22
+ end
23
+
24
+ def to_map
25
+ {
26
+ "total": @total,
27
+ "embeddings": @embeddings.map { |it| it.to_map }
28
+ }
29
+ end
30
+ end
31
+ end
32
+ end
@@ -9,6 +9,8 @@ module Appwrite
9
9
  attr_reader :updated_at
10
10
  attr_reader :permissions
11
11
  attr_reader :name
12
+ attr_reader :folder
13
+ attr_reader :key
12
14
  attr_reader :signature
13
15
  attr_reader :mime_type
14
16
  attr_reader :size_original
@@ -25,6 +27,8 @@ module Appwrite
25
27
  updated_at:,
26
28
  permissions:,
27
29
  name:,
30
+ folder:,
31
+ key:,
28
32
  signature:,
29
33
  mime_type:,
30
34
  size_original:,
@@ -40,6 +44,8 @@ module Appwrite
40
44
  @updated_at = updated_at
41
45
  @permissions = permissions
42
46
  @name = name
47
+ @folder = folder
48
+ @key = key
43
49
  @signature = signature
44
50
  @mime_type = mime_type
45
51
  @size_original = size_original
@@ -58,6 +64,8 @@ module Appwrite
58
64
  updated_at: map["$updatedAt"],
59
65
  permissions: map["$permissions"],
60
66
  name: map["name"],
67
+ folder: map["folder"],
68
+ key: map["key"],
61
69
  signature: map["signature"],
62
70
  mime_type: map["mimeType"],
63
71
  size_original: map["sizeOriginal"],
@@ -77,6 +85,8 @@ module Appwrite
77
85
  "$updatedAt": @updated_at,
78
86
  "$permissions": @permissions,
79
87
  "name": @name,
88
+ "folder": @folder,
89
+ "key": @key,
80
90
  "signature": @signature,
81
91
  "mimeType": @mime_type,
82
92
  "sizeOriginal": @size_original,
@@ -0,0 +1,47 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class MfaChallengeSecret
6
+ attr_reader :id
7
+ attr_reader :created_at
8
+ attr_reader :user_id
9
+ attr_reader :expire
10
+ attr_reader :code
11
+
12
+ def initialize(
13
+ id:,
14
+ created_at:,
15
+ user_id:,
16
+ expire:,
17
+ code:
18
+ )
19
+ @id = id
20
+ @created_at = created_at
21
+ @user_id = user_id
22
+ @expire = expire
23
+ @code = code
24
+ end
25
+
26
+ def self.from(map:)
27
+ MfaChallengeSecret.new(
28
+ id: map["$id"],
29
+ created_at: map["$createdAt"],
30
+ user_id: map["userId"],
31
+ expire: map["expire"],
32
+ code: map["code"]
33
+ )
34
+ end
35
+
36
+ def to_map
37
+ {
38
+ "$id": @id,
39
+ "$createdAt": @created_at,
40
+ "userId": @user_id,
41
+ "expire": @expire,
42
+ "code": @code
43
+ }
44
+ end
45
+ end
46
+ end
47
+ end
@@ -7,17 +7,20 @@ module Appwrite
7
7
  attr_reader :phone
8
8
  attr_reader :email
9
9
  attr_reader :recovery_code
10
+ attr_reader :custom
10
11
 
11
12
  def initialize(
12
13
  totp:,
13
14
  phone:,
14
15
  email:,
15
- recovery_code:
16
+ recovery_code:,
17
+ custom:
16
18
  )
17
19
  @totp = totp
18
20
  @phone = phone
19
21
  @email = email
20
22
  @recovery_code = recovery_code
23
+ @custom = custom
21
24
  end
22
25
 
23
26
  def self.from(map:)
@@ -25,7 +28,8 @@ module Appwrite
25
28
  totp: map["totp"],
26
29
  phone: map["phone"],
27
30
  email: map["email"],
28
- recovery_code: map["recoveryCode"]
31
+ recovery_code: map["recoveryCode"],
32
+ custom: map["custom"]
29
33
  )
30
34
  end
31
35
 
@@ -34,7 +38,8 @@ module Appwrite
34
38
  "totp": @totp,
35
39
  "phone": @phone,
36
40
  "email": @email,
37
- "recoveryCode": @recovery_code
41
+ "recoveryCode": @recovery_code,
42
+ "custom": @custom
38
43
  }
39
44
  end
40
45
  end
@@ -0,0 +1,27 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class Oauth2Approve
6
+ attr_reader :redirect_url
7
+
8
+ def initialize(
9
+ redirect_url:
10
+ )
11
+ @redirect_url = redirect_url
12
+ end
13
+
14
+ def self.from(map:)
15
+ Oauth2Approve.new(
16
+ redirect_url: map["redirectUrl"]
17
+ )
18
+ end
19
+
20
+ def to_map
21
+ {
22
+ "redirectUrl": @redirect_url
23
+ }
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,32 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class Oauth2Authorize
6
+ attr_reader :grant_id
7
+ attr_reader :redirect_url
8
+
9
+ def initialize(
10
+ grant_id:,
11
+ redirect_url:
12
+ )
13
+ @grant_id = grant_id
14
+ @redirect_url = redirect_url
15
+ end
16
+
17
+ def self.from(map:)
18
+ Oauth2Authorize.new(
19
+ grant_id: map["grantId"],
20
+ redirect_url: map["redirectUrl"]
21
+ )
22
+ end
23
+
24
+ def to_map
25
+ {
26
+ "grantId": @grant_id,
27
+ "redirectUrl": @redirect_url
28
+ }
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,72 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class Oauth2Consent
6
+ attr_reader :id
7
+ attr_reader :created_at
8
+ attr_reader :updated_at
9
+ attr_reader :user_id
10
+ attr_reader :app_id
11
+ attr_reader :cimd_url
12
+ attr_reader :scopes
13
+ attr_reader :resources
14
+ attr_reader :authorization_details
15
+ attr_reader :expire
16
+
17
+ def initialize(
18
+ id:,
19
+ created_at:,
20
+ updated_at:,
21
+ user_id:,
22
+ app_id:,
23
+ cimd_url:,
24
+ scopes:,
25
+ resources:,
26
+ authorization_details:,
27
+ expire:
28
+ )
29
+ @id = id
30
+ @created_at = created_at
31
+ @updated_at = updated_at
32
+ @user_id = user_id
33
+ @app_id = app_id
34
+ @cimd_url = cimd_url
35
+ @scopes = scopes
36
+ @resources = resources
37
+ @authorization_details = authorization_details
38
+ @expire = expire
39
+ end
40
+
41
+ def self.from(map:)
42
+ Oauth2Consent.new(
43
+ id: map["$id"],
44
+ created_at: map["$createdAt"],
45
+ updated_at: map["$updatedAt"],
46
+ user_id: map["userId"],
47
+ app_id: map["appId"],
48
+ cimd_url: map["cimdUrl"],
49
+ scopes: map["scopes"],
50
+ resources: map["resources"],
51
+ authorization_details: map["authorizationDetails"],
52
+ expire: map["expire"]
53
+ )
54
+ end
55
+
56
+ def to_map
57
+ {
58
+ "$id": @id,
59
+ "$createdAt": @created_at,
60
+ "$updatedAt": @updated_at,
61
+ "userId": @user_id,
62
+ "appId": @app_id,
63
+ "cimdUrl": @cimd_url,
64
+ "scopes": @scopes,
65
+ "resources": @resources,
66
+ "authorizationDetails": @authorization_details,
67
+ "expire": @expire
68
+ }
69
+ end
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,32 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class Oauth2ConsentList
6
+ attr_reader :total
7
+ attr_reader :consents
8
+
9
+ def initialize(
10
+ total:,
11
+ consents:
12
+ )
13
+ @total = total
14
+ @consents = consents
15
+ end
16
+
17
+ def self.from(map:)
18
+ Oauth2ConsentList.new(
19
+ total: map["total"],
20
+ consents: map["consents"].map { |it| Oauth2Consent.from(map: it) }
21
+ )
22
+ end
23
+
24
+ def to_map
25
+ {
26
+ "total": @total,
27
+ "consents": @consents.map { |it| it.to_map }
28
+ }
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,77 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class Oauth2ConsentToken
6
+ attr_reader :id
7
+ attr_reader :created_at
8
+ attr_reader :updated_at
9
+ attr_reader :consent_id
10
+ attr_reader :user_id
11
+ attr_reader :app_id
12
+ attr_reader :cimd_url
13
+ attr_reader :scopes
14
+ attr_reader :resources
15
+ attr_reader :authorization_details
16
+ attr_reader :expire
17
+
18
+ def initialize(
19
+ id:,
20
+ created_at:,
21
+ updated_at:,
22
+ consent_id:,
23
+ user_id:,
24
+ app_id:,
25
+ cimd_url:,
26
+ scopes:,
27
+ resources:,
28
+ authorization_details:,
29
+ expire:
30
+ )
31
+ @id = id
32
+ @created_at = created_at
33
+ @updated_at = updated_at
34
+ @consent_id = consent_id
35
+ @user_id = user_id
36
+ @app_id = app_id
37
+ @cimd_url = cimd_url
38
+ @scopes = scopes
39
+ @resources = resources
40
+ @authorization_details = authorization_details
41
+ @expire = expire
42
+ end
43
+
44
+ def self.from(map:)
45
+ Oauth2ConsentToken.new(
46
+ id: map["$id"],
47
+ created_at: map["$createdAt"],
48
+ updated_at: map["$updatedAt"],
49
+ consent_id: map["consentId"],
50
+ user_id: map["userId"],
51
+ app_id: map["appId"],
52
+ cimd_url: map["cimdUrl"],
53
+ scopes: map["scopes"],
54
+ resources: map["resources"],
55
+ authorization_details: map["authorizationDetails"],
56
+ expire: map["expire"]
57
+ )
58
+ end
59
+
60
+ def to_map
61
+ {
62
+ "$id": @id,
63
+ "$createdAt": @created_at,
64
+ "$updatedAt": @updated_at,
65
+ "consentId": @consent_id,
66
+ "userId": @user_id,
67
+ "appId": @app_id,
68
+ "cimdUrl": @cimd_url,
69
+ "scopes": @scopes,
70
+ "resources": @resources,
71
+ "authorizationDetails": @authorization_details,
72
+ "expire": @expire
73
+ }
74
+ end
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,32 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class Oauth2ConsentTokenList
6
+ attr_reader :total
7
+ attr_reader :tokens
8
+
9
+ def initialize(
10
+ total:,
11
+ tokens:
12
+ )
13
+ @total = total
14
+ @tokens = tokens
15
+ end
16
+
17
+ def self.from(map:)
18
+ Oauth2ConsentTokenList.new(
19
+ total: map["total"],
20
+ tokens: map["tokens"].map { |it| Oauth2ConsentToken.from(map: it) }
21
+ )
22
+ end
23
+
24
+ def to_map
25
+ {
26
+ "total": @total,
27
+ "tokens": @tokens.map { |it| it.to_map }
28
+ }
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,52 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class Oauth2DeviceAuthorization
6
+ attr_reader :device_code
7
+ attr_reader :user_code
8
+ attr_reader :verification_uri
9
+ attr_reader :verification_uri_complete
10
+ attr_reader :expires_in
11
+ attr_reader :interval
12
+
13
+ def initialize(
14
+ device_code:,
15
+ user_code:,
16
+ verification_uri:,
17
+ verification_uri_complete:,
18
+ expires_in:,
19
+ interval:
20
+ )
21
+ @device_code = device_code
22
+ @user_code = user_code
23
+ @verification_uri = verification_uri
24
+ @verification_uri_complete = verification_uri_complete
25
+ @expires_in = expires_in
26
+ @interval = interval
27
+ end
28
+
29
+ def self.from(map:)
30
+ Oauth2DeviceAuthorization.new(
31
+ device_code: map["device_code"],
32
+ user_code: map["user_code"],
33
+ verification_uri: map["verification_uri"],
34
+ verification_uri_complete: map["verification_uri_complete"],
35
+ expires_in: map["expires_in"],
36
+ interval: map["interval"]
37
+ )
38
+ end
39
+
40
+ def to_map
41
+ {
42
+ "device_code": @device_code,
43
+ "user_code": @user_code,
44
+ "verification_uri": @verification_uri,
45
+ "verification_uri_complete": @verification_uri_complete,
46
+ "expires_in": @expires_in,
47
+ "interval": @interval
48
+ }
49
+ end
50
+ end
51
+ end
52
+ end