@@ -82,6 +82,22 @@ func (r *InferencePipelineService) Delete(ctx context.Context, inferencePipeline
8282 return
8383}
8484
85+ // Get aggregated user data for an inference pipeline with pagination and metadata.
86+ //
87+ // Returns a list of users who have interacted with the inference pipeline,
88+ // including their activity statistics such as session counts, record counts, token
89+ // usage, and costs.
90+ func (r * InferencePipelineService ) GetUsers (ctx context.Context , inferencePipelineID string , query InferencePipelineGetUsersParams , opts ... option.RequestOption ) (res * InferencePipelineGetUsersResponse , err error ) {
91+ opts = slices .Concat (r .Options , opts )
92+ if inferencePipelineID == "" {
93+ err = errors .New ("missing required inferencePipelineId parameter" )
94+ return
95+ }
96+ path := fmt .Sprintf ("inference-pipelines/%s/users" , inferencePipelineID )
97+ err = requestconfig .ExecuteNewRequest (ctx , http .MethodGet , path , query , & res , opts ... )
98+ return
99+ }
100+
85101type InferencePipelineGetResponse struct {
86102 // The inference pipeline id.
87103 ID string `json:"id,required" format:"uuid"`
@@ -2075,6 +2091,68 @@ func (r inferencePipelineUpdateResponseWorkspaceMonthlyUsageJSON) RawJSON() stri
20752091 return r .raw
20762092}
20772093
2094+ type InferencePipelineGetUsersResponse struct {
2095+ // Array of user aggregation data
2096+ Items []InferencePipelineGetUsersResponseItem `json:"items,required"`
2097+ JSON inferencePipelineGetUsersResponseJSON `json:"-"`
2098+ }
2099+
2100+ // inferencePipelineGetUsersResponseJSON contains the JSON metadata for the struct
2101+ // [InferencePipelineGetUsersResponse]
2102+ type inferencePipelineGetUsersResponseJSON struct {
2103+ Items apijson.Field
2104+ raw string
2105+ ExtraFields map [string ]apijson.Field
2106+ }
2107+
2108+ func (r * InferencePipelineGetUsersResponse ) UnmarshalJSON (data []byte ) (err error ) {
2109+ return apijson .UnmarshalRoot (data , r )
2110+ }
2111+
2112+ func (r inferencePipelineGetUsersResponseJSON ) RawJSON () string {
2113+ return r .raw
2114+ }
2115+
2116+ type InferencePipelineGetUsersResponseItem struct {
2117+ // The unique user identifier
2118+ ID string `json:"id,required"`
2119+ // Total cost for this user
2120+ Cost float64 `json:"cost,required"`
2121+ // Timestamp of the user's first event/trace
2122+ DateOfFirstRecord time.Time `json:"dateOfFirstRecord,required" format:"date-time"`
2123+ // Timestamp of the user's last event/trace
2124+ DateOfLastRecord time.Time `json:"dateOfLastRecord,required" format:"date-time"`
2125+ // Total number of traces/rows for this user
2126+ Records int64 `json:"records,required"`
2127+ // Count of unique sessions for this user
2128+ Sessions int64 `json:"sessions,required"`
2129+ // Total token count for this user
2130+ Tokens float64 `json:"tokens,required"`
2131+ JSON inferencePipelineGetUsersResponseItemJSON `json:"-"`
2132+ }
2133+
2134+ // inferencePipelineGetUsersResponseItemJSON contains the JSON metadata for the
2135+ // struct [InferencePipelineGetUsersResponseItem]
2136+ type inferencePipelineGetUsersResponseItemJSON struct {
2137+ ID apijson.Field
2138+ Cost apijson.Field
2139+ DateOfFirstRecord apijson.Field
2140+ DateOfLastRecord apijson.Field
2141+ Records apijson.Field
2142+ Sessions apijson.Field
2143+ Tokens apijson.Field
2144+ raw string
2145+ ExtraFields map [string ]apijson.Field
2146+ }
2147+
2148+ func (r * InferencePipelineGetUsersResponseItem ) UnmarshalJSON (data []byte ) (err error ) {
2149+ return apijson .UnmarshalRoot (data , r )
2150+ }
2151+
2152+ func (r inferencePipelineGetUsersResponseItemJSON ) RawJSON () string {
2153+ return r .raw
2154+ }
2155+
20782156type InferencePipelineGetParams struct {
20792157 // Expand specific nested objects.
20802158 Expand param.Field [[]InferencePipelineGetParamsExpand ] `query:"expand"`
@@ -2117,3 +2195,19 @@ type InferencePipelineUpdateParams struct {
21172195func (r InferencePipelineUpdateParams ) MarshalJSON () (data []byte , err error ) {
21182196 return apijson .MarshalRoot (r )
21192197}
2198+
2199+ type InferencePipelineGetUsersParams struct {
2200+ // The page to return in a paginated query.
2201+ Page param.Field [int64 ] `query:"page"`
2202+ // Maximum number of items to return per page.
2203+ PerPage param.Field [int64 ] `query:"perPage"`
2204+ }
2205+
2206+ // URLQuery serializes [InferencePipelineGetUsersParams]'s query parameters as
2207+ // `url.Values`.
2208+ func (r InferencePipelineGetUsersParams ) URLQuery () (v url.Values ) {
2209+ return apiquery .MarshalWithSettings (r , apiquery.QuerySettings {
2210+ ArrayFormat : apiquery .ArrayQueryFormatComma ,
2211+ NestedFormat : apiquery .NestedQueryFormatBrackets ,
2212+ })
2213+ }
0 commit comments