// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. package log10go import ( "context" "fmt" "github.com/log10-io/log10go/internal/globals" "github.com/log10-io/log10go/internal/hooks" "github.com/log10-io/log10go/internal/utils" "github.com/log10-io/log10go/models/components" "net/http" "time" ) // ServerList contains the list of servers available to the SDK var ServerList = []string{ "https://log10.io", } // HTTPClient provides an interface for suplying the SDK with a custom HTTP client type HTTPClient interface { Do(req *http.Request) (*http.Response, error) } // String provides a helper function to return a pointer to a string func String(s string) *string { return &s } // Bool provides a helper function to return a pointer to a bool func Bool(b bool) *bool { return &b } // Int provides a helper function to return a pointer to an int func Int(i int) *int { return &i } // Int64 provides a helper function to return a pointer to an int64 func Int64(i int64) *int64 { return &i } // Float32 provides a helper function to return a pointer to a float32 func Float32(f float32) *float32 { return &f } // Float64 provides a helper function to return a pointer to a float64 func Float64(f float64) *float64 { return &f } type sdkConfiguration struct { Client HTTPClient Security func(context.Context) (interface{}, error) ServerURL string ServerIndex int Language string OpenAPIDocVersion string SDKVersion string GenVersion string UserAgent string Globals globals.Globals RetryConfig *utils.RetryConfig Hooks *hooks.Hooks } func (c *sdkConfiguration) GetServerDetails() (string, map[string]string) { if c.ServerURL != "" { return c.ServerURL, nil } return ServerList[c.ServerIndex], nil } // Log10 Feedback API Spec: Log10 Feedback API Spec type Log10 struct { // Completions Completions *Completions // Sessions Sessions *Sessions // Feedback Feedback *Feedback // FeedbackTasks FeedbackTasks *FeedbackTasks sdkConfiguration sdkConfiguration } type SDKOption func(*Log10) // WithServerURL allows the overriding of the default server URL func WithServerURL(serverURL string) SDKOption { return func(sdk *Log10) { sdk.sdkConfiguration.ServerURL = serverURL } } // WithTemplatedServerURL allows the overriding of the default server URL with a templated URL populated with the provided parameters func WithTemplatedServerURL(serverURL string, params map[string]string) SDKOption { return func(sdk *Log10) { if params != nil { serverURL = utils.ReplaceParameters(serverURL, params) } sdk.sdkConfiguration.ServerURL = serverURL } } // WithServerIndex allows the overriding of the default server by index func WithServerIndex(serverIndex int) SDKOption { return func(sdk *Log10) { if serverIndex < 0 || serverIndex >= len(ServerList) { panic(fmt.Errorf("server index %d out of range", serverIndex)) } sdk.sdkConfiguration.ServerIndex = serverIndex } } // WithClient allows the overriding of the default HTTP client used by the SDK func WithClient(client HTTPClient) SDKOption { return func(sdk *Log10) { sdk.sdkConfiguration.Client = client } } // WithSecurity configures the SDK to use the provided security details func WithSecurity(log10Token string) SDKOption { return func(sdk *Log10) { security := components.Security{Log10Token: &log10Token} sdk.sdkConfiguration.Security = utils.AsSecuritySource(&security) } } // WithSecuritySource configures the SDK to invoke the Security Source function on each method call to determine authentication func WithSecuritySource(security func(context.Context) (components.Security, error)) SDKOption { return func(sdk *Log10) { sdk.sdkConfiguration.Security = func(ctx context.Context) (interface{}, error) { return security(ctx) } } } // WithXLog10Organization allows setting the XLog10Organization parameter for all supported operations func WithXLog10Organization(xLog10Organization string) SDKOption { return func(sdk *Log10) { sdk.sdkConfiguration.Globals.XLog10Organization = &xLog10Organization } } func WithRetryConfig(retryConfig utils.RetryConfig) SDKOption { return func(sdk *Log10) { sdk.sdkConfiguration.RetryConfig = &retryConfig } } // New creates a new instance of the SDK with the provided options func New(opts ...SDKOption) *Log10 { sdk := &Log10{ sdkConfiguration: sdkConfiguration{ Language: "go", OpenAPIDocVersion: "1.0.0", SDKVersion: "0.0.2", GenVersion: "2.349.6", UserAgent: "speakeasy-sdk/go 0.0.2 2.349.6 1.0.0 github.com/log10-io/log10go", Globals: globals.Globals{}, Hooks: hooks.New(), }, } for _, opt := range opts { opt(sdk) } // Use WithClient to override the default client if you would like to customize the timeout if sdk.sdkConfiguration.Client == nil { sdk.sdkConfiguration.Client = &http.Client{Timeout: 60 * time.Second} } currentServerURL, _ := sdk.sdkConfiguration.GetServerDetails() serverURL := currentServerURL serverURL, sdk.sdkConfiguration.Client = sdk.sdkConfiguration.Hooks.SDKInit(currentServerURL, sdk.sdkConfiguration.Client) if serverURL != currentServerURL { sdk.sdkConfiguration.ServerURL = serverURL } sdk.Completions = newCompletions(sdk.sdkConfiguration) sdk.Sessions = newSessions(sdk.sdkConfiguration) sdk.Feedback = newFeedback(sdk.sdkConfiguration) sdk.FeedbackTasks = newFeedbackTasks(sdk.sdkConfiguration) return sdk }