mirror of
https://github.com/sst/opencode.git
synced 2025-08-31 18:27:22 +00:00
1793 lines
54 KiB
Go
1793 lines
54 KiB
Go
// Package client provides primitives to interact with the openapi HTTP API.
|
|
//
|
|
// Code generated by github.com/oapi-codegen/oapi-codegen/v2 version v2.4.1 DO NOT EDIT.
|
|
package client
|
|
|
|
import (
|
|
"bytes"
|
|
"context"
|
|
"encoding/json"
|
|
"errors"
|
|
"fmt"
|
|
"io"
|
|
"net/http"
|
|
"net/url"
|
|
"strings"
|
|
|
|
"github.com/oapi-codegen/runtime"
|
|
)
|
|
|
|
// Defines values for MessageInfoRole.
|
|
const (
|
|
Assistant MessageInfoRole = "assistant"
|
|
System MessageInfoRole = "system"
|
|
User MessageInfoRole = "user"
|
|
)
|
|
|
|
// Event defines model for Event.
|
|
type Event struct {
|
|
union json.RawMessage
|
|
}
|
|
|
|
// EventLspClientDiagnostics defines model for Event.lsp.client.diagnostics.
|
|
type EventLspClientDiagnostics struct {
|
|
Properties struct {
|
|
Path string `json:"path"`
|
|
ServerID string `json:"serverID"`
|
|
} `json:"properties"`
|
|
Type string `json:"type"`
|
|
}
|
|
|
|
// EventMessageUpdated defines model for Event.message.updated.
|
|
type EventMessageUpdated struct {
|
|
Properties struct {
|
|
Info MessageInfo `json:"info"`
|
|
} `json:"properties"`
|
|
Type string `json:"type"`
|
|
}
|
|
|
|
// EventSessionUpdated defines model for Event.session.updated.
|
|
type EventSessionUpdated struct {
|
|
Properties struct {
|
|
Info SessionInfo `json:"info"`
|
|
} `json:"properties"`
|
|
Type string `json:"type"`
|
|
}
|
|
|
|
// EventStorageWrite defines model for Event.storage.write.
|
|
type EventStorageWrite struct {
|
|
Properties struct {
|
|
Content *interface{} `json:"content,omitempty"`
|
|
Key string `json:"key"`
|
|
} `json:"properties"`
|
|
Type string `json:"type"`
|
|
}
|
|
|
|
// MessageInfo defines model for Message.Info.
|
|
type MessageInfo struct {
|
|
Id string `json:"id"`
|
|
Metadata struct {
|
|
Assistant *struct {
|
|
Cost float32 `json:"cost"`
|
|
ModelID string `json:"modelID"`
|
|
ProviderID string `json:"providerID"`
|
|
Tokens struct {
|
|
Input float32 `json:"input"`
|
|
Output float32 `json:"output"`
|
|
Reasoning float32 `json:"reasoning"`
|
|
} `json:"tokens"`
|
|
} `json:"assistant,omitempty"`
|
|
SessionID string `json:"sessionID"`
|
|
Time struct {
|
|
Completed *float32 `json:"completed,omitempty"`
|
|
Created float32 `json:"created"`
|
|
} `json:"time"`
|
|
Tool map[string]interface{} `json:"tool"`
|
|
} `json:"metadata"`
|
|
Parts []MessagePart `json:"parts"`
|
|
Role MessageInfoRole `json:"role"`
|
|
}
|
|
|
|
// MessageInfoRole defines model for MessageInfo.Role.
|
|
type MessageInfoRole string
|
|
|
|
// MessagePart defines model for Message.Part.
|
|
type MessagePart struct {
|
|
union json.RawMessage
|
|
}
|
|
|
|
// MessagePartFile defines model for Message.Part.File.
|
|
type MessagePartFile struct {
|
|
Filename *string `json:"filename,omitempty"`
|
|
MediaType string `json:"mediaType"`
|
|
Type string `json:"type"`
|
|
Url string `json:"url"`
|
|
}
|
|
|
|
// MessagePartReasoning defines model for Message.Part.Reasoning.
|
|
type MessagePartReasoning struct {
|
|
ProviderMetadata *map[string]interface{} `json:"providerMetadata,omitempty"`
|
|
Text string `json:"text"`
|
|
Type string `json:"type"`
|
|
}
|
|
|
|
// MessagePartSourceUrl defines model for Message.Part.SourceUrl.
|
|
type MessagePartSourceUrl struct {
|
|
ProviderMetadata *map[string]interface{} `json:"providerMetadata,omitempty"`
|
|
SourceId string `json:"sourceId"`
|
|
Title *string `json:"title,omitempty"`
|
|
Type string `json:"type"`
|
|
Url string `json:"url"`
|
|
}
|
|
|
|
// MessagePartStepStart defines model for Message.Part.StepStart.
|
|
type MessagePartStepStart struct {
|
|
Type string `json:"type"`
|
|
}
|
|
|
|
// MessagePartText defines model for Message.Part.Text.
|
|
type MessagePartText struct {
|
|
Text string `json:"text"`
|
|
Type string `json:"type"`
|
|
}
|
|
|
|
// MessagePartToolInvocation defines model for Message.Part.ToolInvocation.
|
|
type MessagePartToolInvocation struct {
|
|
ToolInvocation MessageToolInvocation `json:"toolInvocation"`
|
|
Type string `json:"type"`
|
|
}
|
|
|
|
// MessageToolInvocation defines model for Message.ToolInvocation.
|
|
type MessageToolInvocation struct {
|
|
union json.RawMessage
|
|
}
|
|
|
|
// MessageToolInvocationToolCall defines model for Message.ToolInvocation.ToolCall.
|
|
type MessageToolInvocationToolCall struct {
|
|
Args *interface{} `json:"args,omitempty"`
|
|
State string `json:"state"`
|
|
Step *float32 `json:"step,omitempty"`
|
|
ToolCallId string `json:"toolCallId"`
|
|
ToolName string `json:"toolName"`
|
|
}
|
|
|
|
// MessageToolInvocationToolPartialCall defines model for Message.ToolInvocation.ToolPartialCall.
|
|
type MessageToolInvocationToolPartialCall struct {
|
|
Args *interface{} `json:"args,omitempty"`
|
|
State string `json:"state"`
|
|
Step *float32 `json:"step,omitempty"`
|
|
ToolCallId string `json:"toolCallId"`
|
|
ToolName string `json:"toolName"`
|
|
}
|
|
|
|
// MessageToolInvocationToolResult defines model for Message.ToolInvocation.ToolResult.
|
|
type MessageToolInvocationToolResult struct {
|
|
Args *interface{} `json:"args,omitempty"`
|
|
Result string `json:"result"`
|
|
State string `json:"state"`
|
|
Step *float32 `json:"step,omitempty"`
|
|
ToolCallId string `json:"toolCallId"`
|
|
ToolName string `json:"toolName"`
|
|
}
|
|
|
|
// ProviderInfo defines model for Provider.Info.
|
|
type ProviderInfo struct {
|
|
Models map[string]ProviderModel `json:"models"`
|
|
Options *map[string]interface{} `json:"options,omitempty"`
|
|
}
|
|
|
|
// ProviderModel defines model for Provider.Model.
|
|
type ProviderModel struct {
|
|
Attachment bool `json:"attachment"`
|
|
ContextWindow float32 `json:"contextWindow"`
|
|
Cost struct {
|
|
Input float32 `json:"input"`
|
|
InputCached float32 `json:"inputCached"`
|
|
Output float32 `json:"output"`
|
|
OutputCached float32 `json:"outputCached"`
|
|
} `json:"cost"`
|
|
MaxTokens *float32 `json:"maxTokens,omitempty"`
|
|
Name *string `json:"name,omitempty"`
|
|
Reasoning *bool `json:"reasoning,omitempty"`
|
|
}
|
|
|
|
// SessionInfo defines model for session.info.
|
|
type SessionInfo struct {
|
|
Id string `json:"id"`
|
|
ShareID *string `json:"shareID,omitempty"`
|
|
Title string `json:"title"`
|
|
}
|
|
|
|
// PostSessionAbortJSONBody defines parameters for PostSessionAbort.
|
|
type PostSessionAbortJSONBody struct {
|
|
SessionID string `json:"sessionID"`
|
|
}
|
|
|
|
// PostSessionChatJSONBody defines parameters for PostSessionChat.
|
|
type PostSessionChatJSONBody struct {
|
|
ModelID string `json:"modelID"`
|
|
Parts []MessagePart `json:"parts"`
|
|
ProviderID string `json:"providerID"`
|
|
SessionID string `json:"sessionID"`
|
|
}
|
|
|
|
// PostSessionMessagesJSONBody defines parameters for PostSessionMessages.
|
|
type PostSessionMessagesJSONBody struct {
|
|
SessionID string `json:"sessionID"`
|
|
}
|
|
|
|
// PostSessionShareJSONBody defines parameters for PostSessionShare.
|
|
type PostSessionShareJSONBody struct {
|
|
SessionID string `json:"sessionID"`
|
|
}
|
|
|
|
// PostSessionAbortJSONRequestBody defines body for PostSessionAbort for application/json ContentType.
|
|
type PostSessionAbortJSONRequestBody PostSessionAbortJSONBody
|
|
|
|
// PostSessionChatJSONRequestBody defines body for PostSessionChat for application/json ContentType.
|
|
type PostSessionChatJSONRequestBody PostSessionChatJSONBody
|
|
|
|
// PostSessionMessagesJSONRequestBody defines body for PostSessionMessages for application/json ContentType.
|
|
type PostSessionMessagesJSONRequestBody PostSessionMessagesJSONBody
|
|
|
|
// PostSessionShareJSONRequestBody defines body for PostSessionShare for application/json ContentType.
|
|
type PostSessionShareJSONRequestBody PostSessionShareJSONBody
|
|
|
|
// AsEventStorageWrite returns the union data inside the Event as a EventStorageWrite
|
|
func (t Event) AsEventStorageWrite() (EventStorageWrite, error) {
|
|
var body EventStorageWrite
|
|
err := json.Unmarshal(t.union, &body)
|
|
return body, err
|
|
}
|
|
|
|
// FromEventStorageWrite overwrites any union data inside the Event as the provided EventStorageWrite
|
|
func (t *Event) FromEventStorageWrite(v EventStorageWrite) error {
|
|
v.Type = "storage.write"
|
|
b, err := json.Marshal(v)
|
|
t.union = b
|
|
return err
|
|
}
|
|
|
|
// MergeEventStorageWrite performs a merge with any union data inside the Event, using the provided EventStorageWrite
|
|
func (t *Event) MergeEventStorageWrite(v EventStorageWrite) error {
|
|
v.Type = "storage.write"
|
|
b, err := json.Marshal(v)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
merged, err := runtime.JSONMerge(t.union, b)
|
|
t.union = merged
|
|
return err
|
|
}
|
|
|
|
// AsEventLspClientDiagnostics returns the union data inside the Event as a EventLspClientDiagnostics
|
|
func (t Event) AsEventLspClientDiagnostics() (EventLspClientDiagnostics, error) {
|
|
var body EventLspClientDiagnostics
|
|
err := json.Unmarshal(t.union, &body)
|
|
return body, err
|
|
}
|
|
|
|
// FromEventLspClientDiagnostics overwrites any union data inside the Event as the provided EventLspClientDiagnostics
|
|
func (t *Event) FromEventLspClientDiagnostics(v EventLspClientDiagnostics) error {
|
|
v.Type = "lsp.client.diagnostics"
|
|
b, err := json.Marshal(v)
|
|
t.union = b
|
|
return err
|
|
}
|
|
|
|
// MergeEventLspClientDiagnostics performs a merge with any union data inside the Event, using the provided EventLspClientDiagnostics
|
|
func (t *Event) MergeEventLspClientDiagnostics(v EventLspClientDiagnostics) error {
|
|
v.Type = "lsp.client.diagnostics"
|
|
b, err := json.Marshal(v)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
merged, err := runtime.JSONMerge(t.union, b)
|
|
t.union = merged
|
|
return err
|
|
}
|
|
|
|
// AsEventMessageUpdated returns the union data inside the Event as a EventMessageUpdated
|
|
func (t Event) AsEventMessageUpdated() (EventMessageUpdated, error) {
|
|
var body EventMessageUpdated
|
|
err := json.Unmarshal(t.union, &body)
|
|
return body, err
|
|
}
|
|
|
|
// FromEventMessageUpdated overwrites any union data inside the Event as the provided EventMessageUpdated
|
|
func (t *Event) FromEventMessageUpdated(v EventMessageUpdated) error {
|
|
v.Type = "message.updated"
|
|
b, err := json.Marshal(v)
|
|
t.union = b
|
|
return err
|
|
}
|
|
|
|
// MergeEventMessageUpdated performs a merge with any union data inside the Event, using the provided EventMessageUpdated
|
|
func (t *Event) MergeEventMessageUpdated(v EventMessageUpdated) error {
|
|
v.Type = "message.updated"
|
|
b, err := json.Marshal(v)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
merged, err := runtime.JSONMerge(t.union, b)
|
|
t.union = merged
|
|
return err
|
|
}
|
|
|
|
// AsEventSessionUpdated returns the union data inside the Event as a EventSessionUpdated
|
|
func (t Event) AsEventSessionUpdated() (EventSessionUpdated, error) {
|
|
var body EventSessionUpdated
|
|
err := json.Unmarshal(t.union, &body)
|
|
return body, err
|
|
}
|
|
|
|
// FromEventSessionUpdated overwrites any union data inside the Event as the provided EventSessionUpdated
|
|
func (t *Event) FromEventSessionUpdated(v EventSessionUpdated) error {
|
|
v.Type = "session.updated"
|
|
b, err := json.Marshal(v)
|
|
t.union = b
|
|
return err
|
|
}
|
|
|
|
// MergeEventSessionUpdated performs a merge with any union data inside the Event, using the provided EventSessionUpdated
|
|
func (t *Event) MergeEventSessionUpdated(v EventSessionUpdated) error {
|
|
v.Type = "session.updated"
|
|
b, err := json.Marshal(v)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
merged, err := runtime.JSONMerge(t.union, b)
|
|
t.union = merged
|
|
return err
|
|
}
|
|
|
|
func (t Event) Discriminator() (string, error) {
|
|
var discriminator struct {
|
|
Discriminator string `json:"type"`
|
|
}
|
|
err := json.Unmarshal(t.union, &discriminator)
|
|
return discriminator.Discriminator, err
|
|
}
|
|
|
|
func (t Event) ValueByDiscriminator() (interface{}, error) {
|
|
discriminator, err := t.Discriminator()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
switch discriminator {
|
|
case "lsp.client.diagnostics":
|
|
return t.AsEventLspClientDiagnostics()
|
|
case "message.updated":
|
|
return t.AsEventMessageUpdated()
|
|
case "session.updated":
|
|
return t.AsEventSessionUpdated()
|
|
case "storage.write":
|
|
return t.AsEventStorageWrite()
|
|
default:
|
|
return nil, errors.New("unknown discriminator value: " + discriminator)
|
|
}
|
|
}
|
|
|
|
func (t Event) MarshalJSON() ([]byte, error) {
|
|
b, err := t.union.MarshalJSON()
|
|
return b, err
|
|
}
|
|
|
|
func (t *Event) UnmarshalJSON(b []byte) error {
|
|
err := t.union.UnmarshalJSON(b)
|
|
return err
|
|
}
|
|
|
|
// AsMessagePartText returns the union data inside the MessagePart as a MessagePartText
|
|
func (t MessagePart) AsMessagePartText() (MessagePartText, error) {
|
|
var body MessagePartText
|
|
err := json.Unmarshal(t.union, &body)
|
|
return body, err
|
|
}
|
|
|
|
// FromMessagePartText overwrites any union data inside the MessagePart as the provided MessagePartText
|
|
func (t *MessagePart) FromMessagePartText(v MessagePartText) error {
|
|
v.Type = "text"
|
|
b, err := json.Marshal(v)
|
|
t.union = b
|
|
return err
|
|
}
|
|
|
|
// MergeMessagePartText performs a merge with any union data inside the MessagePart, using the provided MessagePartText
|
|
func (t *MessagePart) MergeMessagePartText(v MessagePartText) error {
|
|
v.Type = "text"
|
|
b, err := json.Marshal(v)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
merged, err := runtime.JSONMerge(t.union, b)
|
|
t.union = merged
|
|
return err
|
|
}
|
|
|
|
// AsMessagePartReasoning returns the union data inside the MessagePart as a MessagePartReasoning
|
|
func (t MessagePart) AsMessagePartReasoning() (MessagePartReasoning, error) {
|
|
var body MessagePartReasoning
|
|
err := json.Unmarshal(t.union, &body)
|
|
return body, err
|
|
}
|
|
|
|
// FromMessagePartReasoning overwrites any union data inside the MessagePart as the provided MessagePartReasoning
|
|
func (t *MessagePart) FromMessagePartReasoning(v MessagePartReasoning) error {
|
|
v.Type = "reasoning"
|
|
b, err := json.Marshal(v)
|
|
t.union = b
|
|
return err
|
|
}
|
|
|
|
// MergeMessagePartReasoning performs a merge with any union data inside the MessagePart, using the provided MessagePartReasoning
|
|
func (t *MessagePart) MergeMessagePartReasoning(v MessagePartReasoning) error {
|
|
v.Type = "reasoning"
|
|
b, err := json.Marshal(v)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
merged, err := runtime.JSONMerge(t.union, b)
|
|
t.union = merged
|
|
return err
|
|
}
|
|
|
|
// AsMessagePartToolInvocation returns the union data inside the MessagePart as a MessagePartToolInvocation
|
|
func (t MessagePart) AsMessagePartToolInvocation() (MessagePartToolInvocation, error) {
|
|
var body MessagePartToolInvocation
|
|
err := json.Unmarshal(t.union, &body)
|
|
return body, err
|
|
}
|
|
|
|
// FromMessagePartToolInvocation overwrites any union data inside the MessagePart as the provided MessagePartToolInvocation
|
|
func (t *MessagePart) FromMessagePartToolInvocation(v MessagePartToolInvocation) error {
|
|
v.Type = "tool-invocation"
|
|
b, err := json.Marshal(v)
|
|
t.union = b
|
|
return err
|
|
}
|
|
|
|
// MergeMessagePartToolInvocation performs a merge with any union data inside the MessagePart, using the provided MessagePartToolInvocation
|
|
func (t *MessagePart) MergeMessagePartToolInvocation(v MessagePartToolInvocation) error {
|
|
v.Type = "tool-invocation"
|
|
b, err := json.Marshal(v)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
merged, err := runtime.JSONMerge(t.union, b)
|
|
t.union = merged
|
|
return err
|
|
}
|
|
|
|
// AsMessagePartSourceUrl returns the union data inside the MessagePart as a MessagePartSourceUrl
|
|
func (t MessagePart) AsMessagePartSourceUrl() (MessagePartSourceUrl, error) {
|
|
var body MessagePartSourceUrl
|
|
err := json.Unmarshal(t.union, &body)
|
|
return body, err
|
|
}
|
|
|
|
// FromMessagePartSourceUrl overwrites any union data inside the MessagePart as the provided MessagePartSourceUrl
|
|
func (t *MessagePart) FromMessagePartSourceUrl(v MessagePartSourceUrl) error {
|
|
v.Type = "source-url"
|
|
b, err := json.Marshal(v)
|
|
t.union = b
|
|
return err
|
|
}
|
|
|
|
// MergeMessagePartSourceUrl performs a merge with any union data inside the MessagePart, using the provided MessagePartSourceUrl
|
|
func (t *MessagePart) MergeMessagePartSourceUrl(v MessagePartSourceUrl) error {
|
|
v.Type = "source-url"
|
|
b, err := json.Marshal(v)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
merged, err := runtime.JSONMerge(t.union, b)
|
|
t.union = merged
|
|
return err
|
|
}
|
|
|
|
// AsMessagePartFile returns the union data inside the MessagePart as a MessagePartFile
|
|
func (t MessagePart) AsMessagePartFile() (MessagePartFile, error) {
|
|
var body MessagePartFile
|
|
err := json.Unmarshal(t.union, &body)
|
|
return body, err
|
|
}
|
|
|
|
// FromMessagePartFile overwrites any union data inside the MessagePart as the provided MessagePartFile
|
|
func (t *MessagePart) FromMessagePartFile(v MessagePartFile) error {
|
|
v.Type = "file"
|
|
b, err := json.Marshal(v)
|
|
t.union = b
|
|
return err
|
|
}
|
|
|
|
// MergeMessagePartFile performs a merge with any union data inside the MessagePart, using the provided MessagePartFile
|
|
func (t *MessagePart) MergeMessagePartFile(v MessagePartFile) error {
|
|
v.Type = "file"
|
|
b, err := json.Marshal(v)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
merged, err := runtime.JSONMerge(t.union, b)
|
|
t.union = merged
|
|
return err
|
|
}
|
|
|
|
// AsMessagePartStepStart returns the union data inside the MessagePart as a MessagePartStepStart
|
|
func (t MessagePart) AsMessagePartStepStart() (MessagePartStepStart, error) {
|
|
var body MessagePartStepStart
|
|
err := json.Unmarshal(t.union, &body)
|
|
return body, err
|
|
}
|
|
|
|
// FromMessagePartStepStart overwrites any union data inside the MessagePart as the provided MessagePartStepStart
|
|
func (t *MessagePart) FromMessagePartStepStart(v MessagePartStepStart) error {
|
|
v.Type = "step-start"
|
|
b, err := json.Marshal(v)
|
|
t.union = b
|
|
return err
|
|
}
|
|
|
|
// MergeMessagePartStepStart performs a merge with any union data inside the MessagePart, using the provided MessagePartStepStart
|
|
func (t *MessagePart) MergeMessagePartStepStart(v MessagePartStepStart) error {
|
|
v.Type = "step-start"
|
|
b, err := json.Marshal(v)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
merged, err := runtime.JSONMerge(t.union, b)
|
|
t.union = merged
|
|
return err
|
|
}
|
|
|
|
func (t MessagePart) Discriminator() (string, error) {
|
|
var discriminator struct {
|
|
Discriminator string `json:"type"`
|
|
}
|
|
err := json.Unmarshal(t.union, &discriminator)
|
|
return discriminator.Discriminator, err
|
|
}
|
|
|
|
func (t MessagePart) ValueByDiscriminator() (interface{}, error) {
|
|
discriminator, err := t.Discriminator()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
switch discriminator {
|
|
case "file":
|
|
return t.AsMessagePartFile()
|
|
case "reasoning":
|
|
return t.AsMessagePartReasoning()
|
|
case "source-url":
|
|
return t.AsMessagePartSourceUrl()
|
|
case "step-start":
|
|
return t.AsMessagePartStepStart()
|
|
case "text":
|
|
return t.AsMessagePartText()
|
|
case "tool-invocation":
|
|
return t.AsMessagePartToolInvocation()
|
|
default:
|
|
return nil, errors.New("unknown discriminator value: " + discriminator)
|
|
}
|
|
}
|
|
|
|
func (t MessagePart) MarshalJSON() ([]byte, error) {
|
|
b, err := t.union.MarshalJSON()
|
|
return b, err
|
|
}
|
|
|
|
func (t *MessagePart) UnmarshalJSON(b []byte) error {
|
|
err := t.union.UnmarshalJSON(b)
|
|
return err
|
|
}
|
|
|
|
// AsMessageToolInvocationToolCall returns the union data inside the MessageToolInvocation as a MessageToolInvocationToolCall
|
|
func (t MessageToolInvocation) AsMessageToolInvocationToolCall() (MessageToolInvocationToolCall, error) {
|
|
var body MessageToolInvocationToolCall
|
|
err := json.Unmarshal(t.union, &body)
|
|
return body, err
|
|
}
|
|
|
|
// FromMessageToolInvocationToolCall overwrites any union data inside the MessageToolInvocation as the provided MessageToolInvocationToolCall
|
|
func (t *MessageToolInvocation) FromMessageToolInvocationToolCall(v MessageToolInvocationToolCall) error {
|
|
v.State = "call"
|
|
b, err := json.Marshal(v)
|
|
t.union = b
|
|
return err
|
|
}
|
|
|
|
// MergeMessageToolInvocationToolCall performs a merge with any union data inside the MessageToolInvocation, using the provided MessageToolInvocationToolCall
|
|
func (t *MessageToolInvocation) MergeMessageToolInvocationToolCall(v MessageToolInvocationToolCall) error {
|
|
v.State = "call"
|
|
b, err := json.Marshal(v)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
merged, err := runtime.JSONMerge(t.union, b)
|
|
t.union = merged
|
|
return err
|
|
}
|
|
|
|
// AsMessageToolInvocationToolPartialCall returns the union data inside the MessageToolInvocation as a MessageToolInvocationToolPartialCall
|
|
func (t MessageToolInvocation) AsMessageToolInvocationToolPartialCall() (MessageToolInvocationToolPartialCall, error) {
|
|
var body MessageToolInvocationToolPartialCall
|
|
err := json.Unmarshal(t.union, &body)
|
|
return body, err
|
|
}
|
|
|
|
// FromMessageToolInvocationToolPartialCall overwrites any union data inside the MessageToolInvocation as the provided MessageToolInvocationToolPartialCall
|
|
func (t *MessageToolInvocation) FromMessageToolInvocationToolPartialCall(v MessageToolInvocationToolPartialCall) error {
|
|
v.State = "partial-call"
|
|
b, err := json.Marshal(v)
|
|
t.union = b
|
|
return err
|
|
}
|
|
|
|
// MergeMessageToolInvocationToolPartialCall performs a merge with any union data inside the MessageToolInvocation, using the provided MessageToolInvocationToolPartialCall
|
|
func (t *MessageToolInvocation) MergeMessageToolInvocationToolPartialCall(v MessageToolInvocationToolPartialCall) error {
|
|
v.State = "partial-call"
|
|
b, err := json.Marshal(v)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
merged, err := runtime.JSONMerge(t.union, b)
|
|
t.union = merged
|
|
return err
|
|
}
|
|
|
|
// AsMessageToolInvocationToolResult returns the union data inside the MessageToolInvocation as a MessageToolInvocationToolResult
|
|
func (t MessageToolInvocation) AsMessageToolInvocationToolResult() (MessageToolInvocationToolResult, error) {
|
|
var body MessageToolInvocationToolResult
|
|
err := json.Unmarshal(t.union, &body)
|
|
return body, err
|
|
}
|
|
|
|
// FromMessageToolInvocationToolResult overwrites any union data inside the MessageToolInvocation as the provided MessageToolInvocationToolResult
|
|
func (t *MessageToolInvocation) FromMessageToolInvocationToolResult(v MessageToolInvocationToolResult) error {
|
|
v.State = "result"
|
|
b, err := json.Marshal(v)
|
|
t.union = b
|
|
return err
|
|
}
|
|
|
|
// MergeMessageToolInvocationToolResult performs a merge with any union data inside the MessageToolInvocation, using the provided MessageToolInvocationToolResult
|
|
func (t *MessageToolInvocation) MergeMessageToolInvocationToolResult(v MessageToolInvocationToolResult) error {
|
|
v.State = "result"
|
|
b, err := json.Marshal(v)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
merged, err := runtime.JSONMerge(t.union, b)
|
|
t.union = merged
|
|
return err
|
|
}
|
|
|
|
func (t MessageToolInvocation) Discriminator() (string, error) {
|
|
var discriminator struct {
|
|
Discriminator string `json:"state"`
|
|
}
|
|
err := json.Unmarshal(t.union, &discriminator)
|
|
return discriminator.Discriminator, err
|
|
}
|
|
|
|
func (t MessageToolInvocation) ValueByDiscriminator() (interface{}, error) {
|
|
discriminator, err := t.Discriminator()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
switch discriminator {
|
|
case "call":
|
|
return t.AsMessageToolInvocationToolCall()
|
|
case "partial-call":
|
|
return t.AsMessageToolInvocationToolPartialCall()
|
|
case "result":
|
|
return t.AsMessageToolInvocationToolResult()
|
|
default:
|
|
return nil, errors.New("unknown discriminator value: " + discriminator)
|
|
}
|
|
}
|
|
|
|
func (t MessageToolInvocation) MarshalJSON() ([]byte, error) {
|
|
b, err := t.union.MarshalJSON()
|
|
return b, err
|
|
}
|
|
|
|
func (t *MessageToolInvocation) UnmarshalJSON(b []byte) error {
|
|
err := t.union.UnmarshalJSON(b)
|
|
return err
|
|
}
|
|
|
|
// RequestEditorFn is the function signature for the RequestEditor callback function
|
|
type RequestEditorFn func(ctx context.Context, req *http.Request) error
|
|
|
|
// Doer performs HTTP requests.
|
|
//
|
|
// The standard http.Client implements this interface.
|
|
type HttpRequestDoer interface {
|
|
Do(req *http.Request) (*http.Response, error)
|
|
}
|
|
|
|
// Client which conforms to the OpenAPI3 specification for this service.
|
|
type Client struct {
|
|
// The endpoint of the server conforming to this interface, with scheme,
|
|
// https://api.deepmap.com for example. This can contain a path relative
|
|
// to the server, such as https://api.deepmap.com/dev-test, and all the
|
|
// paths in the swagger spec will be appended to the server.
|
|
Server string
|
|
|
|
// Doer for performing requests, typically a *http.Client with any
|
|
// customized settings, such as certificate chains.
|
|
Client HttpRequestDoer
|
|
|
|
// A list of callbacks for modifying requests which are generated before sending over
|
|
// the network.
|
|
RequestEditors []RequestEditorFn
|
|
}
|
|
|
|
// ClientOption allows setting custom parameters during construction
|
|
type ClientOption func(*Client) error
|
|
|
|
// Creates a new Client, with reasonable defaults
|
|
func NewClient(server string, opts ...ClientOption) (*Client, error) {
|
|
// create a client with sane default values
|
|
client := Client{
|
|
Server: server,
|
|
}
|
|
// mutate client and add all optional params
|
|
for _, o := range opts {
|
|
if err := o(&client); err != nil {
|
|
return nil, err
|
|
}
|
|
}
|
|
// ensure the server URL always has a trailing slash
|
|
if !strings.HasSuffix(client.Server, "/") {
|
|
client.Server += "/"
|
|
}
|
|
// create httpClient, if not already present
|
|
if client.Client == nil {
|
|
client.Client = &http.Client{}
|
|
}
|
|
return &client, nil
|
|
}
|
|
|
|
// WithHTTPClient allows overriding the default Doer, which is
|
|
// automatically created using http.Client. This is useful for tests.
|
|
func WithHTTPClient(doer HttpRequestDoer) ClientOption {
|
|
return func(c *Client) error {
|
|
c.Client = doer
|
|
return nil
|
|
}
|
|
}
|
|
|
|
// WithRequestEditorFn allows setting up a callback function, which will be
|
|
// called right before sending the request. This can be used to mutate the request.
|
|
func WithRequestEditorFn(fn RequestEditorFn) ClientOption {
|
|
return func(c *Client) error {
|
|
c.RequestEditors = append(c.RequestEditors, fn)
|
|
return nil
|
|
}
|
|
}
|
|
|
|
// The interface specification for the client above.
|
|
type ClientInterface interface {
|
|
// GetEvent request
|
|
GetEvent(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error)
|
|
|
|
// PostProviderList request
|
|
PostProviderList(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error)
|
|
|
|
// PostSessionAbortWithBody request with any body
|
|
PostSessionAbortWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)
|
|
|
|
PostSessionAbort(ctx context.Context, body PostSessionAbortJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)
|
|
|
|
// PostSessionChatWithBody request with any body
|
|
PostSessionChatWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)
|
|
|
|
PostSessionChat(ctx context.Context, body PostSessionChatJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)
|
|
|
|
// PostSessionCreate request
|
|
PostSessionCreate(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error)
|
|
|
|
// PostSessionList request
|
|
PostSessionList(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error)
|
|
|
|
// PostSessionMessagesWithBody request with any body
|
|
PostSessionMessagesWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)
|
|
|
|
PostSessionMessages(ctx context.Context, body PostSessionMessagesJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)
|
|
|
|
// PostSessionShareWithBody request with any body
|
|
PostSessionShareWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)
|
|
|
|
PostSessionShare(ctx context.Context, body PostSessionShareJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)
|
|
}
|
|
|
|
func (c *Client) GetEvent(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) {
|
|
req, err := NewGetEventRequest(c.Server)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
req = req.WithContext(ctx)
|
|
if err := c.applyEditors(ctx, req, reqEditors); err != nil {
|
|
return nil, err
|
|
}
|
|
return c.Client.Do(req)
|
|
}
|
|
|
|
func (c *Client) PostProviderList(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) {
|
|
req, err := NewPostProviderListRequest(c.Server)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
req = req.WithContext(ctx)
|
|
if err := c.applyEditors(ctx, req, reqEditors); err != nil {
|
|
return nil, err
|
|
}
|
|
return c.Client.Do(req)
|
|
}
|
|
|
|
func (c *Client) PostSessionAbortWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) {
|
|
req, err := NewPostSessionAbortRequestWithBody(c.Server, contentType, body)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
req = req.WithContext(ctx)
|
|
if err := c.applyEditors(ctx, req, reqEditors); err != nil {
|
|
return nil, err
|
|
}
|
|
return c.Client.Do(req)
|
|
}
|
|
|
|
func (c *Client) PostSessionAbort(ctx context.Context, body PostSessionAbortJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) {
|
|
req, err := NewPostSessionAbortRequest(c.Server, body)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
req = req.WithContext(ctx)
|
|
if err := c.applyEditors(ctx, req, reqEditors); err != nil {
|
|
return nil, err
|
|
}
|
|
return c.Client.Do(req)
|
|
}
|
|
|
|
func (c *Client) PostSessionChatWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) {
|
|
req, err := NewPostSessionChatRequestWithBody(c.Server, contentType, body)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
req = req.WithContext(ctx)
|
|
if err := c.applyEditors(ctx, req, reqEditors); err != nil {
|
|
return nil, err
|
|
}
|
|
return c.Client.Do(req)
|
|
}
|
|
|
|
func (c *Client) PostSessionChat(ctx context.Context, body PostSessionChatJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) {
|
|
req, err := NewPostSessionChatRequest(c.Server, body)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
req = req.WithContext(ctx)
|
|
if err := c.applyEditors(ctx, req, reqEditors); err != nil {
|
|
return nil, err
|
|
}
|
|
return c.Client.Do(req)
|
|
}
|
|
|
|
func (c *Client) PostSessionCreate(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) {
|
|
req, err := NewPostSessionCreateRequest(c.Server)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
req = req.WithContext(ctx)
|
|
if err := c.applyEditors(ctx, req, reqEditors); err != nil {
|
|
return nil, err
|
|
}
|
|
return c.Client.Do(req)
|
|
}
|
|
|
|
func (c *Client) PostSessionList(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) {
|
|
req, err := NewPostSessionListRequest(c.Server)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
req = req.WithContext(ctx)
|
|
if err := c.applyEditors(ctx, req, reqEditors); err != nil {
|
|
return nil, err
|
|
}
|
|
return c.Client.Do(req)
|
|
}
|
|
|
|
func (c *Client) PostSessionMessagesWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) {
|
|
req, err := NewPostSessionMessagesRequestWithBody(c.Server, contentType, body)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
req = req.WithContext(ctx)
|
|
if err := c.applyEditors(ctx, req, reqEditors); err != nil {
|
|
return nil, err
|
|
}
|
|
return c.Client.Do(req)
|
|
}
|
|
|
|
func (c *Client) PostSessionMessages(ctx context.Context, body PostSessionMessagesJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) {
|
|
req, err := NewPostSessionMessagesRequest(c.Server, body)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
req = req.WithContext(ctx)
|
|
if err := c.applyEditors(ctx, req, reqEditors); err != nil {
|
|
return nil, err
|
|
}
|
|
return c.Client.Do(req)
|
|
}
|
|
|
|
func (c *Client) PostSessionShareWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) {
|
|
req, err := NewPostSessionShareRequestWithBody(c.Server, contentType, body)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
req = req.WithContext(ctx)
|
|
if err := c.applyEditors(ctx, req, reqEditors); err != nil {
|
|
return nil, err
|
|
}
|
|
return c.Client.Do(req)
|
|
}
|
|
|
|
func (c *Client) PostSessionShare(ctx context.Context, body PostSessionShareJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) {
|
|
req, err := NewPostSessionShareRequest(c.Server, body)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
req = req.WithContext(ctx)
|
|
if err := c.applyEditors(ctx, req, reqEditors); err != nil {
|
|
return nil, err
|
|
}
|
|
return c.Client.Do(req)
|
|
}
|
|
|
|
// NewGetEventRequest generates requests for GetEvent
|
|
func NewGetEventRequest(server string) (*http.Request, error) {
|
|
var err error
|
|
|
|
serverURL, err := url.Parse(server)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
operationPath := fmt.Sprintf("/event")
|
|
if operationPath[0] == '/' {
|
|
operationPath = "." + operationPath
|
|
}
|
|
|
|
queryURL, err := serverURL.Parse(operationPath)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
req, err := http.NewRequest("GET", queryURL.String(), nil)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return req, nil
|
|
}
|
|
|
|
// NewPostProviderListRequest generates requests for PostProviderList
|
|
func NewPostProviderListRequest(server string) (*http.Request, error) {
|
|
var err error
|
|
|
|
serverURL, err := url.Parse(server)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
operationPath := fmt.Sprintf("/provider_list")
|
|
if operationPath[0] == '/' {
|
|
operationPath = "." + operationPath
|
|
}
|
|
|
|
queryURL, err := serverURL.Parse(operationPath)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
req, err := http.NewRequest("POST", queryURL.String(), nil)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return req, nil
|
|
}
|
|
|
|
// NewPostSessionAbortRequest calls the generic PostSessionAbort builder with application/json body
|
|
func NewPostSessionAbortRequest(server string, body PostSessionAbortJSONRequestBody) (*http.Request, error) {
|
|
var bodyReader io.Reader
|
|
buf, err := json.Marshal(body)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
bodyReader = bytes.NewReader(buf)
|
|
return NewPostSessionAbortRequestWithBody(server, "application/json", bodyReader)
|
|
}
|
|
|
|
// NewPostSessionAbortRequestWithBody generates requests for PostSessionAbort with any type of body
|
|
func NewPostSessionAbortRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error) {
|
|
var err error
|
|
|
|
serverURL, err := url.Parse(server)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
operationPath := fmt.Sprintf("/session_abort")
|
|
if operationPath[0] == '/' {
|
|
operationPath = "." + operationPath
|
|
}
|
|
|
|
queryURL, err := serverURL.Parse(operationPath)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
req, err := http.NewRequest("POST", queryURL.String(), body)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
req.Header.Add("Content-Type", contentType)
|
|
|
|
return req, nil
|
|
}
|
|
|
|
// NewPostSessionChatRequest calls the generic PostSessionChat builder with application/json body
|
|
func NewPostSessionChatRequest(server string, body PostSessionChatJSONRequestBody) (*http.Request, error) {
|
|
var bodyReader io.Reader
|
|
buf, err := json.Marshal(body)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
bodyReader = bytes.NewReader(buf)
|
|
return NewPostSessionChatRequestWithBody(server, "application/json", bodyReader)
|
|
}
|
|
|
|
// NewPostSessionChatRequestWithBody generates requests for PostSessionChat with any type of body
|
|
func NewPostSessionChatRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error) {
|
|
var err error
|
|
|
|
serverURL, err := url.Parse(server)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
operationPath := fmt.Sprintf("/session_chat")
|
|
if operationPath[0] == '/' {
|
|
operationPath = "." + operationPath
|
|
}
|
|
|
|
queryURL, err := serverURL.Parse(operationPath)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
req, err := http.NewRequest("POST", queryURL.String(), body)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
req.Header.Add("Content-Type", contentType)
|
|
|
|
return req, nil
|
|
}
|
|
|
|
// NewPostSessionCreateRequest generates requests for PostSessionCreate
|
|
func NewPostSessionCreateRequest(server string) (*http.Request, error) {
|
|
var err error
|
|
|
|
serverURL, err := url.Parse(server)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
operationPath := fmt.Sprintf("/session_create")
|
|
if operationPath[0] == '/' {
|
|
operationPath = "." + operationPath
|
|
}
|
|
|
|
queryURL, err := serverURL.Parse(operationPath)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
req, err := http.NewRequest("POST", queryURL.String(), nil)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return req, nil
|
|
}
|
|
|
|
// NewPostSessionListRequest generates requests for PostSessionList
|
|
func NewPostSessionListRequest(server string) (*http.Request, error) {
|
|
var err error
|
|
|
|
serverURL, err := url.Parse(server)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
operationPath := fmt.Sprintf("/session_list")
|
|
if operationPath[0] == '/' {
|
|
operationPath = "." + operationPath
|
|
}
|
|
|
|
queryURL, err := serverURL.Parse(operationPath)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
req, err := http.NewRequest("POST", queryURL.String(), nil)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return req, nil
|
|
}
|
|
|
|
// NewPostSessionMessagesRequest calls the generic PostSessionMessages builder with application/json body
|
|
func NewPostSessionMessagesRequest(server string, body PostSessionMessagesJSONRequestBody) (*http.Request, error) {
|
|
var bodyReader io.Reader
|
|
buf, err := json.Marshal(body)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
bodyReader = bytes.NewReader(buf)
|
|
return NewPostSessionMessagesRequestWithBody(server, "application/json", bodyReader)
|
|
}
|
|
|
|
// NewPostSessionMessagesRequestWithBody generates requests for PostSessionMessages with any type of body
|
|
func NewPostSessionMessagesRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error) {
|
|
var err error
|
|
|
|
serverURL, err := url.Parse(server)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
operationPath := fmt.Sprintf("/session_messages")
|
|
if operationPath[0] == '/' {
|
|
operationPath = "." + operationPath
|
|
}
|
|
|
|
queryURL, err := serverURL.Parse(operationPath)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
req, err := http.NewRequest("POST", queryURL.String(), body)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
req.Header.Add("Content-Type", contentType)
|
|
|
|
return req, nil
|
|
}
|
|
|
|
// NewPostSessionShareRequest calls the generic PostSessionShare builder with application/json body
|
|
func NewPostSessionShareRequest(server string, body PostSessionShareJSONRequestBody) (*http.Request, error) {
|
|
var bodyReader io.Reader
|
|
buf, err := json.Marshal(body)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
bodyReader = bytes.NewReader(buf)
|
|
return NewPostSessionShareRequestWithBody(server, "application/json", bodyReader)
|
|
}
|
|
|
|
// NewPostSessionShareRequestWithBody generates requests for PostSessionShare with any type of body
|
|
func NewPostSessionShareRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error) {
|
|
var err error
|
|
|
|
serverURL, err := url.Parse(server)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
operationPath := fmt.Sprintf("/session_share")
|
|
if operationPath[0] == '/' {
|
|
operationPath = "." + operationPath
|
|
}
|
|
|
|
queryURL, err := serverURL.Parse(operationPath)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
req, err := http.NewRequest("POST", queryURL.String(), body)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
req.Header.Add("Content-Type", contentType)
|
|
|
|
return req, nil
|
|
}
|
|
|
|
func (c *Client) applyEditors(ctx context.Context, req *http.Request, additionalEditors []RequestEditorFn) error {
|
|
for _, r := range c.RequestEditors {
|
|
if err := r(ctx, req); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
for _, r := range additionalEditors {
|
|
if err := r(ctx, req); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// ClientWithResponses builds on ClientInterface to offer response payloads
|
|
type ClientWithResponses struct {
|
|
ClientInterface
|
|
}
|
|
|
|
// NewClientWithResponses creates a new ClientWithResponses, which wraps
|
|
// Client with return type handling
|
|
func NewClientWithResponses(server string, opts ...ClientOption) (*ClientWithResponses, error) {
|
|
client, err := NewClient(server, opts...)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return &ClientWithResponses{client}, nil
|
|
}
|
|
|
|
// WithBaseURL overrides the baseURL.
|
|
func WithBaseURL(baseURL string) ClientOption {
|
|
return func(c *Client) error {
|
|
newBaseURL, err := url.Parse(baseURL)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
c.Server = newBaseURL.String()
|
|
return nil
|
|
}
|
|
}
|
|
|
|
// ClientWithResponsesInterface is the interface specification for the client with responses above.
|
|
type ClientWithResponsesInterface interface {
|
|
// GetEventWithResponse request
|
|
GetEventWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*GetEventResponse, error)
|
|
|
|
// PostProviderListWithResponse request
|
|
PostProviderListWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*PostProviderListResponse, error)
|
|
|
|
// PostSessionAbortWithBodyWithResponse request with any body
|
|
PostSessionAbortWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostSessionAbortResponse, error)
|
|
|
|
PostSessionAbortWithResponse(ctx context.Context, body PostSessionAbortJSONRequestBody, reqEditors ...RequestEditorFn) (*PostSessionAbortResponse, error)
|
|
|
|
// PostSessionChatWithBodyWithResponse request with any body
|
|
PostSessionChatWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostSessionChatResponse, error)
|
|
|
|
PostSessionChatWithResponse(ctx context.Context, body PostSessionChatJSONRequestBody, reqEditors ...RequestEditorFn) (*PostSessionChatResponse, error)
|
|
|
|
// PostSessionCreateWithResponse request
|
|
PostSessionCreateWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*PostSessionCreateResponse, error)
|
|
|
|
// PostSessionListWithResponse request
|
|
PostSessionListWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*PostSessionListResponse, error)
|
|
|
|
// PostSessionMessagesWithBodyWithResponse request with any body
|
|
PostSessionMessagesWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostSessionMessagesResponse, error)
|
|
|
|
PostSessionMessagesWithResponse(ctx context.Context, body PostSessionMessagesJSONRequestBody, reqEditors ...RequestEditorFn) (*PostSessionMessagesResponse, error)
|
|
|
|
// PostSessionShareWithBodyWithResponse request with any body
|
|
PostSessionShareWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostSessionShareResponse, error)
|
|
|
|
PostSessionShareWithResponse(ctx context.Context, body PostSessionShareJSONRequestBody, reqEditors ...RequestEditorFn) (*PostSessionShareResponse, error)
|
|
}
|
|
|
|
type GetEventResponse struct {
|
|
Body []byte
|
|
HTTPResponse *http.Response
|
|
JSON200 *Event
|
|
}
|
|
|
|
// Status returns HTTPResponse.Status
|
|
func (r GetEventResponse) Status() string {
|
|
if r.HTTPResponse != nil {
|
|
return r.HTTPResponse.Status
|
|
}
|
|
return http.StatusText(0)
|
|
}
|
|
|
|
// StatusCode returns HTTPResponse.StatusCode
|
|
func (r GetEventResponse) StatusCode() int {
|
|
if r.HTTPResponse != nil {
|
|
return r.HTTPResponse.StatusCode
|
|
}
|
|
return 0
|
|
}
|
|
|
|
type PostProviderListResponse struct {
|
|
Body []byte
|
|
HTTPResponse *http.Response
|
|
JSON200 *map[string]ProviderInfo
|
|
}
|
|
|
|
// Status returns HTTPResponse.Status
|
|
func (r PostProviderListResponse) Status() string {
|
|
if r.HTTPResponse != nil {
|
|
return r.HTTPResponse.Status
|
|
}
|
|
return http.StatusText(0)
|
|
}
|
|
|
|
// StatusCode returns HTTPResponse.StatusCode
|
|
func (r PostProviderListResponse) StatusCode() int {
|
|
if r.HTTPResponse != nil {
|
|
return r.HTTPResponse.StatusCode
|
|
}
|
|
return 0
|
|
}
|
|
|
|
type PostSessionAbortResponse struct {
|
|
Body []byte
|
|
HTTPResponse *http.Response
|
|
JSON200 *bool
|
|
}
|
|
|
|
// Status returns HTTPResponse.Status
|
|
func (r PostSessionAbortResponse) Status() string {
|
|
if r.HTTPResponse != nil {
|
|
return r.HTTPResponse.Status
|
|
}
|
|
return http.StatusText(0)
|
|
}
|
|
|
|
// StatusCode returns HTTPResponse.StatusCode
|
|
func (r PostSessionAbortResponse) StatusCode() int {
|
|
if r.HTTPResponse != nil {
|
|
return r.HTTPResponse.StatusCode
|
|
}
|
|
return 0
|
|
}
|
|
|
|
type PostSessionChatResponse struct {
|
|
Body []byte
|
|
HTTPResponse *http.Response
|
|
JSON200 *MessageInfo
|
|
}
|
|
|
|
// Status returns HTTPResponse.Status
|
|
func (r PostSessionChatResponse) Status() string {
|
|
if r.HTTPResponse != nil {
|
|
return r.HTTPResponse.Status
|
|
}
|
|
return http.StatusText(0)
|
|
}
|
|
|
|
// StatusCode returns HTTPResponse.StatusCode
|
|
func (r PostSessionChatResponse) StatusCode() int {
|
|
if r.HTTPResponse != nil {
|
|
return r.HTTPResponse.StatusCode
|
|
}
|
|
return 0
|
|
}
|
|
|
|
type PostSessionCreateResponse struct {
|
|
Body []byte
|
|
HTTPResponse *http.Response
|
|
JSON200 *SessionInfo
|
|
}
|
|
|
|
// Status returns HTTPResponse.Status
|
|
func (r PostSessionCreateResponse) Status() string {
|
|
if r.HTTPResponse != nil {
|
|
return r.HTTPResponse.Status
|
|
}
|
|
return http.StatusText(0)
|
|
}
|
|
|
|
// StatusCode returns HTTPResponse.StatusCode
|
|
func (r PostSessionCreateResponse) StatusCode() int {
|
|
if r.HTTPResponse != nil {
|
|
return r.HTTPResponse.StatusCode
|
|
}
|
|
return 0
|
|
}
|
|
|
|
type PostSessionListResponse struct {
|
|
Body []byte
|
|
HTTPResponse *http.Response
|
|
JSON200 *[]SessionInfo
|
|
}
|
|
|
|
// Status returns HTTPResponse.Status
|
|
func (r PostSessionListResponse) Status() string {
|
|
if r.HTTPResponse != nil {
|
|
return r.HTTPResponse.Status
|
|
}
|
|
return http.StatusText(0)
|
|
}
|
|
|
|
// StatusCode returns HTTPResponse.StatusCode
|
|
func (r PostSessionListResponse) StatusCode() int {
|
|
if r.HTTPResponse != nil {
|
|
return r.HTTPResponse.StatusCode
|
|
}
|
|
return 0
|
|
}
|
|
|
|
type PostSessionMessagesResponse struct {
|
|
Body []byte
|
|
HTTPResponse *http.Response
|
|
JSON200 *[]MessageInfo
|
|
}
|
|
|
|
// Status returns HTTPResponse.Status
|
|
func (r PostSessionMessagesResponse) Status() string {
|
|
if r.HTTPResponse != nil {
|
|
return r.HTTPResponse.Status
|
|
}
|
|
return http.StatusText(0)
|
|
}
|
|
|
|
// StatusCode returns HTTPResponse.StatusCode
|
|
func (r PostSessionMessagesResponse) StatusCode() int {
|
|
if r.HTTPResponse != nil {
|
|
return r.HTTPResponse.StatusCode
|
|
}
|
|
return 0
|
|
}
|
|
|
|
type PostSessionShareResponse struct {
|
|
Body []byte
|
|
HTTPResponse *http.Response
|
|
JSON200 *SessionInfo
|
|
}
|
|
|
|
// Status returns HTTPResponse.Status
|
|
func (r PostSessionShareResponse) Status() string {
|
|
if r.HTTPResponse != nil {
|
|
return r.HTTPResponse.Status
|
|
}
|
|
return http.StatusText(0)
|
|
}
|
|
|
|
// StatusCode returns HTTPResponse.StatusCode
|
|
func (r PostSessionShareResponse) StatusCode() int {
|
|
if r.HTTPResponse != nil {
|
|
return r.HTTPResponse.StatusCode
|
|
}
|
|
return 0
|
|
}
|
|
|
|
// GetEventWithResponse request returning *GetEventResponse
|
|
func (c *ClientWithResponses) GetEventWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*GetEventResponse, error) {
|
|
rsp, err := c.GetEvent(ctx, reqEditors...)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return ParseGetEventResponse(rsp)
|
|
}
|
|
|
|
// PostProviderListWithResponse request returning *PostProviderListResponse
|
|
func (c *ClientWithResponses) PostProviderListWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*PostProviderListResponse, error) {
|
|
rsp, err := c.PostProviderList(ctx, reqEditors...)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return ParsePostProviderListResponse(rsp)
|
|
}
|
|
|
|
// PostSessionAbortWithBodyWithResponse request with arbitrary body returning *PostSessionAbortResponse
|
|
func (c *ClientWithResponses) PostSessionAbortWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostSessionAbortResponse, error) {
|
|
rsp, err := c.PostSessionAbortWithBody(ctx, contentType, body, reqEditors...)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return ParsePostSessionAbortResponse(rsp)
|
|
}
|
|
|
|
func (c *ClientWithResponses) PostSessionAbortWithResponse(ctx context.Context, body PostSessionAbortJSONRequestBody, reqEditors ...RequestEditorFn) (*PostSessionAbortResponse, error) {
|
|
rsp, err := c.PostSessionAbort(ctx, body, reqEditors...)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return ParsePostSessionAbortResponse(rsp)
|
|
}
|
|
|
|
// PostSessionChatWithBodyWithResponse request with arbitrary body returning *PostSessionChatResponse
|
|
func (c *ClientWithResponses) PostSessionChatWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostSessionChatResponse, error) {
|
|
rsp, err := c.PostSessionChatWithBody(ctx, contentType, body, reqEditors...)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return ParsePostSessionChatResponse(rsp)
|
|
}
|
|
|
|
func (c *ClientWithResponses) PostSessionChatWithResponse(ctx context.Context, body PostSessionChatJSONRequestBody, reqEditors ...RequestEditorFn) (*PostSessionChatResponse, error) {
|
|
rsp, err := c.PostSessionChat(ctx, body, reqEditors...)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return ParsePostSessionChatResponse(rsp)
|
|
}
|
|
|
|
// PostSessionCreateWithResponse request returning *PostSessionCreateResponse
|
|
func (c *ClientWithResponses) PostSessionCreateWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*PostSessionCreateResponse, error) {
|
|
rsp, err := c.PostSessionCreate(ctx, reqEditors...)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return ParsePostSessionCreateResponse(rsp)
|
|
}
|
|
|
|
// PostSessionListWithResponse request returning *PostSessionListResponse
|
|
func (c *ClientWithResponses) PostSessionListWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*PostSessionListResponse, error) {
|
|
rsp, err := c.PostSessionList(ctx, reqEditors...)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return ParsePostSessionListResponse(rsp)
|
|
}
|
|
|
|
// PostSessionMessagesWithBodyWithResponse request with arbitrary body returning *PostSessionMessagesResponse
|
|
func (c *ClientWithResponses) PostSessionMessagesWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostSessionMessagesResponse, error) {
|
|
rsp, err := c.PostSessionMessagesWithBody(ctx, contentType, body, reqEditors...)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return ParsePostSessionMessagesResponse(rsp)
|
|
}
|
|
|
|
func (c *ClientWithResponses) PostSessionMessagesWithResponse(ctx context.Context, body PostSessionMessagesJSONRequestBody, reqEditors ...RequestEditorFn) (*PostSessionMessagesResponse, error) {
|
|
rsp, err := c.PostSessionMessages(ctx, body, reqEditors...)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return ParsePostSessionMessagesResponse(rsp)
|
|
}
|
|
|
|
// PostSessionShareWithBodyWithResponse request with arbitrary body returning *PostSessionShareResponse
|
|
func (c *ClientWithResponses) PostSessionShareWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostSessionShareResponse, error) {
|
|
rsp, err := c.PostSessionShareWithBody(ctx, contentType, body, reqEditors...)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return ParsePostSessionShareResponse(rsp)
|
|
}
|
|
|
|
func (c *ClientWithResponses) PostSessionShareWithResponse(ctx context.Context, body PostSessionShareJSONRequestBody, reqEditors ...RequestEditorFn) (*PostSessionShareResponse, error) {
|
|
rsp, err := c.PostSessionShare(ctx, body, reqEditors...)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return ParsePostSessionShareResponse(rsp)
|
|
}
|
|
|
|
// ParseGetEventResponse parses an HTTP response from a GetEventWithResponse call
|
|
func ParseGetEventResponse(rsp *http.Response) (*GetEventResponse, error) {
|
|
bodyBytes, err := io.ReadAll(rsp.Body)
|
|
defer func() { _ = rsp.Body.Close() }()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
response := &GetEventResponse{
|
|
Body: bodyBytes,
|
|
HTTPResponse: rsp,
|
|
}
|
|
|
|
switch {
|
|
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
|
|
var dest Event
|
|
if err := json.Unmarshal(bodyBytes, &dest); err != nil {
|
|
return nil, err
|
|
}
|
|
response.JSON200 = &dest
|
|
|
|
}
|
|
|
|
return response, nil
|
|
}
|
|
|
|
// ParsePostProviderListResponse parses an HTTP response from a PostProviderListWithResponse call
|
|
func ParsePostProviderListResponse(rsp *http.Response) (*PostProviderListResponse, error) {
|
|
bodyBytes, err := io.ReadAll(rsp.Body)
|
|
defer func() { _ = rsp.Body.Close() }()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
response := &PostProviderListResponse{
|
|
Body: bodyBytes,
|
|
HTTPResponse: rsp,
|
|
}
|
|
|
|
switch {
|
|
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
|
|
var dest map[string]ProviderInfo
|
|
if err := json.Unmarshal(bodyBytes, &dest); err != nil {
|
|
return nil, err
|
|
}
|
|
response.JSON200 = &dest
|
|
|
|
}
|
|
|
|
return response, nil
|
|
}
|
|
|
|
// ParsePostSessionAbortResponse parses an HTTP response from a PostSessionAbortWithResponse call
|
|
func ParsePostSessionAbortResponse(rsp *http.Response) (*PostSessionAbortResponse, error) {
|
|
bodyBytes, err := io.ReadAll(rsp.Body)
|
|
defer func() { _ = rsp.Body.Close() }()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
response := &PostSessionAbortResponse{
|
|
Body: bodyBytes,
|
|
HTTPResponse: rsp,
|
|
}
|
|
|
|
switch {
|
|
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
|
|
var dest bool
|
|
if err := json.Unmarshal(bodyBytes, &dest); err != nil {
|
|
return nil, err
|
|
}
|
|
response.JSON200 = &dest
|
|
|
|
}
|
|
|
|
return response, nil
|
|
}
|
|
|
|
// ParsePostSessionChatResponse parses an HTTP response from a PostSessionChatWithResponse call
|
|
func ParsePostSessionChatResponse(rsp *http.Response) (*PostSessionChatResponse, error) {
|
|
bodyBytes, err := io.ReadAll(rsp.Body)
|
|
defer func() { _ = rsp.Body.Close() }()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
response := &PostSessionChatResponse{
|
|
Body: bodyBytes,
|
|
HTTPResponse: rsp,
|
|
}
|
|
|
|
switch {
|
|
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
|
|
var dest MessageInfo
|
|
if err := json.Unmarshal(bodyBytes, &dest); err != nil {
|
|
return nil, err
|
|
}
|
|
response.JSON200 = &dest
|
|
|
|
}
|
|
|
|
return response, nil
|
|
}
|
|
|
|
// ParsePostSessionCreateResponse parses an HTTP response from a PostSessionCreateWithResponse call
|
|
func ParsePostSessionCreateResponse(rsp *http.Response) (*PostSessionCreateResponse, error) {
|
|
bodyBytes, err := io.ReadAll(rsp.Body)
|
|
defer func() { _ = rsp.Body.Close() }()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
response := &PostSessionCreateResponse{
|
|
Body: bodyBytes,
|
|
HTTPResponse: rsp,
|
|
}
|
|
|
|
switch {
|
|
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
|
|
var dest SessionInfo
|
|
if err := json.Unmarshal(bodyBytes, &dest); err != nil {
|
|
return nil, err
|
|
}
|
|
response.JSON200 = &dest
|
|
|
|
}
|
|
|
|
return response, nil
|
|
}
|
|
|
|
// ParsePostSessionListResponse parses an HTTP response from a PostSessionListWithResponse call
|
|
func ParsePostSessionListResponse(rsp *http.Response) (*PostSessionListResponse, error) {
|
|
bodyBytes, err := io.ReadAll(rsp.Body)
|
|
defer func() { _ = rsp.Body.Close() }()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
response := &PostSessionListResponse{
|
|
Body: bodyBytes,
|
|
HTTPResponse: rsp,
|
|
}
|
|
|
|
switch {
|
|
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
|
|
var dest []SessionInfo
|
|
if err := json.Unmarshal(bodyBytes, &dest); err != nil {
|
|
return nil, err
|
|
}
|
|
response.JSON200 = &dest
|
|
|
|
}
|
|
|
|
return response, nil
|
|
}
|
|
|
|
// ParsePostSessionMessagesResponse parses an HTTP response from a PostSessionMessagesWithResponse call
|
|
func ParsePostSessionMessagesResponse(rsp *http.Response) (*PostSessionMessagesResponse, error) {
|
|
bodyBytes, err := io.ReadAll(rsp.Body)
|
|
defer func() { _ = rsp.Body.Close() }()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
response := &PostSessionMessagesResponse{
|
|
Body: bodyBytes,
|
|
HTTPResponse: rsp,
|
|
}
|
|
|
|
switch {
|
|
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
|
|
var dest []MessageInfo
|
|
if err := json.Unmarshal(bodyBytes, &dest); err != nil {
|
|
return nil, err
|
|
}
|
|
response.JSON200 = &dest
|
|
|
|
}
|
|
|
|
return response, nil
|
|
}
|
|
|
|
// ParsePostSessionShareResponse parses an HTTP response from a PostSessionShareWithResponse call
|
|
func ParsePostSessionShareResponse(rsp *http.Response) (*PostSessionShareResponse, error) {
|
|
bodyBytes, err := io.ReadAll(rsp.Body)
|
|
defer func() { _ = rsp.Body.Close() }()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
response := &PostSessionShareResponse{
|
|
Body: bodyBytes,
|
|
HTTPResponse: rsp,
|
|
}
|
|
|
|
switch {
|
|
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
|
|
var dest SessionInfo
|
|
if err := json.Unmarshal(bodyBytes, &dest); err != nil {
|
|
return nil, err
|
|
}
|
|
response.JSON200 = &dest
|
|
|
|
}
|
|
|
|
return response, nil
|
|
}
|