// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. package components import ( "errors" "fmt" "github.com/log10-io/log10go/internal/utils" ) type ChatCompletionRequestMessageType string const ( ChatCompletionRequestMessageTypeChatCompletionRequestSystemMessage ChatCompletionRequestMessageType = "ChatCompletionRequestSystemMessage" ChatCompletionRequestMessageTypeChatCompletionRequestUserMessage ChatCompletionRequestMessageType = "ChatCompletionRequestUserMessage" ChatCompletionRequestMessageTypeChatCompletionRequestAssistantMessage ChatCompletionRequestMessageType = "ChatCompletionRequestAssistantMessage" ChatCompletionRequestMessageTypeChatCompletionRequestToolMessage ChatCompletionRequestMessageType = "ChatCompletionRequestToolMessage" ChatCompletionRequestMessageTypeChatCompletionRequestFunctionMessage ChatCompletionRequestMessageType = "ChatCompletionRequestFunctionMessage" ) type ChatCompletionRequestMessage struct { ChatCompletionRequestSystemMessage *ChatCompletionRequestSystemMessage ChatCompletionRequestUserMessage *ChatCompletionRequestUserMessage ChatCompletionRequestAssistantMessage *ChatCompletionRequestAssistantMessage ChatCompletionRequestToolMessage *ChatCompletionRequestToolMessage ChatCompletionRequestFunctionMessage *ChatCompletionRequestFunctionMessage Type ChatCompletionRequestMessageType } func CreateChatCompletionRequestMessageChatCompletionRequestSystemMessage(chatCompletionRequestSystemMessage ChatCompletionRequestSystemMessage) ChatCompletionRequestMessage { typ := ChatCompletionRequestMessageTypeChatCompletionRequestSystemMessage return ChatCompletionRequestMessage{ ChatCompletionRequestSystemMessage: &chatCompletionRequestSystemMessage, Type: typ, } } func CreateChatCompletionRequestMessageChatCompletionRequestUserMessage(chatCompletionRequestUserMessage ChatCompletionRequestUserMessage) ChatCompletionRequestMessage { typ := ChatCompletionRequestMessageTypeChatCompletionRequestUserMessage return ChatCompletionRequestMessage{ ChatCompletionRequestUserMessage: &chatCompletionRequestUserMessage, Type: typ, } } func CreateChatCompletionRequestMessageChatCompletionRequestAssistantMessage(chatCompletionRequestAssistantMessage ChatCompletionRequestAssistantMessage) ChatCompletionRequestMessage { typ := ChatCompletionRequestMessageTypeChatCompletionRequestAssistantMessage return ChatCompletionRequestMessage{ ChatCompletionRequestAssistantMessage: &chatCompletionRequestAssistantMessage, Type: typ, } } func CreateChatCompletionRequestMessageChatCompletionRequestToolMessage(chatCompletionRequestToolMessage ChatCompletionRequestToolMessage) ChatCompletionRequestMessage { typ := ChatCompletionRequestMessageTypeChatCompletionRequestToolMessage return ChatCompletionRequestMessage{ ChatCompletionRequestToolMessage: &chatCompletionRequestToolMessage, Type: typ, } } func CreateChatCompletionRequestMessageChatCompletionRequestFunctionMessage(chatCompletionRequestFunctionMessage ChatCompletionRequestFunctionMessage) ChatCompletionRequestMessage { typ := ChatCompletionRequestMessageTypeChatCompletionRequestFunctionMessage return ChatCompletionRequestMessage{ ChatCompletionRequestFunctionMessage: &chatCompletionRequestFunctionMessage, Type: typ, } } func (u *ChatCompletionRequestMessage) UnmarshalJSON(data []byte) error { var chatCompletionRequestSystemMessage ChatCompletionRequestSystemMessage = ChatCompletionRequestSystemMessage{} if err := utils.UnmarshalJSON(data, &chatCompletionRequestSystemMessage, "", true, true); err == nil { u.ChatCompletionRequestSystemMessage = &chatCompletionRequestSystemMessage u.Type = ChatCompletionRequestMessageTypeChatCompletionRequestSystemMessage return nil } var chatCompletionRequestUserMessage ChatCompletionRequestUserMessage = ChatCompletionRequestUserMessage{} if err := utils.UnmarshalJSON(data, &chatCompletionRequestUserMessage, "", true, true); err == nil { u.ChatCompletionRequestUserMessage = &chatCompletionRequestUserMessage u.Type = ChatCompletionRequestMessageTypeChatCompletionRequestUserMessage return nil } var chatCompletionRequestToolMessage ChatCompletionRequestToolMessage = ChatCompletionRequestToolMessage{} if err := utils.UnmarshalJSON(data, &chatCompletionRequestToolMessage, "", true, true); err == nil { u.ChatCompletionRequestToolMessage = &chatCompletionRequestToolMessage u.Type = ChatCompletionRequestMessageTypeChatCompletionRequestToolMessage return nil } var chatCompletionRequestFunctionMessage ChatCompletionRequestFunctionMessage = ChatCompletionRequestFunctionMessage{} if err := utils.UnmarshalJSON(data, &chatCompletionRequestFunctionMessage, "", true, true); err == nil { u.ChatCompletionRequestFunctionMessage = &chatCompletionRequestFunctionMessage u.Type = ChatCompletionRequestMessageTypeChatCompletionRequestFunctionMessage return nil } var chatCompletionRequestAssistantMessage ChatCompletionRequestAssistantMessage = ChatCompletionRequestAssistantMessage{} if err := utils.UnmarshalJSON(data, &chatCompletionRequestAssistantMessage, "", true, true); err == nil { u.ChatCompletionRequestAssistantMessage = &chatCompletionRequestAssistantMessage u.Type = ChatCompletionRequestMessageTypeChatCompletionRequestAssistantMessage return nil } return fmt.Errorf("could not unmarshal `%s` into any supported union types for ChatCompletionRequestMessage", string(data)) } func (u ChatCompletionRequestMessage) MarshalJSON() ([]byte, error) { if u.ChatCompletionRequestSystemMessage != nil { return utils.MarshalJSON(u.ChatCompletionRequestSystemMessage, "", true) } if u.ChatCompletionRequestUserMessage != nil { return utils.MarshalJSON(u.ChatCompletionRequestUserMessage, "", true) } if u.ChatCompletionRequestAssistantMessage != nil { return utils.MarshalJSON(u.ChatCompletionRequestAssistantMessage, "", true) } if u.ChatCompletionRequestToolMessage != nil { return utils.MarshalJSON(u.ChatCompletionRequestToolMessage, "", true) } if u.ChatCompletionRequestFunctionMessage != nil { return utils.MarshalJSON(u.ChatCompletionRequestFunctionMessage, "", true) } return nil, errors.New("could not marshal union type ChatCompletionRequestMessage: all fields are null") }