amritk-galaxy-staging 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 (148) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +13 -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 +186 -0
  8. data/lib/amritk-galaxy-staging/client.rb +238 -0
  9. data/lib/amritk-galaxy-staging/errors.rb +227 -0
  10. data/lib/amritk-galaxy-staging/file_part.rb +58 -0
  11. data/lib/amritk-galaxy-staging/internal/transport/base_client.rb +588 -0
  12. data/lib/amritk-galaxy-staging/internal/transport/pooled_net_requester.rb +224 -0
  13. data/lib/amritk-galaxy-staging/internal/type/array_of.rb +164 -0
  14. data/lib/amritk-galaxy-staging/internal/type/base_model.rb +534 -0
  15. data/lib/amritk-galaxy-staging/internal/type/base_page.rb +55 -0
  16. data/lib/amritk-galaxy-staging/internal/type/boolean.rb +77 -0
  17. data/lib/amritk-galaxy-staging/internal/type/converter.rb +333 -0
  18. data/lib/amritk-galaxy-staging/internal/type/enum.rb +132 -0
  19. data/lib/amritk-galaxy-staging/internal/type/file_input.rb +111 -0
  20. data/lib/amritk-galaxy-staging/internal/type/hash_of.rb +186 -0
  21. data/lib/amritk-galaxy-staging/internal/type/request_parameters.rb +42 -0
  22. data/lib/amritk-galaxy-staging/internal/type/union.rb +238 -0
  23. data/lib/amritk-galaxy-staging/internal/type/unknown.rb +81 -0
  24. data/lib/amritk-galaxy-staging/internal/util.rb +965 -0
  25. data/lib/amritk-galaxy-staging/internal.rb +18 -0
  26. data/lib/amritk-galaxy-staging/models/authentication_create_token_params.rb +26 -0
  27. data/lib/amritk-galaxy-staging/models/authentication_create_user_params.rb +32 -0
  28. data/lib/amritk-galaxy-staging/models/authentication_list_me_params.rb +14 -0
  29. data/lib/amritk-galaxy-staging/models/celestial_body.rb +21 -0
  30. data/lib/amritk-galaxy-staging/models/celestial_body_create_params.rb +20 -0
  31. data/lib/amritk-galaxy-staging/models/new_planet_webhook_event.rb +9 -0
  32. data/lib/amritk-galaxy-staging/models/paginated_resource.rb +46 -0
  33. data/lib/amritk-galaxy-staging/models/planet.rb +221 -0
  34. data/lib/amritk-galaxy-staging/models/planet_create_params.rb +14 -0
  35. data/lib/amritk-galaxy-staging/models/planet_delete_params.rb +20 -0
  36. data/lib/amritk-galaxy-staging/models/planet_list_params.rb +30 -0
  37. data/lib/amritk-galaxy-staging/models/planet_list_response.rb +16 -0
  38. data/lib/amritk-galaxy-staging/models/planet_retrieve_params.rb +20 -0
  39. data/lib/amritk-galaxy-staging/models/planet_update_params.rb +20 -0
  40. data/lib/amritk-galaxy-staging/models/planet_upload_image_params.rb +29 -0
  41. data/lib/amritk-galaxy-staging/models/planet_upload_image_response.rb +48 -0
  42. data/lib/amritk-galaxy-staging/models/satellite.rb +96 -0
  43. data/lib/amritk-galaxy-staging/models/token.rb +18 -0
  44. data/lib/amritk-galaxy-staging/models/unwrap_webhook_event.rb +14 -0
  45. data/lib/amritk-galaxy-staging/models/user.rb +26 -0
  46. data/lib/amritk-galaxy-staging/models/webhook_unwrap_params.rb +14 -0
  47. data/lib/amritk-galaxy-staging/models.rb +87 -0
  48. data/lib/amritk-galaxy-staging/request_options.rb +79 -0
  49. data/lib/amritk-galaxy-staging/resources/authentication.rb +80 -0
  50. data/lib/amritk-galaxy-staging/resources/celestial_bodies.rb +36 -0
  51. data/lib/amritk-galaxy-staging/resources/planets.rb +215 -0
  52. data/lib/amritk-galaxy-staging/resources/webhooks.rb +37 -0
  53. data/lib/amritk-galaxy-staging/version.rb +5 -0
  54. data/lib/amritk-galaxy-staging.rb +79 -0
  55. data/rbi/amritk-galaxy-staging/client.rbi +130 -0
  56. data/rbi/amritk-galaxy-staging/errors.rbi +205 -0
  57. data/rbi/amritk-galaxy-staging/file_part.rbi +37 -0
  58. data/rbi/amritk-galaxy-staging/internal/transport/base_client.rbi +312 -0
  59. data/rbi/amritk-galaxy-staging/internal/transport/pooled_net_requester.rbi +84 -0
  60. data/rbi/amritk-galaxy-staging/internal/type/array_of.rbi +108 -0
  61. data/rbi/amritk-galaxy-staging/internal/type/base_model.rbi +319 -0
  62. data/rbi/amritk-galaxy-staging/internal/type/base_page.rbi +43 -0
  63. data/rbi/amritk-galaxy-staging/internal/type/boolean.rbi +59 -0
  64. data/rbi/amritk-galaxy-staging/internal/type/converter.rbi +225 -0
  65. data/rbi/amritk-galaxy-staging/internal/type/enum.rbi +82 -0
  66. data/rbi/amritk-galaxy-staging/internal/type/file_input.rbi +60 -0
  67. data/rbi/amritk-galaxy-staging/internal/type/hash_of.rbi +108 -0
  68. data/rbi/amritk-galaxy-staging/internal/type/request_parameters.rbi +33 -0
  69. data/rbi/amritk-galaxy-staging/internal/type/union.rbi +134 -0
  70. data/rbi/amritk-galaxy-staging/internal/type/unknown.rbi +59 -0
  71. data/rbi/amritk-galaxy-staging/internal/util.rbi +515 -0
  72. data/rbi/amritk-galaxy-staging/internal.rbi +18 -0
  73. data/rbi/amritk-galaxy-staging/models/authentication_create_token_params.rbi +46 -0
  74. data/rbi/amritk-galaxy-staging/models/authentication_create_user_params.rbi +54 -0
  75. data/rbi/amritk-galaxy-staging/models/authentication_list_me_params.rbi +34 -0
  76. data/rbi/amritk-galaxy-staging/models/celestial_body.rbi +21 -0
  77. data/rbi/amritk-galaxy-staging/models/celestial_body_create_params.rbi +53 -0
  78. data/rbi/amritk-galaxy-staging/models/new_planet_webhook_event.rbi +23 -0
  79. data/rbi/amritk-galaxy-staging/models/paginated_resource.rbi +93 -0
  80. data/rbi/amritk-galaxy-staging/models/planet.rbi +373 -0
  81. data/rbi/amritk-galaxy-staging/models/planet_create_params.rbi +34 -0
  82. data/rbi/amritk-galaxy-staging/models/planet_delete_params.rbi +41 -0
  83. data/rbi/amritk-galaxy-staging/models/planet_list_params.rbi +60 -0
  84. data/rbi/amritk-galaxy-staging/models/planet_list_response.rbi +33 -0
  85. data/rbi/amritk-galaxy-staging/models/planet_retrieve_params.rbi +41 -0
  86. data/rbi/amritk-galaxy-staging/models/planet_update_params.rbi +41 -0
  87. data/rbi/amritk-galaxy-staging/models/planet_upload_image_params.rbi +55 -0
  88. data/rbi/amritk-galaxy-staging/models/planet_upload_image_response.rbi +85 -0
  89. data/rbi/amritk-galaxy-staging/models/satellite.rbi +160 -0
  90. data/rbi/amritk-galaxy-staging/models/token.rbi +30 -0
  91. data/rbi/amritk-galaxy-staging/models/unwrap_webhook_event.rbi +20 -0
  92. data/rbi/amritk-galaxy-staging/models/user.rbi +36 -0
  93. data/rbi/amritk-galaxy-staging/models/webhook_unwrap_params.rbi +34 -0
  94. data/rbi/amritk-galaxy-staging/models.rbi +45 -0
  95. data/rbi/amritk-galaxy-staging/request_options.rbi +64 -0
  96. data/rbi/amritk-galaxy-staging/resources/authentication.rbi +49 -0
  97. data/rbi/amritk-galaxy-staging/resources/celestial_bodies.rbi +29 -0
  98. data/rbi/amritk-galaxy-staging/resources/planets.rbi +180 -0
  99. data/rbi/amritk-galaxy-staging/resources/webhooks.rbi +31 -0
  100. data/rbi/amritk-galaxy-staging/version.rbi +5 -0
  101. data/sig/amritk-galaxy-staging/client.rbs +62 -0
  102. data/sig/amritk-galaxy-staging/errors.rbs +117 -0
  103. data/sig/amritk-galaxy-staging/file_part.rbs +21 -0
  104. data/sig/amritk-galaxy-staging/internal/transport/base_client.rbs +133 -0
  105. data/sig/amritk-galaxy-staging/internal/transport/pooled_net_requester.rbs +48 -0
  106. data/sig/amritk-galaxy-staging/internal/type/array_of.rbs +48 -0
  107. data/sig/amritk-galaxy-staging/internal/type/base_model.rbs +102 -0
  108. data/sig/amritk-galaxy-staging/internal/type/base_page.rbs +24 -0
  109. data/sig/amritk-galaxy-staging/internal/type/boolean.rbs +26 -0
  110. data/sig/amritk-galaxy-staging/internal/type/converter.rbs +79 -0
  111. data/sig/amritk-galaxy-staging/internal/type/enum.rbs +32 -0
  112. data/sig/amritk-galaxy-staging/internal/type/file_input.rbs +25 -0
  113. data/sig/amritk-galaxy-staging/internal/type/hash_of.rbs +48 -0
  114. data/sig/amritk-galaxy-staging/internal/type/request_parameters.rbs +17 -0
  115. data/sig/amritk-galaxy-staging/internal/type/union.rbs +52 -0
  116. data/sig/amritk-galaxy-staging/internal/type/unknown.rbs +26 -0
  117. data/sig/amritk-galaxy-staging/internal/util.rbs +199 -0
  118. data/sig/amritk-galaxy-staging/internal.rbs +9 -0
  119. data/sig/amritk-galaxy-staging/models/authentication_create_token_params.rbs +28 -0
  120. data/sig/amritk-galaxy-staging/models/authentication_create_user_params.rbs +34 -0
  121. data/sig/amritk-galaxy-staging/models/authentication_list_me_params.rbs +17 -0
  122. data/sig/amritk-galaxy-staging/models/celestial_body.rbs +12 -0
  123. data/sig/amritk-galaxy-staging/models/celestial_body_create_params.rbs +24 -0
  124. data/sig/amritk-galaxy-staging/models/new_planet_webhook_event.rbs +11 -0
  125. data/sig/amritk-galaxy-staging/models/paginated_resource.rbs +53 -0
  126. data/sig/amritk-galaxy-staging/models/planet.rbs +210 -0
  127. data/sig/amritk-galaxy-staging/models/planet_create_params.rbs +17 -0
  128. data/sig/amritk-galaxy-staging/models/planet_delete_params.rbs +24 -0
  129. data/sig/amritk-galaxy-staging/models/planet_list_params.rbs +32 -0
  130. data/sig/amritk-galaxy-staging/models/planet_list_response.rbs +17 -0
  131. data/sig/amritk-galaxy-staging/models/planet_retrieve_params.rbs +24 -0
  132. data/sig/amritk-galaxy-staging/models/planet_update_params.rbs +26 -0
  133. data/sig/amritk-galaxy-staging/models/planet_upload_image_params.rbs +32 -0
  134. data/sig/amritk-galaxy-staging/models/planet_upload_image_response.rbs +50 -0
  135. data/sig/amritk-galaxy-staging/models/satellite.rbs +95 -0
  136. data/sig/amritk-galaxy-staging/models/token.rbs +15 -0
  137. data/sig/amritk-galaxy-staging/models/unwrap_webhook_event.rbs +11 -0
  138. data/sig/amritk-galaxy-staging/models/user.rbs +19 -0
  139. data/sig/amritk-galaxy-staging/models/webhook_unwrap_params.rbs +17 -0
  140. data/sig/amritk-galaxy-staging/models.rbs +39 -0
  141. data/sig/amritk-galaxy-staging/request_options.rbs +34 -0
  142. data/sig/amritk-galaxy-staging/resources/authentication.rbs +24 -0
  143. data/sig/amritk-galaxy-staging/resources/celestial_bodies.rbs +12 -0
  144. data/sig/amritk-galaxy-staging/resources/planets.rbs +68 -0
  145. data/sig/amritk-galaxy-staging/resources/webhooks.rbs +13 -0
  146. data/sig/amritk-galaxy-staging/version.rbs +3 -0
  147. data/sig/manifest.yaml +6 -0
  148. metadata +248 -0
