galaxy-ruby 0.2.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 (145) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +8 -0
  3. data/LICENSE +201 -0
  4. data/README.md +169 -0
  5. data/SECURITY.md +19 -0
  6. data/SKILL.md +83 -0
  7. data/api.md +188 -0
  8. data/lib/galaxy-ruby/client.rb +254 -0
  9. data/lib/galaxy-ruby/errors.rb +227 -0
  10. data/lib/galaxy-ruby/file_part.rb +58 -0
  11. data/lib/galaxy-ruby/internal/transport/base_client.rb +576 -0
  12. data/lib/galaxy-ruby/internal/transport/pooled_net_requester.rb +224 -0
  13. data/lib/galaxy-ruby/internal/type/array_of.rb +164 -0
  14. data/lib/galaxy-ruby/internal/type/base_model.rb +529 -0
  15. data/lib/galaxy-ruby/internal/type/base_page.rb +55 -0
  16. data/lib/galaxy-ruby/internal/type/boolean.rb +77 -0
  17. data/lib/galaxy-ruby/internal/type/converter.rb +333 -0
  18. data/lib/galaxy-ruby/internal/type/enum.rb +130 -0
  19. data/lib/galaxy-ruby/internal/type/file_input.rb +111 -0
  20. data/lib/galaxy-ruby/internal/type/hash_of.rb +184 -0
  21. data/lib/galaxy-ruby/internal/type/request_parameters.rb +42 -0
  22. data/lib/galaxy-ruby/internal/type/union.rb +234 -0
  23. data/lib/galaxy-ruby/internal/type/unknown.rb +81 -0
  24. data/lib/galaxy-ruby/internal/util.rb +960 -0
  25. data/lib/galaxy-ruby/internal.rb +15 -0
  26. data/lib/galaxy-ruby/models/authentication_create_token_params.rb +14 -0
  27. data/lib/galaxy-ruby/models/authentication_create_token_response.rb +16 -0
  28. data/lib/galaxy-ruby/models/authentication_create_user_params.rb +32 -0
  29. data/lib/galaxy-ruby/models/authentication_list_me_params.rb +14 -0
  30. data/lib/galaxy-ruby/models/celestial_body.rb +81 -0
  31. data/lib/galaxy-ruby/models/celestial_body_create_params.rb +20 -0
  32. data/lib/galaxy-ruby/models/credentials.rb +25 -0
  33. data/lib/galaxy-ruby/models/new_planet_webhook_event.rb +216 -0
  34. data/lib/galaxy-ruby/models/planet.rb +218 -0
  35. data/lib/galaxy-ruby/models/planet_create_params.rb +14 -0
  36. data/lib/galaxy-ruby/models/planet_delete_params.rb +20 -0
  37. data/lib/galaxy-ruby/models/planet_delte_image_params.rb +29 -0
  38. data/lib/galaxy-ruby/models/planet_delte_image_response.rb +48 -0
  39. data/lib/galaxy-ruby/models/planet_list_all_data_params.rb +30 -0
  40. data/lib/galaxy-ruby/models/planet_list_all_data_response.rb +51 -0
  41. data/lib/galaxy-ruby/models/planet_retrieve_params.rb +20 -0
  42. data/lib/galaxy-ruby/models/planet_update_params.rb +20 -0
  43. data/lib/galaxy-ruby/models/unwrap_webhook_event.rb +14 -0
  44. data/lib/galaxy-ruby/models/user.rb +26 -0
  45. data/lib/galaxy-ruby/models/webhook_unwrap_params.rb +14 -0
  46. data/lib/galaxy-ruby/models.rb +78 -0
  47. data/lib/galaxy-ruby/request_options.rb +77 -0
  48. data/lib/galaxy-ruby/resources/authentication.rb +80 -0
  49. data/lib/galaxy-ruby/resources/celestial_bodies.rb +37 -0
  50. data/lib/galaxy-ruby/resources/planets.rb +215 -0
  51. data/lib/galaxy-ruby/resources/webhooks.rb +34 -0
  52. data/lib/galaxy-ruby/version.rb +5 -0
  53. data/lib/galaxy-ruby.rb +78 -0
  54. data/rbi/galaxy-ruby/client.rbi +128 -0
  55. data/rbi/galaxy-ruby/errors.rbi +205 -0
  56. data/rbi/galaxy-ruby/file_part.rbi +37 -0
  57. data/rbi/galaxy-ruby/internal/transport/base_client.rbi +305 -0
  58. data/rbi/galaxy-ruby/internal/transport/pooled_net_requester.rbi +84 -0
  59. data/rbi/galaxy-ruby/internal/type/array_of.rbi +104 -0
  60. data/rbi/galaxy-ruby/internal/type/base_model.rbi +314 -0
  61. data/rbi/galaxy-ruby/internal/type/base_page.rbi +43 -0
  62. data/rbi/galaxy-ruby/internal/type/boolean.rbi +58 -0
  63. data/rbi/galaxy-ruby/internal/type/converter.rbi +222 -0
  64. data/rbi/galaxy-ruby/internal/type/enum.rbi +82 -0
  65. data/rbi/galaxy-ruby/internal/type/file_input.rbi +59 -0
  66. data/rbi/galaxy-ruby/internal/type/hash_of.rbi +104 -0
  67. data/rbi/galaxy-ruby/internal/type/request_parameters.rbi +31 -0
  68. data/rbi/galaxy-ruby/internal/type/union.rbi +128 -0
  69. data/rbi/galaxy-ruby/internal/type/unknown.rbi +58 -0
  70. data/rbi/galaxy-ruby/internal/util.rbi +515 -0
  71. data/rbi/galaxy-ruby/internal.rbi +18 -0
  72. data/rbi/galaxy-ruby/models/authentication_create_token_params.rbi +32 -0
  73. data/rbi/galaxy-ruby/models/authentication_create_token_response.rbi +29 -0
  74. data/rbi/galaxy-ruby/models/authentication_create_user_params.rbi +54 -0
  75. data/rbi/galaxy-ruby/models/authentication_list_me_params.rbi +32 -0
  76. data/rbi/galaxy-ruby/models/celestial_body.rbi +140 -0
  77. data/rbi/galaxy-ruby/models/celestial_body_create_params.rbi +53 -0
  78. data/rbi/galaxy-ruby/models/credentials.rbi +27 -0
  79. data/rbi/galaxy-ruby/models/new_planet_webhook_event.rbi +396 -0
  80. data/rbi/galaxy-ruby/models/planet.rbi +350 -0
  81. data/rbi/galaxy-ruby/models/planet_create_params.rbi +32 -0
  82. data/rbi/galaxy-ruby/models/planet_delete_params.rbi +38 -0
  83. data/rbi/galaxy-ruby/models/planet_delte_image_params.rbi +55 -0
  84. data/rbi/galaxy-ruby/models/planet_delte_image_response.rbi +85 -0
  85. data/rbi/galaxy-ruby/models/planet_list_all_data_params.rbi +60 -0
  86. data/rbi/galaxy-ruby/models/planet_list_all_data_response.rbi +110 -0
  87. data/rbi/galaxy-ruby/models/planet_retrieve_params.rbi +38 -0
  88. data/rbi/galaxy-ruby/models/planet_update_params.rbi +38 -0
  89. data/rbi/galaxy-ruby/models/unwrap_webhook_event.rbi +17 -0
  90. data/rbi/galaxy-ruby/models/user.rbi +33 -0
  91. data/rbi/galaxy-ruby/models/webhook_unwrap_params.rbi +32 -0
  92. data/rbi/galaxy-ruby/models.rbi +39 -0
  93. data/rbi/galaxy-ruby/request_options.rbi +59 -0
  94. data/rbi/galaxy-ruby/resources/authentication.rbi +47 -0
  95. data/rbi/galaxy-ruby/resources/celestial_bodies.rbi +28 -0
  96. data/rbi/galaxy-ruby/resources/planets.rbi +176 -0
  97. data/rbi/galaxy-ruby/resources/webhooks.rbi +29 -0
  98. data/rbi/galaxy-ruby/version.rbi +5 -0
  99. data/sig/galaxy-ruby/client.rbs +62 -0
  100. data/sig/galaxy-ruby/errors.rbs +117 -0
  101. data/sig/galaxy-ruby/file_part.rbs +21 -0
  102. data/sig/galaxy-ruby/internal/transport/base_client.rbs +133 -0
  103. data/sig/galaxy-ruby/internal/transport/pooled_net_requester.rbs +48 -0
  104. data/sig/galaxy-ruby/internal/type/array_of.rbs +48 -0
  105. data/sig/galaxy-ruby/internal/type/base_model.rbs +102 -0
  106. data/sig/galaxy-ruby/internal/type/base_page.rbs +24 -0
  107. data/sig/galaxy-ruby/internal/type/boolean.rbs +26 -0
  108. data/sig/galaxy-ruby/internal/type/converter.rbs +79 -0
  109. data/sig/galaxy-ruby/internal/type/enum.rbs +32 -0
  110. data/sig/galaxy-ruby/internal/type/file_input.rbs +25 -0
  111. data/sig/galaxy-ruby/internal/type/hash_of.rbs +48 -0
  112. data/sig/galaxy-ruby/internal/type/request_parameters.rbs +17 -0
  113. data/sig/galaxy-ruby/internal/type/union.rbs +52 -0
  114. data/sig/galaxy-ruby/internal/type/unknown.rbs +26 -0
  115. data/sig/galaxy-ruby/internal/util.rbs +199 -0
  116. data/sig/galaxy-ruby/internal.rbs +9 -0
  117. data/sig/galaxy-ruby/models/authentication_create_token_params.rbs +15 -0
  118. data/sig/galaxy-ruby/models/authentication_create_token_response.rbs +15 -0
  119. data/sig/galaxy-ruby/models/authentication_create_user_params.rbs +34 -0
  120. data/sig/galaxy-ruby/models/authentication_list_me_params.rbs +15 -0
  121. data/sig/galaxy-ruby/models/celestial_body.rbs +76 -0
  122. data/sig/galaxy-ruby/models/celestial_body_create_params.rbs +24 -0
  123. data/sig/galaxy-ruby/models/credentials.rbs +15 -0
  124. data/sig/galaxy-ruby/models/new_planet_webhook_event.rbs +211 -0
  125. data/sig/galaxy-ruby/models/planet.rbs +211 -0
  126. data/sig/galaxy-ruby/models/planet_create_params.rbs +15 -0
  127. data/sig/galaxy-ruby/models/planet_delete_params.rbs +23 -0
  128. data/sig/galaxy-ruby/models/planet_delte_image_params.rbs +32 -0
  129. data/sig/galaxy-ruby/models/planet_delte_image_response.rbs +50 -0
  130. data/sig/galaxy-ruby/models/planet_list_all_data_params.rbs +32 -0
  131. data/sig/galaxy-ruby/models/planet_list_all_data_response.rbs +64 -0
  132. data/sig/galaxy-ruby/models/planet_retrieve_params.rbs +23 -0
  133. data/sig/galaxy-ruby/models/planet_update_params.rbs +25 -0
  134. data/sig/galaxy-ruby/models/unwrap_webhook_event.rbs +11 -0
  135. data/sig/galaxy-ruby/models/user.rbs +19 -0
  136. data/sig/galaxy-ruby/models/webhook_unwrap_params.rbs +15 -0
  137. data/sig/galaxy-ruby/models.rbs +35 -0
  138. data/sig/galaxy-ruby/request_options.rbs +34 -0
  139. data/sig/galaxy-ruby/resources/authentication.rbs +24 -0
  140. data/sig/galaxy-ruby/resources/celestial_bodies.rbs +12 -0
  141. data/sig/galaxy-ruby/resources/planets.rbs +68 -0
  142. data/sig/galaxy-ruby/resources/webhooks.rbs +13 -0
  143. data/sig/galaxy-ruby/version.rbs +3 -0
  144. data/sig/manifest.yaml +6 -0
  145. metadata +245 -0
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ScalarGalaxy
4
+ module Models
5
+ # @see ScalarGalaxy::Resources::Planets#delte_image
6
+ class PlanetDelteImageParams < ScalarGalaxy::Internal::Type::BaseModel
7
+ extend ScalarGalaxy::Internal::Type::RequestParameters::Converter
8
+ include ScalarGalaxy::Internal::Type::RequestParameters
9
+
10
+ # @!attribute planet_id
11
+ #
12
+ # @return [Integer]
13
+ required :planet_id, Integer
14
+
15
+ # @!attribute image
16
+ # The image file to upload
17
+ #
18
+ # @return [Pathname, StringIO, IO, String, ScalarGalaxy::FilePart, nil]
19
+ optional :image, ScalarGalaxy::Internal::Type::FileInput
20
+
21
+ # @!method initialize(planet_id:, image: nil, request_options: {})
22
+ # @param planet_id [Integer]
23
+ #
24
+ # @param image [Pathname, StringIO, IO, String, ScalarGalaxy::FilePart] The image file to upload
25
+ #
26
+ # @param request_options [ScalarGalaxy::RequestOptions, Hash{Symbol=>Object}]
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ScalarGalaxy
4
+ module Models
5
+ # @see ScalarGalaxy::Resources::Planets#delte_image
6
+ class PlanetDelteImageResponse < ScalarGalaxy::Internal::Type::BaseModel
7
+ # @!attribute file_size
8
+ # Size of the uploaded image in bytes
9
+ #
10
+ # @return [Integer, nil]
11
+ optional :file_size, Integer, api_name: :fileSize
12
+
13
+ # @!attribute image_url
14
+ # The URL where the uploaded image can be accessed
15
+ #
16
+ # @return [String, nil]
17
+ optional :image_url, String, api_name: :imageUrl
18
+
19
+ # @!attribute message
20
+ #
21
+ # @return [String, nil]
22
+ optional :message, String
23
+
24
+ # @!attribute mime_type
25
+ # The content type of the uploaded image
26
+ #
27
+ # @return [String, nil]
28
+ optional :mime_type, String, api_name: :mimeType
29
+
30
+ # @!attribute uploaded_at
31
+ # Timestamp when the image was uploaded
32
+ #
33
+ # @return [Time, nil]
34
+ optional :uploaded_at, Time, api_name: :uploadedAt
35
+
36
+ # @!method initialize(file_size: nil, image_url: nil, message: nil, mime_type: nil, uploaded_at: nil)
37
+ # @param file_size [Integer] Size of the uploaded image in bytes
38
+ #
39
+ # @param image_url [String] The URL where the uploaded image can be accessed
40
+ #
41
+ # @param message [String]
42
+ #
43
+ # @param mime_type [String] The content type of the uploaded image
44
+ #
45
+ # @param uploaded_at [Time] Timestamp when the image was uploaded
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ScalarGalaxy
4
+ module Models
5
+ # @see ScalarGalaxy::Resources::Planets#list_all_data
6
+ class PlanetListAllDataParams < ScalarGalaxy::Internal::Type::BaseModel
7
+ extend ScalarGalaxy::Internal::Type::RequestParameters::Converter
8
+ include ScalarGalaxy::Internal::Type::RequestParameters
9
+
10
+ # @!attribute limit
11
+ # The number of items to return
12
+ #
13
+ # @return [Integer, nil]
14
+ optional :limit, Integer
15
+
16
+ # @!attribute offset
17
+ # The number of items to skip before starting to collect the result set
18
+ #
19
+ # @return [Integer, nil]
20
+ optional :offset, Integer
21
+
22
+ # @!method initialize(limit: nil, offset: nil, request_options: {})
23
+ # @param limit [Integer] The number of items to return
24
+ #
25
+ # @param offset [Integer] The number of items to skip before starting to collect the result set
26
+ #
27
+ # @param request_options [ScalarGalaxy::RequestOptions, Hash{Symbol=>Object}]
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,51 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ScalarGalaxy
4
+ module Models
5
+ # @see ScalarGalaxy::Resources::Planets#list_all_data
6
+ class PlanetListAllDataResponse < ScalarGalaxy::Internal::Type::BaseModel
7
+ # @!attribute data
8
+ #
9
+ # @return [Array<Object>, nil]
10
+ optional :data, ScalarGalaxy::Internal::Type::ArrayOf[ScalarGalaxy::Internal::Type::Unknown]
11
+
12
+ # @!attribute meta
13
+ #
14
+ # @return [ScalarGalaxy::Models::PlanetListAllDataResponse::Meta, nil]
15
+ optional :meta, -> { ScalarGalaxy::Models::PlanetListAllDataResponse::Meta }
16
+
17
+ # @!method initialize(data: nil, meta: nil)
18
+ # @param data [Array<Object>]
19
+ # @param meta [ScalarGalaxy::Models::PlanetListAllDataResponse::Meta]
20
+
21
+ # @see ScalarGalaxy::Models::PlanetListAllDataResponse#meta
22
+ class Meta < ScalarGalaxy::Internal::Type::BaseModel
23
+ # @!attribute limit
24
+ #
25
+ # @return [Integer, nil]
26
+ optional :limit, Integer
27
+
28
+ # @!attribute next_
29
+ #
30
+ # @return [String, nil]
31
+ optional :next_, String, api_name: :next, nil?: true
32
+
33
+ # @!attribute offset
34
+ #
35
+ # @return [Integer, nil]
36
+ optional :offset, Integer
37
+
38
+ # @!attribute total
39
+ #
40
+ # @return [Integer, nil]
41
+ optional :total, Integer
42
+
43
+ # @!method initialize(limit: nil, next_: nil, offset: nil, total: nil)
44
+ # @param limit [Integer]
45
+ # @param next_ [String, nil]
46
+ # @param offset [Integer]
47
+ # @param total [Integer]
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ScalarGalaxy
4
+ module Models
5
+ # @see ScalarGalaxy::Resources::Planets#retrieve
6
+ class PlanetRetrieveParams < ScalarGalaxy::Internal::Type::BaseModel
7
+ extend ScalarGalaxy::Internal::Type::RequestParameters::Converter
8
+ include ScalarGalaxy::Internal::Type::RequestParameters
9
+
10
+ # @!attribute planet_id
11
+ #
12
+ # @return [Integer]
13
+ required :planet_id, Integer
14
+
15
+ # @!method initialize(planet_id:, request_options: {})
16
+ # @param planet_id [Integer]
17
+ # @param request_options [ScalarGalaxy::RequestOptions, Hash{Symbol=>Object}]
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ScalarGalaxy
4
+ module Models
5
+ # @see ScalarGalaxy::Resources::Planets#update
6
+ class PlanetUpdateParams < ScalarGalaxy::Models::Planet
7
+ extend ScalarGalaxy::Internal::Type::RequestParameters::Converter
8
+ include ScalarGalaxy::Internal::Type::RequestParameters
9
+
10
+ # @!attribute planet_id
11
+ #
12
+ # @return [Integer]
13
+ required :planet_id, Integer
14
+
15
+ # @!method initialize(planet_id:, request_options: {})
16
+ # @param planet_id [Integer]
17
+ # @param request_options [ScalarGalaxy::RequestOptions, Hash{Symbol=>Object}]
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ScalarGalaxy
4
+ module Models
5
+ module UnwrapWebhookEvent
6
+ extend ScalarGalaxy::Internal::Type::Union
7
+
8
+ variant -> { ScalarGalaxy::NewPlanetWebhookEvent }
9
+
10
+ # @!method self.variants
11
+ # @return [Array(ScalarGalaxy::Models::NewPlanetWebhookEvent)]
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ScalarGalaxy
4
+ module Models
5
+ # @see ScalarGalaxy::Resources::Authentication#create_user
6
+ class User < ScalarGalaxy::Internal::Type::BaseModel
7
+ # @!attribute name
8
+ #
9
+ # @return [String, nil]
10
+ optional :name, String
11
+
12
+ response_only do
13
+ # @!attribute id
14
+ #
15
+ # @return [Integer, nil]
16
+ optional :id, Integer
17
+ end
18
+
19
+ # @!method initialize(id: nil, name: nil)
20
+ # A user
21
+ #
22
+ # @param id [Integer]
23
+ # @param name [String]
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ScalarGalaxy
4
+ module Models
5
+ # @see ScalarGalaxy::Resources::Webhooks#unwrap
6
+ class WebhookUnwrapParams < ScalarGalaxy::Internal::Type::BaseModel
7
+ extend ScalarGalaxy::Internal::Type::RequestParameters::Converter
8
+ include ScalarGalaxy::Internal::Type::RequestParameters
9
+
10
+ # @!method initialize(request_options: {})
11
+ # @param request_options [ScalarGalaxy::RequestOptions, Hash{Symbol=>Object}]
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,78 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ScalarGalaxy
4
+ [ScalarGalaxy::Internal::Type::BaseModel, *ScalarGalaxy::Internal::Type::BaseModel.subclasses].each do |cls|
5
+ cls.define_sorbet_constant!(:OrHash) { T.type_alias { T.any(cls, ScalarGalaxy::Internal::AnyHash) } }
6
+ end
7
+
8
+ ScalarGalaxy::Internal::Util
9
+ .walk_namespaces(ScalarGalaxy::Models)
10
+ .each do |mod|
11
+ case mod
12
+ in ScalarGalaxy::Internal::Type::Enum | ScalarGalaxy::Internal::Type::Union
13
+ mod.constants.each do |name|
14
+ case mod.const_get(name)
15
+ in true | false
16
+ mod.define_sorbet_constant!(:TaggedBoolean) { T.type_alias { T::Boolean } }
17
+ mod.define_sorbet_constant!(:OrBoolean) { T.type_alias { T::Boolean } }
18
+ in Integer
19
+ mod.define_sorbet_constant!(:TaggedInteger) { T.type_alias { Integer } }
20
+ mod.define_sorbet_constant!(:OrInteger) { T.type_alias { Integer } }
21
+ in Float
22
+ mod.define_sorbet_constant!(:TaggedFloat) { T.type_alias { Float } }
23
+ mod.define_sorbet_constant!(:OrFloat) { T.type_alias { Float } }
24
+ in Symbol
25
+ mod.define_sorbet_constant!(:TaggedSymbol) { T.type_alias { Symbol } }
26
+ mod.define_sorbet_constant!(:OrSymbol) { T.type_alias { T.any(Symbol, String) } }
27
+ else
28
+ end
29
+ end
30
+ else
31
+ end
32
+ end
33
+
34
+ ScalarGalaxy::Internal::Util
35
+ .walk_namespaces(ScalarGalaxy::Models)
36
+ .lazy
37
+ .grep(ScalarGalaxy::Internal::Type::Union)
38
+ .each do |mod|
39
+ const = :Variants
40
+ next if mod.sorbet_constant_defined?(const)
41
+
42
+ mod.define_sorbet_constant!(const) { T.type_alias { mod.to_sorbet_type } }
43
+ end
44
+
45
+ AuthenticationCreateTokenParams = ScalarGalaxy::Models::AuthenticationCreateTokenParams
46
+
47
+ AuthenticationCreateUserParams = ScalarGalaxy::Models::AuthenticationCreateUserParams
48
+
49
+ AuthenticationListMeParams = ScalarGalaxy::Models::AuthenticationListMeParams
50
+
51
+ CelestialBody = ScalarGalaxy::Models::CelestialBody
52
+
53
+ CelestialBodyCreateParams = ScalarGalaxy::Models::CelestialBodyCreateParams
54
+
55
+ Credentials = ScalarGalaxy::Models::Credentials
56
+
57
+ NewPlanetWebhookEvent = ScalarGalaxy::Models::NewPlanetWebhookEvent
58
+
59
+ Planet = ScalarGalaxy::Models::Planet
60
+
61
+ PlanetCreateParams = ScalarGalaxy::Models::PlanetCreateParams
62
+
63
+ PlanetDeleteParams = ScalarGalaxy::Models::PlanetDeleteParams
64
+
65
+ PlanetDelteImageParams = ScalarGalaxy::Models::PlanetDelteImageParams
66
+
67
+ PlanetListAllDataParams = ScalarGalaxy::Models::PlanetListAllDataParams
68
+
69
+ PlanetRetrieveParams = ScalarGalaxy::Models::PlanetRetrieveParams
70
+
71
+ PlanetUpdateParams = ScalarGalaxy::Models::PlanetUpdateParams
72
+
73
+ UnwrapWebhookEvent = ScalarGalaxy::Models::UnwrapWebhookEvent
74
+
75
+ User = ScalarGalaxy::Models::User
76
+
77
+ WebhookUnwrapParams = ScalarGalaxy::Models::WebhookUnwrapParams
78
+ end
@@ -0,0 +1,77 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ScalarGalaxy
4
+ # Specify HTTP behaviour to use for a specific request. These options supplement
5
+ # or override those provided at the client level.
6
+ #
7
+ # When making a request, you can pass an actual {RequestOptions} instance, or
8
+ # simply pass a Hash with symbol keys matching the attributes on this class.
9
+ class RequestOptions < ScalarGalaxy::Internal::Type::BaseModel
10
+ # @api private
11
+ #
12
+ # @param opts [ScalarGalaxy::RequestOptions, Hash{Symbol=>Object}]
13
+ #
14
+ # @raise [ArgumentError]
15
+ def self.validate!(opts)
16
+ case opts
17
+ in ScalarGalaxy::RequestOptions | Hash
18
+ opts.to_h.each_key do |k|
19
+ unless fields.include?(k)
20
+ raise ArgumentError.new("Request `opts` keys must be one of #{fields.keys}, got #{k.inspect}")
21
+ end
22
+ end
23
+ else
24
+ raise ArgumentError.new("Request `opts` must be a Hash or RequestOptions, got #{opts.inspect}")
25
+ end
26
+ end
27
+
28
+ # @!attribute idempotency_key
29
+ # Idempotency key to send with request and all associated retries. Will only be
30
+ # sent for write requests.
31
+ #
32
+ # @return [String, nil]
33
+ optional :idempotency_key, String
34
+
35
+ # @!attribute extra_query
36
+ # Extra query params to send with the request. These are `.merge`’d into any
37
+ # `query` given at the client level.
38
+ #
39
+ # @return [Hash{String=>Array<String>, String, nil}, nil]
40
+ optional :extra_query, ScalarGalaxy::Internal::Type::HashOf[ScalarGalaxy::Internal::Type::ArrayOf[String]]
41
+
42
+ # @!attribute extra_headers
43
+ # Extra headers to send with the request. These are `.merged`’d into any
44
+ # `extra_headers` given at the client level.
45
+ #
46
+ # @return [Hash{String=>String, nil}, nil]
47
+ optional :extra_headers, ScalarGalaxy::Internal::Type::HashOf[String, nil?: true]
48
+
49
+ # @!attribute extra_body
50
+ # Extra data to send with the request. These are deep merged into any data
51
+ # generated as part of the normal request.
52
+ #
53
+ # @return [Object, nil]
54
+ optional :extra_body, ScalarGalaxy::Internal::Type::HashOf[ScalarGalaxy::Internal::Type::Unknown]
55
+
56
+ # @!attribute max_retries
57
+ # Maximum number of retries to attempt after a failed initial request.
58
+ #
59
+ # @return [Integer, nil]
60
+ optional :max_retries, Integer
61
+
62
+ # @!attribute timeout
63
+ # Request timeout in seconds.
64
+ #
65
+ # @return [Float, nil]
66
+ optional :timeout, Float
67
+
68
+ # @!method initialize(values = {})
69
+ # Returns a new instance of RequestOptions.
70
+ #
71
+ # @param values [Hash{Symbol=>Object}]
72
+
73
+ define_sorbet_constant!(:OrHash) do
74
+ T.type_alias { T.any(ScalarGalaxy::RequestOptions, ScalarGalaxy::Internal::AnyHash) }
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,80 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ScalarGalaxy
4
+ module Resources
5
+ # Some endpoints are public, but some require authentication. We provide all the
6
+ # required endpoints to create an account and authorize yourself.
7
+ class Authentication
8
+ # Yeah, this is the boring security stuff. Just get your super secret token and
9
+ # move on.
10
+ #
11
+ # @overload create_token(email:, password:, request_options: {})
12
+ #
13
+ # @param email [String]
14
+ # @param password [String]
15
+ # @param request_options [ScalarGalaxy::RequestOptions, Hash{Symbol=>Object}, nil]
16
+ #
17
+ # @return [ScalarGalaxy::Models::AuthenticationCreateTokenResponse]
18
+ #
19
+ # @see ScalarGalaxy::Models::AuthenticationCreateTokenParams
20
+ def create_token(params)
21
+ parsed, options = ScalarGalaxy::AuthenticationCreateTokenParams.dump_request(params)
22
+ @client.request(
23
+ method: :post,
24
+ path: "auth/token",
25
+ body: parsed,
26
+ model: ScalarGalaxy::Models::AuthenticationCreateTokenResponse,
27
+ options: options
28
+ )
29
+ end
30
+
31
+ # Time to create a user account, eh?
32
+ #
33
+ # @overload create_user(email:, password:, name: nil, request_options: {})
34
+ #
35
+ # @param email [String]
36
+ # @param password [String]
37
+ # @param name [String]
38
+ # @param request_options [ScalarGalaxy::RequestOptions, Hash{Symbol=>Object}, nil]
39
+ #
40
+ # @return [ScalarGalaxy::Models::User]
41
+ #
42
+ # @see ScalarGalaxy::Models::AuthenticationCreateUserParams
43
+ def create_user(params)
44
+ parsed, options = ScalarGalaxy::AuthenticationCreateUserParams.dump_request(params)
45
+ @client.request(
46
+ method: :post,
47
+ path: "user/signup",
48
+ body: parsed,
49
+ model: ScalarGalaxy::User,
50
+ options: options
51
+ )
52
+ end
53
+
54
+ # Find yourself they say. That's what you can do here.
55
+ #
56
+ # @overload list_me(request_options: {})
57
+ #
58
+ # @param request_options [ScalarGalaxy::RequestOptions, Hash{Symbol=>Object}, nil]
59
+ #
60
+ # @return [ScalarGalaxy::Models::User]
61
+ #
62
+ # @see ScalarGalaxy::Models::AuthenticationListMeParams
63
+ def list_me(params = {})
64
+ @client.request(
65
+ method: :get,
66
+ path: "me",
67
+ model: ScalarGalaxy::User,
68
+ options: params[:request_options]
69
+ )
70
+ end
71
+
72
+ # @api private
73
+ #
74
+ # @param client [ScalarGalaxy::Client]
75
+ def initialize(client:)
76
+ @client = client
77
+ end
78
+ end
79
+ end
80
+ end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ScalarGalaxy
4
+ module Resources
5
+ # Celestial bodies are the planets and satellites in the Scalar Galaxy.
6
+ class CelestialBodies
7
+ # Stars, moons, comets, the occasional rogue asteroid — if it glows or drifts
8
+ # through the void, you can add it here.
9
+ #
10
+ # @overload create(celestial_body:, request_options: {})
11
+ #
12
+ # @param celestial_body [ScalarGalaxy::Models::Planet, ScalarGalaxy::Models::CelestialBody::Satellite]
13
+ # @param request_options [ScalarGalaxy::RequestOptions, Hash{Symbol=>Object}, nil]
14
+ #
15
+ # @return [ScalarGalaxy::Models::Planet, ScalarGalaxy::Models::CelestialBody::Satellite]
16
+ #
17
+ # @see ScalarGalaxy::Models::CelestialBodyCreateParams
18
+ def create(params)
19
+ parsed, options = ScalarGalaxy::CelestialBodyCreateParams.dump_request(params)
20
+ @client.request(
21
+ method: :post,
22
+ path: "celestial-bodies",
23
+ body: parsed[:celestial_body],
24
+ model: ScalarGalaxy::CelestialBody,
25
+ options: options
26
+ )
27
+ end
28
+
29
+ # @api private
30
+ #
31
+ # @param client [ScalarGalaxy::Client]
32
+ def initialize(client:)
33
+ @client = client
34
+ end
35
+ end
36
+ end
37
+ end