// Code generated by Fern. DO NOT EDIT.

package client

import (
    annotationqueues "pentagi/pkg/observability/langfuse/api/annotationqueues"
    blobstorageintegrations "pentagi/pkg/observability/langfuse/api/blobstorageintegrations"
    comments "pentagi/pkg/observability/langfuse/api/comments"
    datasetitems "pentagi/pkg/observability/langfuse/api/datasetitems"
    datasetrunitems "pentagi/pkg/observability/langfuse/api/datasetrunitems"
    datasets "pentagi/pkg/observability/langfuse/api/datasets"
    health "pentagi/pkg/observability/langfuse/api/health"
    ingestion "pentagi/pkg/observability/langfuse/api/ingestion"
    llmconnections "pentagi/pkg/observability/langfuse/api/llmconnections"
    media "pentagi/pkg/observability/langfuse/api/media"
    metricsv2 "pentagi/pkg/observability/langfuse/api/metricsv2"
    metrics "pentagi/pkg/observability/langfuse/api/metrics"
    models "pentagi/pkg/observability/langfuse/api/models"
    observationsv2 "pentagi/pkg/observability/langfuse/api/observationsv2"
    observations "pentagi/pkg/observability/langfuse/api/observations"
    opentelemetry "pentagi/pkg/observability/langfuse/api/opentelemetry"
    organizations "pentagi/pkg/observability/langfuse/api/organizations"
    projects "pentagi/pkg/observability/langfuse/api/projects"
    promptversion "pentagi/pkg/observability/langfuse/api/promptversion"
    prompts "pentagi/pkg/observability/langfuse/api/prompts"
    scim "pentagi/pkg/observability/langfuse/api/scim"
    scoreconfigs "pentagi/pkg/observability/langfuse/api/scoreconfigs"
    scorev2 "pentagi/pkg/observability/langfuse/api/scorev2"
    score "pentagi/pkg/observability/langfuse/api/score"
    sessions "pentagi/pkg/observability/langfuse/api/sessions"
    trace "pentagi/pkg/observability/langfuse/api/trace"
    core "pentagi/pkg/observability/langfuse/api/core"
    internal "pentagi/pkg/observability/langfuse/api/internal"
    option "pentagi/pkg/observability/langfuse/api/option"
)


type Client struct {
    Annotationqueues *annotationqueues.Client
    Blobstorageintegrations *blobstorageintegrations.Client
    Comments *comments.Client
    Datasetitems *datasetitems.Client
    Datasetrunitems *datasetrunitems.Client
    Datasets *datasets.Client
    Health *health.Client
    Ingestion *ingestion.Client
    Llmconnections *llmconnections.Client
    Media *media.Client
    Metricsv2 *metricsv2.Client
    Metrics *metrics.Client
    Models *models.Client
    Observationsv2 *observationsv2.Client
    Observations *observations.Client
    Opentelemetry *opentelemetry.Client
    Organizations *organizations.Client
    Projects *projects.Client
    Promptversion *promptversion.Client
    Prompts *prompts.Client
    SCIM *scim.Client
    Scoreconfigs *scoreconfigs.Client
    Scorev2 *scorev2.Client
    Score *score.Client
    Sessions *sessions.Client
    Trace *trace.Client

    options *core.RequestOptions
    baseURL string
    caller *internal.Caller
}

func NewClient(opts ...option.RequestOption) *Client {
    options := core.NewRequestOptions(opts...)
    return &Client{
        Annotationqueues: annotationqueues.NewClient(options),
        Blobstorageintegrations: blobstorageintegrations.NewClient(options),
        Comments: comments.NewClient(options),
        Datasetitems: datasetitems.NewClient(options),
        Datasetrunitems: datasetrunitems.NewClient(options),
        Datasets: datasets.NewClient(options),
        Health: health.NewClient(options),
        Ingestion: ingestion.NewClient(options),
        Llmconnections: llmconnections.NewClient(options),
        Media: media.NewClient(options),
        Metricsv2: metricsv2.NewClient(options),
        Metrics: metrics.NewClient(options),
        Models: models.NewClient(options),
        Observationsv2: observationsv2.NewClient(options),
        Observations: observations.NewClient(options),
        Opentelemetry: opentelemetry.NewClient(options),
        Organizations: organizations.NewClient(options),
        Projects: projects.NewClient(options),
        Promptversion: promptversion.NewClient(options),
        Prompts: prompts.NewClient(options),
        SCIM: scim.NewClient(options),
        Scoreconfigs: scoreconfigs.NewClient(options),
        Scorev2: scorev2.NewClient(options),
        Score: score.NewClient(options),
        Sessions: sessions.NewClient(options),
        Trace: trace.NewClient(options),
        options: options,
        baseURL: options.BaseURL,
        caller: internal.NewCaller(
            &internal.CallerParams{
                Client: options.HTTPClient,
                MaxAttempts: options.MaxAttempts,
            },
        ),
    }
}

