openlayer 0.10.6 → 0.10.7

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 693c401df5cc5f3ab0562dbbac4d83595a67e9c27a6e1f732efabc3fb35f19e1
4
- data.tar.gz: 54af0253a77a65945481b0d14719a3685550a0e956099e67c893f5d7c6074a81
3
+ metadata.gz: ca38fff0598cdb15093a9635372a51d58af21739704cfcec3b4c1e6baad4889a
4
+ data.tar.gz: 9ba60d0632f90dcebf67426c592027a91ae68a9b83c8ee2923eb3de634a4dc87
5
5
  SHA512:
6
- metadata.gz: 3f914469bfc06b657757fed25c37e11c3436342d6a6d5a85f39fcc49ecff46aac9b6b7c32b09de01bfb931592905bb05655dcf24a8f02b0a371d8d11c40a7cd7
7
- data.tar.gz: 5ad764d18ac529b0f8768233dd45183ea8d04ca3893048fd8a940c0fa13cc6f4fce4a349ee382e1b10f4925164aee3a6179f349001028dfa2d60b3a6aa16b1fe
6
+ metadata.gz: af8b3ebb45bfa11fe5fea269046fd636208444c5e38ea99c1f4ba674642ae9e6834a5011ed94f22611add7f579ed97254abb3db32440b610b2082cd5a211e30d
7
+ data.tar.gz: eefccb2c93aa33096974f7597f6c88e2a882803de592559cbc768534274f8622141f324b8b2ab2088a09e725389a777ca0a693e76007c58d540101c96b9296f3
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.10.7 (2026-02-10)
4
+
5
+ Full Changelog: [v0.10.6...v0.10.7](https://github.com/openlayer-ai/openlayer-ruby/compare/v0.10.6...v0.10.7)
6
+
7
+ ### Chores
8
+
9
+ * **closes OPEN-8647:** add endpoint to retrieve aggregated user data for inference pipelines ([5442bcb](https://github.com/openlayer-ai/openlayer-ruby/commit/5442bcbd5b6ab56d618fd36a985a7d864b65e7ae))
10
+
3
11
  ## 0.10.6 (2026-02-07)
4
12
 
5
13
  Full Changelog: [v0.10.5...v0.10.6](https://github.com/openlayer-ai/openlayer-ruby/compare/v0.10.5...v0.10.6)
data/README.md CHANGED
@@ -17,7 +17,7 @@ To use this gem, install via Bundler by adding the following to your application
17
17
  <!-- x-release-please-start-version -->
18
18
 
19
19
  ```ruby
20
- gem "openlayer", "~> 0.10.6"
20
+ gem "openlayer", "~> 0.10.7"
21
21
  ```
22
22
 
23
23
  <!-- x-release-please-end -->
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Openlayer
4
+ module Models
5
+ # @see Openlayer::Resources::InferencePipelines#retrieve_users
6
+ class InferencePipelineRetrieveUsersParams < Openlayer::Internal::Type::BaseModel
7
+ extend Openlayer::Internal::Type::RequestParameters::Converter
8
+ include Openlayer::Internal::Type::RequestParameters
9
+
10
+ # @!attribute page
11
+ # The page to return in a paginated query.
12
+ #
13
+ # @return [Integer, nil]
14
+ optional :page, Integer
15
+
16
+ # @!attribute per_page
17
+ # Maximum number of items to return per page.
18
+ #
19
+ # @return [Integer, nil]
20
+ optional :per_page, Integer
21
+
22
+ # @!method initialize(page: nil, per_page: nil, request_options: {})
23
+ # @param page [Integer] The page to return in a paginated query.
24
+ #
25
+ # @param per_page [Integer] Maximum number of items to return per page.
26
+ #
27
+ # @param request_options [Openlayer::RequestOptions, Hash{Symbol=>Object}]
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,77 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Openlayer
4
+ module Models
5
+ # @see Openlayer::Resources::InferencePipelines#retrieve_users
6
+ class InferencePipelineRetrieveUsersResponse < Openlayer::Internal::Type::BaseModel
7
+ # @!attribute items
8
+ # Array of user aggregation data
9
+ #
10
+ # @return [Array<Openlayer::Models::InferencePipelineRetrieveUsersResponse::Item>]
11
+ required :items,
12
+ -> { Openlayer::Internal::Type::ArrayOf[Openlayer::Models::InferencePipelineRetrieveUsersResponse::Item] }
13
+
14
+ # @!method initialize(items:)
15
+ # @param items [Array<Openlayer::Models::InferencePipelineRetrieveUsersResponse::Item>] Array of user aggregation data
16
+
17
+ class Item < Openlayer::Internal::Type::BaseModel
18
+ # @!attribute id
19
+ # The unique user identifier
20
+ #
21
+ # @return [String]
22
+ required :id, String
23
+
24
+ # @!attribute cost
25
+ # Total cost for this user
26
+ #
27
+ # @return [Float]
28
+ required :cost, Float
29
+
30
+ # @!attribute date_of_first_record
31
+ # Timestamp of the user's first event/trace
32
+ #
33
+ # @return [Time]
34
+ required :date_of_first_record, Time, api_name: :dateOfFirstRecord
35
+
36
+ # @!attribute date_of_last_record
37
+ # Timestamp of the user's last event/trace
38
+ #
39
+ # @return [Time]
40
+ required :date_of_last_record, Time, api_name: :dateOfLastRecord
41
+
42
+ # @!attribute records
43
+ # Total number of traces/rows for this user
44
+ #
45
+ # @return [Integer]
46
+ required :records, Integer
47
+
48
+ # @!attribute sessions
49
+ # Count of unique sessions for this user
50
+ #
51
+ # @return [Integer]
52
+ required :sessions, Integer
53
+
54
+ # @!attribute tokens
55
+ # Total token count for this user
56
+ #
57
+ # @return [Float]
58
+ required :tokens, Float
59
+
60
+ # @!method initialize(id:, cost:, date_of_first_record:, date_of_last_record:, records:, sessions:, tokens:)
61
+ # @param id [String] The unique user identifier
62
+ #
63
+ # @param cost [Float] Total cost for this user
64
+ #
65
+ # @param date_of_first_record [Time] Timestamp of the user's first event/trace
66
+ #
67
+ # @param date_of_last_record [Time] Timestamp of the user's last event/trace
68
+ #
69
+ # @param records [Integer] Total number of traces/rows for this user
70
+ #
71
+ # @param sessions [Integer] Count of unique sessions for this user
72
+ #
73
+ # @param tokens [Float] Total token count for this user
74
+ end
75
+ end
76
+ end
77
+ end
@@ -47,6 +47,8 @@ module Openlayer
47
47
 
48
48
  InferencePipelineRetrieveParams = Openlayer::Models::InferencePipelineRetrieveParams
49
49
 
50
+ InferencePipelineRetrieveUsersParams = Openlayer::Models::InferencePipelineRetrieveUsersParams
51
+
50
52
  InferencePipelines = Openlayer::Models::InferencePipelines
51
53
 
52
54
  InferencePipelineUpdateParams = Openlayer::Models::InferencePipelineUpdateParams
@@ -87,6 +87,36 @@ module Openlayer
87
87
  )
88
88
  end
89
89
 
90
+ # Get aggregated user data for an inference pipeline with pagination and metadata.
91
+ #
92
+ # Returns a list of users who have interacted with the inference pipeline,
93
+ # including their activity statistics such as session counts, record counts, token
94
+ # usage, and costs.
95
+ #
96
+ # @overload retrieve_users(inference_pipeline_id, page: nil, per_page: nil, request_options: {})
97
+ #
98
+ # @param inference_pipeline_id [String] The inference pipeline id (a UUID).
99
+ #
100
+ # @param page [Integer] The page to return in a paginated query.
101
+ #
102
+ # @param per_page [Integer] Maximum number of items to return per page.
103
+ #
104
+ # @param request_options [Openlayer::RequestOptions, Hash{Symbol=>Object}, nil]
105
+ #
106
+ # @return [Openlayer::Models::InferencePipelineRetrieveUsersResponse]
107
+ #
108
+ # @see Openlayer::Models::InferencePipelineRetrieveUsersParams
109
+ def retrieve_users(inference_pipeline_id, params = {})
110
+ parsed, options = Openlayer::InferencePipelineRetrieveUsersParams.dump_request(params)
111
+ @client.request(
112
+ method: :get,
113
+ path: ["inference-pipelines/%1$s/users", inference_pipeline_id],
114
+ query: parsed.transform_keys(per_page: "perPage"),
115
+ model: Openlayer::Models::InferencePipelineRetrieveUsersResponse,
116
+ options: options
117
+ )
118
+ end
119
+
90
120
  # @api private
91
121
  #
92
122
  # @param client [Openlayer::Client]
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Openlayer
4
- VERSION = "0.10.6"
4
+ VERSION = "0.10.7"
5
5
  end
data/lib/openlayer.rb CHANGED
@@ -59,6 +59,8 @@ require_relative "openlayer/models/commits/test_result_list_response"
59
59
  require_relative "openlayer/models/inference_pipeline_delete_params"
60
60
  require_relative "openlayer/models/inference_pipeline_retrieve_params"
61
61
  require_relative "openlayer/models/inference_pipeline_retrieve_response"
62
+ require_relative "openlayer/models/inference_pipeline_retrieve_users_params"
63
+ require_relative "openlayer/models/inference_pipeline_retrieve_users_response"
62
64
  require_relative "openlayer/models/inference_pipelines/data_stream_params"
63
65
  require_relative "openlayer/models/inference_pipelines/data_stream_response"
64
66
  require_relative "openlayer/models/inference_pipelines/row_update_params"
@@ -0,0 +1,60 @@
1
+ # typed: strong
2
+
3
+ module Openlayer
4
+ module Models
5
+ class InferencePipelineRetrieveUsersParams < Openlayer::Internal::Type::BaseModel
6
+ extend Openlayer::Internal::Type::RequestParameters::Converter
7
+ include Openlayer::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(
12
+ Openlayer::InferencePipelineRetrieveUsersParams,
13
+ Openlayer::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # The page to return in a paginated query.
18
+ sig { returns(T.nilable(Integer)) }
19
+ attr_reader :page
20
+
21
+ sig { params(page: Integer).void }
22
+ attr_writer :page
23
+
24
+ # Maximum number of items to return per page.
25
+ sig { returns(T.nilable(Integer)) }
26
+ attr_reader :per_page
27
+
28
+ sig { params(per_page: Integer).void }
29
+ attr_writer :per_page
30
+
31
+ sig do
32
+ params(
33
+ page: Integer,
34
+ per_page: Integer,
35
+ request_options: Openlayer::RequestOptions::OrHash
36
+ ).returns(T.attached_class)
37
+ end
38
+ def self.new(
39
+ # The page to return in a paginated query.
40
+ page: nil,
41
+ # Maximum number of items to return per page.
42
+ per_page: nil,
43
+ request_options: {}
44
+ )
45
+ end
46
+
47
+ sig do
48
+ override.returns(
49
+ {
50
+ page: Integer,
51
+ per_page: Integer,
52
+ request_options: Openlayer::RequestOptions
53
+ }
54
+ )
55
+ end
56
+ def to_hash
57
+ end
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,135 @@
1
+ # typed: strong
2
+
3
+ module Openlayer
4
+ module Models
5
+ class InferencePipelineRetrieveUsersResponse < Openlayer::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Openlayer::Models::InferencePipelineRetrieveUsersResponse,
10
+ Openlayer::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # Array of user aggregation data
15
+ sig do
16
+ returns(
17
+ T::Array[
18
+ Openlayer::Models::InferencePipelineRetrieveUsersResponse::Item
19
+ ]
20
+ )
21
+ end
22
+ attr_accessor :items
23
+
24
+ sig do
25
+ params(
26
+ items:
27
+ T::Array[
28
+ Openlayer::Models::InferencePipelineRetrieveUsersResponse::Item::OrHash
29
+ ]
30
+ ).returns(T.attached_class)
31
+ end
32
+ def self.new(
33
+ # Array of user aggregation data
34
+ items:
35
+ )
36
+ end
37
+
38
+ sig do
39
+ override.returns(
40
+ {
41
+ items:
42
+ T::Array[
43
+ Openlayer::Models::InferencePipelineRetrieveUsersResponse::Item
44
+ ]
45
+ }
46
+ )
47
+ end
48
+ def to_hash
49
+ end
50
+
51
+ class Item < Openlayer::Internal::Type::BaseModel
52
+ OrHash =
53
+ T.type_alias do
54
+ T.any(
55
+ Openlayer::Models::InferencePipelineRetrieveUsersResponse::Item,
56
+ Openlayer::Internal::AnyHash
57
+ )
58
+ end
59
+
60
+ # The unique user identifier
61
+ sig { returns(String) }
62
+ attr_accessor :id
63
+
64
+ # Total cost for this user
65
+ sig { returns(Float) }
66
+ attr_accessor :cost
67
+
68
+ # Timestamp of the user's first event/trace
69
+ sig { returns(Time) }
70
+ attr_accessor :date_of_first_record
71
+
72
+ # Timestamp of the user's last event/trace
73
+ sig { returns(Time) }
74
+ attr_accessor :date_of_last_record
75
+
76
+ # Total number of traces/rows for this user
77
+ sig { returns(Integer) }
78
+ attr_accessor :records
79
+
80
+ # Count of unique sessions for this user
81
+ sig { returns(Integer) }
82
+ attr_accessor :sessions
83
+
84
+ # Total token count for this user
85
+ sig { returns(Float) }
86
+ attr_accessor :tokens
87
+
88
+ sig do
89
+ params(
90
+ id: String,
91
+ cost: Float,
92
+ date_of_first_record: Time,
93
+ date_of_last_record: Time,
94
+ records: Integer,
95
+ sessions: Integer,
96
+ tokens: Float
97
+ ).returns(T.attached_class)
98
+ end
99
+ def self.new(
100
+ # The unique user identifier
101
+ id:,
102
+ # Total cost for this user
103
+ cost:,
104
+ # Timestamp of the user's first event/trace
105
+ date_of_first_record:,
106
+ # Timestamp of the user's last event/trace
107
+ date_of_last_record:,
108
+ # Total number of traces/rows for this user
109
+ records:,
110
+ # Count of unique sessions for this user
111
+ sessions:,
112
+ # Total token count for this user
113
+ tokens:
114
+ )
115
+ end
116
+
117
+ sig do
118
+ override.returns(
119
+ {
120
+ id: String,
121
+ cost: Float,
122
+ date_of_first_record: Time,
123
+ date_of_last_record: Time,
124
+ records: Integer,
125
+ sessions: Integer,
126
+ tokens: Float
127
+ }
128
+ )
129
+ end
130
+ def to_hash
131
+ end
132
+ end
133
+ end
134
+ end
135
+ end
@@ -11,6 +11,9 @@ module Openlayer
11
11
  InferencePipelineRetrieveParams =
12
12
  Openlayer::Models::InferencePipelineRetrieveParams
13
13
 
14
+ InferencePipelineRetrieveUsersParams =
15
+ Openlayer::Models::InferencePipelineRetrieveUsersParams
16
+
14
17
  InferencePipelines = Openlayer::Models::InferencePipelines
15
18
 
16
19
  InferencePipelineUpdateParams =
@@ -70,6 +70,30 @@ module Openlayer
70
70
  )
71
71
  end
72
72
 
73
+ # Get aggregated user data for an inference pipeline with pagination and metadata.
74
+ #
75
+ # Returns a list of users who have interacted with the inference pipeline,
76
+ # including their activity statistics such as session counts, record counts, token
77
+ # usage, and costs.
78
+ sig do
79
+ params(
80
+ inference_pipeline_id: String,
81
+ page: Integer,
82
+ per_page: Integer,
83
+ request_options: Openlayer::RequestOptions::OrHash
84
+ ).returns(Openlayer::Models::InferencePipelineRetrieveUsersResponse)
85
+ end
86
+ def retrieve_users(
87
+ # The inference pipeline id (a UUID).
88
+ inference_pipeline_id,
89
+ # The page to return in a paginated query.
90
+ page: nil,
91
+ # Maximum number of items to return per page.
92
+ per_page: nil,
93
+ request_options: {}
94
+ )
95
+ end
96
+
73
97
  # @api private
74
98
  sig { params(client: Openlayer::Client).returns(T.attached_class) }
75
99
  def self.new(client:)
@@ -0,0 +1,32 @@
1
+ module Openlayer
2
+ module Models
3
+ type inference_pipeline_retrieve_users_params =
4
+ { page: Integer, per_page: Integer }
5
+ & Openlayer::Internal::Type::request_parameters
6
+
7
+ class InferencePipelineRetrieveUsersParams < Openlayer::Internal::Type::BaseModel
8
+ extend Openlayer::Internal::Type::RequestParameters::Converter
9
+ include Openlayer::Internal::Type::RequestParameters
10
+
11
+ attr_reader page: Integer?
12
+
13
+ def page=: (Integer) -> Integer
14
+
15
+ attr_reader per_page: Integer?
16
+
17
+ def per_page=: (Integer) -> Integer
18
+
19
+ def initialize: (
20
+ ?page: Integer,
21
+ ?per_page: Integer,
22
+ ?request_options: Openlayer::request_opts
23
+ ) -> void
24
+
25
+ def to_hash: -> {
26
+ page: Integer,
27
+ per_page: Integer,
28
+ request_options: Openlayer::RequestOptions
29
+ }
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,67 @@
1
+ module Openlayer
2
+ module Models
3
+ type inference_pipeline_retrieve_users_response =
4
+ {
5
+ items: ::Array[Openlayer::Models::InferencePipelineRetrieveUsersResponse::Item]
6
+ }
7
+
8
+ class InferencePipelineRetrieveUsersResponse < Openlayer::Internal::Type::BaseModel
9
+ attr_accessor items: ::Array[Openlayer::Models::InferencePipelineRetrieveUsersResponse::Item]
10
+
11
+ def initialize: (
12
+ items: ::Array[Openlayer::Models::InferencePipelineRetrieveUsersResponse::Item]
13
+ ) -> void
14
+
15
+ def to_hash: -> {
16
+ items: ::Array[Openlayer::Models::InferencePipelineRetrieveUsersResponse::Item]
17
+ }
18
+
19
+ type item =
20
+ {
21
+ id: String,
22
+ cost: Float,
23
+ date_of_first_record: Time,
24
+ date_of_last_record: Time,
25
+ records: Integer,
26
+ sessions: Integer,
27
+ tokens: Float
28
+ }
29
+
30
+ class Item < Openlayer::Internal::Type::BaseModel
31
+ attr_accessor id: String
32
+
33
+ attr_accessor cost: Float
34
+
35
+ attr_accessor date_of_first_record: Time
36
+
37
+ attr_accessor date_of_last_record: Time
38
+
39
+ attr_accessor records: Integer
40
+
41
+ attr_accessor sessions: Integer
42
+
43
+ attr_accessor tokens: Float
44
+
45
+ def initialize: (
46
+ id: String,
47
+ cost: Float,
48
+ date_of_first_record: Time,
49
+ date_of_last_record: Time,
50
+ records: Integer,
51
+ sessions: Integer,
52
+ tokens: Float
53
+ ) -> void
54
+
55
+ def to_hash: -> {
56
+ id: String,
57
+ cost: Float,
58
+ date_of_first_record: Time,
59
+ date_of_last_record: Time,
60
+ records: Integer,
61
+ sessions: Integer,
62
+ tokens: Float
63
+ }
64
+ end
65
+ end
66
+ end
67
+ end
@@ -7,6 +7,8 @@ module Openlayer
7
7
 
8
8
  class InferencePipelineRetrieveParams = Openlayer::Models::InferencePipelineRetrieveParams
9
9
 
10
+ class InferencePipelineRetrieveUsersParams = Openlayer::Models::InferencePipelineRetrieveUsersParams
11
+
10
12
  module InferencePipelines = Openlayer::Models::InferencePipelines
11
13
 
12
14
  class InferencePipelineUpdateParams = Openlayer::Models::InferencePipelineUpdateParams
@@ -26,6 +26,13 @@ module Openlayer
26
26
  ?request_options: Openlayer::request_opts
27
27
  ) -> nil
28
28
 
29
+ def retrieve_users: (
30
+ String inference_pipeline_id,
31
+ ?page: Integer,
32
+ ?per_page: Integer,
33
+ ?request_options: Openlayer::request_opts
34
+ ) -> Openlayer::Models::InferencePipelineRetrieveUsersResponse
35
+
29
36
  def initialize: (client: Openlayer::Client) -> void
30
37
  end
31
38
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openlayer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.6
4
+ version: 0.10.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Openlayer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-02-09 00:00:00.000000000 Z
11
+ date: 2026-02-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cgi
@@ -77,6 +77,8 @@ files:
77
77
  - lib/openlayer/models/inference_pipeline_delete_params.rb
78
78
  - lib/openlayer/models/inference_pipeline_retrieve_params.rb
79
79
  - lib/openlayer/models/inference_pipeline_retrieve_response.rb
80
+ - lib/openlayer/models/inference_pipeline_retrieve_users_params.rb
81
+ - lib/openlayer/models/inference_pipeline_retrieve_users_response.rb
80
82
  - lib/openlayer/models/inference_pipeline_update_params.rb
81
83
  - lib/openlayer/models/inference_pipeline_update_response.rb
82
84
  - lib/openlayer/models/inference_pipelines/data_stream_params.rb
@@ -167,6 +169,8 @@ files:
167
169
  - rbi/openlayer/models/inference_pipeline_delete_params.rbi
168
170
  - rbi/openlayer/models/inference_pipeline_retrieve_params.rbi
169
171
  - rbi/openlayer/models/inference_pipeline_retrieve_response.rbi
172
+ - rbi/openlayer/models/inference_pipeline_retrieve_users_params.rbi
173
+ - rbi/openlayer/models/inference_pipeline_retrieve_users_response.rbi
170
174
  - rbi/openlayer/models/inference_pipeline_update_params.rbi
171
175
  - rbi/openlayer/models/inference_pipeline_update_response.rbi
172
176
  - rbi/openlayer/models/inference_pipelines/data_stream_params.rbi
@@ -254,6 +258,8 @@ files:
254
258
  - sig/openlayer/models/inference_pipeline_delete_params.rbs
255
259
  - sig/openlayer/models/inference_pipeline_retrieve_params.rbs
256
260
  - sig/openlayer/models/inference_pipeline_retrieve_response.rbs
261
+ - sig/openlayer/models/inference_pipeline_retrieve_users_params.rbs
262
+ - sig/openlayer/models/inference_pipeline_retrieve_users_response.rbs
257
263
  - sig/openlayer/models/inference_pipeline_update_params.rbs
258
264
  - sig/openlayer/models/inference_pipeline_update_response.rbs
259
265
  - sig/openlayer/models/inference_pipelines/data_stream_params.rbs