feat(client): allow overriding unions

This commit is contained in:
stainless-app[bot]
2025-06-03 18:23:36 +00:00
parent 9c70d89df9
commit 5df5ea93ab
21 changed files with 124 additions and 82 deletions

View File

@@ -398,7 +398,7 @@ type AudioTranscriptionNewParamsChunkingStrategyUnion struct {
}
func (u AudioTranscriptionNewParamsChunkingStrategyUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[AudioTranscriptionNewParamsChunkingStrategyUnion](u.OfAuto, u.OfAudioTranscriptionNewsChunkingStrategyVadConfig)
return param.MarshalUnion(u, u.OfAuto, u.OfAudioTranscriptionNewsChunkingStrategyVadConfig)
}
func (u *AudioTranscriptionNewParamsChunkingStrategyUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)

View File

@@ -1427,7 +1427,7 @@ type AssistantToolUnionParam struct {
}
func (u AssistantToolUnionParam) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[AssistantToolUnionParam](u.OfCodeInterpreter, u.OfFileSearch, u.OfFunction)
return param.MarshalUnion(u, u.OfCodeInterpreter, u.OfFileSearch, u.OfFunction)
}
func (u *AssistantToolUnionParam) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -1922,7 +1922,7 @@ type BetaAssistantNewParamsToolResourcesFileSearchVectorStoreChunkingStrategyUni
}
func (u BetaAssistantNewParamsToolResourcesFileSearchVectorStoreChunkingStrategyUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[BetaAssistantNewParamsToolResourcesFileSearchVectorStoreChunkingStrategyUnion](u.OfAuto, u.OfStatic)
return param.MarshalUnion(u, u.OfAuto, u.OfStatic)
}
func (u *BetaAssistantNewParamsToolResourcesFileSearchVectorStoreChunkingStrategyUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)

View File