@@ -0,0 +1,96 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DemoApiScalarGalaxy
4
+ module Models
5
+ class Satellite < DemoApiScalarGalaxy::Internal::Type::BaseModel
6
+ # @!attribute name
7
+ #
8
+ # @return [String]
9
+ required :name, String
10
+
11
+ # @!attribute type
12
+ #
13
+ # @return [Symbol, DemoApiScalarGalaxy::Models::Satellite::Type]
14
+ required :type, enum: -> { DemoApiScalarGalaxy::Satellite::Type }
15
+
16
+ # @!attribute description
17
+ #
18
+ # @return [String, nil]
19
+ optional :description, String, nil?: true
20
+
21
+ # @!attribute diameter
22
+ # Diameter in kilometers
23
+ #
24
+ # @return [Float, nil]
25
+ optional :diameter, Float
26
+
27
+ # @!attribute orbit
28
+ #
29
+ # @return [DemoApiScalarGalaxy::Models::Satellite::Orbit, nil]
30
+ optional :orbit, -> { DemoApiScalarGalaxy::Satellite::Orbit }
31
+
32
+ response_only do
33
+ # @!attribute id
34
+ #
35
+ # @return [Integer, nil]
36
+ optional :id, Integer
37
+ end
38
+
39
+ # @!method initialize(name:, type:, id: nil, description: nil, diameter: nil, orbit: nil)
40
+ # Every satellite in the Scalar Galaxy
41
+ #
42
+ # @param name [String]
43
+ #
44
+ # @param type [Symbol, DemoApiScalarGalaxy::Models::Satellite::Type]
45
+ #
46
+ # @param id [Integer]
47
+ #
48
+ # @param description [String, nil]
49
+ #
50
+ # @param diameter [Float] Diameter in kilometers
51
+ #
52
+ # @param orbit [DemoApiScalarGalaxy::Models::Satellite::Orbit]
53
+
54
+ # @see DemoApiScalarGalaxy::Models::Satellite#type
55
+ module Type
56
+ extend DemoApiScalarGalaxy::Internal::Type::Enum
57
+
58
+ SATELLITE = :satellite
59
+ MOON = :moon
60
+ ASTEROID = :asteroid
61
+ COMET = :comet
62
+
63
+ # @!method self.values
64
+ # @return [Array<Symbol>]
65
+ end
66
+
67
+ # @see DemoApiScalarGalaxy::Models::Satellite#orbit
68
+ class Orbit < DemoApiScalarGalaxy::Internal::Type::BaseModel
69
+ # @!attribute distance
70
+ # Average distance from the planet in kilometers
71
+ #
72
+ # @return [Float, nil]
73
+ optional :distance, Float
74
+
75
+ # @!attribute orbital_period
76
+ # Orbital period in Earth days
77
+ #
78
+ # @return [Float, nil]
79
+ optional :orbital_period, Float, api_name: :orbitalPeriod
80
+
81
+ # @!attribute planet_id
82
+ # The ID of the planet this satellite orbits
83
+ #
84
+ # @return [Integer, nil]
85
+ optional :planet_id, Integer, api_name: :planetId
86
+
87
+ # @!method initialize(distance: nil, orbital_period: nil, planet_id: nil)
88
+ # @param distance [Float] Average distance from the planet in kilometers
89
+ #
90
+ # @param orbital_period [Float] Orbital period in Earth days
91
+ #
92
+ # @param planet_id [Integer] The ID of the planet this satellite orbits
93
+ end
94
+ end
95
+ end
96
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DemoApiScalarGalaxy
4
+ module Models
5
+ # @see DemoApiScalarGalaxy::Resources::Authentication#create_token
6
+ class Token < DemoApiScalarGalaxy::Internal::Type::BaseModel
7
+ # @!attribute token
8
+ #
9
+ # @return [String, nil]
10
+ optional :token, String
11
+
12
+ # @!method initialize(token: nil)
13
+ # A token to authenticate a user
14
+ #
15
+ # @param token [String]
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DemoApiScalarGalaxy
4
+ module Models
5
+ module UnwrapWebhookEvent
6
+ extend DemoApiScalarGalaxy::Internal::Type::Union
7
+
8
+ variant -> { DemoApiScalarGalaxy::NewPlanetWebhookEvent }
9
+
10
+ # @!method self.variants
11
+ # @return [Array(DemoApiScalarGalaxy::Models::NewPlanetWebhookEvent)]
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DemoApiScalarGalaxy
4
+ module Models
5
+ # @see DemoApiScalarGalaxy::Resources::Authentication#create_user
6
+ class User < DemoApiScalarGalaxy::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 DemoApiScalarGalaxy
4
+ module Models
5
+ # @see DemoApiScalarGalaxy::Resources::Webhooks#unwrap
6
+ class WebhookUnwrapParams < DemoApiScalarGalaxy::Internal::Type::BaseModel
7
+ extend DemoApiScalarGalaxy::Internal::Type::RequestParameters::Converter
8
+ include DemoApiScalarGalaxy::Internal::Type::RequestParameters
9
+
10
+ # @!method initialize(request_options: {})
11
+ # @param request_options [DemoApiScalarGalaxy::RequestOptions, Hash{Symbol=>Object}]
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,87 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DemoApiScalarGalaxy
4
+ [
5
+ DemoApiScalarGalaxy::Internal::Type::BaseModel,
6
+ *DemoApiScalarGalaxy::Internal::Type::BaseModel.subclasses
7
+ ].each do |cls|
8
+ cls.define_sorbet_constant!(:OrHash) do
9
+ T.type_alias { T.any(cls, DemoApiScalarGalaxy::Internal::AnyHash) }
10
+ end
11
+ end
12
+
13
+ DemoApiScalarGalaxy::Internal::Util
14
+ .walk_namespaces(DemoApiScalarGalaxy::Models)
15
+ .each do |mod|
16
+ case mod
17
+ in DemoApiScalarGalaxy::Internal::Type::Enum | DemoApiScalarGalaxy::Internal::Type::Union
18
+ mod.constants.each do |name|
19
+ case mod.const_get(name)
20
+ in true | false
21
+ mod.define_sorbet_constant!(:TaggedBoolean) { T.type_alias { T::Boolean } }
22
+ mod.define_sorbet_constant!(:OrBoolean) { T.type_alias { T::Boolean } }
23
+ in Integer
24
+ mod.define_sorbet_constant!(:TaggedInteger) { T.type_alias { Integer } }
25
+ mod.define_sorbet_constant!(:OrInteger) { T.type_alias { Integer } }
26
+ in Float
27
+ mod.define_sorbet_constant!(:TaggedFloat) { T.type_alias { Float } }
28
+ mod.define_sorbet_constant!(:OrFloat) { T.type_alias { Float } }
29
+ in Symbol
30
+ mod.define_sorbet_constant!(:TaggedSymbol) { T.type_alias { Symbol } }
31
+ mod.define_sorbet_constant!(:OrSymbol) { T.type_alias { T.any(Symbol, String) } }
32
+ else
33
+ end
34
+ end
35
+ else
36
+ end
37
+ end
38
+
39
+ DemoApiScalarGalaxy::Internal::Util
40
+ .walk_namespaces(DemoApiScalarGalaxy::Models)
41
+ .lazy
42
+ .grep(DemoApiScalarGalaxy::Internal::Type::Union)
43
+ .each do |mod|
44
+ const = :Variants
45
+ next if mod.sorbet_constant_defined?(const)
46
+
47
+ mod.define_sorbet_constant!(const) { T.type_alias { mod.to_sorbet_type } }
48
+ end
49
+
50
+ AuthenticationCreateTokenParams = DemoApiScalarGalaxy::Models::AuthenticationCreateTokenParams
51
+
52
+ AuthenticationCreateUserParams = DemoApiScalarGalaxy::Models::AuthenticationCreateUserParams
53
+
54
+ AuthenticationListMeParams = DemoApiScalarGalaxy::Models::AuthenticationListMeParams
55
+
56
+ CelestialBody = DemoApiScalarGalaxy::Models::CelestialBody
57
+
58
+ CelestialBodyCreateParams = DemoApiScalarGalaxy::Models::CelestialBodyCreateParams
59
+
60
+ NewPlanetWebhookEvent = DemoApiScalarGalaxy::Models::NewPlanetWebhookEvent
61
+
62
+ PaginatedResource = DemoApiScalarGalaxy::Models::PaginatedResource
63
+
64
+ Planet = DemoApiScalarGalaxy::Models::Planet
65
+
66
+ PlanetCreateParams = DemoApiScalarGalaxy::Models::PlanetCreateParams
67
+
68
+ PlanetDeleteParams = DemoApiScalarGalaxy::Models::PlanetDeleteParams
69
+
70
+ PlanetListParams = DemoApiScalarGalaxy::Models::PlanetListParams
71
+
72
+ PlanetRetrieveParams = DemoApiScalarGalaxy::Models::PlanetRetrieveParams
73
+
74
+ PlanetUpdateParams = DemoApiScalarGalaxy::Models::PlanetUpdateParams
75
+
76
+ PlanetUploadImageParams = DemoApiScalarGalaxy::Models::PlanetUploadImageParams
77
+
78
+ Satellite = DemoApiScalarGalaxy::Models::Satellite
79
+
80
+ Token = DemoApiScalarGalaxy::Models::Token
81
+
82
+ UnwrapWebhookEvent = DemoApiScalarGalaxy::Models::UnwrapWebhookEvent
83
+
84
+ User = DemoApiScalarGalaxy::Models::User
85
+
86
+ WebhookUnwrapParams = DemoApiScalarGalaxy::Models::WebhookUnwrapParams
87
+ end
@@ -0,0 +1,79 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DemoApiScalarGalaxy
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 < DemoApiScalarGalaxy::Internal::Type::BaseModel
10
+ # @api private
11
+ #
12
+ # @param opts [DemoApiScalarGalaxy::RequestOptions, Hash{Symbol=>Object}]
13
+ #
14
+ # @raise [ArgumentError]
15
+ def self.validate!(opts)
16
+ case opts
17
+ in DemoApiScalarGalaxy::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,
41
+ DemoApiScalarGalaxy::Internal::Type::HashOf[DemoApiScalarGalaxy::Internal::Type::ArrayOf[String]]
42
+
43
+ # @!attribute extra_headers
44
+ # Extra headers to send with the request. These are `.merged`’d into any
45
+ # `extra_headers` given at the client level.
46
+ #
47
+ # @return [Hash{String=>String, nil}, nil]
48
+ optional :extra_headers, DemoApiScalarGalaxy::Internal::Type::HashOf[String, nil?: true]
49
+
50
+ # @!attribute extra_body
51
+ # Extra data to send with the request. These are deep merged into any data
52
+ # generated as part of the normal request.
53
+ #
54
+ # @return [Object, nil]
55
+ optional :extra_body,
56
+ DemoApiScalarGalaxy::Internal::Type::HashOf[DemoApiScalarGalaxy::Internal::Type::Unknown]
57
+
58
+ # @!attribute max_retries
59
+ # Maximum number of retries to attempt after a failed initial request.
60
+ #
61
+ # @return [Integer, nil]
62
+ optional :max_retries, Integer
63
+
64
+ # @!attribute timeout
65
+ # Request timeout in seconds.
66
+ #
67
+ # @return [Float, nil]
68
+ optional :timeout, Float
69
+
70
+ # @!method initialize(values = {})
71
+ # Returns a new instance of RequestOptions.
72
+ #
73
+ # @param values [Hash{Symbol=>Object}]
74
+
75
+ define_sorbet_constant!(:OrHash) do
76
+ T.type_alias { T.any(DemoApiScalarGalaxy::RequestOptions, DemoApiScalarGalaxy::Internal::AnyHash) }
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,80 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DemoApiScalarGalaxy
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 [DemoApiScalarGalaxy::RequestOptions, Hash{Symbol=>Object}, nil]
16
+ #
17
+ # @return [DemoApiScalarGalaxy::Models::Token]
18
+ #
19
+ # @see DemoApiScalarGalaxy::Models::AuthenticationCreateTokenParams
20
+ def create_token(params)
21
+ parsed, options = DemoApiScalarGalaxy::AuthenticationCreateTokenParams.dump_request(params)
22
+ @client.request(
23
+ method: :post,
24
+ path: "auth/token",
25
+ body: parsed,
26
+ model: DemoApiScalarGalaxy::Token,
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 [DemoApiScalarGalaxy::RequestOptions, Hash{Symbol=>Object}, nil]
39
+ #
40
+ # @return [DemoApiScalarGalaxy::Models::User]
41
+ #
42
+ # @see DemoApiScalarGalaxy::Models::AuthenticationCreateUserParams
43
+ def create_user(params)
44
+ parsed, options = DemoApiScalarGalaxy::AuthenticationCreateUserParams.dump_request(params)
45
+ @client.request(
46
+ method: :post,
47
+ path: "user/signup",
48
+ body: parsed,
49
+ model: DemoApiScalarGalaxy::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 [DemoApiScalarGalaxy::RequestOptions, Hash{Symbol=>Object}, nil]
59
+ #
60
+ # @return [DemoApiScalarGalaxy::Models::User]
61
+ #
62
+ # @see DemoApiScalarGalaxy::Models::AuthenticationListMeParams
63
+ def list_me(params = {})
64
+ @client.request(
65
+ method: :get,
66
+ path: "me",
67
+ model: DemoApiScalarGalaxy::User,
68
+ options: params[:request_options]
69
+ )
70
+ end
71
+
72
+ # @api private
73
+ #
74
+ # @param client [DemoApiScalarGalaxy::Client]
75
+ def initialize(client:)
76
+ @client = client
77
+ end
78
+ end
79
+ end
80
+ end
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DemoApiScalarGalaxy
4
+ module Resources
5
+ # Celestial bodies are the planets and satellites in the Scalar Galaxy.
6
+ class CelestialBodies
7
+ # Create a celestial body
8
+ #
9
+ # @overload create(celestial_body:, request_options: {})
10
+ #
11
+ # @param celestial_body [DemoApiScalarGalaxy::Models::Planet, DemoApiScalarGalaxy::Models::Satellite]
12
+ # @param request_options [DemoApiScalarGalaxy::RequestOptions, Hash{Symbol=>Object}, nil]
13
+ #
14
+ # @return [DemoApiScalarGalaxy::Models::Planet, DemoApiScalarGalaxy::Models::Satellite]
15
+ #
16
+ # @see DemoApiScalarGalaxy::Models::CelestialBodyCreateParams
17
+ def create(params)
18
+ parsed, options = DemoApiScalarGalaxy::CelestialBodyCreateParams.dump_request(params)
19
+ @client.request(
20
+ method: :post,
21
+ path: "celestial-bodies",
22
+ body: parsed[:celestial_body],
23
+ model: DemoApiScalarGalaxy::CelestialBody,
24
+ options: options
25
+ )
26
+ end
27
+
28
+ # @api private
29
+ #
30
+ # @param client [DemoApiScalarGalaxy::Client]
31
+ def initialize(client:)
32
+ @client = client
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,215 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DemoApiScalarGalaxy
4
+ module Resources
5
+ # Everything about planets
6
+ class Planets
7
+ # Time to play god and create a new planet. What do you think? Ah, don't think too
8
+ # much. What could go wrong anyway?
9
+ #
10
+ # @overload create(id:, name:, type:, atmosphere: nil, creator: nil, description: nil, discovered_at: nil, failure_callback_url: nil, habitability_index: nil, image: nil, last_updated: nil, physical_properties: nil, satellites: nil, success_callback_url: nil, tags: nil, request_options: {})
11
+ #
12
+ # @param id [Integer]
13
+ #
14
+ # @param name [String]
15
+ #
16
+ # @param type [Symbol, DemoApiScalarGalaxy::Models::Planet::Type]
17
+ #
18
+ # @param atmosphere [Array<DemoApiScalarGalaxy::Models::Planet::Atmosphere>] Atmospheric composition
19
+ #
20
+ # @param creator [DemoApiScalarGalaxy::Models::User] A user
21
+ #
22
+ # @param description [String, nil]
23
+ #
24
+ # @param discovered_at [Time]
25
+ #
26
+ # @param failure_callback_url [String] URL which gets invoked upon a failed operation
27
+ #
28
+ # @param habitability_index [Float] A score from 0 to 1 indicating potential habitability
29
+ #
30
+ # @param image [String, nil]
31
+ #
32
+ # @param last_updated [Time]
33
+ #
34
+ # @param physical_properties [DemoApiScalarGalaxy::Models::Planet::PhysicalProperties]
35
+ #
36
+ # @param satellites [Array<DemoApiScalarGalaxy::Models::Satellite>]
37
+ #
38
+ # @param success_callback_url [String] URL which gets invoked upon a successful operation
39
+ #
40
+ # @param tags [Array<String>]
41
+ #
42
+ # @param request_options [DemoApiScalarGalaxy::RequestOptions, Hash{Symbol=>Object}, nil]
43
+ #
44
+ # @return [DemoApiScalarGalaxy::Models::Planet]
45
+ #
46
+ # @see DemoApiScalarGalaxy::Models::PlanetCreateParams
47
+ def create(params)
48
+ parsed, options = DemoApiScalarGalaxy::PlanetCreateParams.dump_request(params)
49
+ @client.request(
50
+ method: :post,
51
+ path: "planets",
52
+ body: parsed,
53
+ model: DemoApiScalarGalaxy::Planet,
54
+ options: options
55
+ )
56
+ end
57
+
58
+ # You'll better learn a little bit more about the planets. It might come in handy
59
+ # once space travel is available for everyone.
60
+ #
61
+ # @overload retrieve(planet_id, request_options: {})
62
+ #
63
+ # @param planet_id [Integer] The ID of the planet to get
64
+ #
65
+ # @param request_options [DemoApiScalarGalaxy::RequestOptions, Hash{Symbol=>Object}, nil]
66
+ #
67
+ # @return [DemoApiScalarGalaxy::Models::Planet]
68
+ #
69
+ # @see DemoApiScalarGalaxy::Models::PlanetRetrieveParams
70
+ def retrieve(planet_id, params = {})
71
+ @client.request(
72
+ method: :get,
73
+ path: ["planets/%1$s", planet_id],
74
+ model: DemoApiScalarGalaxy::Planet,
75
+ options: params[:request_options]
76
+ )
77
+ end
78
+
79
+ # Sometimes you make mistakes, that's fine. No worries, you can update all
80
+ # planets.
81
+ #
82
+ # @overload update(planet_id, id:, name:, type:, atmosphere: nil, creator: nil, description: nil, discovered_at: nil, failure_callback_url: nil, habitability_index: nil, image: nil, last_updated: nil, physical_properties: nil, satellites: nil, success_callback_url: nil, tags: nil, request_options: {})
83
+ #
84
+ # @param planet_id [Integer] The ID of the planet to get
85
+ #
86
+ # @param id [Integer]
87
+ #
88
+ # @param name [String]
89
+ #
90
+ # @param type [Symbol, DemoApiScalarGalaxy::Models::Planet::Type]
91
+ #
92
+ # @param atmosphere [Array<DemoApiScalarGalaxy::Models::Planet::Atmosphere>] Atmospheric composition
93
+ #
94
+ # @param creator [DemoApiScalarGalaxy::Models::User] A user
95
+ #
96
+ # @param description [String, nil]
97
+ #
98
+ # @param discovered_at [Time]
99
+ #
100
+ # @param failure_callback_url [String] URL which gets invoked upon a failed operation
101
+ #
102
+ # @param habitability_index [Float] A score from 0 to 1 indicating potential habitability
103
+ #
104
+ # @param image [String, nil]
105
+ #
106
+ # @param last_updated [Time]
107
+ #
108
+ # @param physical_properties [DemoApiScalarGalaxy::Models::Planet::PhysicalProperties]
109
+ #
110
+ # @param satellites [Array<DemoApiScalarGalaxy::Models::Satellite>]
111
+ #
112
+ # @param success_callback_url [String] URL which gets invoked upon a successful operation
113
+ #
114
+ # @param tags [Array<String>]
115
+ #
116
+ # @param request_options [DemoApiScalarGalaxy::RequestOptions, Hash{Symbol=>Object}, nil]
117
+ #
118
+ # @return [DemoApiScalarGalaxy::Models::Planet]
119
+ #
120
+ # @see DemoApiScalarGalaxy::Models::PlanetUpdateParams
121
+ def update(planet_id, params)
122
+ parsed, options = DemoApiScalarGalaxy::PlanetUpdateParams.dump_request(params)
123
+ @client.request(
124
+ method: :put,
125
+ path: ["planets/%1$s", planet_id],
126
+ body: parsed,
127
+ model: DemoApiScalarGalaxy::Planet,
128
+ options: options
129
+ )
130
+ end
131
+
132
+ # It's easy to say you know them all, but do you really? Retrieve all the planets
133
+ # and check whether you missed one.
134
+ #
135
+ # @overload list(limit: nil, offset: nil, request_options: {})
136
+ #
137
+ # @param limit [Integer] The number of items to return
138
+ #
139
+ # @param offset [Integer] The number of items to skip before starting to collect the result set
140
+ #
141
+ # @param request_options [DemoApiScalarGalaxy::RequestOptions, Hash{Symbol=>Object}, nil]
142
+ #
143
+ # @return [DemoApiScalarGalaxy::Models::PlanetListResponse]
144
+ #
145
+ # @see DemoApiScalarGalaxy::Models::PlanetListParams
146
+ def list(params = {})
147
+ parsed, options = DemoApiScalarGalaxy::PlanetListParams.dump_request(params)
148
+ query = DemoApiScalarGalaxy::Internal::Util.encode_query_params(parsed)
149
+ @client.request(
150
+ method: :get,
151
+ path: "planets",
152
+ query: query,
153
+ model: DemoApiScalarGalaxy::Models::PlanetListResponse,
154
+ options: options
155
+ )
156
+ end
157
+
158
+ # This endpoint was used to delete planets. Unfortunately, that caused a lot of
159
+ # trouble for planets with life. So, this endpoint is now deprecated and should
160
+ # not be used anymore.
161
+ #
162
+ # @overload delete(planet_id, request_options: {})
163
+ #
164
+ # @param planet_id [Integer] The ID of the planet to get
165
+ #
166
+ # @param request_options [DemoApiScalarGalaxy::RequestOptions, Hash{Symbol=>Object}, nil]
167
+ #
168
+ # @return [nil]
169
+ #
170
+ # @see DemoApiScalarGalaxy::Models::PlanetDeleteParams
171
+ def delete(planet_id, params = {})
172
+ @client.request(
173
+ method: :delete,
174
+ path: ["planets/%1$s", planet_id],
175
+ model: NilClass,
176
+ options: params[:request_options]
177
+ )
178
+ end
179
+
180
+ # Got a crazy good photo of a planet? Share it with the world!
181
+ #
182
+ # @overload upload_image(planet_id, image: nil, request_options: {})
183
+ #
184
+ # @param planet_id [Integer] The ID of the planet to get
185
+ #
186
+ # @param image [Pathname, StringIO, IO, String, DemoApiScalarGalaxy::FilePart] The image file to upload
187
+ #
188
+ # @param request_options [DemoApiScalarGalaxy::RequestOptions, Hash{Symbol=>Object}, nil]
189
+ #
190
+ # @return [DemoApiScalarGalaxy::Models::PlanetUploadImageResponse]
191
+ #
192
+ # @see DemoApiScalarGalaxy::Models::PlanetUploadImageParams
193
+ def upload_image(planet_id, params = {})
194
+ parsed, options = DemoApiScalarGalaxy::PlanetUploadImageParams.dump_request(params)
195
+ @client.request(
196
+ method: :post,
197
+ path: ["planets/%1$s/image", planet_id],
198
+ headers: {
199
+ "content-type" => "multipart/form-data"
200
+ },
201
+ body: parsed,
202
+ model: DemoApiScalarGalaxy::Models::PlanetUploadImageResponse,
203
+ options: options
204
+ )
205
+ end
206
+
207
+ # @api private
208
+ #
209
+ # @param client [DemoApiScalarGalaxy::Client]
210
+ def initialize(client:)
211
+ @client = client
212
+ end
213
+ end
214
+ end
215
+ end