@@ -211,7 +211,7 @@ type AssistantResponseFormatOptionUnionParam struct {
}
func (u AssistantResponseFormatOptionUnionParam) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[AssistantResponseFormatOptionUnionParam](u.OfAuto, u.OfText, u.OfJSONObject, u.OfJSONSchema)
return param.MarshalUnion(u, u.OfAuto, u.OfText, u.OfJSONObject, u.OfJSONSchema)
}
func (u *AssistantResponseFormatOptionUnionParam) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -432,7 +432,7 @@ type AssistantToolChoiceOptionUnionParam struct {
}
func (u AssistantToolChoiceOptionUnionParam) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[AssistantToolChoiceOptionUnionParam](u.OfAuto, u.OfAssistantToolChoice)
return param.MarshalUnion(u, u.OfAuto, u.OfAssistantToolChoice)
}
func (u *AssistantToolChoiceOptionUnionParam) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -643,7 +643,7 @@ type BetaThreadNewParamsMessageContentUnion struct {
}
func (u BetaThreadNewParamsMessageContentUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[BetaThreadNewParamsMessageContentUnion](u.OfString, u.OfArrayOfContentParts)
return param.MarshalUnion(u, u.OfString, u.OfArrayOfContentParts)
}
func (u *BetaThreadNewParamsMessageContentUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -684,7 +684,7 @@ type BetaThreadNewParamsMessageAttachmentToolUnion struct {
}
func (u BetaThreadNewParamsMessageAttachmentToolUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[BetaThreadNewParamsMessageAttachmentToolUnion](u.OfCodeInterpreter, u.OfFileSearch)
return param.MarshalUnion(u, u.OfCodeInterpreter, u.OfFileSearch)
}
func (u *BetaThreadNewParamsMessageAttachmentToolUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -831,7 +831,7 @@ type BetaThreadNewParamsToolResourcesFileSearchVectorStoreChunkingStrategyUnion
}
func (u BetaThreadNewParamsToolResourcesFileSearchVectorStoreChunkingStrategyUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[BetaThreadNewParamsToolResourcesFileSearchVectorStoreChunkingStrategyUnion](u.OfAuto, u.OfStatic)
return param.MarshalUnion(u, u.OfAuto, u.OfStatic)
}
func (u *BetaThreadNewParamsToolResourcesFileSearchVectorStoreChunkingStrategyUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -1188,7 +1188,7 @@ type BetaThreadNewAndRunParamsThreadMessageContentUnion struct {
}
func (u BetaThreadNewAndRunParamsThreadMessageContentUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[BetaThreadNewAndRunParamsThreadMessageContentUnion](u.OfString, u.OfArrayOfContentParts)
return param.MarshalUnion(u, u.OfString, u.OfArrayOfContentParts)
}
func (u *BetaThreadNewAndRunParamsThreadMessageContentUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -1229,7 +1229,7 @@ type BetaThreadNewAndRunParamsThreadMessageAttachmentToolUnion struct {
}
func (u BetaThreadNewAndRunParamsThreadMessageAttachmentToolUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[BetaThreadNewAndRunParamsThreadMessageAttachmentToolUnion](u.OfCodeInterpreter, u.OfFileSearch)
return param.MarshalUnion(u, u.OfCodeInterpreter, u.OfFileSearch)
}
func (u *BetaThreadNewAndRunParamsThreadMessageAttachmentToolUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -1376,7 +1376,7 @@ type BetaThreadNewAndRunParamsThreadToolResourcesFileSearchVectorStoreChunkingSt
}
func (u BetaThreadNewAndRunParamsThreadToolResourcesFileSearchVectorStoreChunkingStrategyUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[BetaThreadNewAndRunParamsThreadToolResourcesFileSearchVectorStoreChunkingStrategyUnion](u.OfAuto, u.OfStatic)
return param.MarshalUnion(u, u.OfAuto, u.OfStatic)
}
func (u *BetaThreadNewAndRunParamsThreadToolResourcesFileSearchVectorStoreChunkingStrategyUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)

View File

@@ -1216,7 +1216,7 @@ type MessageContentPartParamUnion struct {
}
func (u MessageContentPartParamUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[MessageContentPartParamUnion](u.OfImageFile, u.OfImageURL, u.OfText)
return param.MarshalUnion(u, u.OfImageFile, u.OfImageURL, u.OfText)
}
func (u *MessageContentPartParamUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -1541,7 +1541,7 @@ type BetaThreadMessageNewParamsContentUnion struct {
}
func (u BetaThreadMessageNewParamsContentUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[BetaThreadMessageNewParamsContentUnion](u.OfString, u.OfArrayOfContentParts)
return param.MarshalUnion(u, u.OfString, u.OfArrayOfContentParts)
}
func (u *BetaThreadMessageNewParamsContentUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -1595,7 +1595,7 @@ type BetaThreadMessageNewParamsAttachmentToolUnion struct {
}
func (u BetaThreadMessageNewParamsAttachmentToolUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[BetaThreadMessageNewParamsAttachmentToolUnion](u.OfCodeInterpreter, u.OfFileSearch)
return param.MarshalUnion(u, u.OfCodeInterpreter, u.OfFileSearch)
}
func (u *BetaThreadMessageNewParamsAttachmentToolUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)

View File

@@ -741,7 +741,7 @@ type BetaThreadRunNewParamsAdditionalMessageContentUnion struct {
}
func (u BetaThreadRunNewParamsAdditionalMessageContentUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[BetaThreadRunNewParamsAdditionalMessageContentUnion](u.OfString, u.OfArrayOfContentParts)
return param.MarshalUnion(u, u.OfString, u.OfArrayOfContentParts)
}
func (u *BetaThreadRunNewParamsAdditionalMessageContentUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -782,7 +782,7 @@ type BetaThreadRunNewParamsAdditionalMessageAttachmentToolUnion struct {
}
func (u BetaThreadRunNewParamsAdditionalMessageAttachmentToolUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[BetaThreadRunNewParamsAdditionalMessageAttachmentToolUnion](u.OfCodeInterpreter, u.OfFileSearch)
return param.MarshalUnion(u, u.OfCodeInterpreter, u.OfFileSearch)
}
func (u *BetaThreadRunNewParamsAdditionalMessageAttachmentToolUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)

View File

@@ -366,7 +366,7 @@ type ChatCompletionAssistantMessageParamContentUnion struct {
}
func (u ChatCompletionAssistantMessageParamContentUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[ChatCompletionAssistantMessageParamContentUnion](u.OfString, u.OfArrayOfContentParts)
return param.MarshalUnion(u, u.OfString, u.OfArrayOfContentParts)
}
func (u *ChatCompletionAssistantMessageParamContentUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -391,7 +391,7 @@ type ChatCompletionAssistantMessageParamContentArrayOfContentPartUnion struct {
}
func (u ChatCompletionAssistantMessageParamContentArrayOfContentPartUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[ChatCompletionAssistantMessageParamContentArrayOfContentPartUnion](u.OfText, u.OfRefusal)
return param.MarshalUnion(u, u.OfText, u.OfRefusal)
}
func (u *ChatCompletionAssistantMessageParamContentArrayOfContentPartUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -847,7 +847,7 @@ type ChatCompletionContentPartUnionParam struct {
}
func (u ChatCompletionContentPartUnionParam) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[ChatCompletionContentPartUnionParam](u.OfText, u.OfImageURL, u.OfInputAudio, u.OfFile)
return param.MarshalUnion(u, u.OfText, u.OfImageURL, u.OfInputAudio, u.OfFile)
}
func (u *ChatCompletionContentPartUnionParam) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -1153,7 +1153,7 @@ type ChatCompletionDeveloperMessageParamContentUnion struct {
}
func (u ChatCompletionDeveloperMessageParamContentUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[ChatCompletionDeveloperMessageParamContentUnion](u.OfString, u.OfArrayOfContentParts)
return param.MarshalUnion(u, u.OfString, u.OfArrayOfContentParts)
}
func (u *ChatCompletionDeveloperMessageParamContentUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -1439,7 +1439,7 @@ type ChatCompletionMessageParamUnion struct {
}
func (u ChatCompletionMessageParamUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[ChatCompletionMessageParamUnion](u.OfDeveloper,
return param.MarshalUnion(u, u.OfDeveloper,
u.OfSystem,
u.OfUser,
u.OfAssistant,
@@ -1761,7 +1761,7 @@ type ChatCompletionPredictionContentContentUnionParam struct {
}
func (u ChatCompletionPredictionContentContentUnionParam) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[ChatCompletionPredictionContentContentUnionParam](u.OfString, u.OfArrayOfContentParts)
return param.MarshalUnion(u, u.OfString, u.OfArrayOfContentParts)
}
func (u *ChatCompletionPredictionContentContentUnionParam) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -1852,7 +1852,7 @@ type ChatCompletionSystemMessageParamContentUnion struct {
}
func (u ChatCompletionSystemMessageParamContentUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[ChatCompletionSystemMessageParamContentUnion](u.OfString, u.OfArrayOfContentParts)
return param.MarshalUnion(u, u.OfString, u.OfArrayOfContentParts)
}
func (u *ChatCompletionSystemMessageParamContentUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -1963,7 +1963,7 @@ type ChatCompletionToolChoiceOptionUnionParam struct {
}
func (u ChatCompletionToolChoiceOptionUnionParam) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[ChatCompletionToolChoiceOptionUnionParam](u.OfAuto, u.OfChatCompletionNamedToolChoice)
return param.MarshalUnion(u, u.OfAuto, u.OfChatCompletionNamedToolChoice)
}
func (u *ChatCompletionToolChoiceOptionUnionParam) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -2020,7 +2020,7 @@ type ChatCompletionToolMessageParamContentUnion struct {
}
func (u ChatCompletionToolMessageParamContentUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[ChatCompletionToolMessageParamContentUnion](u.OfString, u.OfArrayOfContentParts)
return param.MarshalUnion(u, u.OfString, u.OfArrayOfContentParts)
}
func (u *ChatCompletionToolMessageParamContentUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -2070,7 +2070,7 @@ type ChatCompletionUserMessageParamContentUnion struct {
}
func (u ChatCompletionUserMessageParamContentUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[ChatCompletionUserMessageParamContentUnion](u.OfString, u.OfArrayOfContentParts)
return param.MarshalUnion(u, u.OfString, u.OfArrayOfContentParts)
}
func (u *ChatCompletionUserMessageParamContentUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -2302,7 +2302,7 @@ type ChatCompletionNewParamsFunctionCallUnion struct {
}
func (u ChatCompletionNewParamsFunctionCallUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[ChatCompletionNewParamsFunctionCallUnion](u.OfFunctionCallMode, u.OfFunctionCallOption)
return param.MarshalUnion(u, u.OfFunctionCallMode, u.OfFunctionCallOption)
}
func (u *ChatCompletionNewParamsFunctionCallUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -2367,7 +2367,7 @@ type ChatCompletionNewParamsResponseFormatUnion struct {
}
func (u ChatCompletionNewParamsResponseFormatUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[ChatCompletionNewParamsResponseFormatUnion](u.OfText, u.OfJSONSchema, u.OfJSONObject)
return param.MarshalUnion(u, u.OfText, u.OfJSONSchema, u.OfJSONObject)
}
func (u *ChatCompletionNewParamsResponseFormatUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -2439,7 +2439,7 @@ type ChatCompletionNewParamsStopUnion struct {
}
func (u ChatCompletionNewParamsStopUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[ChatCompletionNewParamsStopUnion](u.OfString, u.OfStringArray)
return param.MarshalUnion(u, u.OfString, u.OfStringArray)
}
func (u *ChatCompletionNewParamsStopUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)

View File

@@ -381,7 +381,7 @@ type CompletionNewParamsPromptUnion struct {
}
func (u CompletionNewParamsPromptUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[CompletionNewParamsPromptUnion](u.OfString, u.OfArrayOfStrings, u.OfArrayOfTokens, u.OfArrayOfTokenArrays)
return param.MarshalUnion(u, u.OfString, u.OfArrayOfStrings, u.OfArrayOfTokens, u.OfArrayOfTokenArrays)
}
func (u *CompletionNewParamsPromptUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -410,7 +410,7 @@ type CompletionNewParamsStopUnion struct {
}
func (u CompletionNewParamsStopUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[CompletionNewParamsStopUnion](u.OfString, u.OfStringArray)
return param.MarshalUnion(u, u.OfString, u.OfStringArray)
}
func (u *CompletionNewParamsStopUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)

View File

@@ -174,7 +174,7 @@ type EmbeddingNewParamsInputUnion struct {
}
func (u EmbeddingNewParamsInputUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[EmbeddingNewParamsInputUnion](u.OfString, u.OfArrayOfStrings, u.OfArrayOfTokens, u.OfArrayOfTokenArrays)
return param.MarshalUnion(u, u.OfString, u.OfArrayOfStrings, u.OfArrayOfTokens, u.OfArrayOfTokenArrays)
}
func (u *EmbeddingNewParamsInputUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)

View File

@@ -301,7 +301,7 @@ type FineTuningAlphaGraderRunParamsGraderUnion struct {
}
func (u FineTuningAlphaGraderRunParamsGraderUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[FineTuningAlphaGraderRunParamsGraderUnion](u.OfStringCheck,
return param.MarshalUnion(u, u.OfStringCheck,
u.OfTextSimilarity,
u.OfPython,
u.OfScoreModel,
@@ -505,7 +505,7 @@ type FineTuningAlphaGraderValidateParamsGraderUnion struct {
}
func (u FineTuningAlphaGraderValidateParamsGraderUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[FineTuningAlphaGraderValidateParamsGraderUnion](u.OfStringCheckGrader,
return param.MarshalUnion(u, u.OfStringCheckGrader,
u.OfTextSimilarityGrader,
u.OfPythonGrader,
u.OfScoreModelGrader,

View File

@@ -688,7 +688,7 @@ type FineTuningJobNewParamsHyperparametersBatchSizeUnion struct {
}
func (u FineTuningJobNewParamsHyperparametersBatchSizeUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[FineTuningJobNewParamsHyperparametersBatchSizeUnion](u.OfAuto, u.OfInt)
return param.MarshalUnion(u, u.OfAuto, u.OfInt)
}
func (u *FineTuningJobNewParamsHyperparametersBatchSizeUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -714,7 +714,7 @@ type FineTuningJobNewParamsHyperparametersLearningRateMultiplierUnion struct {
}
func (u FineTuningJobNewParamsHyperparametersLearningRateMultiplierUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[FineTuningJobNewParamsHyperparametersLearningRateMultiplierUnion](u.OfAuto, u.OfFloat)
return param.MarshalUnion(u, u.OfAuto, u.OfFloat)
}
func (u *FineTuningJobNewParamsHyperparametersLearningRateMultiplierUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -740,7 +740,7 @@ type FineTuningJobNewParamsHyperparametersNEpochsUnion struct {
}
func (u FineTuningJobNewParamsHyperparametersNEpochsUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[FineTuningJobNewParamsHyperparametersNEpochsUnion](u.OfAuto, u.OfInt)
return param.MarshalUnion(u, u.OfAuto, u.OfInt)
}
func (u *FineTuningJobNewParamsHyperparametersNEpochsUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)

View File

@@ -255,7 +255,7 @@ type DpoHyperparametersBatchSizeUnion struct {
}
func (u DpoHyperparametersBatchSizeUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[DpoHyperparametersBatchSizeUnion](u.OfAuto, u.OfInt)
return param.MarshalUnion(u, u.OfAuto, u.OfInt)
}
func (u *DpoHyperparametersBatchSizeUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -281,7 +281,7 @@ type DpoHyperparametersBetaUnion struct {
}
func (u DpoHyperparametersBetaUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[DpoHyperparametersBetaUnion](u.OfAuto, u.OfFloat)
return param.MarshalUnion(u, u.OfAuto, u.OfFloat)
}
func (u *DpoHyperparametersBetaUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -307,7 +307,7 @@ type DpoHyperparametersLearningRateMultiplierUnion struct {
}
func (u DpoHyperparametersLearningRateMultiplierUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[DpoHyperparametersLearningRateMultiplierUnion](u.OfAuto, u.OfFloat)
return param.MarshalUnion(u, u.OfAuto, u.OfFloat)
}
func (u *DpoHyperparametersLearningRateMultiplierUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -333,7 +333,7 @@ type DpoHyperparametersNEpochsUnion struct {
}
func (u DpoHyperparametersNEpochsUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[DpoHyperparametersNEpochsUnion](u.OfAuto, u.OfInt)
return param.MarshalUnion(u, u.OfAuto, u.OfInt)
}
func (u *DpoHyperparametersNEpochsUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -718,7 +718,7 @@ type ReinforcementHyperparametersBatchSizeUnion struct {
}
func (u ReinforcementHyperparametersBatchSizeUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[ReinforcementHyperparametersBatchSizeUnion](u.OfAuto, u.OfInt)
return param.MarshalUnion(u, u.OfAuto, u.OfInt)
}
func (u *ReinforcementHyperparametersBatchSizeUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -744,7 +744,7 @@ type ReinforcementHyperparametersComputeMultiplierUnion struct {
}
func (u ReinforcementHyperparametersComputeMultiplierUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[ReinforcementHyperparametersComputeMultiplierUnion](u.OfAuto, u.OfFloat)
return param.MarshalUnion(u, u.OfAuto, u.OfFloat)
}
func (u *ReinforcementHyperparametersComputeMultiplierUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -770,7 +770,7 @@ type ReinforcementHyperparametersEvalIntervalUnion struct {
}
func (u ReinforcementHyperparametersEvalIntervalUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[ReinforcementHyperparametersEvalIntervalUnion](u.OfAuto, u.OfInt)
return param.MarshalUnion(u, u.OfAuto, u.OfInt)
}
func (u *ReinforcementHyperparametersEvalIntervalUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -796,7 +796,7 @@ type ReinforcementHyperparametersEvalSamplesUnion struct {
}
func (u ReinforcementHyperparametersEvalSamplesUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[ReinforcementHyperparametersEvalSamplesUnion](u.OfAuto, u.OfInt)
return param.MarshalUnion(u, u.OfAuto, u.OfInt)
}
func (u *ReinforcementHyperparametersEvalSamplesUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -822,7 +822,7 @@ type ReinforcementHyperparametersLearningRateMultiplierUnion struct {
}
func (u ReinforcementHyperparametersLearningRateMultiplierUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[ReinforcementHyperparametersLearningRateMultiplierUnion](u.OfAuto, u.OfFloat)
return param.MarshalUnion(u, u.OfAuto, u.OfFloat)
}
func (u *ReinforcementHyperparametersLearningRateMultiplierUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -848,7 +848,7 @@ type ReinforcementHyperparametersNEpochsUnion struct {
}
func (u ReinforcementHyperparametersNEpochsUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[ReinforcementHyperparametersNEpochsUnion](u.OfAuto, u.OfInt)
return param.MarshalUnion(u, u.OfAuto, u.OfInt)
}
func (u *ReinforcementHyperparametersNEpochsUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -1030,7 +1030,7 @@ type ReinforcementMethodGraderUnionParam struct {
}
func (u ReinforcementMethodGraderUnionParam) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[ReinforcementMethodGraderUnionParam](u.OfStringCheckGrader,
return param.MarshalUnion(u, u.OfStringCheckGrader,
u.OfTextSimilarityGrader,
u.OfPythonGrader,
u.OfScoreModelGrader,
@@ -1377,7 +1377,7 @@ type SupervisedHyperparametersBatchSizeUnion struct {
}
func (u SupervisedHyperparametersBatchSizeUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[SupervisedHyperparametersBatchSizeUnion](u.OfAuto, u.OfInt)
return param.MarshalUnion(u, u.OfAuto, u.OfInt)
}
func (u *SupervisedHyperparametersBatchSizeUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -1403,7 +1403,7 @@ type SupervisedHyperparametersLearningRateMultiplierUnion struct {
}
func (u SupervisedHyperparametersLearningRateMultiplierUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[SupervisedHyperparametersLearningRateMultiplierUnion](u.OfAuto, u.OfFloat)
return param.MarshalUnion(u, u.OfAuto, u.OfFloat)
}
func (u *SupervisedHyperparametersLearningRateMultiplierUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -1429,7 +1429,7 @@ type SupervisedHyperparametersNEpochsUnion struct {
}
func (u SupervisedHyperparametersNEpochsUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[SupervisedHyperparametersNEpochsUnion](u.OfAuto, u.OfInt)
return param.MarshalUnion(u, u.OfAuto, u.OfInt)
}
func (u *SupervisedHyperparametersNEpochsUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)

View File

@@ -250,7 +250,7 @@ type LabelModelGraderInputContentUnionParam struct {
}
func (u LabelModelGraderInputContentUnionParam) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[LabelModelGraderInputContentUnionParam](u.OfString, u.OfInputText, u.OfOutputText)
return param.MarshalUnion(u, u.OfString, u.OfInputText, u.OfOutputText)
}
func (u *LabelModelGraderInputContentUnionParam) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -496,7 +496,7 @@ type MultiGraderGradersUnionParam struct {
}
func (u MultiGraderGradersUnionParam) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[MultiGraderGradersUnionParam](u.OfStringCheckGrader,
return param.MarshalUnion(u, u.OfStringCheckGrader,
u.OfTextSimilarityGrader,
u.OfPythonGrader,
u.OfScoreModelGrader,
@@ -947,7 +947,7 @@ type ScoreModelGraderInputContentUnionParam struct {
}
func (u ScoreModelGraderInputContentUnionParam) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[ScoreModelGraderInputContentUnionParam](u.OfString, u.OfInputText, u.OfOutputText)
return param.MarshalUnion(u, u.OfString, u.OfInputText, u.OfOutputText)
}
func (u *ScoreModelGraderInputContentUnionParam) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)

View File

@@ -322,7 +322,7 @@ type ImageEditParamsImageUnion struct {
}
func (u ImageEditParamsImageUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[ImageEditParamsImageUnion](u.OfFile, u.OfFileArray)
return param.MarshalUnion(u, u.OfFile, u.OfFileArray)
}
func (u *ImageEditParamsImageUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)

View File

@@ -342,7 +342,7 @@ type ModerationMultiModalInputUnionParam struct {
}
func (u ModerationMultiModalInputUnionParam) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[ModerationMultiModalInputUnionParam](u.OfImageURL, u.OfText)
return param.MarshalUnion(u, u.OfImageURL, u.OfText)
}
func (u *ModerationMultiModalInputUnionParam) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -467,7 +467,7 @@ type ModerationNewParamsInputUnion struct {
}
func (u ModerationNewParamsInputUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[ModerationNewParamsInputUnion](u.OfString, u.OfStringArray, u.OfModerationMultiModalArray)
return param.MarshalUnion(u, u.OfString, u.OfStringArray, u.OfModerationMultiModalArray)
}
func (u *ModerationNewParamsInputUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)

View File

@@ -68,7 +68,7 @@ func MarshalWithExtras[T ParamStruct, R any](f T, underlying any, extras map[str
// MarshalUnion uses a shimmed 'encoding/json' from Go 1.24, to support the 'omitzero' tag
//
// Stability for the API of MarshalUnion is not guaranteed.
func MarshalUnion[T any](variants ...any) ([]byte, error) {
func MarshalUnion[T ParamStruct](metadata T, variants ...any) ([]byte, error) {
nPresent := 0
presentIdx := -1
for i, variant := range variants {
@@ -78,6 +78,9 @@ func MarshalUnion[T any](variants ...any) ([]byte, error) {
}
}
if nPresent == 0 || presentIdx == -1 {
if ovr, ok := metadata.Overrides(); ok {
return shimjson.Marshal(ovr)
}
return []byte(`null`), nil
} else if nPresent > 1 {
return nil, &json.MarshalerError{

View File

@@ -218,10 +218,11 @@ func TestExtraFieldsForceOmitted(t *testing.T) {
type UnionWithDates struct {
OfDate param.Opt[time.Time]
OfTime param.Opt[time.Time]
param.APIUnion
}
func (r UnionWithDates) MarshalJSON() (data []byte, err error) {
return param.MarshalUnion[UnionWithDates](param.EncodedAsDate(r.OfDate), r.OfTime)
return param.MarshalUnion(r, param.EncodedAsDate(r.OfDate), r.OfTime)
}
func TestUnionDateMarshal(t *testing.T) {
@@ -324,3 +325,41 @@ func TestOptionalInterfaceAssignability(t *testing.T) {
notOpt.implOpt() // silence the warning
}
type PrimitiveUnion struct {
OfString param.Opt[string]
OfInt param.Opt[int]
param.APIUnion
}
func (p PrimitiveUnion) MarshalJSON() (data []byte, err error) {
return param.MarshalUnion(p, p.OfString, p.OfInt)
}
func TestOverriddenUnion(t *testing.T) {
tests := map[string]struct {
value PrimitiveUnion
expected string
}{
"string": {
param.Override[PrimitiveUnion](json.RawMessage(`"hello"`)),
`"hello"`,
},
"int": {
param.Override[PrimitiveUnion](json.RawMessage(`42`)),
`42`,
},
}
for name, test := range tests {
t.Run(name, func(t *testing.T) {
b, err := json.Marshal(test.value)
if err != nil {
t.Fatalf("didn't expect error %v, expected %s", err, test.expected)
}
if string(b) != test.expected {
t.Fatalf("expected %s, received %s", test.expected, string(b))
}
})
}
}

View File

@@ -261,7 +261,7 @@ type EasyInputMessageContentUnionParam struct {
}
func (u EasyInputMessageContentUnionParam) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[EasyInputMessageContentUnionParam](u.OfString, u.OfInputItemContentList)
return param.MarshalUnion(u, u.OfString, u.OfInputItemContentList)
}
func (u *EasyInputMessageContentUnionParam) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -439,7 +439,7 @@ type FileSearchToolFiltersUnionParam struct {
}
func (u FileSearchToolFiltersUnionParam) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[FileSearchToolFiltersUnionParam](u.OfComparisonFilter, u.OfCompoundFilter)
return param.MarshalUnion(u, u.OfComparisonFilter, u.OfCompoundFilter)
}
func (u *FileSearchToolFiltersUnionParam) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -1325,7 +1325,7 @@ type ResponseCodeInterpreterToolCallResultUnionParam struct {
}
func (u ResponseCodeInterpreterToolCallResultUnionParam) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[ResponseCodeInterpreterToolCallResultUnionParam](u.OfLogs, u.OfFiles)
return param.MarshalUnion(u, u.OfLogs, u.OfFiles)
}
func (u *ResponseCodeInterpreterToolCallResultUnionParam) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -2000,7 +2000,7 @@ type ResponseComputerToolCallActionUnionParam struct {
}
func (u ResponseComputerToolCallActionUnionParam) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[ResponseComputerToolCallActionUnionParam](u.OfClick,
return param.MarshalUnion(u, u.OfClick,
u.OfDoubleClick,
u.OfDrag,
u.OfKeypress,
@@ -3188,7 +3188,7 @@ type ResponseFileSearchToolCallResultAttributeUnionParam struct {
}
func (u ResponseFileSearchToolCallResultAttributeUnionParam) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[ResponseFileSearchToolCallResultAttributeUnionParam](u.OfString, u.OfFloat, u.OfBool)
return param.MarshalUnion(u, u.OfString, u.OfFloat, u.OfBool)
}
func (u *ResponseFileSearchToolCallResultAttributeUnionParam) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -3313,7 +3313,7 @@ type ResponseFormatTextConfigUnionParam struct {
}
func (u ResponseFormatTextConfigUnionParam) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[ResponseFormatTextConfigUnionParam](u.OfText, u.OfJSONSchema, u.OfJSONObject)
return param.MarshalUnion(u, u.OfText, u.OfJSONSchema, u.OfJSONObject)
}
func (u *ResponseFormatTextConfigUnionParam) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -4068,7 +4068,7 @@ type ResponseInputContentUnionParam struct {
}
func (u ResponseInputContentUnionParam) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[ResponseInputContentUnionParam](u.OfInputText, u.OfInputImage, u.OfInputFile)
return param.MarshalUnion(u, u.OfInputText, u.OfInputImage, u.OfInputFile)
}
func (u *ResponseInputContentUnionParam) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -4432,7 +4432,7 @@ type ResponseInputItemUnionParam struct {
}
func (u ResponseInputItemUnionParam) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[ResponseInputItemUnionParam](u.OfMessage,
return param.MarshalUnion(u, u.OfMessage,
u.OfInputMessage,
u.OfOutputMessage,
u.OfFileSearchCall,
@@ -7223,7 +7223,7 @@ type ResponseOutputMessageContentUnionParam struct {
}
func (u ResponseOutputMessageContentUnionParam) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[ResponseOutputMessageContentUnionParam](u.OfOutputText, u.OfRefusal)
return param.MarshalUnion(u, u.OfOutputText, u.OfRefusal)
}
func (u *ResponseOutputMessageContentUnionParam) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -7661,7 +7661,7 @@ type ResponseOutputTextAnnotationUnionParam struct {
}
func (u ResponseOutputTextAnnotationUnionParam) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[ResponseOutputTextAnnotationUnionParam](u.OfFileCitation, u.OfURLCitation, u.OfContainerFileCitation, u.OfFilePath)
return param.MarshalUnion(u, u.OfFileCitation, u.OfURLCitation, u.OfContainerFileCitation, u.OfFilePath)
}
func (u *ResponseOutputTextAnnotationUnionParam) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -10093,7 +10093,7 @@ type ToolUnionParam struct {
}
func (u ToolUnionParam) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[ToolUnionParam](u.OfFunction,
return param.MarshalUnion(u, u.OfFunction,
u.OfFileSearch,
u.OfWebSearchPreview,
u.OfComputerUsePreview,
@@ -10430,7 +10430,7 @@ type ToolMcpAllowedToolsUnionParam struct {
}
func (u ToolMcpAllowedToolsUnionParam) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[ToolMcpAllowedToolsUnionParam](u.OfMcpAllowedTools, u.OfMcpAllowedToolsFilter)
return param.MarshalUnion(u, u.OfMcpAllowedTools, u.OfMcpAllowedToolsFilter)
}
func (u *ToolMcpAllowedToolsUnionParam) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -10472,7 +10472,7 @@ type ToolMcpRequireApprovalUnionParam struct {
}
func (u ToolMcpRequireApprovalUnionParam) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[ToolMcpRequireApprovalUnionParam](u.OfMcpToolApprovalFilter, u.OfMcpToolApprovalSetting)
return param.MarshalUnion(u, u.OfMcpToolApprovalFilter, u.OfMcpToolApprovalSetting)
}
func (u *ToolMcpRequireApprovalUnionParam) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -10565,7 +10565,7 @@ type ToolCodeInterpreterContainerUnionParam struct {
}
func (u ToolCodeInterpreterContainerUnionParam) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[ToolCodeInterpreterContainerUnionParam](u.OfString, u.OfCodeInterpreterContainerAuto)
return param.MarshalUnion(u, u.OfString, u.OfCodeInterpreterContainerAuto)
}
func (u *ToolCodeInterpreterContainerUnionParam) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -11189,7 +11189,7 @@ type ResponseNewParamsInputUnion struct {
}
func (u ResponseNewParamsInputUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[ResponseNewParamsInputUnion](u.OfString, u.OfInputItemList)
return param.MarshalUnion(u, u.OfString, u.OfInputItemList)
}
func (u *ResponseNewParamsInputUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -11241,7 +11241,7 @@ type ResponseNewParamsToolChoiceUnion struct {
}
func (u ResponseNewParamsToolChoiceUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[ResponseNewParamsToolChoiceUnion](u.OfToolChoiceMode, u.OfHostedTool, u.OfFunctionTool)
return param.MarshalUnion(u, u.OfToolChoiceMode, u.OfHostedTool, u.OfFunctionTool)
}
func (u *ResponseNewParamsToolChoiceUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)

View File

@@ -228,7 +228,7 @@ type ComparisonFilterValueUnionParam struct {
}
func (u ComparisonFilterValueUnionParam) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[ComparisonFilterValueUnionParam](u.OfString, u.OfFloat, u.OfBool)
return param.MarshalUnion(u, u.OfString, u.OfFloat, u.OfBool)
}
func (u *ComparisonFilterValueUnionParam) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)

View File

@@ -248,7 +248,7 @@ type FileChunkingStrategyParamUnion struct {
}
func (u FileChunkingStrategyParamUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[FileChunkingStrategyParamUnion](u.OfAuto, u.OfStatic)
return param.MarshalUnion(u, u.OfAuto, u.OfStatic)
}
func (u *FileChunkingStrategyParamUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -808,7 +808,7 @@ type VectorStoreSearchParamsQueryUnion struct {
}
func (u VectorStoreSearchParamsQueryUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[VectorStoreSearchParamsQueryUnion](u.OfString, u.OfStringArray)
return param.MarshalUnion(u, u.OfString, u.OfStringArray)
}
func (u *VectorStoreSearchParamsQueryUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -833,7 +833,7 @@ type VectorStoreSearchParamsFiltersUnion struct {
}
func (u VectorStoreSearchParamsFiltersUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[VectorStoreSearchParamsFiltersUnion](u.OfComparisonFilter, u.OfCompoundFilter)
return param.MarshalUnion(u, u.OfComparisonFilter, u.OfCompoundFilter)
}
func (u *VectorStoreSearchParamsFiltersUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)

View File

@@ -416,7 +416,7 @@ type VectorStoreFileNewParamsAttributeUnion struct {
}
func (u VectorStoreFileNewParamsAttributeUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[VectorStoreFileNewParamsAttributeUnion](u.OfString, u.OfFloat, u.OfBool)
return param.MarshalUnion(u, u.OfString, u.OfFloat, u.OfBool)
}
func (u *VectorStoreFileNewParamsAttributeUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)
@@ -462,7 +462,7 @@ type VectorStoreFileUpdateParamsAttributeUnion struct {
}
func (u VectorStoreFileUpdateParamsAttributeUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[VectorStoreFileUpdateParamsAttributeUnion](u.OfString, u.OfFloat, u.OfBool)
return param.MarshalUnion(u, u.OfString, u.OfFloat, u.OfBool)
}
func (u *VectorStoreFileUpdateParamsAttributeUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)

View File

@@ -292,7 +292,7 @@ type VectorStoreFileBatchNewParamsAttributeUnion struct {
}
func (u VectorStoreFileBatchNewParamsAttributeUnion) MarshalJSON() ([]byte, error) {
return param.MarshalUnion[VectorStoreFileBatchNewParamsAttributeUnion](u.OfString, u.OfFloat, u.OfBool)
return param.MarshalUnion(u, u.OfString, u.OfFloat, u.OfBool)
}
func (u *VectorStoreFileBatchNewParamsAttributeUnion) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, u)