diff --git a/VERSION b/VERSION index 0d91a54..1d0ba9e 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.3.0 +0.4.0 diff --git a/arkruntime/model/messages/oas_interfaces_gen.go b/arkruntime/model/messages/oas_interfaces_gen.go new file mode 100644 index 0000000..dc81371 --- /dev/null +++ b/arkruntime/model/messages/oas_interfaces_gen.go @@ -0,0 +1,9 @@ +// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates. +// SPDX-License-Identifier: Apache-2.0 + +// Code generated by ogen, DO NOT EDIT. +package messages + +type MessagesCreateRes interface { + messagesCreateRes() +} diff --git a/arkruntime/model/messages/oas_json_gen.go b/arkruntime/model/messages/oas_json_gen.go new file mode 100644 index 0000000..d7fa81d --- /dev/null +++ b/arkruntime/model/messages/oas_json_gen.go @@ -0,0 +1,13477 @@ +// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates. +// SPDX-License-Identifier: Apache-2.0 + +// Code generated by ogen, DO NOT EDIT. + +package messages + +import ( + "math/bits" + "strconv" + + "github.com/go-faster/errors" + "github.com/go-faster/jx" + "github.com/volcengine/ark-runtime-go/arkruntime/internal/validate" +) + +// Encode implements json.Marshaler. +func (s *ContentBlockStart) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *ContentBlockStart) encodeFields(e *jx.Encoder) { + { + e.FieldStart("type") + s.Type.Encode(e) + } + { + e.FieldStart("index") + e.Int32(s.Index) + } + { + e.FieldStart("content_block") + s.ContentBlock.Encode(e) + } +} + +var jsonFieldsNameOfContentBlockStart = [3]string{ + 0: "type", + 1: "index", + 2: "content_block", +} + +// Decode decodes ContentBlockStart from json. +func (s *ContentBlockStart) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode ContentBlockStart to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "type": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Type.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + case "index": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Int32() + s.Index = int32(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"index\"") + } + case "content_block": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + if err := s.ContentBlock.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"content_block\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode ContentBlockStart") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfContentBlockStart) { + name = jsonFieldsNameOfContentBlockStart[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *ContentBlockStart) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *ContentBlockStart) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *ContentBlockStartContentBlock) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *ContentBlockStartContentBlock) encodeFields(e *jx.Encoder) { + s.OneOf.encodeFields(e) +} + +var jsonFieldsNameOfContentBlockStartContentBlock = [0]string{} + +// Decode decodes ContentBlockStartContentBlock from json. +func (s *ContentBlockStartContentBlock) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode ContentBlockStartContentBlock to nil") + } + if err := d.Capture(func(d *jx.Decoder) error { + return s.OneOf.Decode(d) + }); err != nil { + return errors.Wrap(err, "decode field OneOf") + } + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + default: + return d.Skip() + } + }); err != nil { + return errors.Wrap(err, "decode ContentBlockStartContentBlock") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *ContentBlockStartContentBlock) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *ContentBlockStartContentBlock) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes ContentBlockStartContentBlockSum as json. +func (s ContentBlockStartContentBlockSum) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +func (s ContentBlockStartContentBlockSum) encodeFields(e *jx.Encoder) { + switch s.Type { + case MessagesResponseContentPartTextContentBlockStartContentBlockSum: + e.FieldStart("type") + e.Str("text") + { + s := s.MessagesResponseContentPartText + { + e.FieldStart("text") + e.Str(s.Text) + } + } + case MessagesResponseContentPartThinkingContentBlockStartContentBlockSum: + e.FieldStart("type") + e.Str("thinking") + { + s := s.MessagesResponseContentPartThinking + { + e.FieldStart("thinking") + e.Str(s.Thinking) + } + { + if s.Signature.Set { + e.FieldStart("signature") + s.Signature.Encode(e) + } + } + } + case MessagesResponseContentPartToolUseContentBlockStartContentBlockSum: + e.FieldStart("type") + e.Str("tool_use") + { + s := s.MessagesResponseContentPartToolUse + { + e.FieldStart("id") + e.Str(s.ID) + } + { + e.FieldStart("name") + e.Str(s.Name) + } + { + e.FieldStart("input") + s.Input.Encode(e) + } + } + case MessagesResponseContentPartServerToolUseContentBlockStartContentBlockSum: + e.FieldStart("type") + e.Str("server_tool_use") + { + s := s.MessagesResponseContentPartServerToolUse + { + e.FieldStart("id") + e.Str(s.ID) + } + { + e.FieldStart("name") + e.Str(s.Name) + } + { + e.FieldStart("input") + s.Input.Encode(e) + } + } + case MessagesResponseContentPartWebSearchToolResultContentBlockStartContentBlockSum: + e.FieldStart("type") + e.Str("web_search_tool_result") + { + s := s.MessagesResponseContentPartWebSearchToolResult + { + e.FieldStart("tool_use_id") + e.Str(s.ToolUseID) + } + { + e.FieldStart("content") + s.Content.Encode(e) + } + { + if s.Caller.Set { + e.FieldStart("caller") + s.Caller.Encode(e) + } + } + } + } +} + +// Decode decodes ContentBlockStartContentBlockSum from json. +func (s *ContentBlockStartContentBlockSum) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode ContentBlockStartContentBlockSum to nil") + } + // Sum type discriminator. + if typ := d.Next(); typ != jx.Object { + return errors.Errorf("unexpected json type %q", typ) + } + + var found bool + if err := d.Capture(func(d *jx.Decoder) error { + return d.ObjBytes(func(d *jx.Decoder, key []byte) error { + if found { + return d.Skip() + } + switch string(key) { + case "type": + typ, err := d.Str() + if err != nil { + return err + } + switch typ { + case "text": + s.Type = MessagesResponseContentPartTextContentBlockStartContentBlockSum + found = true + case "thinking": + s.Type = MessagesResponseContentPartThinkingContentBlockStartContentBlockSum + found = true + case "tool_use": + s.Type = MessagesResponseContentPartToolUseContentBlockStartContentBlockSum + found = true + case "server_tool_use": + s.Type = MessagesResponseContentPartServerToolUseContentBlockStartContentBlockSum + found = true + case "web_search_tool_result": + s.Type = MessagesResponseContentPartWebSearchToolResultContentBlockStartContentBlockSum + found = true + default: + return errors.Errorf("unknown type %s", typ) + } + return nil + } + return d.Skip() + }) + }); err != nil { + return errors.Wrap(err, "capture") + } + if !found { + return errors.New("unable to detect sum type variant") + } + switch s.Type { + case MessagesResponseContentPartTextContentBlockStartContentBlockSum: + if err := s.MessagesResponseContentPartText.Decode(d); err != nil { + return err + } + case MessagesResponseContentPartThinkingContentBlockStartContentBlockSum: + if err := s.MessagesResponseContentPartThinking.Decode(d); err != nil { + return err + } + case MessagesResponseContentPartToolUseContentBlockStartContentBlockSum: + if err := s.MessagesResponseContentPartToolUse.Decode(d); err != nil { + return err + } + case MessagesResponseContentPartServerToolUseContentBlockStartContentBlockSum: + if err := s.MessagesResponseContentPartServerToolUse.Decode(d); err != nil { + return err + } + case MessagesResponseContentPartWebSearchToolResultContentBlockStartContentBlockSum: + if err := s.MessagesResponseContentPartWebSearchToolResult.Decode(d); err != nil { + return err + } + default: + return errors.Errorf("inferred invalid type: %s", s.Type) + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s ContentBlockStartContentBlockSum) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *ContentBlockStartContentBlockSum) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes ContentBlockStartType as json. +func (s ContentBlockStartType) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes ContentBlockStartType from json. +func (s *ContentBlockStartType) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode ContentBlockStartType to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch ContentBlockStartType(v) { + case ContentBlockStartTypeContentBlockStart: + *s = ContentBlockStartTypeContentBlockStart + default: + *s = ContentBlockStartType(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s ContentBlockStartType) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *ContentBlockStartType) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *CountTokensResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *CountTokensResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("input_tokens") + e.Int32(s.InputTokens) + } +} + +var jsonFieldsNameOfCountTokensResponse = [1]string{ + 0: "input_tokens", +} + +// Decode decodes CountTokensResponse from json. +func (s *CountTokensResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode CountTokensResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "input_tokens": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Int32() + s.InputTokens = int32(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"input_tokens\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode CountTokensResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfCountTokensResponse) { + name = jsonFieldsNameOfCountTokensResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *CountTokensResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *CountTokensResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *Error) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *Error) encodeFields(e *jx.Encoder) { + { + e.FieldStart("code") + e.Str(s.Code) + } + { + e.FieldStart("message") + e.Str(s.Message) + } + { + e.FieldStart("param") + e.Str(s.Param) + } + { + e.FieldStart("type") + e.Str(s.Type) + } +} + +var jsonFieldsNameOfError = [4]string{ + 0: "code", + 1: "message", + 2: "param", + 3: "type", +} + +// Decode decodes Error from json. +func (s *Error) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode Error to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "code": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.Code = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"code\"") + } + case "message": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.Message = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"message\"") + } + case "param": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Str() + s.Param = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"param\"") + } + case "type": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + v, err := d.Str() + s.Type = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode Error") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00001111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfError) { + name = jsonFieldsNameOfError[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *Error) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *Error) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesContentPart) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesContentPart) encodeFields(e *jx.Encoder) { + s.OneOf.encodeFields(e) +} + +var jsonFieldsNameOfMessagesContentPart = [0]string{} + +// Decode decodes MessagesContentPart from json. +func (s *MessagesContentPart) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesContentPart to nil") + } + if err := d.Capture(func(d *jx.Decoder) error { + return s.OneOf.Decode(d) + }); err != nil { + return errors.Wrap(err, "decode field OneOf") + } + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + default: + return d.Skip() + } + }); err != nil { + return errors.Wrap(err, "decode MessagesContentPart") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesContentPart) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesContentPart) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesContentPartDocument) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesContentPartDocument) encodeFields(e *jx.Encoder) { + { + e.FieldStart("type") + s.Type.Encode(e) + } + { + e.FieldStart("source") + s.Source.Encode(e) + } +} + +var jsonFieldsNameOfMessagesContentPartDocument = [2]string{ + 0: "type", + 1: "source", +} + +// Decode decodes MessagesContentPartDocument from json. +func (s *MessagesContentPartDocument) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesContentPartDocument to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "type": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Type.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + case "source": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.Source.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"source\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesContentPartDocument") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesContentPartDocument) { + name = jsonFieldsNameOfMessagesContentPartDocument[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesContentPartDocument) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesContentPartDocument) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesContentPartDocumentSource) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesContentPartDocumentSource) encodeFields(e *jx.Encoder) { + { + e.FieldStart("type") + s.Type.Encode(e) + } + { + if s.URL.Set { + e.FieldStart("url") + s.URL.Encode(e) + } + } + { + if s.Data.Set { + e.FieldStart("data") + s.Data.Encode(e) + } + } + { + if s.Content != nil { + e.FieldStart("content") + s.Content.Encode(e) + } + } +} + +var jsonFieldsNameOfMessagesContentPartDocumentSource = [4]string{ + 0: "type", + 1: "url", + 2: "data", + 3: "content", +} + +// Decode decodes MessagesContentPartDocumentSource from json. +func (s *MessagesContentPartDocumentSource) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesContentPartDocumentSource to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "type": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Type.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + case "url": + if err := func() error { + s.URL.Reset() + if err := s.URL.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"url\"") + } + case "data": + if err := func() error { + s.Data.Reset() + if err := s.Data.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"data\"") + } + case "content": + if err := func() error { + s.Content = nil + var elem MessagesMessageContent + if err := elem.Decode(d); err != nil { + return err + } + s.Content = &elem + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"content\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesContentPartDocumentSource") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesContentPartDocumentSource) { + name = jsonFieldsNameOfMessagesContentPartDocumentSource[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesContentPartDocumentSource) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesContentPartDocumentSource) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesContentPartDocumentType as json. +func (s MessagesContentPartDocumentType) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes MessagesContentPartDocumentType from json. +func (s *MessagesContentPartDocumentType) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesContentPartDocumentType to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch MessagesContentPartDocumentType(v) { + case MessagesContentPartDocumentTypeDocument: + *s = MessagesContentPartDocumentTypeDocument + default: + *s = MessagesContentPartDocumentType(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesContentPartDocumentType) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesContentPartDocumentType) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesContentPartImage) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesContentPartImage) encodeFields(e *jx.Encoder) { + { + e.FieldStart("type") + s.Type.Encode(e) + } + { + e.FieldStart("source") + s.Source.Encode(e) + } +} + +var jsonFieldsNameOfMessagesContentPartImage = [2]string{ + 0: "type", + 1: "source", +} + +// Decode decodes MessagesContentPartImage from json. +func (s *MessagesContentPartImage) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesContentPartImage to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "type": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Type.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + case "source": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.Source.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"source\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesContentPartImage") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesContentPartImage) { + name = jsonFieldsNameOfMessagesContentPartImage[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesContentPartImage) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesContentPartImage) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesContentPartImageSource) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesContentPartImageSource) encodeFields(e *jx.Encoder) { + { + e.FieldStart("type") + s.Type.Encode(e) + } + { + if s.URL.Set { + e.FieldStart("url") + s.URL.Encode(e) + } + } + { + if s.MediaType.Set { + e.FieldStart("media_type") + s.MediaType.Encode(e) + } + } + { + if s.Data.Set { + e.FieldStart("data") + s.Data.Encode(e) + } + } + { + if s.FileID.Set { + e.FieldStart("file_id") + s.FileID.Encode(e) + } + } + { + if s.IsFrame.Set { + e.FieldStart("is_frame") + s.IsFrame.Encode(e) + } + } +} + +var jsonFieldsNameOfMessagesContentPartImageSource = [6]string{ + 0: "type", + 1: "url", + 2: "media_type", + 3: "data", + 4: "file_id", + 5: "is_frame", +} + +// Decode decodes MessagesContentPartImageSource from json. +func (s *MessagesContentPartImageSource) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesContentPartImageSource to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "type": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Type.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + case "url": + if err := func() error { + s.URL.Reset() + if err := s.URL.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"url\"") + } + case "media_type": + if err := func() error { + s.MediaType.Reset() + if err := s.MediaType.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"media_type\"") + } + case "data": + if err := func() error { + s.Data.Reset() + if err := s.Data.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"data\"") + } + case "file_id": + if err := func() error { + s.FileID.Reset() + if err := s.FileID.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"file_id\"") + } + case "is_frame": + if err := func() error { + s.IsFrame.Reset() + if err := s.IsFrame.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"is_frame\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesContentPartImageSource") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesContentPartImageSource) { + name = jsonFieldsNameOfMessagesContentPartImageSource[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesContentPartImageSource) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesContentPartImageSource) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesContentPartImageType as json. +func (s MessagesContentPartImageType) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes MessagesContentPartImageType from json. +func (s *MessagesContentPartImageType) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesContentPartImageType to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch MessagesContentPartImageType(v) { + case MessagesContentPartImageTypeImage: + *s = MessagesContentPartImageTypeImage + default: + *s = MessagesContentPartImageType(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesContentPartImageType) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesContentPartImageType) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesContentPartServerToolUse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesContentPartServerToolUse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("type") + s.Type.Encode(e) + } + { + e.FieldStart("id") + e.Str(s.ID) + } + { + e.FieldStart("name") + e.Str(s.Name) + } + { + e.FieldStart("input") + s.Input.Encode(e) + } +} + +var jsonFieldsNameOfMessagesContentPartServerToolUse = [4]string{ + 0: "type", + 1: "id", + 2: "name", + 3: "input", +} + +// Decode decodes MessagesContentPartServerToolUse from json. +func (s *MessagesContentPartServerToolUse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesContentPartServerToolUse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "type": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Type.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + case "id": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.ID = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"id\"") + } + case "name": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Str() + s.Name = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"name\"") + } + case "input": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + if err := s.Input.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"input\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesContentPartServerToolUse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00001111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesContentPartServerToolUse) { + name = jsonFieldsNameOfMessagesContentPartServerToolUse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesContentPartServerToolUse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesContentPartServerToolUse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s MessagesContentPartServerToolUseInput) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields implements json.Marshaler. +func (s MessagesContentPartServerToolUseInput) encodeFields(e *jx.Encoder) { + for k, elem := range s { + e.FieldStart(k) + + if len(elem) != 0 { + e.Raw(elem) + } + } +} + +// Decode decodes MessagesContentPartServerToolUseInput from json. +func (s *MessagesContentPartServerToolUseInput) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesContentPartServerToolUseInput to nil") + } + m := s.init() + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + var elem jx.Raw + if err := func() error { + v, err := d.RawAppend(nil) + elem = jx.Raw(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrapf(err, "decode field %q", k) + } + m[string(k)] = elem + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesContentPartServerToolUseInput") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesContentPartServerToolUseInput) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesContentPartServerToolUseInput) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesContentPartServerToolUseType as json. +func (s MessagesContentPartServerToolUseType) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes MessagesContentPartServerToolUseType from json. +func (s *MessagesContentPartServerToolUseType) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesContentPartServerToolUseType to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch MessagesContentPartServerToolUseType(v) { + case MessagesContentPartServerToolUseTypeServerToolUse: + *s = MessagesContentPartServerToolUseTypeServerToolUse + default: + *s = MessagesContentPartServerToolUseType(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesContentPartServerToolUseType) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesContentPartServerToolUseType) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesContentPartSum as json. +func (s MessagesContentPartSum) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +func (s MessagesContentPartSum) encodeFields(e *jx.Encoder) { + switch s.Type { + case MessagesContentPartTextMessagesContentPartSum: + e.FieldStart("type") + e.Str("text") + { + s := s.MessagesContentPartText + { + e.FieldStart("text") + e.Str(s.Text) + } + } + case MessagesContentPartThinkingMessagesContentPartSum: + e.FieldStart("type") + e.Str("thinking") + { + s := s.MessagesContentPartThinking + { + if s.Thinking.Set { + e.FieldStart("thinking") + s.Thinking.Encode(e) + } + } + { + if s.Signature.Set { + e.FieldStart("signature") + s.Signature.Encode(e) + } + } + } + case MessagesContentPartImageMessagesContentPartSum: + e.FieldStart("type") + e.Str("image") + { + s := s.MessagesContentPartImage + { + e.FieldStart("source") + s.Source.Encode(e) + } + } + case MessagesContentPartDocumentMessagesContentPartSum: + e.FieldStart("type") + e.Str("document") + { + s := s.MessagesContentPartDocument + { + e.FieldStart("source") + s.Source.Encode(e) + } + } + case MessagesContentPartToolUseMessagesContentPartSum: + e.FieldStart("type") + e.Str("tool_use") + { + s := s.MessagesContentPartToolUse + { + e.FieldStart("id") + e.Str(s.ID) + } + { + e.FieldStart("name") + e.Str(s.Name) + } + { + e.FieldStart("input") + s.Input.Encode(e) + } + } + case MessagesContentPartToolResultMessagesContentPartSum: + e.FieldStart("type") + e.Str("tool_result") + { + s := s.MessagesContentPartToolResult + { + e.FieldStart("tool_use_id") + e.Str(s.ToolUseID) + } + { + e.FieldStart("content") + s.Content.Encode(e) + } + { + if s.IsError.Set { + e.FieldStart("is_error") + s.IsError.Encode(e) + } + } + } + case MessagesContentPartServerToolUseMessagesContentPartSum: + e.FieldStart("type") + e.Str("server_tool_use") + { + s := s.MessagesContentPartServerToolUse + { + e.FieldStart("id") + e.Str(s.ID) + } + { + e.FieldStart("name") + e.Str(s.Name) + } + { + e.FieldStart("input") + s.Input.Encode(e) + } + } + case MessagesContentPartWebSearchToolResultMessagesContentPartSum: + e.FieldStart("type") + e.Str("web_search_tool_result") + { + s := s.MessagesContentPartWebSearchToolResult + { + e.FieldStart("tool_use_id") + e.Str(s.ToolUseID) + } + { + e.FieldStart("content") + s.Content.Encode(e) + } + { + if s.Caller.Set { + e.FieldStart("caller") + s.Caller.Encode(e) + } + } + } + } +} + +// Decode decodes MessagesContentPartSum from json. +func (s *MessagesContentPartSum) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesContentPartSum to nil") + } + // Sum type discriminator. + if typ := d.Next(); typ != jx.Object { + return errors.Errorf("unexpected json type %q", typ) + } + + var found bool + if err := d.Capture(func(d *jx.Decoder) error { + return d.ObjBytes(func(d *jx.Decoder, key []byte) error { + if found { + return d.Skip() + } + switch string(key) { + case "type": + typ, err := d.Str() + if err != nil { + return err + } + switch typ { + case "text": + s.Type = MessagesContentPartTextMessagesContentPartSum + found = true + case "thinking": + s.Type = MessagesContentPartThinkingMessagesContentPartSum + found = true + case "image": + s.Type = MessagesContentPartImageMessagesContentPartSum + found = true + case "document": + s.Type = MessagesContentPartDocumentMessagesContentPartSum + found = true + case "tool_use": + s.Type = MessagesContentPartToolUseMessagesContentPartSum + found = true + case "tool_result": + s.Type = MessagesContentPartToolResultMessagesContentPartSum + found = true + case "server_tool_use": + s.Type = MessagesContentPartServerToolUseMessagesContentPartSum + found = true + case "web_search_tool_result": + s.Type = MessagesContentPartWebSearchToolResultMessagesContentPartSum + found = true + default: + return errors.Errorf("unknown type %s", typ) + } + return nil + } + return d.Skip() + }) + }); err != nil { + return errors.Wrap(err, "capture") + } + if !found { + return errors.New("unable to detect sum type variant") + } + switch s.Type { + case MessagesContentPartTextMessagesContentPartSum: + if err := s.MessagesContentPartText.Decode(d); err != nil { + return err + } + case MessagesContentPartThinkingMessagesContentPartSum: + if err := s.MessagesContentPartThinking.Decode(d); err != nil { + return err + } + case MessagesContentPartImageMessagesContentPartSum: + if err := s.MessagesContentPartImage.Decode(d); err != nil { + return err + } + case MessagesContentPartDocumentMessagesContentPartSum: + if err := s.MessagesContentPartDocument.Decode(d); err != nil { + return err + } + case MessagesContentPartToolUseMessagesContentPartSum: + if err := s.MessagesContentPartToolUse.Decode(d); err != nil { + return err + } + case MessagesContentPartToolResultMessagesContentPartSum: + if err := s.MessagesContentPartToolResult.Decode(d); err != nil { + return err + } + case MessagesContentPartServerToolUseMessagesContentPartSum: + if err := s.MessagesContentPartServerToolUse.Decode(d); err != nil { + return err + } + case MessagesContentPartWebSearchToolResultMessagesContentPartSum: + if err := s.MessagesContentPartWebSearchToolResult.Decode(d); err != nil { + return err + } + default: + return errors.Errorf("inferred invalid type: %s", s.Type) + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesContentPartSum) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesContentPartSum) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesContentPartText) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesContentPartText) encodeFields(e *jx.Encoder) { + { + e.FieldStart("type") + s.Type.Encode(e) + } + { + e.FieldStart("text") + e.Str(s.Text) + } +} + +var jsonFieldsNameOfMessagesContentPartText = [2]string{ + 0: "type", + 1: "text", +} + +// Decode decodes MessagesContentPartText from json. +func (s *MessagesContentPartText) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesContentPartText to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "type": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Type.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + case "text": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.Text = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"text\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesContentPartText") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesContentPartText) { + name = jsonFieldsNameOfMessagesContentPartText[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesContentPartText) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesContentPartText) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesContentPartTextType as json. +func (s MessagesContentPartTextType) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes MessagesContentPartTextType from json. +func (s *MessagesContentPartTextType) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesContentPartTextType to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch MessagesContentPartTextType(v) { + case MessagesContentPartTextTypeText: + *s = MessagesContentPartTextTypeText + default: + *s = MessagesContentPartTextType(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesContentPartTextType) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesContentPartTextType) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesContentPartThinking) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesContentPartThinking) encodeFields(e *jx.Encoder) { + { + e.FieldStart("type") + s.Type.Encode(e) + } + { + if s.Thinking.Set { + e.FieldStart("thinking") + s.Thinking.Encode(e) + } + } + { + if s.Signature.Set { + e.FieldStart("signature") + s.Signature.Encode(e) + } + } +} + +var jsonFieldsNameOfMessagesContentPartThinking = [3]string{ + 0: "type", + 1: "thinking", + 2: "signature", +} + +// Decode decodes MessagesContentPartThinking from json. +func (s *MessagesContentPartThinking) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesContentPartThinking to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "type": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Type.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + case "thinking": + if err := func() error { + s.Thinking.Reset() + if err := s.Thinking.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"thinking\"") + } + case "signature": + if err := func() error { + s.Signature.Reset() + if err := s.Signature.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"signature\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesContentPartThinking") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesContentPartThinking) { + name = jsonFieldsNameOfMessagesContentPartThinking[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesContentPartThinking) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesContentPartThinking) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesContentPartThinkingType as json. +func (s MessagesContentPartThinkingType) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes MessagesContentPartThinkingType from json. +func (s *MessagesContentPartThinkingType) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesContentPartThinkingType to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch MessagesContentPartThinkingType(v) { + case MessagesContentPartThinkingTypeThinking: + *s = MessagesContentPartThinkingTypeThinking + default: + *s = MessagesContentPartThinkingType(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesContentPartThinkingType) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesContentPartThinkingType) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesContentPartToolReference) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesContentPartToolReference) encodeFields(e *jx.Encoder) { + { + e.FieldStart("type") + s.Type.Encode(e) + } + { + e.FieldStart("tool_name") + e.Str(s.ToolName) + } +} + +var jsonFieldsNameOfMessagesContentPartToolReference = [2]string{ + 0: "type", + 1: "tool_name", +} + +// Decode decodes MessagesContentPartToolReference from json. +func (s *MessagesContentPartToolReference) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesContentPartToolReference to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "type": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Type.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + case "tool_name": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.ToolName = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"tool_name\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesContentPartToolReference") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesContentPartToolReference) { + name = jsonFieldsNameOfMessagesContentPartToolReference[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesContentPartToolReference) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesContentPartToolReference) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesContentPartToolReferenceType as json. +func (s MessagesContentPartToolReferenceType) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes MessagesContentPartToolReferenceType from json. +func (s *MessagesContentPartToolReferenceType) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesContentPartToolReferenceType to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch MessagesContentPartToolReferenceType(v) { + case MessagesContentPartToolReferenceTypeToolReference: + *s = MessagesContentPartToolReferenceTypeToolReference + default: + *s = MessagesContentPartToolReferenceType(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesContentPartToolReferenceType) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesContentPartToolReferenceType) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesContentPartToolResult) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesContentPartToolResult) encodeFields(e *jx.Encoder) { + { + e.FieldStart("type") + s.Type.Encode(e) + } + { + e.FieldStart("tool_use_id") + e.Str(s.ToolUseID) + } + { + e.FieldStart("content") + s.Content.Encode(e) + } + { + if s.IsError.Set { + e.FieldStart("is_error") + s.IsError.Encode(e) + } + } +} + +var jsonFieldsNameOfMessagesContentPartToolResult = [4]string{ + 0: "type", + 1: "tool_use_id", + 2: "content", + 3: "is_error", +} + +// Decode decodes MessagesContentPartToolResult from json. +func (s *MessagesContentPartToolResult) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesContentPartToolResult to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "type": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Type.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + case "tool_use_id": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.ToolUseID = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"tool_use_id\"") + } + case "content": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + if err := s.Content.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"content\"") + } + case "is_error": + if err := func() error { + s.IsError.Reset() + if err := s.IsError.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"is_error\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesContentPartToolResult") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesContentPartToolResult) { + name = jsonFieldsNameOfMessagesContentPartToolResult[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesContentPartToolResult) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesContentPartToolResult) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesContentPartToolResultType as json. +func (s MessagesContentPartToolResultType) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes MessagesContentPartToolResultType from json. +func (s *MessagesContentPartToolResultType) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesContentPartToolResultType to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch MessagesContentPartToolResultType(v) { + case MessagesContentPartToolResultTypeToolResult: + *s = MessagesContentPartToolResultTypeToolResult + default: + *s = MessagesContentPartToolResultType(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesContentPartToolResultType) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesContentPartToolResultType) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesContentPartToolUse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesContentPartToolUse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("type") + s.Type.Encode(e) + } + { + e.FieldStart("id") + e.Str(s.ID) + } + { + e.FieldStart("name") + e.Str(s.Name) + } + { + e.FieldStart("input") + s.Input.Encode(e) + } +} + +var jsonFieldsNameOfMessagesContentPartToolUse = [4]string{ + 0: "type", + 1: "id", + 2: "name", + 3: "input", +} + +// Decode decodes MessagesContentPartToolUse from json. +func (s *MessagesContentPartToolUse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesContentPartToolUse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "type": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Type.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + case "id": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.ID = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"id\"") + } + case "name": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Str() + s.Name = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"name\"") + } + case "input": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + if err := s.Input.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"input\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesContentPartToolUse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00001111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesContentPartToolUse) { + name = jsonFieldsNameOfMessagesContentPartToolUse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesContentPartToolUse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesContentPartToolUse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s MessagesContentPartToolUseInput) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields implements json.Marshaler. +func (s MessagesContentPartToolUseInput) encodeFields(e *jx.Encoder) { + for k, elem := range s { + e.FieldStart(k) + + if len(elem) != 0 { + e.Raw(elem) + } + } +} + +// Decode decodes MessagesContentPartToolUseInput from json. +func (s *MessagesContentPartToolUseInput) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesContentPartToolUseInput to nil") + } + m := s.init() + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + var elem jx.Raw + if err := func() error { + v, err := d.RawAppend(nil) + elem = jx.Raw(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrapf(err, "decode field %q", k) + } + m[string(k)] = elem + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesContentPartToolUseInput") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesContentPartToolUseInput) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesContentPartToolUseInput) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesContentPartToolUseType as json. +func (s MessagesContentPartToolUseType) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes MessagesContentPartToolUseType from json. +func (s *MessagesContentPartToolUseType) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesContentPartToolUseType to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch MessagesContentPartToolUseType(v) { + case MessagesContentPartToolUseTypeToolUse: + *s = MessagesContentPartToolUseTypeToolUse + default: + *s = MessagesContentPartToolUseType(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesContentPartToolUseType) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesContentPartToolUseType) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesContentPartWebSearchToolResult) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesContentPartWebSearchToolResult) encodeFields(e *jx.Encoder) { + { + e.FieldStart("type") + s.Type.Encode(e) + } + { + e.FieldStart("tool_use_id") + e.Str(s.ToolUseID) + } + { + e.FieldStart("content") + s.Content.Encode(e) + } + { + if s.Caller.Set { + e.FieldStart("caller") + s.Caller.Encode(e) + } + } +} + +var jsonFieldsNameOfMessagesContentPartWebSearchToolResult = [4]string{ + 0: "type", + 1: "tool_use_id", + 2: "content", + 3: "caller", +} + +// Decode decodes MessagesContentPartWebSearchToolResult from json. +func (s *MessagesContentPartWebSearchToolResult) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesContentPartWebSearchToolResult to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "type": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Type.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + case "tool_use_id": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.ToolUseID = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"tool_use_id\"") + } + case "content": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + if err := s.Content.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"content\"") + } + case "caller": + if err := func() error { + s.Caller.Reset() + if err := s.Caller.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"caller\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesContentPartWebSearchToolResult") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesContentPartWebSearchToolResult) { + name = jsonFieldsNameOfMessagesContentPartWebSearchToolResult[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesContentPartWebSearchToolResult) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesContentPartWebSearchToolResult) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesContentPartWebSearchToolResultType as json. +func (s MessagesContentPartWebSearchToolResultType) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes MessagesContentPartWebSearchToolResultType from json. +func (s *MessagesContentPartWebSearchToolResultType) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesContentPartWebSearchToolResultType to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch MessagesContentPartWebSearchToolResultType(v) { + case MessagesContentPartWebSearchToolResultTypeWebSearchToolResult: + *s = MessagesContentPartWebSearchToolResultTypeWebSearchToolResult + default: + *s = MessagesContentPartWebSearchToolResultType(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesContentPartWebSearchToolResultType) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesContentPartWebSearchToolResultType) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesContextManagement) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesContextManagement) encodeFields(e *jx.Encoder) { + { + if s.Edits != nil { + e.FieldStart("edits") + e.ArrStart() + for _, elem := range s.Edits { + elem.Encode(e) + } + e.ArrEnd() + } + } +} + +var jsonFieldsNameOfMessagesContextManagement = [1]string{ + 0: "edits", +} + +// Decode decodes MessagesContextManagement from json. +func (s *MessagesContextManagement) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesContextManagement to nil") + } + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "edits": + if err := func() error { + s.Edits = make([]MessagesContextManagementEdit, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem MessagesContextManagementEdit + if err := elem.Decode(d); err != nil { + return err + } + s.Edits = append(s.Edits, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"edits\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesContextManagement") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesContextManagement) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesContextManagement) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesContextManagementClearThinking) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesContextManagementClearThinking) encodeFields(e *jx.Encoder) { + { + e.FieldStart("type") + s.Type.Encode(e) + } + { + if s.Keep.Set { + e.FieldStart("keep") + s.Keep.Encode(e) + } + } +} + +var jsonFieldsNameOfMessagesContextManagementClearThinking = [2]string{ + 0: "type", + 1: "keep", +} + +// Decode decodes MessagesContextManagementClearThinking from json. +func (s *MessagesContextManagementClearThinking) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesContextManagementClearThinking to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "type": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Type.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + case "keep": + if err := func() error { + s.Keep.Reset() + if err := s.Keep.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"keep\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesContextManagementClearThinking") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesContextManagementClearThinking) { + name = jsonFieldsNameOfMessagesContextManagementClearThinking[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesContextManagementClearThinking) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesContextManagementClearThinking) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesContextManagementClearThinkingType as json. +func (s MessagesContextManagementClearThinkingType) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes MessagesContextManagementClearThinkingType from json. +func (s *MessagesContextManagementClearThinkingType) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesContextManagementClearThinkingType to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch MessagesContextManagementClearThinkingType(v) { + case MessagesContextManagementClearThinkingTypeClearThinking: + *s = MessagesContextManagementClearThinkingTypeClearThinking + default: + *s = MessagesContextManagementClearThinkingType(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesContextManagementClearThinkingType) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesContextManagementClearThinkingType) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesContextManagementClearToolUses) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesContextManagementClearToolUses) encodeFields(e *jx.Encoder) { + { + e.FieldStart("type") + s.Type.Encode(e) + } + { + if s.Keep.Set { + e.FieldStart("keep") + s.Keep.Encode(e) + } + } + { + if s.ExcludeTools != nil { + e.FieldStart("exclude_tools") + e.ArrStart() + for _, elem := range s.ExcludeTools { + e.Str(elem) + } + e.ArrEnd() + } + } + { + if s.ClearToolInputs.Set { + e.FieldStart("clear_tool_inputs") + s.ClearToolInputs.Encode(e) + } + } + { + if s.Trigger.Set { + e.FieldStart("trigger") + s.Trigger.Encode(e) + } + } +} + +var jsonFieldsNameOfMessagesContextManagementClearToolUses = [5]string{ + 0: "type", + 1: "keep", + 2: "exclude_tools", + 3: "clear_tool_inputs", + 4: "trigger", +} + +// Decode decodes MessagesContextManagementClearToolUses from json. +func (s *MessagesContextManagementClearToolUses) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesContextManagementClearToolUses to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "type": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Type.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + case "keep": + if err := func() error { + s.Keep.Reset() + if err := s.Keep.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"keep\"") + } + case "exclude_tools": + if err := func() error { + s.ExcludeTools = make([]string, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem string + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + s.ExcludeTools = append(s.ExcludeTools, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"exclude_tools\"") + } + case "clear_tool_inputs": + if err := func() error { + s.ClearToolInputs.Reset() + if err := s.ClearToolInputs.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"clear_tool_inputs\"") + } + case "trigger": + if err := func() error { + s.Trigger.Reset() + if err := s.Trigger.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"trigger\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesContextManagementClearToolUses") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesContextManagementClearToolUses) { + name = jsonFieldsNameOfMessagesContextManagementClearToolUses[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesContextManagementClearToolUses) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesContextManagementClearToolUses) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesContextManagementClearToolUsesTrigger) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesContextManagementClearToolUsesTrigger) encodeFields(e *jx.Encoder) { + { + e.FieldStart("type") + s.Type.Encode(e) + } + { + e.FieldStart("value") + e.UInt32(s.Value) + } +} + +var jsonFieldsNameOfMessagesContextManagementClearToolUsesTrigger = [2]string{ + 0: "type", + 1: "value", +} + +// Decode decodes MessagesContextManagementClearToolUsesTrigger from json. +func (s *MessagesContextManagementClearToolUsesTrigger) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesContextManagementClearToolUsesTrigger to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "type": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Type.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + case "value": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.UInt32() + s.Value = uint32(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"value\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesContextManagementClearToolUsesTrigger") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesContextManagementClearToolUsesTrigger) { + name = jsonFieldsNameOfMessagesContextManagementClearToolUsesTrigger[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesContextManagementClearToolUsesTrigger) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesContextManagementClearToolUsesTrigger) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesContextManagementClearToolUsesTriggerType as json. +func (s MessagesContextManagementClearToolUsesTriggerType) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes MessagesContextManagementClearToolUsesTriggerType from json. +func (s *MessagesContextManagementClearToolUsesTriggerType) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesContextManagementClearToolUsesTriggerType to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch MessagesContextManagementClearToolUsesTriggerType(v) { + case MessagesContextManagementClearToolUsesTriggerTypeToolUses: + *s = MessagesContextManagementClearToolUsesTriggerTypeToolUses + default: + *s = MessagesContextManagementClearToolUsesTriggerType(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesContextManagementClearToolUsesTriggerType) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesContextManagementClearToolUsesTriggerType) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesContextManagementClearToolUsesType as json. +func (s MessagesContextManagementClearToolUsesType) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes MessagesContextManagementClearToolUsesType from json. +func (s *MessagesContextManagementClearToolUsesType) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesContextManagementClearToolUsesType to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch MessagesContextManagementClearToolUsesType(v) { + case MessagesContextManagementClearToolUsesTypeClearToolUses: + *s = MessagesContextManagementClearToolUsesTypeClearToolUses + default: + *s = MessagesContextManagementClearToolUsesType(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesContextManagementClearToolUsesType) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesContextManagementClearToolUsesType) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesContextManagementEdit) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesContextManagementEdit) encodeFields(e *jx.Encoder) { + s.OneOf.encodeFields(e) +} + +var jsonFieldsNameOfMessagesContextManagementEdit = [0]string{} + +// Decode decodes MessagesContextManagementEdit from json. +func (s *MessagesContextManagementEdit) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesContextManagementEdit to nil") + } + if err := d.Capture(func(d *jx.Decoder) error { + return s.OneOf.Decode(d) + }); err != nil { + return errors.Wrap(err, "decode field OneOf") + } + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + default: + return d.Skip() + } + }); err != nil { + return errors.Wrap(err, "decode MessagesContextManagementEdit") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesContextManagementEdit) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesContextManagementEdit) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesContextManagementEditSum as json. +func (s MessagesContextManagementEditSum) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +func (s MessagesContextManagementEditSum) encodeFields(e *jx.Encoder) { + switch s.Type { + case MessagesContextManagementClearThinkingMessagesContextManagementEditSum: + e.FieldStart("type") + e.Str("clear_thinking") + { + s := s.MessagesContextManagementClearThinking + { + if s.Keep.Set { + e.FieldStart("keep") + s.Keep.Encode(e) + } + } + } + case MessagesContextManagementClearToolUsesMessagesContextManagementEditSum: + e.FieldStart("type") + e.Str("clear_tool_uses") + { + s := s.MessagesContextManagementClearToolUses + { + if s.Keep.Set { + e.FieldStart("keep") + s.Keep.Encode(e) + } + } + { + if s.ExcludeTools != nil { + e.FieldStart("exclude_tools") + e.ArrStart() + for _, elem := range s.ExcludeTools { + e.Str(elem) + } + e.ArrEnd() + } + } + { + if s.ClearToolInputs.Set { + e.FieldStart("clear_tool_inputs") + s.ClearToolInputs.Encode(e) + } + } + { + if s.Trigger.Set { + e.FieldStart("trigger") + s.Trigger.Encode(e) + } + } + } + } +} + +// Decode decodes MessagesContextManagementEditSum from json. +func (s *MessagesContextManagementEditSum) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesContextManagementEditSum to nil") + } + // Sum type discriminator. + if typ := d.Next(); typ != jx.Object { + return errors.Errorf("unexpected json type %q", typ) + } + + var found bool + if err := d.Capture(func(d *jx.Decoder) error { + return d.ObjBytes(func(d *jx.Decoder, key []byte) error { + if found { + return d.Skip() + } + switch string(key) { + case "type": + typ, err := d.Str() + if err != nil { + return err + } + switch typ { + case "clear_thinking": + s.Type = MessagesContextManagementClearThinkingMessagesContextManagementEditSum + found = true + case "clear_tool_uses": + s.Type = MessagesContextManagementClearToolUsesMessagesContextManagementEditSum + found = true + default: + return errors.Errorf("unknown type %s", typ) + } + return nil + } + return d.Skip() + }) + }); err != nil { + return errors.Wrap(err, "capture") + } + if !found { + return errors.New("unable to detect sum type variant") + } + switch s.Type { + case MessagesContextManagementClearThinkingMessagesContextManagementEditSum: + if err := s.MessagesContextManagementClearThinking.Decode(d); err != nil { + return err + } + case MessagesContextManagementClearToolUsesMessagesContextManagementEditSum: + if err := s.MessagesContextManagementClearToolUses.Decode(d); err != nil { + return err + } + default: + return errors.Errorf("inferred invalid type: %s", s.Type) + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesContextManagementEditSum) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesContextManagementEditSum) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesContextManagementKeep as json. +func (s MessagesContextManagementKeep) Encode(e *jx.Encoder) { + switch s.Type { + case MessagesContextManagementKeep0MessagesContextManagementKeep: + s.MessagesContextManagementKeep0.Encode(e) + case MessagesContextManagementKeepParameterMessagesContextManagementKeep: + s.MessagesContextManagementKeepParameter.Encode(e) + } +} + +// Decode decodes MessagesContextManagementKeep from json. +func (s *MessagesContextManagementKeep) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesContextManagementKeep to nil") + } + // Sum type type_discriminator. + switch t := d.Next(); t { + case jx.Object: + if err := s.MessagesContextManagementKeepParameter.Decode(d); err != nil { + return err + } + s.Type = MessagesContextManagementKeepParameterMessagesContextManagementKeep + case jx.String: + if err := s.MessagesContextManagementKeep0.Decode(d); err != nil { + return err + } + s.Type = MessagesContextManagementKeep0MessagesContextManagementKeep + default: + return errors.Errorf("unexpected json type %q", t) + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesContextManagementKeep) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesContextManagementKeep) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesContextManagementKeep0 as json. +func (s MessagesContextManagementKeep0) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes MessagesContextManagementKeep0 from json. +func (s *MessagesContextManagementKeep0) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesContextManagementKeep0 to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch MessagesContextManagementKeep0(v) { + case MessagesContextManagementKeep0All: + *s = MessagesContextManagementKeep0All + default: + *s = MessagesContextManagementKeep0(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesContextManagementKeep0) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesContextManagementKeep0) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesContextManagementKeepAll) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesContextManagementKeepAll) encodeFields(e *jx.Encoder) { + { + e.FieldStart("type") + s.Type.Encode(e) + } +} + +var jsonFieldsNameOfMessagesContextManagementKeepAll = [1]string{ + 0: "type", +} + +// Decode decodes MessagesContextManagementKeepAll from json. +func (s *MessagesContextManagementKeepAll) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesContextManagementKeepAll to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "type": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Type.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesContextManagementKeepAll") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesContextManagementKeepAll) { + name = jsonFieldsNameOfMessagesContextManagementKeepAll[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesContextManagementKeepAll) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesContextManagementKeepAll) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesContextManagementKeepAllType as json. +func (s MessagesContextManagementKeepAllType) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes MessagesContextManagementKeepAllType from json. +func (s *MessagesContextManagementKeepAllType) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesContextManagementKeepAllType to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch MessagesContextManagementKeepAllType(v) { + case MessagesContextManagementKeepAllTypeAll: + *s = MessagesContextManagementKeepAllTypeAll + default: + *s = MessagesContextManagementKeepAllType(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesContextManagementKeepAllType) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesContextManagementKeepAllType) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesContextManagementKeepParameter) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesContextManagementKeepParameter) encodeFields(e *jx.Encoder) { + s.OneOf.encodeFields(e) +} + +var jsonFieldsNameOfMessagesContextManagementKeepParameter = [0]string{} + +// Decode decodes MessagesContextManagementKeepParameter from json. +func (s *MessagesContextManagementKeepParameter) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesContextManagementKeepParameter to nil") + } + if err := d.Capture(func(d *jx.Decoder) error { + return s.OneOf.Decode(d) + }); err != nil { + return errors.Wrap(err, "decode field OneOf") + } + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + default: + return d.Skip() + } + }); err != nil { + return errors.Wrap(err, "decode MessagesContextManagementKeepParameter") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesContextManagementKeepParameter) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesContextManagementKeepParameter) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesContextManagementKeepParameterSum as json. +func (s MessagesContextManagementKeepParameterSum) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +func (s MessagesContextManagementKeepParameterSum) encodeFields(e *jx.Encoder) { + switch s.Type { + case MessagesContextManagementKeepAllMessagesContextManagementKeepParameterSum: + e.FieldStart("type") + e.Str("all") + case MessagesContextManagementKeepThinkingTurnsMessagesContextManagementKeepParameterSum: + e.FieldStart("type") + e.Str("thinking_turns") + { + s := s.MessagesContextManagementKeepThinkingTurns + { + e.FieldStart("value") + e.Int32(s.Value) + } + } + case MessagesContextManagementKeepToolUsesMessagesContextManagementKeepParameterSum: + e.FieldStart("type") + e.Str("tool_uses") + { + s := s.MessagesContextManagementKeepToolUses + { + e.FieldStart("value") + e.Int32(s.Value) + } + } + } +} + +// Decode decodes MessagesContextManagementKeepParameterSum from json. +func (s *MessagesContextManagementKeepParameterSum) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesContextManagementKeepParameterSum to nil") + } + // Sum type discriminator. + if typ := d.Next(); typ != jx.Object { + return errors.Errorf("unexpected json type %q", typ) + } + + var found bool + if err := d.Capture(func(d *jx.Decoder) error { + return d.ObjBytes(func(d *jx.Decoder, key []byte) error { + if found { + return d.Skip() + } + switch string(key) { + case "type": + typ, err := d.Str() + if err != nil { + return err + } + switch typ { + case "all": + s.Type = MessagesContextManagementKeepAllMessagesContextManagementKeepParameterSum + found = true + case "thinking_turns": + s.Type = MessagesContextManagementKeepThinkingTurnsMessagesContextManagementKeepParameterSum + found = true + case "tool_uses": + s.Type = MessagesContextManagementKeepToolUsesMessagesContextManagementKeepParameterSum + found = true + default: + return errors.Errorf("unknown type %s", typ) + } + return nil + } + return d.Skip() + }) + }); err != nil { + return errors.Wrap(err, "capture") + } + if !found { + return errors.New("unable to detect sum type variant") + } + switch s.Type { + case MessagesContextManagementKeepAllMessagesContextManagementKeepParameterSum: + if err := s.MessagesContextManagementKeepAll.Decode(d); err != nil { + return err + } + case MessagesContextManagementKeepThinkingTurnsMessagesContextManagementKeepParameterSum: + if err := s.MessagesContextManagementKeepThinkingTurns.Decode(d); err != nil { + return err + } + case MessagesContextManagementKeepToolUsesMessagesContextManagementKeepParameterSum: + if err := s.MessagesContextManagementKeepToolUses.Decode(d); err != nil { + return err + } + default: + return errors.Errorf("inferred invalid type: %s", s.Type) + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesContextManagementKeepParameterSum) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesContextManagementKeepParameterSum) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesContextManagementKeepThinkingTurns) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesContextManagementKeepThinkingTurns) encodeFields(e *jx.Encoder) { + { + e.FieldStart("type") + s.Type.Encode(e) + } + { + e.FieldStart("value") + e.Int32(s.Value) + } +} + +var jsonFieldsNameOfMessagesContextManagementKeepThinkingTurns = [2]string{ + 0: "type", + 1: "value", +} + +// Decode decodes MessagesContextManagementKeepThinkingTurns from json. +func (s *MessagesContextManagementKeepThinkingTurns) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesContextManagementKeepThinkingTurns to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "type": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Type.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + case "value": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Int32() + s.Value = int32(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"value\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesContextManagementKeepThinkingTurns") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesContextManagementKeepThinkingTurns) { + name = jsonFieldsNameOfMessagesContextManagementKeepThinkingTurns[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesContextManagementKeepThinkingTurns) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesContextManagementKeepThinkingTurns) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesContextManagementKeepThinkingTurnsType as json. +func (s MessagesContextManagementKeepThinkingTurnsType) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes MessagesContextManagementKeepThinkingTurnsType from json. +func (s *MessagesContextManagementKeepThinkingTurnsType) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesContextManagementKeepThinkingTurnsType to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch MessagesContextManagementKeepThinkingTurnsType(v) { + case MessagesContextManagementKeepThinkingTurnsTypeThinkingTurns: + *s = MessagesContextManagementKeepThinkingTurnsTypeThinkingTurns + default: + *s = MessagesContextManagementKeepThinkingTurnsType(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesContextManagementKeepThinkingTurnsType) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesContextManagementKeepThinkingTurnsType) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesContextManagementKeepToolUses) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesContextManagementKeepToolUses) encodeFields(e *jx.Encoder) { + { + e.FieldStart("type") + s.Type.Encode(e) + } + { + e.FieldStart("value") + e.Int32(s.Value) + } +} + +var jsonFieldsNameOfMessagesContextManagementKeepToolUses = [2]string{ + 0: "type", + 1: "value", +} + +// Decode decodes MessagesContextManagementKeepToolUses from json. +func (s *MessagesContextManagementKeepToolUses) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesContextManagementKeepToolUses to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "type": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Type.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + case "value": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Int32() + s.Value = int32(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"value\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesContextManagementKeepToolUses") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesContextManagementKeepToolUses) { + name = jsonFieldsNameOfMessagesContextManagementKeepToolUses[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesContextManagementKeepToolUses) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesContextManagementKeepToolUses) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesContextManagementKeepToolUsesType as json. +func (s MessagesContextManagementKeepToolUsesType) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes MessagesContextManagementKeepToolUsesType from json. +func (s *MessagesContextManagementKeepToolUsesType) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesContextManagementKeepToolUsesType to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch MessagesContextManagementKeepToolUsesType(v) { + case MessagesContextManagementKeepToolUsesTypeToolUses: + *s = MessagesContextManagementKeepToolUsesTypeToolUses + default: + *s = MessagesContextManagementKeepToolUsesType(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesContextManagementKeepToolUsesType) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesContextManagementKeepToolUsesType) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesDocumentSourceType as json. +func (s MessagesDocumentSourceType) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes MessagesDocumentSourceType from json. +func (s *MessagesDocumentSourceType) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesDocumentSourceType to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch MessagesDocumentSourceType(v) { + case MessagesDocumentSourceTypeBase64: + *s = MessagesDocumentSourceTypeBase64 + case MessagesDocumentSourceTypeText: + *s = MessagesDocumentSourceTypeText + case MessagesDocumentSourceTypeURL: + *s = MessagesDocumentSourceTypeURL + case MessagesDocumentSourceTypeContent: + *s = MessagesDocumentSourceTypeContent + default: + *s = MessagesDocumentSourceType(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesDocumentSourceType) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesDocumentSourceType) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesErrorResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesErrorResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("type") + s.Type.Encode(e) + } + { + e.FieldStart("error") + s.Error.Encode(e) + } +} + +var jsonFieldsNameOfMessagesErrorResponse = [2]string{ + 0: "type", + 1: "error", +} + +// Decode decodes MessagesErrorResponse from json. +func (s *MessagesErrorResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesErrorResponse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "type": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Type.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + case "error": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.Error.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"error\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesErrorResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesErrorResponse) { + name = jsonFieldsNameOfMessagesErrorResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesErrorResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesErrorResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesErrorResponseType as json. +func (s MessagesErrorResponseType) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes MessagesErrorResponseType from json. +func (s *MessagesErrorResponseType) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesErrorResponseType to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch MessagesErrorResponseType(v) { + case MessagesErrorResponseTypeError: + *s = MessagesErrorResponseTypeError + default: + *s = MessagesErrorResponseType(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesErrorResponseType) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesErrorResponseType) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesImageSourceType as json. +func (s MessagesImageSourceType) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes MessagesImageSourceType from json. +func (s *MessagesImageSourceType) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesImageSourceType to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch MessagesImageSourceType(v) { + case MessagesImageSourceTypeURL: + *s = MessagesImageSourceTypeURL + case MessagesImageSourceTypeBase64: + *s = MessagesImageSourceTypeBase64 + default: + *s = MessagesImageSourceType(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesImageSourceType) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesImageSourceType) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesIterationUsage) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesIterationUsage) encodeFields(e *jx.Encoder) { + { + e.FieldStart("type") + e.Str(s.Type) + } + { + e.FieldStart("input_tokens") + e.Int32(s.InputTokens) + } + { + e.FieldStart("output_tokens") + e.Int32(s.OutputTokens) + } + { + e.FieldStart("cache_read_input_tokens") + e.Int32(s.CacheReadInputTokens) + } +} + +var jsonFieldsNameOfMessagesIterationUsage = [4]string{ + 0: "type", + 1: "input_tokens", + 2: "output_tokens", + 3: "cache_read_input_tokens", +} + +// Decode decodes MessagesIterationUsage from json. +func (s *MessagesIterationUsage) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesIterationUsage to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "type": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.Type = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + case "input_tokens": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Int32() + s.InputTokens = int32(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"input_tokens\"") + } + case "output_tokens": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Int32() + s.OutputTokens = int32(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"output_tokens\"") + } + case "cache_read_input_tokens": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + v, err := d.Int32() + s.CacheReadInputTokens = int32(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"cache_read_input_tokens\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesIterationUsage") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00001111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesIterationUsage) { + name = jsonFieldsNameOfMessagesIterationUsage[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesIterationUsage) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesIterationUsage) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesMessageContent as json. +func (s MessagesMessageContent) Encode(e *jx.Encoder) { + switch s.Type { + case StringMessagesMessageContent: + e.Str(s.String) + case MessagesContentPartArrayMessagesMessageContent: + e.ArrStart() + for _, elem := range s.MessagesContentPartArray { + elem.Encode(e) + } + e.ArrEnd() + } +} + +// Decode decodes MessagesMessageContent from json. +func (s *MessagesMessageContent) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesMessageContent to nil") + } + // Sum type type_discriminator. + switch t := d.Next(); t { + case jx.Array: + s.MessagesContentPartArray = make([]MessagesContentPart, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem MessagesContentPart + if err := elem.Decode(d); err != nil { + return err + } + s.MessagesContentPartArray = append(s.MessagesContentPartArray, elem) + return nil + }); err != nil { + return err + } + s.Type = MessagesContentPartArrayMessagesMessageContent + case jx.String: + v, err := d.Str() + s.String = string(v) + if err != nil { + return err + } + s.Type = StringMessagesMessageContent + default: + return errors.Errorf("unexpected json type %q", t) + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesMessageContent) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesMessageContent) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesMetadata) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesMetadata) encodeFields(e *jx.Encoder) { + { + if s.UserID.Set { + e.FieldStart("user_id") + s.UserID.Encode(e) + } + } +} + +var jsonFieldsNameOfMessagesMetadata = [1]string{ + 0: "user_id", +} + +// Decode decodes MessagesMetadata from json. +func (s *MessagesMetadata) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesMetadata to nil") + } + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "user_id": + if err := func() error { + s.UserID.Reset() + if err := s.UserID.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"user_id\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesMetadata") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesMetadata) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesMetadata) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesOutputConfig) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesOutputConfig) encodeFields(e *jx.Encoder) { + { + if s.Effort.Set { + e.FieldStart("effort") + s.Effort.Encode(e) + } + } +} + +var jsonFieldsNameOfMessagesOutputConfig = [1]string{ + 0: "effort", +} + +// Decode decodes MessagesOutputConfig from json. +func (s *MessagesOutputConfig) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesOutputConfig to nil") + } + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "effort": + if err := func() error { + s.Effort.Reset() + if err := s.Effort.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"effort\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesOutputConfig") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesOutputConfig) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesOutputConfig) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesOutputFormat) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesOutputFormat) encodeFields(e *jx.Encoder) { + { + e.FieldStart("type") + s.Type.Encode(e) + } + { + if s.Schema.Set { + e.FieldStart("schema") + s.Schema.Encode(e) + } + } +} + +var jsonFieldsNameOfMessagesOutputFormat = [2]string{ + 0: "type", + 1: "schema", +} + +// Decode decodes MessagesOutputFormat from json. +func (s *MessagesOutputFormat) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesOutputFormat to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "type": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Type.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + case "schema": + if err := func() error { + s.Schema.Reset() + if err := s.Schema.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"schema\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesOutputFormat") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesOutputFormat) { + name = jsonFieldsNameOfMessagesOutputFormat[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesOutputFormat) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesOutputFormat) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s MessagesOutputFormatSchema) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields implements json.Marshaler. +func (s MessagesOutputFormatSchema) encodeFields(e *jx.Encoder) { + for k, elem := range s { + e.FieldStart(k) + + if len(elem) != 0 { + e.Raw(elem) + } + } +} + +// Decode decodes MessagesOutputFormatSchema from json. +func (s *MessagesOutputFormatSchema) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesOutputFormatSchema to nil") + } + m := s.init() + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + var elem jx.Raw + if err := func() error { + v, err := d.RawAppend(nil) + elem = jx.Raw(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrapf(err, "decode field %q", k) + } + m[string(k)] = elem + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesOutputFormatSchema") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesOutputFormatSchema) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesOutputFormatSchema) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesOutputFormatType as json. +func (s MessagesOutputFormatType) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes MessagesOutputFormatType from json. +func (s *MessagesOutputFormatType) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesOutputFormatType to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch MessagesOutputFormatType(v) { + case MessagesOutputFormatTypeText: + *s = MessagesOutputFormatTypeText + case MessagesOutputFormatTypeJSONObject: + *s = MessagesOutputFormatTypeJSONObject + case MessagesOutputFormatTypeJSONSchema: + *s = MessagesOutputFormatTypeJSONSchema + default: + *s = MessagesOutputFormatType(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesOutputFormatType) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesOutputFormatType) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesRequest) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesRequest) encodeFields(e *jx.Encoder) { + { + e.FieldStart("messages") + e.ArrStart() + for _, elem := range s.Messages { + elem.Encode(e) + } + e.ArrEnd() + } + { + e.FieldStart("model") + e.Str(s.Model) + } + { + if s.System.Set { + e.FieldStart("system") + s.System.Encode(e) + } + } + { + if s.FrequencyPenalty.Set { + e.FieldStart("frequency_penalty") + s.FrequencyPenalty.Encode(e) + } + } + { + if s.LogitBias.Set { + e.FieldStart("logit_bias") + s.LogitBias.Encode(e) + } + } + { + if s.Logprobs.Set { + e.FieldStart("logprobs") + s.Logprobs.Encode(e) + } + } + { + if s.MaxTokens.Set { + e.FieldStart("max_tokens") + s.MaxTokens.Encode(e) + } + } + { + if s.PresencePenalty.Set { + e.FieldStart("presence_penalty") + s.PresencePenalty.Encode(e) + } + } + { + if s.RepetitionPenalty.Set { + e.FieldStart("repetition_penalty") + s.RepetitionPenalty.Encode(e) + } + } + { + if s.OutputFormat.Set { + e.FieldStart("output_format") + s.OutputFormat.Encode(e) + } + } + { + if s.StopSequences.Set { + e.FieldStart("stop_sequences") + s.StopSequences.Encode(e) + } + } + { + if s.Stream.Set { + e.FieldStart("stream") + s.Stream.Encode(e) + } + } + { + if s.StreamOptions.Set { + e.FieldStart("stream_options") + s.StreamOptions.Encode(e) + } + } + { + if s.Temperature.Set { + e.FieldStart("temperature") + s.Temperature.Encode(e) + } + } + { + if s.ToolChoice.Set { + e.FieldStart("tool_choice") + s.ToolChoice.Encode(e) + } + } + { + if s.Tools != nil { + e.FieldStart("tools") + e.ArrStart() + for _, elem := range s.Tools { + elem.Encode(e) + } + e.ArrEnd() + } + } + { + if s.TopLogprobs.Set { + e.FieldStart("top_logprobs") + s.TopLogprobs.Encode(e) + } + } + { + if s.TopP.Set { + e.FieldStart("top_p") + s.TopP.Encode(e) + } + } + { + if s.ServiceTier.Set { + e.FieldStart("service_tier") + s.ServiceTier.Encode(e) + } + } + { + if s.Thinking.Set { + e.FieldStart("thinking") + s.Thinking.Encode(e) + } + } + { + if s.OutputConfig.Set { + e.FieldStart("output_config") + s.OutputConfig.Encode(e) + } + } + { + if s.Metadata.Set { + e.FieldStart("metadata") + s.Metadata.Encode(e) + } + } + { + if s.ContextManagement.Set { + e.FieldStart("context_management") + s.ContextManagement.Encode(e) + } + } +} + +var jsonFieldsNameOfMessagesRequest = [23]string{ + 0: "messages", + 1: "model", + 2: "system", + 3: "frequency_penalty", + 4: "logit_bias", + 5: "logprobs", + 6: "max_tokens", + 7: "presence_penalty", + 8: "repetition_penalty", + 9: "output_format", + 10: "stop_sequences", + 11: "stream", + 12: "stream_options", + 13: "temperature", + 14: "tool_choice", + 15: "tools", + 16: "top_logprobs", + 17: "top_p", + 18: "service_tier", + 19: "thinking", + 20: "output_config", + 21: "metadata", + 22: "context_management", +} + +// Decode decodes MessagesRequest from json. +func (s *MessagesRequest) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesRequest to nil") + } + var requiredBitSet [3]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "messages": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + s.Messages = make([]MessagesRequestMessage, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem MessagesRequestMessage + if err := elem.Decode(d); err != nil { + return err + } + s.Messages = append(s.Messages, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"messages\"") + } + case "model": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.Model = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"model\"") + } + case "system": + if err := func() error { + s.System.Reset() + if err := s.System.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"system\"") + } + case "frequency_penalty": + if err := func() error { + s.FrequencyPenalty.Reset() + if err := s.FrequencyPenalty.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"frequency_penalty\"") + } + case "logit_bias": + if err := func() error { + s.LogitBias.Reset() + if err := s.LogitBias.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"logit_bias\"") + } + case "logprobs": + if err := func() error { + s.Logprobs.Reset() + if err := s.Logprobs.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"logprobs\"") + } + case "max_tokens": + if err := func() error { + s.MaxTokens.Reset() + if err := s.MaxTokens.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"max_tokens\"") + } + case "presence_penalty": + if err := func() error { + s.PresencePenalty.Reset() + if err := s.PresencePenalty.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"presence_penalty\"") + } + case "repetition_penalty": + if err := func() error { + s.RepetitionPenalty.Reset() + if err := s.RepetitionPenalty.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"repetition_penalty\"") + } + case "output_format": + if err := func() error { + s.OutputFormat.Reset() + if err := s.OutputFormat.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"output_format\"") + } + case "stop_sequences": + if err := func() error { + s.StopSequences.Reset() + if err := s.StopSequences.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"stop_sequences\"") + } + case "stream": + if err := func() error { + s.Stream.Reset() + if err := s.Stream.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"stream\"") + } + case "stream_options": + if err := func() error { + s.StreamOptions.Reset() + if err := s.StreamOptions.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"stream_options\"") + } + case "temperature": + if err := func() error { + s.Temperature.Reset() + if err := s.Temperature.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"temperature\"") + } + case "tool_choice": + if err := func() error { + s.ToolChoice.Reset() + if err := s.ToolChoice.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"tool_choice\"") + } + case "tools": + if err := func() error { + s.Tools = make([]MessagesTool, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem MessagesTool + if err := elem.Decode(d); err != nil { + return err + } + s.Tools = append(s.Tools, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"tools\"") + } + case "top_logprobs": + if err := func() error { + s.TopLogprobs.Reset() + if err := s.TopLogprobs.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"top_logprobs\"") + } + case "top_p": + if err := func() error { + s.TopP.Reset() + if err := s.TopP.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"top_p\"") + } + case "service_tier": + if err := func() error { + s.ServiceTier.Reset() + if err := s.ServiceTier.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"service_tier\"") + } + case "thinking": + if err := func() error { + s.Thinking.Reset() + if err := s.Thinking.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"thinking\"") + } + case "output_config": + if err := func() error { + s.OutputConfig.Reset() + if err := s.OutputConfig.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"output_config\"") + } + case "metadata": + if err := func() error { + s.Metadata.Reset() + if err := s.Metadata.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"metadata\"") + } + case "context_management": + if err := func() error { + s.ContextManagement.Reset() + if err := s.ContextManagement.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"context_management\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesRequest") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [3]uint8{ + 0b00000011, + 0b00000000, + 0b00000000, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesRequest) { + name = jsonFieldsNameOfMessagesRequest[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesRequest) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesRequest) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s MessagesRequestLogitBias) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields implements json.Marshaler. +func (s MessagesRequestLogitBias) encodeFields(e *jx.Encoder) { + for k, elem := range s { + e.FieldStart(k) + + e.Float32(elem) + } +} + +// Decode decodes MessagesRequestLogitBias from json. +func (s *MessagesRequestLogitBias) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesRequestLogitBias to nil") + } + m := s.init() + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + var elem float32 + if err := func() error { + v, err := d.Float32() + elem = float32(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrapf(err, "decode field %q", k) + } + m[string(k)] = elem + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesRequestLogitBias") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesRequestLogitBias) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesRequestLogitBias) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesRequestMessage) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesRequestMessage) encodeFields(e *jx.Encoder) { + { + e.FieldStart("role") + s.Role.Encode(e) + } + { + e.FieldStart("content") + s.Content.Encode(e) + } +} + +var jsonFieldsNameOfMessagesRequestMessage = [2]string{ + 0: "role", + 1: "content", +} + +// Decode decodes MessagesRequestMessage from json. +func (s *MessagesRequestMessage) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesRequestMessage to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "role": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Role.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"role\"") + } + case "content": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.Content.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"content\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesRequestMessage") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesRequestMessage) { + name = jsonFieldsNameOfMessagesRequestMessage[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesRequestMessage) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesRequestMessage) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesRequestServiceTier as json. +func (s MessagesRequestServiceTier) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes MessagesRequestServiceTier from json. +func (s *MessagesRequestServiceTier) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesRequestServiceTier to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch MessagesRequestServiceTier(v) { + case MessagesRequestServiceTierAuto: + *s = MessagesRequestServiceTierAuto + case MessagesRequestServiceTierDefault: + *s = MessagesRequestServiceTierDefault + default: + *s = MessagesRequestServiceTier(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesRequestServiceTier) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesRequestServiceTier) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesResponse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesResponse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("id") + e.Str(s.ID) + } + { + e.FieldStart("type") + s.Type.Encode(e) + } + { + e.FieldStart("role") + s.Role.Encode(e) + } + { + e.FieldStart("model") + e.Str(s.Model) + } + { + if s.ServiceStatus.Set { + e.FieldStart("service_status") + s.ServiceStatus.Encode(e) + } + } + { + e.FieldStart("content") + e.ArrStart() + for _, elem := range s.Content { + elem.Encode(e) + } + e.ArrEnd() + } + { + if s.StopReason.Set { + e.FieldStart("stop_reason") + s.StopReason.Encode(e) + } + } + { + if s.StopSequence.Set { + e.FieldStart("stop_sequence") + s.StopSequence.Encode(e) + } + } + { + if s.Usage.Set { + e.FieldStart("usage") + s.Usage.Encode(e) + } + } +} + +var jsonFieldsNameOfMessagesResponse = [9]string{ + 0: "id", + 1: "type", + 2: "role", + 3: "model", + 4: "service_status", + 5: "content", + 6: "stop_reason", + 7: "stop_sequence", + 8: "usage", +} + +// Decode decodes MessagesResponse from json. +func (s *MessagesResponse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesResponse to nil") + } + var requiredBitSet [2]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "id": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.ID = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"id\"") + } + case "type": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.Type.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + case "role": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + if err := s.Role.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"role\"") + } + case "model": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + v, err := d.Str() + s.Model = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"model\"") + } + case "service_status": + if err := func() error { + s.ServiceStatus.Reset() + if err := s.ServiceStatus.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"service_status\"") + } + case "content": + requiredBitSet[0] |= 1 << 5 + if err := func() error { + s.Content = make([]MessagesResponseContentPart, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem MessagesResponseContentPart + if err := elem.Decode(d); err != nil { + return err + } + s.Content = append(s.Content, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"content\"") + } + case "stop_reason": + if err := func() error { + s.StopReason.Reset() + if err := s.StopReason.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"stop_reason\"") + } + case "stop_sequence": + if err := func() error { + s.StopSequence.Reset() + if err := s.StopSequence.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"stop_sequence\"") + } + case "usage": + if err := func() error { + s.Usage.Reset() + if err := s.Usage.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"usage\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesResponse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [2]uint8{ + 0b00101111, + 0b00000000, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesResponse) { + name = jsonFieldsNameOfMessagesResponse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesResponse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesResponse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesResponseContentBlock) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesResponseContentBlock) encodeFields(e *jx.Encoder) { + { + e.FieldStart("type") + s.Type.Encode(e) + } + { + e.FieldStart("index") + e.Int32(s.Index) + } + { + e.FieldStart("delta") + s.Delta.Encode(e) + } +} + +var jsonFieldsNameOfMessagesResponseContentBlock = [3]string{ + 0: "type", + 1: "index", + 2: "delta", +} + +// Decode decodes MessagesResponseContentBlock from json. +func (s *MessagesResponseContentBlock) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesResponseContentBlock to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "type": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Type.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + case "index": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Int32() + s.Index = int32(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"index\"") + } + case "delta": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + if err := s.Delta.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"delta\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesResponseContentBlock") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesResponseContentBlock) { + name = jsonFieldsNameOfMessagesResponseContentBlock[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesResponseContentBlock) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesResponseContentBlock) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesResponseContentBlockDelta) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesResponseContentBlockDelta) encodeFields(e *jx.Encoder) { + s.OneOf.encodeFields(e) +} + +var jsonFieldsNameOfMessagesResponseContentBlockDelta = [0]string{} + +// Decode decodes MessagesResponseContentBlockDelta from json. +func (s *MessagesResponseContentBlockDelta) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesResponseContentBlockDelta to nil") + } + if err := d.Capture(func(d *jx.Decoder) error { + return s.OneOf.Decode(d) + }); err != nil { + return errors.Wrap(err, "decode field OneOf") + } + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + default: + return d.Skip() + } + }); err != nil { + return errors.Wrap(err, "decode MessagesResponseContentBlockDelta") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesResponseContentBlockDelta) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesResponseContentBlockDelta) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesResponseContentBlockDeltaSignature) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesResponseContentBlockDeltaSignature) encodeFields(e *jx.Encoder) { + { + e.FieldStart("type") + s.Type.Encode(e) + } + { + e.FieldStart("signature") + e.Str(s.Signature) + } +} + +var jsonFieldsNameOfMessagesResponseContentBlockDeltaSignature = [2]string{ + 0: "type", + 1: "signature", +} + +// Decode decodes MessagesResponseContentBlockDeltaSignature from json. +func (s *MessagesResponseContentBlockDeltaSignature) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesResponseContentBlockDeltaSignature to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "type": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Type.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + case "signature": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.Signature = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"signature\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesResponseContentBlockDeltaSignature") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesResponseContentBlockDeltaSignature) { + name = jsonFieldsNameOfMessagesResponseContentBlockDeltaSignature[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesResponseContentBlockDeltaSignature) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesResponseContentBlockDeltaSignature) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesResponseContentBlockDeltaSignatureType as json. +func (s MessagesResponseContentBlockDeltaSignatureType) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes MessagesResponseContentBlockDeltaSignatureType from json. +func (s *MessagesResponseContentBlockDeltaSignatureType) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesResponseContentBlockDeltaSignatureType to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch MessagesResponseContentBlockDeltaSignatureType(v) { + case MessagesResponseContentBlockDeltaSignatureTypeSignatureDelta: + *s = MessagesResponseContentBlockDeltaSignatureTypeSignatureDelta + default: + *s = MessagesResponseContentBlockDeltaSignatureType(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesResponseContentBlockDeltaSignatureType) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesResponseContentBlockDeltaSignatureType) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesResponseContentBlockDeltaSum as json. +func (s MessagesResponseContentBlockDeltaSum) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +func (s MessagesResponseContentBlockDeltaSum) encodeFields(e *jx.Encoder) { + switch s.Type { + case MessagesResponseContentBlockDeltaTextMessagesResponseContentBlockDeltaSum: + e.FieldStart("type") + e.Str("text_delta") + { + s := s.MessagesResponseContentBlockDeltaText + { + e.FieldStart("text") + e.Str(s.Text) + } + } + case MessagesResponseContentBlockDeltaThinkingMessagesResponseContentBlockDeltaSum: + e.FieldStart("type") + e.Str("thinking_delta") + { + s := s.MessagesResponseContentBlockDeltaThinking + { + e.FieldStart("thinking") + e.Str(s.Thinking) + } + } + case MessagesResponseContentBlockDeltaSignatureMessagesResponseContentBlockDeltaSum: + e.FieldStart("type") + e.Str("signature_delta") + { + s := s.MessagesResponseContentBlockDeltaSignature + { + e.FieldStart("signature") + e.Str(s.Signature) + } + } + case MessagesResponseContentBlockDeltaToolUseMessagesResponseContentBlockDeltaSum: + e.FieldStart("type") + e.Str("input_json_delta") + { + s := s.MessagesResponseContentBlockDeltaToolUse + { + e.FieldStart("partial_json") + e.Str(s.PartialJSON) + } + } + } +} + +// Decode decodes MessagesResponseContentBlockDeltaSum from json. +func (s *MessagesResponseContentBlockDeltaSum) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesResponseContentBlockDeltaSum to nil") + } + // Sum type discriminator. + if typ := d.Next(); typ != jx.Object { + return errors.Errorf("unexpected json type %q", typ) + } + + var found bool + if err := d.Capture(func(d *jx.Decoder) error { + return d.ObjBytes(func(d *jx.Decoder, key []byte) error { + if found { + return d.Skip() + } + switch string(key) { + case "type": + typ, err := d.Str() + if err != nil { + return err + } + switch typ { + case "text_delta": + s.Type = MessagesResponseContentBlockDeltaTextMessagesResponseContentBlockDeltaSum + found = true + case "thinking_delta": + s.Type = MessagesResponseContentBlockDeltaThinkingMessagesResponseContentBlockDeltaSum + found = true + case "signature_delta": + s.Type = MessagesResponseContentBlockDeltaSignatureMessagesResponseContentBlockDeltaSum + found = true + case "input_json_delta": + s.Type = MessagesResponseContentBlockDeltaToolUseMessagesResponseContentBlockDeltaSum + found = true + default: + return errors.Errorf("unknown type %s", typ) + } + return nil + } + return d.Skip() + }) + }); err != nil { + return errors.Wrap(err, "capture") + } + if !found { + return errors.New("unable to detect sum type variant") + } + switch s.Type { + case MessagesResponseContentBlockDeltaTextMessagesResponseContentBlockDeltaSum: + if err := s.MessagesResponseContentBlockDeltaText.Decode(d); err != nil { + return err + } + case MessagesResponseContentBlockDeltaThinkingMessagesResponseContentBlockDeltaSum: + if err := s.MessagesResponseContentBlockDeltaThinking.Decode(d); err != nil { + return err + } + case MessagesResponseContentBlockDeltaSignatureMessagesResponseContentBlockDeltaSum: + if err := s.MessagesResponseContentBlockDeltaSignature.Decode(d); err != nil { + return err + } + case MessagesResponseContentBlockDeltaToolUseMessagesResponseContentBlockDeltaSum: + if err := s.MessagesResponseContentBlockDeltaToolUse.Decode(d); err != nil { + return err + } + default: + return errors.Errorf("inferred invalid type: %s", s.Type) + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesResponseContentBlockDeltaSum) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesResponseContentBlockDeltaSum) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesResponseContentBlockDeltaText) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesResponseContentBlockDeltaText) encodeFields(e *jx.Encoder) { + { + e.FieldStart("type") + s.Type.Encode(e) + } + { + e.FieldStart("text") + e.Str(s.Text) + } +} + +var jsonFieldsNameOfMessagesResponseContentBlockDeltaText = [2]string{ + 0: "type", + 1: "text", +} + +// Decode decodes MessagesResponseContentBlockDeltaText from json. +func (s *MessagesResponseContentBlockDeltaText) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesResponseContentBlockDeltaText to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "type": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Type.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + case "text": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.Text = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"text\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesResponseContentBlockDeltaText") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesResponseContentBlockDeltaText) { + name = jsonFieldsNameOfMessagesResponseContentBlockDeltaText[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesResponseContentBlockDeltaText) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesResponseContentBlockDeltaText) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesResponseContentBlockDeltaTextType as json. +func (s MessagesResponseContentBlockDeltaTextType) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes MessagesResponseContentBlockDeltaTextType from json. +func (s *MessagesResponseContentBlockDeltaTextType) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesResponseContentBlockDeltaTextType to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch MessagesResponseContentBlockDeltaTextType(v) { + case MessagesResponseContentBlockDeltaTextTypeTextDelta: + *s = MessagesResponseContentBlockDeltaTextTypeTextDelta + default: + *s = MessagesResponseContentBlockDeltaTextType(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesResponseContentBlockDeltaTextType) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesResponseContentBlockDeltaTextType) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesResponseContentBlockDeltaThinking) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesResponseContentBlockDeltaThinking) encodeFields(e *jx.Encoder) { + { + e.FieldStart("type") + s.Type.Encode(e) + } + { + e.FieldStart("thinking") + e.Str(s.Thinking) + } +} + +var jsonFieldsNameOfMessagesResponseContentBlockDeltaThinking = [2]string{ + 0: "type", + 1: "thinking", +} + +// Decode decodes MessagesResponseContentBlockDeltaThinking from json. +func (s *MessagesResponseContentBlockDeltaThinking) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesResponseContentBlockDeltaThinking to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "type": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Type.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + case "thinking": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.Thinking = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"thinking\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesResponseContentBlockDeltaThinking") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesResponseContentBlockDeltaThinking) { + name = jsonFieldsNameOfMessagesResponseContentBlockDeltaThinking[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesResponseContentBlockDeltaThinking) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesResponseContentBlockDeltaThinking) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesResponseContentBlockDeltaThinkingType as json. +func (s MessagesResponseContentBlockDeltaThinkingType) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes MessagesResponseContentBlockDeltaThinkingType from json. +func (s *MessagesResponseContentBlockDeltaThinkingType) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesResponseContentBlockDeltaThinkingType to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch MessagesResponseContentBlockDeltaThinkingType(v) { + case MessagesResponseContentBlockDeltaThinkingTypeThinkingDelta: + *s = MessagesResponseContentBlockDeltaThinkingTypeThinkingDelta + default: + *s = MessagesResponseContentBlockDeltaThinkingType(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesResponseContentBlockDeltaThinkingType) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesResponseContentBlockDeltaThinkingType) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesResponseContentBlockDeltaToolUse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesResponseContentBlockDeltaToolUse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("type") + s.Type.Encode(e) + } + { + e.FieldStart("partial_json") + e.Str(s.PartialJSON) + } +} + +var jsonFieldsNameOfMessagesResponseContentBlockDeltaToolUse = [2]string{ + 0: "type", + 1: "partial_json", +} + +// Decode decodes MessagesResponseContentBlockDeltaToolUse from json. +func (s *MessagesResponseContentBlockDeltaToolUse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesResponseContentBlockDeltaToolUse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "type": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Type.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + case "partial_json": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.PartialJSON = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"partial_json\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesResponseContentBlockDeltaToolUse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesResponseContentBlockDeltaToolUse) { + name = jsonFieldsNameOfMessagesResponseContentBlockDeltaToolUse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesResponseContentBlockDeltaToolUse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesResponseContentBlockDeltaToolUse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesResponseContentBlockDeltaToolUseType as json. +func (s MessagesResponseContentBlockDeltaToolUseType) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes MessagesResponseContentBlockDeltaToolUseType from json. +func (s *MessagesResponseContentBlockDeltaToolUseType) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesResponseContentBlockDeltaToolUseType to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch MessagesResponseContentBlockDeltaToolUseType(v) { + case MessagesResponseContentBlockDeltaToolUseTypeInputJSONDelta: + *s = MessagesResponseContentBlockDeltaToolUseTypeInputJSONDelta + default: + *s = MessagesResponseContentBlockDeltaToolUseType(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesResponseContentBlockDeltaToolUseType) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesResponseContentBlockDeltaToolUseType) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesResponseContentBlockStop) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesResponseContentBlockStop) encodeFields(e *jx.Encoder) { + { + e.FieldStart("type") + s.Type.Encode(e) + } + { + e.FieldStart("index") + e.Int32(s.Index) + } +} + +var jsonFieldsNameOfMessagesResponseContentBlockStop = [2]string{ + 0: "type", + 1: "index", +} + +// Decode decodes MessagesResponseContentBlockStop from json. +func (s *MessagesResponseContentBlockStop) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesResponseContentBlockStop to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "type": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Type.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + case "index": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Int32() + s.Index = int32(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"index\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesResponseContentBlockStop") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesResponseContentBlockStop) { + name = jsonFieldsNameOfMessagesResponseContentBlockStop[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesResponseContentBlockStop) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesResponseContentBlockStop) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesResponseContentBlockStopType as json. +func (s MessagesResponseContentBlockStopType) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes MessagesResponseContentBlockStopType from json. +func (s *MessagesResponseContentBlockStopType) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesResponseContentBlockStopType to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch MessagesResponseContentBlockStopType(v) { + case MessagesResponseContentBlockStopTypeContentBlockStop: + *s = MessagesResponseContentBlockStopTypeContentBlockStop + default: + *s = MessagesResponseContentBlockStopType(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesResponseContentBlockStopType) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesResponseContentBlockStopType) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesResponseContentBlockType as json. +func (s MessagesResponseContentBlockType) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes MessagesResponseContentBlockType from json. +func (s *MessagesResponseContentBlockType) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesResponseContentBlockType to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch MessagesResponseContentBlockType(v) { + case MessagesResponseContentBlockTypeContentBlockDelta: + *s = MessagesResponseContentBlockTypeContentBlockDelta + default: + *s = MessagesResponseContentBlockType(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesResponseContentBlockType) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesResponseContentBlockType) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesResponseContentPart) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesResponseContentPart) encodeFields(e *jx.Encoder) { + s.OneOf.encodeFields(e) +} + +var jsonFieldsNameOfMessagesResponseContentPart = [0]string{} + +// Decode decodes MessagesResponseContentPart from json. +func (s *MessagesResponseContentPart) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesResponseContentPart to nil") + } + if err := d.Capture(func(d *jx.Decoder) error { + return s.OneOf.Decode(d) + }); err != nil { + return errors.Wrap(err, "decode field OneOf") + } + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + default: + return d.Skip() + } + }); err != nil { + return errors.Wrap(err, "decode MessagesResponseContentPart") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesResponseContentPart) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesResponseContentPart) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesResponseContentPartServerToolUse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesResponseContentPartServerToolUse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("type") + s.Type.Encode(e) + } + { + e.FieldStart("id") + e.Str(s.ID) + } + { + e.FieldStart("name") + e.Str(s.Name) + } + { + e.FieldStart("input") + s.Input.Encode(e) + } +} + +var jsonFieldsNameOfMessagesResponseContentPartServerToolUse = [4]string{ + 0: "type", + 1: "id", + 2: "name", + 3: "input", +} + +// Decode decodes MessagesResponseContentPartServerToolUse from json. +func (s *MessagesResponseContentPartServerToolUse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesResponseContentPartServerToolUse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "type": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Type.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + case "id": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.ID = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"id\"") + } + case "name": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Str() + s.Name = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"name\"") + } + case "input": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + if err := s.Input.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"input\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesResponseContentPartServerToolUse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00001111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesResponseContentPartServerToolUse) { + name = jsonFieldsNameOfMessagesResponseContentPartServerToolUse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesResponseContentPartServerToolUse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesResponseContentPartServerToolUse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s MessagesResponseContentPartServerToolUseInput) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields implements json.Marshaler. +func (s MessagesResponseContentPartServerToolUseInput) encodeFields(e *jx.Encoder) { + for k, elem := range s { + e.FieldStart(k) + + if len(elem) != 0 { + e.Raw(elem) + } + } +} + +// Decode decodes MessagesResponseContentPartServerToolUseInput from json. +func (s *MessagesResponseContentPartServerToolUseInput) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesResponseContentPartServerToolUseInput to nil") + } + m := s.init() + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + var elem jx.Raw + if err := func() error { + v, err := d.RawAppend(nil) + elem = jx.Raw(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrapf(err, "decode field %q", k) + } + m[string(k)] = elem + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesResponseContentPartServerToolUseInput") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesResponseContentPartServerToolUseInput) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesResponseContentPartServerToolUseInput) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesResponseContentPartServerToolUseType as json. +func (s MessagesResponseContentPartServerToolUseType) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes MessagesResponseContentPartServerToolUseType from json. +func (s *MessagesResponseContentPartServerToolUseType) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesResponseContentPartServerToolUseType to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch MessagesResponseContentPartServerToolUseType(v) { + case MessagesResponseContentPartServerToolUseTypeServerToolUse: + *s = MessagesResponseContentPartServerToolUseTypeServerToolUse + default: + *s = MessagesResponseContentPartServerToolUseType(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesResponseContentPartServerToolUseType) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesResponseContentPartServerToolUseType) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesResponseContentPartSum as json. +func (s MessagesResponseContentPartSum) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +func (s MessagesResponseContentPartSum) encodeFields(e *jx.Encoder) { + switch s.Type { + case MessagesResponseContentPartTextMessagesResponseContentPartSum: + e.FieldStart("type") + e.Str("text") + { + s := s.MessagesResponseContentPartText + { + e.FieldStart("text") + e.Str(s.Text) + } + } + case MessagesResponseContentPartThinkingMessagesResponseContentPartSum: + e.FieldStart("type") + e.Str("thinking") + { + s := s.MessagesResponseContentPartThinking + { + e.FieldStart("thinking") + e.Str(s.Thinking) + } + { + if s.Signature.Set { + e.FieldStart("signature") + s.Signature.Encode(e) + } + } + } + case MessagesResponseContentPartToolUseMessagesResponseContentPartSum: + e.FieldStart("type") + e.Str("tool_use") + { + s := s.MessagesResponseContentPartToolUse + { + e.FieldStart("id") + e.Str(s.ID) + } + { + e.FieldStart("name") + e.Str(s.Name) + } + { + e.FieldStart("input") + s.Input.Encode(e) + } + } + case MessagesResponseContentPartServerToolUseMessagesResponseContentPartSum: + e.FieldStart("type") + e.Str("server_tool_use") + { + s := s.MessagesResponseContentPartServerToolUse + { + e.FieldStart("id") + e.Str(s.ID) + } + { + e.FieldStart("name") + e.Str(s.Name) + } + { + e.FieldStart("input") + s.Input.Encode(e) + } + } + case MessagesResponseContentPartWebSearchToolResultMessagesResponseContentPartSum: + e.FieldStart("type") + e.Str("web_search_tool_result") + { + s := s.MessagesResponseContentPartWebSearchToolResult + { + e.FieldStart("tool_use_id") + e.Str(s.ToolUseID) + } + { + e.FieldStart("content") + s.Content.Encode(e) + } + { + if s.Caller.Set { + e.FieldStart("caller") + s.Caller.Encode(e) + } + } + } + } +} + +// Decode decodes MessagesResponseContentPartSum from json. +func (s *MessagesResponseContentPartSum) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesResponseContentPartSum to nil") + } + // Sum type discriminator. + if typ := d.Next(); typ != jx.Object { + return errors.Errorf("unexpected json type %q", typ) + } + + var found bool + if err := d.Capture(func(d *jx.Decoder) error { + return d.ObjBytes(func(d *jx.Decoder, key []byte) error { + if found { + return d.Skip() + } + switch string(key) { + case "type": + typ, err := d.Str() + if err != nil { + return err + } + switch typ { + case "text": + s.Type = MessagesResponseContentPartTextMessagesResponseContentPartSum + found = true + case "thinking": + s.Type = MessagesResponseContentPartThinkingMessagesResponseContentPartSum + found = true + case "tool_use": + s.Type = MessagesResponseContentPartToolUseMessagesResponseContentPartSum + found = true + case "server_tool_use": + s.Type = MessagesResponseContentPartServerToolUseMessagesResponseContentPartSum + found = true + case "web_search_tool_result": + s.Type = MessagesResponseContentPartWebSearchToolResultMessagesResponseContentPartSum + found = true + default: + return errors.Errorf("unknown type %s", typ) + } + return nil + } + return d.Skip() + }) + }); err != nil { + return errors.Wrap(err, "capture") + } + if !found { + return errors.New("unable to detect sum type variant") + } + switch s.Type { + case MessagesResponseContentPartTextMessagesResponseContentPartSum: + if err := s.MessagesResponseContentPartText.Decode(d); err != nil { + return err + } + case MessagesResponseContentPartThinkingMessagesResponseContentPartSum: + if err := s.MessagesResponseContentPartThinking.Decode(d); err != nil { + return err + } + case MessagesResponseContentPartToolUseMessagesResponseContentPartSum: + if err := s.MessagesResponseContentPartToolUse.Decode(d); err != nil { + return err + } + case MessagesResponseContentPartServerToolUseMessagesResponseContentPartSum: + if err := s.MessagesResponseContentPartServerToolUse.Decode(d); err != nil { + return err + } + case MessagesResponseContentPartWebSearchToolResultMessagesResponseContentPartSum: + if err := s.MessagesResponseContentPartWebSearchToolResult.Decode(d); err != nil { + return err + } + default: + return errors.Errorf("inferred invalid type: %s", s.Type) + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesResponseContentPartSum) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesResponseContentPartSum) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesResponseContentPartText) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesResponseContentPartText) encodeFields(e *jx.Encoder) { + { + e.FieldStart("type") + s.Type.Encode(e) + } + { + e.FieldStart("text") + e.Str(s.Text) + } +} + +var jsonFieldsNameOfMessagesResponseContentPartText = [2]string{ + 0: "type", + 1: "text", +} + +// Decode decodes MessagesResponseContentPartText from json. +func (s *MessagesResponseContentPartText) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesResponseContentPartText to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "type": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Type.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + case "text": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.Text = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"text\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesResponseContentPartText") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesResponseContentPartText) { + name = jsonFieldsNameOfMessagesResponseContentPartText[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesResponseContentPartText) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesResponseContentPartText) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesResponseContentPartTextType as json. +func (s MessagesResponseContentPartTextType) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes MessagesResponseContentPartTextType from json. +func (s *MessagesResponseContentPartTextType) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesResponseContentPartTextType to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch MessagesResponseContentPartTextType(v) { + case MessagesResponseContentPartTextTypeText: + *s = MessagesResponseContentPartTextTypeText + default: + *s = MessagesResponseContentPartTextType(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesResponseContentPartTextType) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesResponseContentPartTextType) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesResponseContentPartThinking) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesResponseContentPartThinking) encodeFields(e *jx.Encoder) { + { + e.FieldStart("type") + s.Type.Encode(e) + } + { + e.FieldStart("thinking") + e.Str(s.Thinking) + } + { + if s.Signature.Set { + e.FieldStart("signature") + s.Signature.Encode(e) + } + } +} + +var jsonFieldsNameOfMessagesResponseContentPartThinking = [3]string{ + 0: "type", + 1: "thinking", + 2: "signature", +} + +// Decode decodes MessagesResponseContentPartThinking from json. +func (s *MessagesResponseContentPartThinking) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesResponseContentPartThinking to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "type": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Type.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + case "thinking": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.Thinking = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"thinking\"") + } + case "signature": + if err := func() error { + s.Signature.Reset() + if err := s.Signature.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"signature\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesResponseContentPartThinking") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesResponseContentPartThinking) { + name = jsonFieldsNameOfMessagesResponseContentPartThinking[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesResponseContentPartThinking) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesResponseContentPartThinking) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesResponseContentPartThinkingType as json. +func (s MessagesResponseContentPartThinkingType) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes MessagesResponseContentPartThinkingType from json. +func (s *MessagesResponseContentPartThinkingType) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesResponseContentPartThinkingType to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch MessagesResponseContentPartThinkingType(v) { + case MessagesResponseContentPartThinkingTypeThinking: + *s = MessagesResponseContentPartThinkingTypeThinking + default: + *s = MessagesResponseContentPartThinkingType(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesResponseContentPartThinkingType) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesResponseContentPartThinkingType) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesResponseContentPartToolUse) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesResponseContentPartToolUse) encodeFields(e *jx.Encoder) { + { + e.FieldStart("type") + s.Type.Encode(e) + } + { + e.FieldStart("id") + e.Str(s.ID) + } + { + e.FieldStart("name") + e.Str(s.Name) + } + { + e.FieldStart("input") + s.Input.Encode(e) + } +} + +var jsonFieldsNameOfMessagesResponseContentPartToolUse = [4]string{ + 0: "type", + 1: "id", + 2: "name", + 3: "input", +} + +// Decode decodes MessagesResponseContentPartToolUse from json. +func (s *MessagesResponseContentPartToolUse) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesResponseContentPartToolUse to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "type": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Type.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + case "id": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.ID = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"id\"") + } + case "name": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Str() + s.Name = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"name\"") + } + case "input": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + if err := s.Input.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"input\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesResponseContentPartToolUse") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00001111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesResponseContentPartToolUse) { + name = jsonFieldsNameOfMessagesResponseContentPartToolUse[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesResponseContentPartToolUse) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesResponseContentPartToolUse) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s MessagesResponseContentPartToolUseInput) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields implements json.Marshaler. +func (s MessagesResponseContentPartToolUseInput) encodeFields(e *jx.Encoder) { + for k, elem := range s { + e.FieldStart(k) + + if len(elem) != 0 { + e.Raw(elem) + } + } +} + +// Decode decodes MessagesResponseContentPartToolUseInput from json. +func (s *MessagesResponseContentPartToolUseInput) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesResponseContentPartToolUseInput to nil") + } + m := s.init() + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + var elem jx.Raw + if err := func() error { + v, err := d.RawAppend(nil) + elem = jx.Raw(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrapf(err, "decode field %q", k) + } + m[string(k)] = elem + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesResponseContentPartToolUseInput") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesResponseContentPartToolUseInput) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesResponseContentPartToolUseInput) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesResponseContentPartToolUseType as json. +func (s MessagesResponseContentPartToolUseType) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes MessagesResponseContentPartToolUseType from json. +func (s *MessagesResponseContentPartToolUseType) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesResponseContentPartToolUseType to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch MessagesResponseContentPartToolUseType(v) { + case MessagesResponseContentPartToolUseTypeToolUse: + *s = MessagesResponseContentPartToolUseTypeToolUse + default: + *s = MessagesResponseContentPartToolUseType(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesResponseContentPartToolUseType) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesResponseContentPartToolUseType) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesResponseContentPartWebSearchToolResult) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesResponseContentPartWebSearchToolResult) encodeFields(e *jx.Encoder) { + { + e.FieldStart("type") + s.Type.Encode(e) + } + { + e.FieldStart("tool_use_id") + e.Str(s.ToolUseID) + } + { + e.FieldStart("content") + s.Content.Encode(e) + } + { + if s.Caller.Set { + e.FieldStart("caller") + s.Caller.Encode(e) + } + } +} + +var jsonFieldsNameOfMessagesResponseContentPartWebSearchToolResult = [4]string{ + 0: "type", + 1: "tool_use_id", + 2: "content", + 3: "caller", +} + +// Decode decodes MessagesResponseContentPartWebSearchToolResult from json. +func (s *MessagesResponseContentPartWebSearchToolResult) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesResponseContentPartWebSearchToolResult to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "type": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Type.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + case "tool_use_id": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.ToolUseID = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"tool_use_id\"") + } + case "content": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + if err := s.Content.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"content\"") + } + case "caller": + if err := func() error { + s.Caller.Reset() + if err := s.Caller.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"caller\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesResponseContentPartWebSearchToolResult") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesResponseContentPartWebSearchToolResult) { + name = jsonFieldsNameOfMessagesResponseContentPartWebSearchToolResult[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesResponseContentPartWebSearchToolResult) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesResponseContentPartWebSearchToolResult) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesResponseContentPartWebSearchToolResultType as json. +func (s MessagesResponseContentPartWebSearchToolResultType) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes MessagesResponseContentPartWebSearchToolResultType from json. +func (s *MessagesResponseContentPartWebSearchToolResultType) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesResponseContentPartWebSearchToolResultType to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch MessagesResponseContentPartWebSearchToolResultType(v) { + case MessagesResponseContentPartWebSearchToolResultTypeWebSearchToolResult: + *s = MessagesResponseContentPartWebSearchToolResultTypeWebSearchToolResult + default: + *s = MessagesResponseContentPartWebSearchToolResultType(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesResponseContentPartWebSearchToolResultType) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesResponseContentPartWebSearchToolResultType) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesResponseRole as json. +func (s MessagesResponseRole) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes MessagesResponseRole from json. +func (s *MessagesResponseRole) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesResponseRole to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch MessagesResponseRole(v) { + case MessagesResponseRoleAssistant: + *s = MessagesResponseRoleAssistant + default: + *s = MessagesResponseRole(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesResponseRole) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesResponseRole) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesResponseStopReason as json. +func (s MessagesResponseStopReason) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes MessagesResponseStopReason from json. +func (s *MessagesResponseStopReason) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesResponseStopReason to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch MessagesResponseStopReason(v) { + case MessagesResponseStopReasonEndTurn: + *s = MessagesResponseStopReasonEndTurn + case MessagesResponseStopReasonMaxTokens: + *s = MessagesResponseStopReasonMaxTokens + case MessagesResponseStopReasonStopSequence: + *s = MessagesResponseStopReasonStopSequence + case MessagesResponseStopReasonToolUse: + *s = MessagesResponseStopReasonToolUse + case MessagesResponseStopReasonPauseTurn: + *s = MessagesResponseStopReasonPauseTurn + case MessagesResponseStopReasonRefusal: + *s = MessagesResponseStopReasonRefusal + default: + *s = MessagesResponseStopReason(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesResponseStopReason) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesResponseStopReason) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesResponseStreamMessageDelta) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesResponseStreamMessageDelta) encodeFields(e *jx.Encoder) { + { + e.FieldStart("type") + s.Type.Encode(e) + } + { + e.FieldStart("delta") + s.Delta.Encode(e) + } + { + e.FieldStart("usage") + s.Usage.Encode(e) + } +} + +var jsonFieldsNameOfMessagesResponseStreamMessageDelta = [3]string{ + 0: "type", + 1: "delta", + 2: "usage", +} + +// Decode decodes MessagesResponseStreamMessageDelta from json. +func (s *MessagesResponseStreamMessageDelta) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesResponseStreamMessageDelta to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "type": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Type.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + case "delta": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.Delta.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"delta\"") + } + case "usage": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + if err := s.Usage.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"usage\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesResponseStreamMessageDelta") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesResponseStreamMessageDelta) { + name = jsonFieldsNameOfMessagesResponseStreamMessageDelta[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesResponseStreamMessageDelta) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesResponseStreamMessageDelta) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesResponseStreamMessageDeltaDelta) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesResponseStreamMessageDeltaDelta) encodeFields(e *jx.Encoder) { + { + e.FieldStart("stop_reason") + s.StopReason.Encode(e) + } + { + e.FieldStart("stop_sequence") + s.StopSequence.Encode(e) + } +} + +var jsonFieldsNameOfMessagesResponseStreamMessageDeltaDelta = [2]string{ + 0: "stop_reason", + 1: "stop_sequence", +} + +// Decode decodes MessagesResponseStreamMessageDeltaDelta from json. +func (s *MessagesResponseStreamMessageDeltaDelta) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesResponseStreamMessageDeltaDelta to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "stop_reason": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.StopReason.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"stop_reason\"") + } + case "stop_sequence": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.StopSequence.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"stop_sequence\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesResponseStreamMessageDeltaDelta") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesResponseStreamMessageDeltaDelta) { + name = jsonFieldsNameOfMessagesResponseStreamMessageDeltaDelta[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesResponseStreamMessageDeltaDelta) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesResponseStreamMessageDeltaDelta) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesResponseStreamMessageDeltaType as json. +func (s MessagesResponseStreamMessageDeltaType) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes MessagesResponseStreamMessageDeltaType from json. +func (s *MessagesResponseStreamMessageDeltaType) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesResponseStreamMessageDeltaType to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch MessagesResponseStreamMessageDeltaType(v) { + case MessagesResponseStreamMessageDeltaTypeMessageDelta: + *s = MessagesResponseStreamMessageDeltaTypeMessageDelta + default: + *s = MessagesResponseStreamMessageDeltaType(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesResponseStreamMessageDeltaType) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesResponseStreamMessageDeltaType) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesResponseStreamMessageStart) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesResponseStreamMessageStart) encodeFields(e *jx.Encoder) { + { + e.FieldStart("type") + s.Type.Encode(e) + } + { + e.FieldStart("message") + s.Message.Encode(e) + } +} + +var jsonFieldsNameOfMessagesResponseStreamMessageStart = [2]string{ + 0: "type", + 1: "message", +} + +// Decode decodes MessagesResponseStreamMessageStart from json. +func (s *MessagesResponseStreamMessageStart) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesResponseStreamMessageStart to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "type": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Type.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + case "message": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + if err := s.Message.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"message\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesResponseStreamMessageStart") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesResponseStreamMessageStart) { + name = jsonFieldsNameOfMessagesResponseStreamMessageStart[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesResponseStreamMessageStart) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesResponseStreamMessageStart) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesResponseStreamMessageStartMessage) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesResponseStreamMessageStartMessage) encodeFields(e *jx.Encoder) { + { + e.FieldStart("type") + s.Type.Encode(e) + } + { + e.FieldStart("id") + e.Str(s.ID) + } + { + e.FieldStart("role") + s.Role.Encode(e) + } + { + e.FieldStart("content") + e.ArrStart() + for _, elem := range s.Content { + if len(elem) != 0 { + e.Raw(elem) + } + } + e.ArrEnd() + } + { + e.FieldStart("model") + e.Str(s.Model) + } + { + if s.ServiceStatus.Set { + e.FieldStart("service_status") + s.ServiceStatus.Encode(e) + } + } + { + e.FieldStart("stop_reason") + s.StopReason.Encode(e) + } + { + e.FieldStart("stop_sequence") + s.StopSequence.Encode(e) + } + { + e.FieldStart("usage") + s.Usage.Encode(e) + } +} + +var jsonFieldsNameOfMessagesResponseStreamMessageStartMessage = [9]string{ + 0: "type", + 1: "id", + 2: "role", + 3: "content", + 4: "model", + 5: "service_status", + 6: "stop_reason", + 7: "stop_sequence", + 8: "usage", +} + +// Decode decodes MessagesResponseStreamMessageStartMessage from json. +func (s *MessagesResponseStreamMessageStartMessage) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesResponseStreamMessageStartMessage to nil") + } + var requiredBitSet [2]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "type": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Type.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + case "id": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.ID = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"id\"") + } + case "role": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + if err := s.Role.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"role\"") + } + case "content": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + s.Content = make([]jx.Raw, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem jx.Raw + v, err := d.RawAppend(nil) + elem = jx.Raw(v) + if err != nil { + return err + } + s.Content = append(s.Content, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"content\"") + } + case "model": + requiredBitSet[0] |= 1 << 4 + if err := func() error { + v, err := d.Str() + s.Model = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"model\"") + } + case "service_status": + if err := func() error { + s.ServiceStatus.Reset() + if err := s.ServiceStatus.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"service_status\"") + } + case "stop_reason": + requiredBitSet[0] |= 1 << 6 + if err := func() error { + if err := s.StopReason.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"stop_reason\"") + } + case "stop_sequence": + requiredBitSet[0] |= 1 << 7 + if err := func() error { + if err := s.StopSequence.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"stop_sequence\"") + } + case "usage": + requiredBitSet[1] |= 1 << 0 + if err := func() error { + if err := s.Usage.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"usage\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesResponseStreamMessageStartMessage") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [2]uint8{ + 0b11011111, + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesResponseStreamMessageStartMessage) { + name = jsonFieldsNameOfMessagesResponseStreamMessageStartMessage[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesResponseStreamMessageStartMessage) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesResponseStreamMessageStartMessage) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesResponseStreamMessageStartMessageRole as json. +func (s MessagesResponseStreamMessageStartMessageRole) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes MessagesResponseStreamMessageStartMessageRole from json. +func (s *MessagesResponseStreamMessageStartMessageRole) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesResponseStreamMessageStartMessageRole to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch MessagesResponseStreamMessageStartMessageRole(v) { + case MessagesResponseStreamMessageStartMessageRoleAssistant: + *s = MessagesResponseStreamMessageStartMessageRoleAssistant + default: + *s = MessagesResponseStreamMessageStartMessageRole(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesResponseStreamMessageStartMessageRole) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesResponseStreamMessageStartMessageRole) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesResponseStreamMessageStartMessageType as json. +func (s MessagesResponseStreamMessageStartMessageType) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes MessagesResponseStreamMessageStartMessageType from json. +func (s *MessagesResponseStreamMessageStartMessageType) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesResponseStreamMessageStartMessageType to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch MessagesResponseStreamMessageStartMessageType(v) { + case MessagesResponseStreamMessageStartMessageTypeMessage: + *s = MessagesResponseStreamMessageStartMessageTypeMessage + default: + *s = MessagesResponseStreamMessageStartMessageType(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesResponseStreamMessageStartMessageType) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesResponseStreamMessageStartMessageType) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesResponseStreamMessageStartType as json. +func (s MessagesResponseStreamMessageStartType) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes MessagesResponseStreamMessageStartType from json. +func (s *MessagesResponseStreamMessageStartType) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesResponseStreamMessageStartType to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch MessagesResponseStreamMessageStartType(v) { + case MessagesResponseStreamMessageStartTypeMessageStart: + *s = MessagesResponseStreamMessageStartTypeMessageStart + default: + *s = MessagesResponseStreamMessageStartType(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesResponseStreamMessageStartType) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesResponseStreamMessageStartType) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesResponseStreamMessageStop) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesResponseStreamMessageStop) encodeFields(e *jx.Encoder) { + { + e.FieldStart("type") + s.Type.Encode(e) + } +} + +var jsonFieldsNameOfMessagesResponseStreamMessageStop = [1]string{ + 0: "type", +} + +// Decode decodes MessagesResponseStreamMessageStop from json. +func (s *MessagesResponseStreamMessageStop) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesResponseStreamMessageStop to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "type": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Type.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesResponseStreamMessageStop") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesResponseStreamMessageStop) { + name = jsonFieldsNameOfMessagesResponseStreamMessageStop[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesResponseStreamMessageStop) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesResponseStreamMessageStop) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesResponseStreamMessageStopType as json. +func (s MessagesResponseStreamMessageStopType) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes MessagesResponseStreamMessageStopType from json. +func (s *MessagesResponseStreamMessageStopType) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesResponseStreamMessageStopType to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch MessagesResponseStreamMessageStopType(v) { + case MessagesResponseStreamMessageStopTypeMessageStop: + *s = MessagesResponseStreamMessageStopTypeMessageStop + default: + *s = MessagesResponseStreamMessageStopType(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesResponseStreamMessageStopType) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesResponseStreamMessageStopType) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesResponseType as json. +func (s MessagesResponseType) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes MessagesResponseType from json. +func (s *MessagesResponseType) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesResponseType to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch MessagesResponseType(v) { + case MessagesResponseTypeMessage: + *s = MessagesResponseTypeMessage + default: + *s = MessagesResponseType(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesResponseType) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesResponseType) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesRole as json. +func (s MessagesRole) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes MessagesRole from json. +func (s *MessagesRole) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesRole to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch MessagesRole(v) { + case MessagesRoleAssistant: + *s = MessagesRoleAssistant + case MessagesRoleUser: + *s = MessagesRoleUser + case MessagesRoleSystem: + *s = MessagesRoleSystem + default: + *s = MessagesRole(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesRole) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesRole) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesServerToolCaller) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesServerToolCaller) encodeFields(e *jx.Encoder) { + { + e.FieldStart("type") + e.Str(s.Type) + } +} + +var jsonFieldsNameOfMessagesServerToolCaller = [1]string{ + 0: "type", +} + +// Decode decodes MessagesServerToolCaller from json. +func (s *MessagesServerToolCaller) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesServerToolCaller to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "type": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.Type = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesServerToolCaller") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesServerToolCaller) { + name = jsonFieldsNameOfMessagesServerToolCaller[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesServerToolCaller) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesServerToolCaller) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesServerToolUsage) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesServerToolUsage) encodeFields(e *jx.Encoder) { + { + e.FieldStart("web_search_requests") + e.Int32(s.WebSearchRequests) + } + { + e.FieldStart("web_fetch_requests") + e.Int32(s.WebFetchRequests) + } +} + +var jsonFieldsNameOfMessagesServerToolUsage = [2]string{ + 0: "web_search_requests", + 1: "web_fetch_requests", +} + +// Decode decodes MessagesServerToolUsage from json. +func (s *MessagesServerToolUsage) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesServerToolUsage to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "web_search_requests": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Int32() + s.WebSearchRequests = int32(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"web_search_requests\"") + } + case "web_fetch_requests": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Int32() + s.WebFetchRequests = int32(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"web_fetch_requests\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesServerToolUsage") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesServerToolUsage) { + name = jsonFieldsNameOfMessagesServerToolUsage[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesServerToolUsage) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesServerToolUsage) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesServiceStatus) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesServiceStatus) encodeFields(e *jx.Encoder) { + { + if s.ModelFallback.Set { + e.FieldStart("model_fallback") + s.ModelFallback.Encode(e) + } + } +} + +var jsonFieldsNameOfMessagesServiceStatus = [1]string{ + 0: "model_fallback", +} + +// Decode decodes MessagesServiceStatus from json. +func (s *MessagesServiceStatus) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesServiceStatus to nil") + } + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "model_fallback": + if err := func() error { + s.ModelFallback.Reset() + if err := s.ModelFallback.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"model_fallback\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesServiceStatus") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesServiceStatus) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesServiceStatus) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesStopSequences as json. +func (s MessagesStopSequences) Encode(e *jx.Encoder) { + switch s.Type { + case StringMessagesStopSequences: + e.Str(s.String) + case StringArrayMessagesStopSequences: + e.ArrStart() + for _, elem := range s.StringArray { + e.Str(elem) + } + e.ArrEnd() + } +} + +// Decode decodes MessagesStopSequences from json. +func (s *MessagesStopSequences) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesStopSequences to nil") + } + // Sum type type_discriminator. + switch t := d.Next(); t { + case jx.Array: + s.StringArray = make([]string, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem string + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + s.StringArray = append(s.StringArray, elem) + return nil + }); err != nil { + return err + } + s.Type = StringArrayMessagesStopSequences + case jx.String: + v, err := d.Str() + s.String = string(v) + if err != nil { + return err + } + s.Type = StringMessagesStopSequences + default: + return errors.Errorf("unexpected json type %q", t) + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesStopSequences) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesStopSequences) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesStreamEvent) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesStreamEvent) encodeFields(e *jx.Encoder) { + s.OneOf.encodeFields(e) +} + +var jsonFieldsNameOfMessagesStreamEvent = [0]string{} + +// Decode decodes MessagesStreamEvent from json. +func (s *MessagesStreamEvent) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesStreamEvent to nil") + } + if err := d.Capture(func(d *jx.Decoder) error { + return s.OneOf.Decode(d) + }); err != nil { + return errors.Wrap(err, "decode field OneOf") + } + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + default: + return d.Skip() + } + }); err != nil { + return errors.Wrap(err, "decode MessagesStreamEvent") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesStreamEvent) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesStreamEvent) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesStreamEventSum as json. +func (s MessagesStreamEventSum) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +func (s MessagesStreamEventSum) encodeFields(e *jx.Encoder) { + switch s.Type { + case MessagesResponseStreamMessageStartMessagesStreamEventSum: + e.FieldStart("type") + e.Str("message_start") + { + s := s.MessagesResponseStreamMessageStart + { + e.FieldStart("message") + s.Message.Encode(e) + } + } + case ContentBlockStartMessagesStreamEventSum: + e.FieldStart("type") + e.Str("content_block_start") + { + s := s.ContentBlockStart + { + e.FieldStart("index") + e.Int32(s.Index) + } + { + e.FieldStart("content_block") + s.ContentBlock.Encode(e) + } + } + case MessagesResponseContentBlockMessagesStreamEventSum: + e.FieldStart("type") + e.Str("content_block_delta") + { + s := s.MessagesResponseContentBlock + { + e.FieldStart("index") + e.Int32(s.Index) + } + { + e.FieldStart("delta") + s.Delta.Encode(e) + } + } + case MessagesResponseContentBlockStopMessagesStreamEventSum: + e.FieldStart("type") + e.Str("content_block_stop") + { + s := s.MessagesResponseContentBlockStop + { + e.FieldStart("index") + e.Int32(s.Index) + } + } + case MessagesResponseStreamMessageDeltaMessagesStreamEventSum: + e.FieldStart("type") + e.Str("message_delta") + { + s := s.MessagesResponseStreamMessageDelta + { + e.FieldStart("delta") + s.Delta.Encode(e) + } + { + e.FieldStart("usage") + s.Usage.Encode(e) + } + } + case MessagesResponseStreamMessageStopMessagesStreamEventSum: + e.FieldStart("type") + e.Str("message_stop") + case MessagesErrorResponseMessagesStreamEventSum: + e.FieldStart("type") + e.Str("error") + { + s := s.MessagesErrorResponse + { + e.FieldStart("error") + s.Error.Encode(e) + } + } + } +} + +// Decode decodes MessagesStreamEventSum from json. +func (s *MessagesStreamEventSum) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesStreamEventSum to nil") + } + // Sum type discriminator. + if typ := d.Next(); typ != jx.Object { + return errors.Errorf("unexpected json type %q", typ) + } + + var found bool + if err := d.Capture(func(d *jx.Decoder) error { + return d.ObjBytes(func(d *jx.Decoder, key []byte) error { + if found { + return d.Skip() + } + switch string(key) { + case "type": + typ, err := d.Str() + if err != nil { + return err + } + switch typ { + case "message_start": + s.Type = MessagesResponseStreamMessageStartMessagesStreamEventSum + found = true + case "content_block_start": + s.Type = ContentBlockStartMessagesStreamEventSum + found = true + case "content_block_delta": + s.Type = MessagesResponseContentBlockMessagesStreamEventSum + found = true + case "content_block_stop": + s.Type = MessagesResponseContentBlockStopMessagesStreamEventSum + found = true + case "message_delta": + s.Type = MessagesResponseStreamMessageDeltaMessagesStreamEventSum + found = true + case "message_stop": + s.Type = MessagesResponseStreamMessageStopMessagesStreamEventSum + found = true + case "error": + s.Type = MessagesErrorResponseMessagesStreamEventSum + found = true + default: + return errors.Errorf("unknown type %s", typ) + } + return nil + } + return d.Skip() + }) + }); err != nil { + return errors.Wrap(err, "capture") + } + if !found { + return errors.New("unable to detect sum type variant") + } + switch s.Type { + case MessagesResponseStreamMessageStartMessagesStreamEventSum: + if err := s.MessagesResponseStreamMessageStart.Decode(d); err != nil { + return err + } + case ContentBlockStartMessagesStreamEventSum: + if err := s.ContentBlockStart.Decode(d); err != nil { + return err + } + case MessagesResponseContentBlockMessagesStreamEventSum: + if err := s.MessagesResponseContentBlock.Decode(d); err != nil { + return err + } + case MessagesResponseContentBlockStopMessagesStreamEventSum: + if err := s.MessagesResponseContentBlockStop.Decode(d); err != nil { + return err + } + case MessagesResponseStreamMessageDeltaMessagesStreamEventSum: + if err := s.MessagesResponseStreamMessageDelta.Decode(d); err != nil { + return err + } + case MessagesResponseStreamMessageStopMessagesStreamEventSum: + if err := s.MessagesResponseStreamMessageStop.Decode(d); err != nil { + return err + } + case MessagesErrorResponseMessagesStreamEventSum: + if err := s.MessagesErrorResponse.Decode(d); err != nil { + return err + } + default: + return errors.Errorf("inferred invalid type: %s", s.Type) + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesStreamEventSum) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesStreamEventSum) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesStreamOptions) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesStreamOptions) encodeFields(e *jx.Encoder) { + { + if s.IncludeUsage.Set { + e.FieldStart("include_usage") + s.IncludeUsage.Encode(e) + } + } + { + if s.ChunkIncludeUsage.Set { + e.FieldStart("chunk_include_usage") + s.ChunkIncludeUsage.Encode(e) + } + } +} + +var jsonFieldsNameOfMessagesStreamOptions = [2]string{ + 0: "include_usage", + 1: "chunk_include_usage", +} + +// Decode decodes MessagesStreamOptions from json. +func (s *MessagesStreamOptions) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesStreamOptions to nil") + } + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "include_usage": + if err := func() error { + s.IncludeUsage.Reset() + if err := s.IncludeUsage.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"include_usage\"") + } + case "chunk_include_usage": + if err := func() error { + s.ChunkIncludeUsage.Reset() + if err := s.ChunkIncludeUsage.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"chunk_include_usage\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesStreamOptions") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesStreamOptions) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesStreamOptions) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesSystem as json. +func (s MessagesSystem) Encode(e *jx.Encoder) { + switch s.Type { + case StringMessagesSystem: + e.Str(s.String) + case MessagesSystemTextPartArrayMessagesSystem: + e.ArrStart() + for _, elem := range s.MessagesSystemTextPartArray { + elem.Encode(e) + } + e.ArrEnd() + } +} + +// Decode decodes MessagesSystem from json. +func (s *MessagesSystem) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesSystem to nil") + } + // Sum type type_discriminator. + switch t := d.Next(); t { + case jx.Array: + s.MessagesSystemTextPartArray = make([]MessagesSystemTextPart, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem MessagesSystemTextPart + if err := elem.Decode(d); err != nil { + return err + } + s.MessagesSystemTextPartArray = append(s.MessagesSystemTextPartArray, elem) + return nil + }); err != nil { + return err + } + s.Type = MessagesSystemTextPartArrayMessagesSystem + case jx.String: + v, err := d.Str() + s.String = string(v) + if err != nil { + return err + } + s.Type = StringMessagesSystem + default: + return errors.Errorf("unexpected json type %q", t) + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesSystem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesSystem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesSystemTextPart) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesSystemTextPart) encodeFields(e *jx.Encoder) { + { + e.FieldStart("type") + s.Type.Encode(e) + } + { + e.FieldStart("text") + e.Str(s.Text) + } +} + +var jsonFieldsNameOfMessagesSystemTextPart = [2]string{ + 0: "type", + 1: "text", +} + +// Decode decodes MessagesSystemTextPart from json. +func (s *MessagesSystemTextPart) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesSystemTextPart to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "type": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Type.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + case "text": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.Text = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"text\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesSystemTextPart") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesSystemTextPart) { + name = jsonFieldsNameOfMessagesSystemTextPart[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesSystemTextPart) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesSystemTextPart) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesSystemTextPartType as json. +func (s MessagesSystemTextPartType) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes MessagesSystemTextPartType from json. +func (s *MessagesSystemTextPartType) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesSystemTextPartType to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch MessagesSystemTextPartType(v) { + case MessagesSystemTextPartTypeText: + *s = MessagesSystemTextPartTypeText + default: + *s = MessagesSystemTextPartType(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesSystemTextPartType) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesSystemTextPartType) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesThinking) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesThinking) encodeFields(e *jx.Encoder) { + { + e.FieldStart("type") + e.Str(s.Type) + } +} + +var jsonFieldsNameOfMessagesThinking = [1]string{ + 0: "type", +} + +// Decode decodes MessagesThinking from json. +func (s *MessagesThinking) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesThinking to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "type": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Str() + s.Type = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesThinking") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesThinking) { + name = jsonFieldsNameOfMessagesThinking[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesThinking) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesThinking) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesTool) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesTool) encodeFields(e *jx.Encoder) { + { + if s.Description.Set { + e.FieldStart("description") + s.Description.Encode(e) + } + } + { + e.FieldStart("name") + e.Str(s.Name) + } + { + if s.InputSchema.Set { + e.FieldStart("input_schema") + s.InputSchema.Encode(e) + } + } + { + if s.Strict.Set { + e.FieldStart("strict") + s.Strict.Encode(e) + } + } + { + if s.Type.Set { + e.FieldStart("type") + s.Type.Encode(e) + } + } + { + if s.MaxUses.Set { + e.FieldStart("max_uses") + s.MaxUses.Encode(e) + } + } + { + if s.AllowedDomains != nil { + e.FieldStart("allowed_domains") + e.ArrStart() + for _, elem := range s.AllowedDomains { + e.Str(elem) + } + e.ArrEnd() + } + } + { + if s.BlockedDomains != nil { + e.FieldStart("blocked_domains") + e.ArrStart() + for _, elem := range s.BlockedDomains { + e.Str(elem) + } + e.ArrEnd() + } + } + { + if s.UserLocation.Set { + e.FieldStart("user_location") + s.UserLocation.Encode(e) + } + } +} + +var jsonFieldsNameOfMessagesTool = [9]string{ + 0: "description", + 1: "name", + 2: "input_schema", + 3: "strict", + 4: "type", + 5: "max_uses", + 6: "allowed_domains", + 7: "blocked_domains", + 8: "user_location", +} + +// Decode decodes MessagesTool from json. +func (s *MessagesTool) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesTool to nil") + } + var requiredBitSet [2]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "description": + if err := func() error { + s.Description.Reset() + if err := s.Description.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"description\"") + } + case "name": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.Name = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"name\"") + } + case "input_schema": + if err := func() error { + s.InputSchema.Reset() + if err := s.InputSchema.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"input_schema\"") + } + case "strict": + if err := func() error { + s.Strict.Reset() + if err := s.Strict.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"strict\"") + } + case "type": + if err := func() error { + s.Type.Reset() + if err := s.Type.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + case "max_uses": + if err := func() error { + s.MaxUses.Reset() + if err := s.MaxUses.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"max_uses\"") + } + case "allowed_domains": + if err := func() error { + s.AllowedDomains = make([]string, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem string + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + s.AllowedDomains = append(s.AllowedDomains, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"allowed_domains\"") + } + case "blocked_domains": + if err := func() error { + s.BlockedDomains = make([]string, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem string + v, err := d.Str() + elem = string(v) + if err != nil { + return err + } + s.BlockedDomains = append(s.BlockedDomains, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"blocked_domains\"") + } + case "user_location": + if err := func() error { + s.UserLocation.Reset() + if err := s.UserLocation.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"user_location\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesTool") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [2]uint8{ + 0b00000010, + 0b00000000, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesTool) { + name = jsonFieldsNameOfMessagesTool[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesTool) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesTool) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesToolChoice) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesToolChoice) encodeFields(e *jx.Encoder) { + s.OneOf.encodeFields(e) +} + +var jsonFieldsNameOfMessagesToolChoice = [0]string{} + +// Decode decodes MessagesToolChoice from json. +func (s *MessagesToolChoice) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesToolChoice to nil") + } + if err := d.Capture(func(d *jx.Decoder) error { + return s.OneOf.Decode(d) + }); err != nil { + return errors.Wrap(err, "decode field OneOf") + } + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + default: + return d.Skip() + } + }); err != nil { + return errors.Wrap(err, "decode MessagesToolChoice") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesToolChoice) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesToolChoice) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesToolChoiceAny) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesToolChoiceAny) encodeFields(e *jx.Encoder) { + { + e.FieldStart("type") + s.Type.Encode(e) + } + { + if s.DisableParallelToolUse.Set { + e.FieldStart("disable_parallel_tool_use") + s.DisableParallelToolUse.Encode(e) + } + } +} + +var jsonFieldsNameOfMessagesToolChoiceAny = [2]string{ + 0: "type", + 1: "disable_parallel_tool_use", +} + +// Decode decodes MessagesToolChoiceAny from json. +func (s *MessagesToolChoiceAny) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesToolChoiceAny to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "type": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Type.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + case "disable_parallel_tool_use": + if err := func() error { + s.DisableParallelToolUse.Reset() + if err := s.DisableParallelToolUse.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"disable_parallel_tool_use\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesToolChoiceAny") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesToolChoiceAny) { + name = jsonFieldsNameOfMessagesToolChoiceAny[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesToolChoiceAny) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesToolChoiceAny) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesToolChoiceAnyType as json. +func (s MessagesToolChoiceAnyType) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes MessagesToolChoiceAnyType from json. +func (s *MessagesToolChoiceAnyType) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesToolChoiceAnyType to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch MessagesToolChoiceAnyType(v) { + case MessagesToolChoiceAnyTypeAny: + *s = MessagesToolChoiceAnyTypeAny + default: + *s = MessagesToolChoiceAnyType(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesToolChoiceAnyType) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesToolChoiceAnyType) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesToolChoiceAuto) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesToolChoiceAuto) encodeFields(e *jx.Encoder) { + { + e.FieldStart("type") + s.Type.Encode(e) + } + { + if s.DisableParallelToolUse.Set { + e.FieldStart("disable_parallel_tool_use") + s.DisableParallelToolUse.Encode(e) + } + } +} + +var jsonFieldsNameOfMessagesToolChoiceAuto = [2]string{ + 0: "type", + 1: "disable_parallel_tool_use", +} + +// Decode decodes MessagesToolChoiceAuto from json. +func (s *MessagesToolChoiceAuto) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesToolChoiceAuto to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "type": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Type.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + case "disable_parallel_tool_use": + if err := func() error { + s.DisableParallelToolUse.Reset() + if err := s.DisableParallelToolUse.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"disable_parallel_tool_use\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesToolChoiceAuto") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesToolChoiceAuto) { + name = jsonFieldsNameOfMessagesToolChoiceAuto[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesToolChoiceAuto) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesToolChoiceAuto) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesToolChoiceAutoType as json. +func (s MessagesToolChoiceAutoType) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes MessagesToolChoiceAutoType from json. +func (s *MessagesToolChoiceAutoType) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesToolChoiceAutoType to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch MessagesToolChoiceAutoType(v) { + case MessagesToolChoiceAutoTypeAuto: + *s = MessagesToolChoiceAutoTypeAuto + default: + *s = MessagesToolChoiceAutoType(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesToolChoiceAutoType) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesToolChoiceAutoType) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesToolChoiceNone) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesToolChoiceNone) encodeFields(e *jx.Encoder) { + { + e.FieldStart("type") + s.Type.Encode(e) + } + { + if s.DisableParallelToolUse.Set { + e.FieldStart("disable_parallel_tool_use") + s.DisableParallelToolUse.Encode(e) + } + } +} + +var jsonFieldsNameOfMessagesToolChoiceNone = [2]string{ + 0: "type", + 1: "disable_parallel_tool_use", +} + +// Decode decodes MessagesToolChoiceNone from json. +func (s *MessagesToolChoiceNone) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesToolChoiceNone to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "type": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Type.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + case "disable_parallel_tool_use": + if err := func() error { + s.DisableParallelToolUse.Reset() + if err := s.DisableParallelToolUse.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"disable_parallel_tool_use\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesToolChoiceNone") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000001, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesToolChoiceNone) { + name = jsonFieldsNameOfMessagesToolChoiceNone[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesToolChoiceNone) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesToolChoiceNone) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesToolChoiceNoneType as json. +func (s MessagesToolChoiceNoneType) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes MessagesToolChoiceNoneType from json. +func (s *MessagesToolChoiceNoneType) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesToolChoiceNoneType to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch MessagesToolChoiceNoneType(v) { + case MessagesToolChoiceNoneTypeNone: + *s = MessagesToolChoiceNoneTypeNone + default: + *s = MessagesToolChoiceNoneType(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesToolChoiceNoneType) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesToolChoiceNoneType) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesToolChoiceSum as json. +func (s MessagesToolChoiceSum) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +func (s MessagesToolChoiceSum) encodeFields(e *jx.Encoder) { + switch s.Type { + case MessagesToolChoiceAutoMessagesToolChoiceSum: + e.FieldStart("type") + e.Str("auto") + { + s := s.MessagesToolChoiceAuto + { + if s.DisableParallelToolUse.Set { + e.FieldStart("disable_parallel_tool_use") + s.DisableParallelToolUse.Encode(e) + } + } + } + case MessagesToolChoiceAnyMessagesToolChoiceSum: + e.FieldStart("type") + e.Str("any") + { + s := s.MessagesToolChoiceAny + { + if s.DisableParallelToolUse.Set { + e.FieldStart("disable_parallel_tool_use") + s.DisableParallelToolUse.Encode(e) + } + } + } + case MessagesToolChoiceNoneMessagesToolChoiceSum: + e.FieldStart("type") + e.Str("none") + { + s := s.MessagesToolChoiceNone + { + if s.DisableParallelToolUse.Set { + e.FieldStart("disable_parallel_tool_use") + s.DisableParallelToolUse.Encode(e) + } + } + } + case MessagesToolChoiceToolMessagesToolChoiceSum: + e.FieldStart("type") + e.Str("tool") + { + s := s.MessagesToolChoiceTool + { + if s.DisableParallelToolUse.Set { + e.FieldStart("disable_parallel_tool_use") + s.DisableParallelToolUse.Encode(e) + } + } + { + e.FieldStart("name") + e.Str(s.Name) + } + } + } +} + +// Decode decodes MessagesToolChoiceSum from json. +func (s *MessagesToolChoiceSum) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesToolChoiceSum to nil") + } + // Sum type discriminator. + if typ := d.Next(); typ != jx.Object { + return errors.Errorf("unexpected json type %q", typ) + } + + var found bool + if err := d.Capture(func(d *jx.Decoder) error { + return d.ObjBytes(func(d *jx.Decoder, key []byte) error { + if found { + return d.Skip() + } + switch string(key) { + case "type": + typ, err := d.Str() + if err != nil { + return err + } + switch typ { + case "auto": + s.Type = MessagesToolChoiceAutoMessagesToolChoiceSum + found = true + case "any": + s.Type = MessagesToolChoiceAnyMessagesToolChoiceSum + found = true + case "none": + s.Type = MessagesToolChoiceNoneMessagesToolChoiceSum + found = true + case "tool": + s.Type = MessagesToolChoiceToolMessagesToolChoiceSum + found = true + default: + return errors.Errorf("unknown type %s", typ) + } + return nil + } + return d.Skip() + }) + }); err != nil { + return errors.Wrap(err, "capture") + } + if !found { + return errors.New("unable to detect sum type variant") + } + switch s.Type { + case MessagesToolChoiceAutoMessagesToolChoiceSum: + if err := s.MessagesToolChoiceAuto.Decode(d); err != nil { + return err + } + case MessagesToolChoiceAnyMessagesToolChoiceSum: + if err := s.MessagesToolChoiceAny.Decode(d); err != nil { + return err + } + case MessagesToolChoiceNoneMessagesToolChoiceSum: + if err := s.MessagesToolChoiceNone.Decode(d); err != nil { + return err + } + case MessagesToolChoiceToolMessagesToolChoiceSum: + if err := s.MessagesToolChoiceTool.Decode(d); err != nil { + return err + } + default: + return errors.Errorf("inferred invalid type: %s", s.Type) + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesToolChoiceSum) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesToolChoiceSum) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesToolChoiceTool) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesToolChoiceTool) encodeFields(e *jx.Encoder) { + { + e.FieldStart("type") + s.Type.Encode(e) + } + { + if s.DisableParallelToolUse.Set { + e.FieldStart("disable_parallel_tool_use") + s.DisableParallelToolUse.Encode(e) + } + } + { + e.FieldStart("name") + e.Str(s.Name) + } +} + +var jsonFieldsNameOfMessagesToolChoiceTool = [3]string{ + 0: "type", + 1: "disable_parallel_tool_use", + 2: "name", +} + +// Decode decodes MessagesToolChoiceTool from json. +func (s *MessagesToolChoiceTool) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesToolChoiceTool to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "type": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Type.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + case "disable_parallel_tool_use": + if err := func() error { + s.DisableParallelToolUse.Reset() + if err := s.DisableParallelToolUse.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"disable_parallel_tool_use\"") + } + case "name": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Str() + s.Name = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"name\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesToolChoiceTool") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000101, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesToolChoiceTool) { + name = jsonFieldsNameOfMessagesToolChoiceTool[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesToolChoiceTool) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesToolChoiceTool) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesToolChoiceToolType as json. +func (s MessagesToolChoiceToolType) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes MessagesToolChoiceToolType from json. +func (s *MessagesToolChoiceToolType) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesToolChoiceToolType to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch MessagesToolChoiceToolType(v) { + case MessagesToolChoiceToolTypeTool: + *s = MessagesToolChoiceToolTypeTool + default: + *s = MessagesToolChoiceToolType(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesToolChoiceToolType) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesToolChoiceToolType) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s MessagesToolInputSchema) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields implements json.Marshaler. +func (s MessagesToolInputSchema) encodeFields(e *jx.Encoder) { + for k, elem := range s { + e.FieldStart(k) + + if len(elem) != 0 { + e.Raw(elem) + } + } +} + +// Decode decodes MessagesToolInputSchema from json. +func (s *MessagesToolInputSchema) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesToolInputSchema to nil") + } + m := s.init() + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + var elem jx.Raw + if err := func() error { + v, err := d.RawAppend(nil) + elem = jx.Raw(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrapf(err, "decode field %q", k) + } + m[string(k)] = elem + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesToolInputSchema") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesToolInputSchema) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesToolInputSchema) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesToolResultContent as json. +func (s MessagesToolResultContent) Encode(e *jx.Encoder) { + switch s.Type { + case StringMessagesToolResultContent: + e.Str(s.String) + case MessagesToolResultContentPartArrayMessagesToolResultContent: + e.ArrStart() + for _, elem := range s.MessagesToolResultContentPartArray { + elem.Encode(e) + } + e.ArrEnd() + } +} + +// Decode decodes MessagesToolResultContent from json. +func (s *MessagesToolResultContent) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesToolResultContent to nil") + } + // Sum type type_discriminator. + switch t := d.Next(); t { + case jx.Array: + s.MessagesToolResultContentPartArray = make([]MessagesToolResultContentPart, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem MessagesToolResultContentPart + if err := elem.Decode(d); err != nil { + return err + } + s.MessagesToolResultContentPartArray = append(s.MessagesToolResultContentPartArray, elem) + return nil + }); err != nil { + return err + } + s.Type = MessagesToolResultContentPartArrayMessagesToolResultContent + case jx.String: + v, err := d.Str() + s.String = string(v) + if err != nil { + return err + } + s.Type = StringMessagesToolResultContent + default: + return errors.Errorf("unexpected json type %q", t) + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesToolResultContent) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesToolResultContent) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesToolResultContentPart) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesToolResultContentPart) encodeFields(e *jx.Encoder) { + s.OneOf.encodeFields(e) +} + +var jsonFieldsNameOfMessagesToolResultContentPart = [0]string{} + +// Decode decodes MessagesToolResultContentPart from json. +func (s *MessagesToolResultContentPart) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesToolResultContentPart to nil") + } + if err := d.Capture(func(d *jx.Decoder) error { + return s.OneOf.Decode(d) + }); err != nil { + return errors.Wrap(err, "decode field OneOf") + } + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + default: + return d.Skip() + } + }); err != nil { + return errors.Wrap(err, "decode MessagesToolResultContentPart") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesToolResultContentPart) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesToolResultContentPart) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesToolResultContentPartSum as json. +func (s MessagesToolResultContentPartSum) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +func (s MessagesToolResultContentPartSum) encodeFields(e *jx.Encoder) { + switch s.Type { + case MessagesContentPartTextMessagesToolResultContentPartSum: + e.FieldStart("type") + e.Str("text") + { + s := s.MessagesContentPartText + { + e.FieldStart("text") + e.Str(s.Text) + } + } + case MessagesContentPartImageMessagesToolResultContentPartSum: + e.FieldStart("type") + e.Str("image") + { + s := s.MessagesContentPartImage + { + e.FieldStart("source") + s.Source.Encode(e) + } + } + case MessagesContentPartToolReferenceMessagesToolResultContentPartSum: + e.FieldStart("type") + e.Str("tool_reference") + { + s := s.MessagesContentPartToolReference + { + e.FieldStart("tool_name") + e.Str(s.ToolName) + } + } + } +} + +// Decode decodes MessagesToolResultContentPartSum from json. +func (s *MessagesToolResultContentPartSum) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesToolResultContentPartSum to nil") + } + // Sum type discriminator. + if typ := d.Next(); typ != jx.Object { + return errors.Errorf("unexpected json type %q", typ) + } + + var found bool + if err := d.Capture(func(d *jx.Decoder) error { + return d.ObjBytes(func(d *jx.Decoder, key []byte) error { + if found { + return d.Skip() + } + switch string(key) { + case "type": + typ, err := d.Str() + if err != nil { + return err + } + switch typ { + case "text": + s.Type = MessagesContentPartTextMessagesToolResultContentPartSum + found = true + case "image": + s.Type = MessagesContentPartImageMessagesToolResultContentPartSum + found = true + case "tool_reference": + s.Type = MessagesContentPartToolReferenceMessagesToolResultContentPartSum + found = true + default: + return errors.Errorf("unknown type %s", typ) + } + return nil + } + return d.Skip() + }) + }); err != nil { + return errors.Wrap(err, "capture") + } + if !found { + return errors.New("unable to detect sum type variant") + } + switch s.Type { + case MessagesContentPartTextMessagesToolResultContentPartSum: + if err := s.MessagesContentPartText.Decode(d); err != nil { + return err + } + case MessagesContentPartImageMessagesToolResultContentPartSum: + if err := s.MessagesContentPartImage.Decode(d); err != nil { + return err + } + case MessagesContentPartToolReferenceMessagesToolResultContentPartSum: + if err := s.MessagesContentPartToolReference.Decode(d); err != nil { + return err + } + default: + return errors.Errorf("inferred invalid type: %s", s.Type) + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesToolResultContentPartSum) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesToolResultContentPartSum) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesToolUserLocation) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesToolUserLocation) encodeFields(e *jx.Encoder) { + { + if s.Type.Set { + e.FieldStart("type") + s.Type.Encode(e) + } + } + { + if s.City.Set { + e.FieldStart("city") + s.City.Encode(e) + } + } + { + if s.Region.Set { + e.FieldStart("region") + s.Region.Encode(e) + } + } + { + if s.Country.Set { + e.FieldStart("country") + s.Country.Encode(e) + } + } + { + if s.Timezone.Set { + e.FieldStart("timezone") + s.Timezone.Encode(e) + } + } +} + +var jsonFieldsNameOfMessagesToolUserLocation = [5]string{ + 0: "type", + 1: "city", + 2: "region", + 3: "country", + 4: "timezone", +} + +// Decode decodes MessagesToolUserLocation from json. +func (s *MessagesToolUserLocation) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesToolUserLocation to nil") + } + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "type": + if err := func() error { + s.Type.Reset() + if err := s.Type.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + case "city": + if err := func() error { + s.City.Reset() + if err := s.City.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"city\"") + } + case "region": + if err := func() error { + s.Region.Reset() + if err := s.Region.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"region\"") + } + case "country": + if err := func() error { + s.Country.Reset() + if err := s.Country.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"country\"") + } + case "timezone": + if err := func() error { + s.Timezone.Reset() + if err := s.Timezone.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"timezone\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesToolUserLocation") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesToolUserLocation) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesToolUserLocation) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesUsage) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesUsage) encodeFields(e *jx.Encoder) { + { + if s.InputTokens.Set { + e.FieldStart("input_tokens") + s.InputTokens.Encode(e) + } + } + { + if s.OutputTokens.Set { + e.FieldStart("output_tokens") + s.OutputTokens.Encode(e) + } + } + { + if s.CacheReadInputTokens.Set { + e.FieldStart("cache_read_input_tokens") + s.CacheReadInputTokens.Encode(e) + } + } + { + if s.ServerToolUse.Set { + e.FieldStart("server_tool_use") + s.ServerToolUse.Encode(e) + } + } + { + if s.Iterations != nil { + e.FieldStart("iterations") + e.ArrStart() + for _, elem := range s.Iterations { + elem.Encode(e) + } + e.ArrEnd() + } + } +} + +var jsonFieldsNameOfMessagesUsage = [5]string{ + 0: "input_tokens", + 1: "output_tokens", + 2: "cache_read_input_tokens", + 3: "server_tool_use", + 4: "iterations", +} + +// Decode decodes MessagesUsage from json. +func (s *MessagesUsage) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesUsage to nil") + } + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "input_tokens": + if err := func() error { + s.InputTokens.Reset() + if err := s.InputTokens.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"input_tokens\"") + } + case "output_tokens": + if err := func() error { + s.OutputTokens.Reset() + if err := s.OutputTokens.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"output_tokens\"") + } + case "cache_read_input_tokens": + if err := func() error { + s.CacheReadInputTokens.Reset() + if err := s.CacheReadInputTokens.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"cache_read_input_tokens\"") + } + case "server_tool_use": + if err := func() error { + s.ServerToolUse.Reset() + if err := s.ServerToolUse.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"server_tool_use\"") + } + case "iterations": + if err := func() error { + s.Iterations = make([]MessagesIterationUsage, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem MessagesIterationUsage + if err := elem.Decode(d); err != nil { + return err + } + s.Iterations = append(s.Iterations, elem) + return nil + }); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"iterations\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesUsage") + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesUsage) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesUsage) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesWebSearchResult) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesWebSearchResult) encodeFields(e *jx.Encoder) { + { + e.FieldStart("type") + s.Type.Encode(e) + } + { + e.FieldStart("title") + e.Str(s.Title) + } + { + e.FieldStart("url") + e.Str(s.URL) + } + { + e.FieldStart("encrypted_content") + e.Str(s.EncryptedContent) + } + { + if s.PageAge.Set { + e.FieldStart("page_age") + s.PageAge.Encode(e) + } + } +} + +var jsonFieldsNameOfMessagesWebSearchResult = [5]string{ + 0: "type", + 1: "title", + 2: "url", + 3: "encrypted_content", + 4: "page_age", +} + +// Decode decodes MessagesWebSearchResult from json. +func (s *MessagesWebSearchResult) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesWebSearchResult to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "type": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Type.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + case "title": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.Title = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"title\"") + } + case "url": + requiredBitSet[0] |= 1 << 2 + if err := func() error { + v, err := d.Str() + s.URL = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"url\"") + } + case "encrypted_content": + requiredBitSet[0] |= 1 << 3 + if err := func() error { + v, err := d.Str() + s.EncryptedContent = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"encrypted_content\"") + } + case "page_age": + if err := func() error { + s.PageAge.Reset() + if err := s.PageAge.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"page_age\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesWebSearchResult") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00001111, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesWebSearchResult) { + name = jsonFieldsNameOfMessagesWebSearchResult[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesWebSearchResult) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesWebSearchResult) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesWebSearchResultType as json. +func (s MessagesWebSearchResultType) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes MessagesWebSearchResultType from json. +func (s *MessagesWebSearchResultType) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesWebSearchResultType to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch MessagesWebSearchResultType(v) { + case MessagesWebSearchResultTypeWebSearchResult: + *s = MessagesWebSearchResultTypeWebSearchResult + default: + *s = MessagesWebSearchResultType(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesWebSearchResultType) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesWebSearchResultType) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesWebSearchToolResultContent as json. +func (s MessagesWebSearchToolResultContent) Encode(e *jx.Encoder) { + switch s.Type { + case MessagesWebSearchResultArrayMessagesWebSearchToolResultContent: + e.ArrStart() + for _, elem := range s.MessagesWebSearchResultArray { + elem.Encode(e) + } + e.ArrEnd() + case MessagesWebSearchToolResultErrorMessagesWebSearchToolResultContent: + s.MessagesWebSearchToolResultError.Encode(e) + } +} + +// Decode decodes MessagesWebSearchToolResultContent from json. +func (s *MessagesWebSearchToolResultContent) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesWebSearchToolResultContent to nil") + } + // Sum type type_discriminator. + switch t := d.Next(); t { + case jx.Array: + s.MessagesWebSearchResultArray = make([]MessagesWebSearchResult, 0) + if err := d.Arr(func(d *jx.Decoder) error { + var elem MessagesWebSearchResult + if err := elem.Decode(d); err != nil { + return err + } + s.MessagesWebSearchResultArray = append(s.MessagesWebSearchResultArray, elem) + return nil + }); err != nil { + return err + } + s.Type = MessagesWebSearchResultArrayMessagesWebSearchToolResultContent + case jx.Object: + if err := s.MessagesWebSearchToolResultError.Decode(d); err != nil { + return err + } + s.Type = MessagesWebSearchToolResultErrorMessagesWebSearchToolResultContent + default: + return errors.Errorf("unexpected json type %q", t) + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesWebSearchToolResultContent) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesWebSearchToolResultContent) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *MessagesWebSearchToolResultError) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *MessagesWebSearchToolResultError) encodeFields(e *jx.Encoder) { + { + e.FieldStart("type") + s.Type.Encode(e) + } + { + e.FieldStart("error_code") + e.Str(s.ErrorCode) + } +} + +var jsonFieldsNameOfMessagesWebSearchToolResultError = [2]string{ + 0: "type", + 1: "error_code", +} + +// Decode decodes MessagesWebSearchToolResultError from json. +func (s *MessagesWebSearchToolResultError) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesWebSearchToolResultError to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "type": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + if err := s.Type.Decode(d); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"type\"") + } + case "error_code": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.ErrorCode = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"error_code\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode MessagesWebSearchToolResultError") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfMessagesWebSearchToolResultError) { + name = jsonFieldsNameOfMessagesWebSearchToolResultError[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *MessagesWebSearchToolResultError) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesWebSearchToolResultError) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesWebSearchToolResultErrorType as json. +func (s MessagesWebSearchToolResultErrorType) Encode(e *jx.Encoder) { + e.Str(string(s)) +} + +// Decode decodes MessagesWebSearchToolResultErrorType from json. +func (s *MessagesWebSearchToolResultErrorType) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode MessagesWebSearchToolResultErrorType to nil") + } + v, err := d.StrBytes() + if err != nil { + return err + } + // Try to use constant string. + switch MessagesWebSearchToolResultErrorType(v) { + case MessagesWebSearchToolResultErrorTypeWebSearchToolResultError: + *s = MessagesWebSearchToolResultErrorTypeWebSearchToolResultError + default: + *s = MessagesWebSearchToolResultErrorType(v) + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s MessagesWebSearchToolResultErrorType) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *MessagesWebSearchToolResultErrorType) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode implements json.Marshaler. +func (s *ModelFallbackStatus) Encode(e *jx.Encoder) { + e.ObjStart() + s.encodeFields(e) + e.ObjEnd() +} + +// encodeFields encodes fields. +func (s *ModelFallbackStatus) encodeFields(e *jx.Encoder) { + { + e.FieldStart("fallback_triggered") + e.Bool(s.FallbackTriggered) + } + { + e.FieldStart("original_model") + e.Str(s.OriginalModel) + } +} + +var jsonFieldsNameOfModelFallbackStatus = [2]string{ + 0: "fallback_triggered", + 1: "original_model", +} + +// Decode decodes ModelFallbackStatus from json. +func (s *ModelFallbackStatus) Decode(d *jx.Decoder) error { + if s == nil { + return errors.New("invalid: unable to decode ModelFallbackStatus to nil") + } + var requiredBitSet [1]uint8 + + if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { + switch string(k) { + case "fallback_triggered": + requiredBitSet[0] |= 1 << 0 + if err := func() error { + v, err := d.Bool() + s.FallbackTriggered = bool(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"fallback_triggered\"") + } + case "original_model": + requiredBitSet[0] |= 1 << 1 + if err := func() error { + v, err := d.Str() + s.OriginalModel = string(v) + if err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "decode field \"original_model\"") + } + default: + return d.Skip() + } + return nil + }); err != nil { + return errors.Wrap(err, "decode ModelFallbackStatus") + } + // Validate required fields. + var failures []validate.FieldError + for i, mask := range [1]uint8{ + 0b00000011, + } { + if result := (requiredBitSet[i] & mask) ^ mask; result != 0 { + // Mask only required fields and check equality to mask using XOR. + // + // If XOR result is not zero, result is not equal to expected, so some fields are missed. + // Bits of fields which would be set are actually bits of missed fields. + missed := bits.OnesCount8(result) + for bitN := 0; bitN < missed; bitN++ { + bitIdx := bits.TrailingZeros8(result) + fieldIdx := i*8 + bitIdx + var name string + if fieldIdx < len(jsonFieldsNameOfModelFallbackStatus) { + name = jsonFieldsNameOfModelFallbackStatus[fieldIdx] + } else { + name = strconv.Itoa(fieldIdx) + } + failures = append(failures, validate.FieldError{ + Name: name, + Error: validate.ErrFieldRequired, + }) + // Reset bit. + result &^= 1 << bitIdx + } + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s *ModelFallbackStatus) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *ModelFallbackStatus) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesResponseStopReason as json. +func (o NilMessagesResponseStopReason) Encode(e *jx.Encoder) { + if o.Null { + e.Null() + return + } + e.Str(string(o.Value)) +} + +// Decode decodes MessagesResponseStopReason from json. +func (o *NilMessagesResponseStopReason) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode NilMessagesResponseStopReason to nil") + } + if d.Next() == jx.Null { + if err := d.Null(); err != nil { + return err + } + + var v MessagesResponseStopReason + o.Value = v + o.Null = true + return nil + } + o.Null = false + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s NilMessagesResponseStopReason) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *NilMessagesResponseStopReason) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesUsage as json. +func (o NilMessagesUsage) Encode(e *jx.Encoder) { + if o.Null { + e.Null() + return + } + o.Value.Encode(e) +} + +// Decode decodes MessagesUsage from json. +func (o *NilMessagesUsage) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode NilMessagesUsage to nil") + } + if d.Next() == jx.Null { + if err := d.Null(); err != nil { + return err + } + + var v MessagesUsage + o.Value = v + o.Null = true + return nil + } + o.Null = false + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s NilMessagesUsage) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *NilMessagesUsage) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes string as json. +func (o NilString) Encode(e *jx.Encoder) { + if o.Null { + e.Null() + return + } + e.Str(string(o.Value)) +} + +// Decode decodes string from json. +func (o *NilString) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode NilString to nil") + } + if d.Next() == jx.Null { + if err := d.Null(); err != nil { + return err + } + + var v string + o.Value = v + o.Null = true + return nil + } + o.Null = false + v, err := d.Str() + if err != nil { + return err + } + o.Value = string(v) + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s NilString) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *NilString) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes bool as json. +func (o OptBool) Encode(e *jx.Encoder) { + if !o.Set { + return + } + e.Bool(bool(o.Value)) +} + +// Decode decodes bool from json. +func (o *OptBool) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptBool to nil") + } + o.Set = true + v, err := d.Bool() + if err != nil { + return err + } + o.Value = bool(v) + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptBool) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptBool) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes float64 as json. +func (o OptFloat64) Encode(e *jx.Encoder) { + if !o.Set { + return + } + e.Float64(float64(o.Value)) +} + +// Decode decodes float64 from json. +func (o *OptFloat64) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptFloat64 to nil") + } + o.Set = true + v, err := d.Float64() + if err != nil { + return err + } + o.Value = float64(v) + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptFloat64) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptFloat64) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes int32 as json. +func (o OptInt32) Encode(e *jx.Encoder) { + if !o.Set { + return + } + e.Int32(int32(o.Value)) +} + +// Decode decodes int32 from json. +func (o *OptInt32) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptInt32 to nil") + } + o.Set = true + v, err := d.Int32() + if err != nil { + return err + } + o.Value = int32(v) + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptInt32) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptInt32) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesContextManagement as json. +func (o OptMessagesContextManagement) Encode(e *jx.Encoder) { + if !o.Set { + return + } + o.Value.Encode(e) +} + +// Decode decodes MessagesContextManagement from json. +func (o *OptMessagesContextManagement) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptMessagesContextManagement to nil") + } + o.Set = true + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptMessagesContextManagement) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptMessagesContextManagement) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesContextManagementClearToolUsesTrigger as json. +func (o OptMessagesContextManagementClearToolUsesTrigger) Encode(e *jx.Encoder) { + if !o.Set { + return + } + o.Value.Encode(e) +} + +// Decode decodes MessagesContextManagementClearToolUsesTrigger from json. +func (o *OptMessagesContextManagementClearToolUsesTrigger) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptMessagesContextManagementClearToolUsesTrigger to nil") + } + o.Set = true + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptMessagesContextManagementClearToolUsesTrigger) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptMessagesContextManagementClearToolUsesTrigger) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesContextManagementKeep as json. +func (o OptMessagesContextManagementKeep) Encode(e *jx.Encoder) { + if !o.Set { + return + } + o.Value.Encode(e) +} + +// Decode decodes MessagesContextManagementKeep from json. +func (o *OptMessagesContextManagementKeep) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptMessagesContextManagementKeep to nil") + } + o.Set = true + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptMessagesContextManagementKeep) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptMessagesContextManagementKeep) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesMetadata as json. +func (o OptMessagesMetadata) Encode(e *jx.Encoder) { + if !o.Set { + return + } + o.Value.Encode(e) +} + +// Decode decodes MessagesMetadata from json. +func (o *OptMessagesMetadata) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptMessagesMetadata to nil") + } + o.Set = true + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptMessagesMetadata) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptMessagesMetadata) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesOutputConfig as json. +func (o OptMessagesOutputConfig) Encode(e *jx.Encoder) { + if !o.Set { + return + } + o.Value.Encode(e) +} + +// Decode decodes MessagesOutputConfig from json. +func (o *OptMessagesOutputConfig) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptMessagesOutputConfig to nil") + } + o.Set = true + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptMessagesOutputConfig) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptMessagesOutputConfig) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesOutputFormat as json. +func (o OptMessagesOutputFormat) Encode(e *jx.Encoder) { + if !o.Set { + return + } + o.Value.Encode(e) +} + +// Decode decodes MessagesOutputFormat from json. +func (o *OptMessagesOutputFormat) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptMessagesOutputFormat to nil") + } + o.Set = true + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptMessagesOutputFormat) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptMessagesOutputFormat) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesOutputFormatSchema as json. +func (o OptMessagesOutputFormatSchema) Encode(e *jx.Encoder) { + if !o.Set { + return + } + o.Value.Encode(e) +} + +// Decode decodes MessagesOutputFormatSchema from json. +func (o *OptMessagesOutputFormatSchema) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptMessagesOutputFormatSchema to nil") + } + o.Set = true + o.Value = make(MessagesOutputFormatSchema) + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptMessagesOutputFormatSchema) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptMessagesOutputFormatSchema) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesRequestLogitBias as json. +func (o OptMessagesRequestLogitBias) Encode(e *jx.Encoder) { + if !o.Set { + return + } + o.Value.Encode(e) +} + +// Decode decodes MessagesRequestLogitBias from json. +func (o *OptMessagesRequestLogitBias) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptMessagesRequestLogitBias to nil") + } + o.Set = true + o.Value = make(MessagesRequestLogitBias) + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptMessagesRequestLogitBias) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptMessagesRequestLogitBias) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesRequestServiceTier as json. +func (o OptMessagesRequestServiceTier) Encode(e *jx.Encoder) { + if !o.Set { + return + } + e.Str(string(o.Value)) +} + +// Decode decodes MessagesRequestServiceTier from json. +func (o *OptMessagesRequestServiceTier) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptMessagesRequestServiceTier to nil") + } + o.Set = true + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptMessagesRequestServiceTier) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptMessagesRequestServiceTier) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesResponseStopReason as json. +func (o OptMessagesResponseStopReason) Encode(e *jx.Encoder) { + if !o.Set { + return + } + e.Str(string(o.Value)) +} + +// Decode decodes MessagesResponseStopReason from json. +func (o *OptMessagesResponseStopReason) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptMessagesResponseStopReason to nil") + } + o.Set = true + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptMessagesResponseStopReason) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptMessagesResponseStopReason) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesServerToolCaller as json. +func (o OptMessagesServerToolCaller) Encode(e *jx.Encoder) { + if !o.Set { + return + } + o.Value.Encode(e) +} + +// Decode decodes MessagesServerToolCaller from json. +func (o *OptMessagesServerToolCaller) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptMessagesServerToolCaller to nil") + } + o.Set = true + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptMessagesServerToolCaller) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptMessagesServerToolCaller) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesServerToolUsage as json. +func (o OptMessagesServerToolUsage) Encode(e *jx.Encoder) { + if !o.Set { + return + } + o.Value.Encode(e) +} + +// Decode decodes MessagesServerToolUsage from json. +func (o *OptMessagesServerToolUsage) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptMessagesServerToolUsage to nil") + } + o.Set = true + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptMessagesServerToolUsage) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptMessagesServerToolUsage) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesServiceStatus as json. +func (o OptMessagesServiceStatus) Encode(e *jx.Encoder) { + if !o.Set { + return + } + o.Value.Encode(e) +} + +// Decode decodes MessagesServiceStatus from json. +func (o *OptMessagesServiceStatus) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptMessagesServiceStatus to nil") + } + o.Set = true + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptMessagesServiceStatus) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptMessagesServiceStatus) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesStopSequences as json. +func (o OptMessagesStopSequences) Encode(e *jx.Encoder) { + if !o.Set { + return + } + o.Value.Encode(e) +} + +// Decode decodes MessagesStopSequences from json. +func (o *OptMessagesStopSequences) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptMessagesStopSequences to nil") + } + o.Set = true + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptMessagesStopSequences) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptMessagesStopSequences) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesStreamOptions as json. +func (o OptMessagesStreamOptions) Encode(e *jx.Encoder) { + if !o.Set { + return + } + o.Value.Encode(e) +} + +// Decode decodes MessagesStreamOptions from json. +func (o *OptMessagesStreamOptions) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptMessagesStreamOptions to nil") + } + o.Set = true + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptMessagesStreamOptions) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptMessagesStreamOptions) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesSystem as json. +func (o OptMessagesSystem) Encode(e *jx.Encoder) { + if !o.Set { + return + } + o.Value.Encode(e) +} + +// Decode decodes MessagesSystem from json. +func (o *OptMessagesSystem) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptMessagesSystem to nil") + } + o.Set = true + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptMessagesSystem) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptMessagesSystem) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesThinking as json. +func (o OptMessagesThinking) Encode(e *jx.Encoder) { + if !o.Set { + return + } + o.Value.Encode(e) +} + +// Decode decodes MessagesThinking from json. +func (o *OptMessagesThinking) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptMessagesThinking to nil") + } + o.Set = true + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptMessagesThinking) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptMessagesThinking) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesToolChoice as json. +func (o OptMessagesToolChoice) Encode(e *jx.Encoder) { + if !o.Set { + return + } + o.Value.Encode(e) +} + +// Decode decodes MessagesToolChoice from json. +func (o *OptMessagesToolChoice) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptMessagesToolChoice to nil") + } + o.Set = true + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptMessagesToolChoice) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptMessagesToolChoice) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesToolInputSchema as json. +func (o OptMessagesToolInputSchema) Encode(e *jx.Encoder) { + if !o.Set { + return + } + o.Value.Encode(e) +} + +// Decode decodes MessagesToolInputSchema from json. +func (o *OptMessagesToolInputSchema) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptMessagesToolInputSchema to nil") + } + o.Set = true + o.Value = make(MessagesToolInputSchema) + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptMessagesToolInputSchema) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptMessagesToolInputSchema) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesToolUserLocation as json. +func (o OptMessagesToolUserLocation) Encode(e *jx.Encoder) { + if !o.Set { + return + } + o.Value.Encode(e) +} + +// Decode decodes MessagesToolUserLocation from json. +func (o *OptMessagesToolUserLocation) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptMessagesToolUserLocation to nil") + } + o.Set = true + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptMessagesToolUserLocation) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptMessagesToolUserLocation) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes MessagesUsage as json. +func (o OptMessagesUsage) Encode(e *jx.Encoder) { + if !o.Set { + return + } + o.Value.Encode(e) +} + +// Decode decodes MessagesUsage from json. +func (o *OptMessagesUsage) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptMessagesUsage to nil") + } + o.Set = true + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptMessagesUsage) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptMessagesUsage) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes ModelFallbackStatus as json. +func (o OptModelFallbackStatus) Encode(e *jx.Encoder) { + if !o.Set { + return + } + o.Value.Encode(e) +} + +// Decode decodes ModelFallbackStatus from json. +func (o *OptModelFallbackStatus) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptModelFallbackStatus to nil") + } + o.Set = true + if err := o.Value.Decode(d); err != nil { + return err + } + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptModelFallbackStatus) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptModelFallbackStatus) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} + +// Encode encodes string as json. +func (o OptString) Encode(e *jx.Encoder) { + if !o.Set { + return + } + e.Str(string(o.Value)) +} + +// Decode decodes string from json. +func (o *OptString) Decode(d *jx.Decoder) error { + if o == nil { + return errors.New("invalid: unable to decode OptString to nil") + } + o.Set = true + v, err := d.Str() + if err != nil { + return err + } + o.Value = string(v) + return nil +} + +// MarshalJSON implements stdjson.Marshaler. +func (s OptString) MarshalJSON() ([]byte, error) { + e := jx.Encoder{} + s.Encode(&e) + return e.Bytes(), nil +} + +// UnmarshalJSON implements stdjson.Unmarshaler. +func (s *OptString) UnmarshalJSON(data []byte) error { + d := jx.DecodeBytes(data) + return s.Decode(d) +} diff --git a/arkruntime/model/messages/oas_schemas_gen.go b/arkruntime/model/messages/oas_schemas_gen.go index 9bf7747..6ba7af5 100644 --- a/arkruntime/model/messages/oas_schemas_gen.go +++ b/arkruntime/model/messages/oas_schemas_gen.go @@ -4,3 +4,7540 @@ // Code generated by ogen, DO NOT EDIT. package messages + +import ( + "github.com/go-faster/errors" + "github.com/go-faster/jx" +) + +// Ref: #/components/schemas/ContentBlockStart +type ContentBlockStart struct { + Type ContentBlockStartType `json:"type"` + Index int32 `json:"index"` + ContentBlock ContentBlockStartContentBlock `json:"content_block"` +} + +// GetType returns the value of Type. +func (s *ContentBlockStart) GetType() ContentBlockStartType { + return s.Type +} + +// GetIndex returns the value of Index. +func (s *ContentBlockStart) GetIndex() int32 { + return s.Index +} + +// GetContentBlock returns the value of ContentBlock. +func (s *ContentBlockStart) GetContentBlock() ContentBlockStartContentBlock { + return s.ContentBlock +} + +// SetType sets the value of Type. +func (s *ContentBlockStart) SetType(val ContentBlockStartType) { + s.Type = val +} + +// SetIndex sets the value of Index. +func (s *ContentBlockStart) SetIndex(val int32) { + s.Index = val +} + +// SetContentBlock sets the value of ContentBlock. +func (s *ContentBlockStart) SetContentBlock(val ContentBlockStartContentBlock) { + s.ContentBlock = val +} + +// Ref: #/components/schemas/ContentBlockStartContentBlock +type ContentBlockStartContentBlock struct { + OneOf ContentBlockStartContentBlockSum +} + +// GetOneOf returns the value of OneOf. +func (s *ContentBlockStartContentBlock) GetOneOf() ContentBlockStartContentBlockSum { + return s.OneOf +} + +// SetOneOf sets the value of OneOf. +func (s *ContentBlockStartContentBlock) SetOneOf(val ContentBlockStartContentBlockSum) { + s.OneOf = val +} + +// ContentBlockStartContentBlockSum represents sum type. +type ContentBlockStartContentBlockSum struct { + Type ContentBlockStartContentBlockSumType // switch on this field + MessagesResponseContentPartText MessagesResponseContentPartText + MessagesResponseContentPartThinking MessagesResponseContentPartThinking + MessagesResponseContentPartToolUse MessagesResponseContentPartToolUse + MessagesResponseContentPartServerToolUse MessagesResponseContentPartServerToolUse + MessagesResponseContentPartWebSearchToolResult MessagesResponseContentPartWebSearchToolResult +} + +// ContentBlockStartContentBlockSumType is oneOf type of ContentBlockStartContentBlockSum. +type ContentBlockStartContentBlockSumType string + +// Possible values for ContentBlockStartContentBlockSumType. +const ( + MessagesResponseContentPartTextContentBlockStartContentBlockSum ContentBlockStartContentBlockSumType = "text" + MessagesResponseContentPartThinkingContentBlockStartContentBlockSum ContentBlockStartContentBlockSumType = "thinking" + MessagesResponseContentPartToolUseContentBlockStartContentBlockSum ContentBlockStartContentBlockSumType = "tool_use" + MessagesResponseContentPartServerToolUseContentBlockStartContentBlockSum ContentBlockStartContentBlockSumType = "server_tool_use" + MessagesResponseContentPartWebSearchToolResultContentBlockStartContentBlockSum ContentBlockStartContentBlockSumType = "web_search_tool_result" +) + +// IsMessagesResponseContentPartText reports whether ContentBlockStartContentBlockSum is MessagesResponseContentPartText. +func (s ContentBlockStartContentBlockSum) IsMessagesResponseContentPartText() bool { + return s.Type == MessagesResponseContentPartTextContentBlockStartContentBlockSum +} + +// IsMessagesResponseContentPartThinking reports whether ContentBlockStartContentBlockSum is MessagesResponseContentPartThinking. +func (s ContentBlockStartContentBlockSum) IsMessagesResponseContentPartThinking() bool { + return s.Type == MessagesResponseContentPartThinkingContentBlockStartContentBlockSum +} + +// IsMessagesResponseContentPartToolUse reports whether ContentBlockStartContentBlockSum is MessagesResponseContentPartToolUse. +func (s ContentBlockStartContentBlockSum) IsMessagesResponseContentPartToolUse() bool { + return s.Type == MessagesResponseContentPartToolUseContentBlockStartContentBlockSum +} + +// IsMessagesResponseContentPartServerToolUse reports whether ContentBlockStartContentBlockSum is MessagesResponseContentPartServerToolUse. +func (s ContentBlockStartContentBlockSum) IsMessagesResponseContentPartServerToolUse() bool { + return s.Type == MessagesResponseContentPartServerToolUseContentBlockStartContentBlockSum +} + +// IsMessagesResponseContentPartWebSearchToolResult reports whether ContentBlockStartContentBlockSum is MessagesResponseContentPartWebSearchToolResult. +func (s ContentBlockStartContentBlockSum) IsMessagesResponseContentPartWebSearchToolResult() bool { + return s.Type == MessagesResponseContentPartWebSearchToolResultContentBlockStartContentBlockSum +} + +// SetMessagesResponseContentPartText sets ContentBlockStartContentBlockSum to MessagesResponseContentPartText. +func (s *ContentBlockStartContentBlockSum) SetMessagesResponseContentPartText(v MessagesResponseContentPartText) { + s.Type = MessagesResponseContentPartTextContentBlockStartContentBlockSum + s.MessagesResponseContentPartText = v +} + +// GetMessagesResponseContentPartText returns MessagesResponseContentPartText and true boolean if ContentBlockStartContentBlockSum is MessagesResponseContentPartText. +func (s ContentBlockStartContentBlockSum) GetMessagesResponseContentPartText() (v MessagesResponseContentPartText, ok bool) { + if !s.IsMessagesResponseContentPartText() { + return v, false + } + return s.MessagesResponseContentPartText, true +} + +// NewMessagesResponseContentPartTextContentBlockStartContentBlockSum returns new ContentBlockStartContentBlockSum from MessagesResponseContentPartText. +func NewMessagesResponseContentPartTextContentBlockStartContentBlockSum(v MessagesResponseContentPartText) ContentBlockStartContentBlockSum { + var s ContentBlockStartContentBlockSum + s.SetMessagesResponseContentPartText(v) + return s +} + +// SetMessagesResponseContentPartThinking sets ContentBlockStartContentBlockSum to MessagesResponseContentPartThinking. +func (s *ContentBlockStartContentBlockSum) SetMessagesResponseContentPartThinking(v MessagesResponseContentPartThinking) { + s.Type = MessagesResponseContentPartThinkingContentBlockStartContentBlockSum + s.MessagesResponseContentPartThinking = v +} + +// GetMessagesResponseContentPartThinking returns MessagesResponseContentPartThinking and true boolean if ContentBlockStartContentBlockSum is MessagesResponseContentPartThinking. +func (s ContentBlockStartContentBlockSum) GetMessagesResponseContentPartThinking() (v MessagesResponseContentPartThinking, ok bool) { + if !s.IsMessagesResponseContentPartThinking() { + return v, false + } + return s.MessagesResponseContentPartThinking, true +} + +// NewMessagesResponseContentPartThinkingContentBlockStartContentBlockSum returns new ContentBlockStartContentBlockSum from MessagesResponseContentPartThinking. +func NewMessagesResponseContentPartThinkingContentBlockStartContentBlockSum(v MessagesResponseContentPartThinking) ContentBlockStartContentBlockSum { + var s ContentBlockStartContentBlockSum + s.SetMessagesResponseContentPartThinking(v) + return s +} + +// SetMessagesResponseContentPartToolUse sets ContentBlockStartContentBlockSum to MessagesResponseContentPartToolUse. +func (s *ContentBlockStartContentBlockSum) SetMessagesResponseContentPartToolUse(v MessagesResponseContentPartToolUse) { + s.Type = MessagesResponseContentPartToolUseContentBlockStartContentBlockSum + s.MessagesResponseContentPartToolUse = v +} + +// GetMessagesResponseContentPartToolUse returns MessagesResponseContentPartToolUse and true boolean if ContentBlockStartContentBlockSum is MessagesResponseContentPartToolUse. +func (s ContentBlockStartContentBlockSum) GetMessagesResponseContentPartToolUse() (v MessagesResponseContentPartToolUse, ok bool) { + if !s.IsMessagesResponseContentPartToolUse() { + return v, false + } + return s.MessagesResponseContentPartToolUse, true +} + +// NewMessagesResponseContentPartToolUseContentBlockStartContentBlockSum returns new ContentBlockStartContentBlockSum from MessagesResponseContentPartToolUse. +func NewMessagesResponseContentPartToolUseContentBlockStartContentBlockSum(v MessagesResponseContentPartToolUse) ContentBlockStartContentBlockSum { + var s ContentBlockStartContentBlockSum + s.SetMessagesResponseContentPartToolUse(v) + return s +} + +// SetMessagesResponseContentPartServerToolUse sets ContentBlockStartContentBlockSum to MessagesResponseContentPartServerToolUse. +func (s *ContentBlockStartContentBlockSum) SetMessagesResponseContentPartServerToolUse(v MessagesResponseContentPartServerToolUse) { + s.Type = MessagesResponseContentPartServerToolUseContentBlockStartContentBlockSum + s.MessagesResponseContentPartServerToolUse = v +} + +// GetMessagesResponseContentPartServerToolUse returns MessagesResponseContentPartServerToolUse and true boolean if ContentBlockStartContentBlockSum is MessagesResponseContentPartServerToolUse. +func (s ContentBlockStartContentBlockSum) GetMessagesResponseContentPartServerToolUse() (v MessagesResponseContentPartServerToolUse, ok bool) { + if !s.IsMessagesResponseContentPartServerToolUse() { + return v, false + } + return s.MessagesResponseContentPartServerToolUse, true +} + +// NewMessagesResponseContentPartServerToolUseContentBlockStartContentBlockSum returns new ContentBlockStartContentBlockSum from MessagesResponseContentPartServerToolUse. +func NewMessagesResponseContentPartServerToolUseContentBlockStartContentBlockSum(v MessagesResponseContentPartServerToolUse) ContentBlockStartContentBlockSum { + var s ContentBlockStartContentBlockSum + s.SetMessagesResponseContentPartServerToolUse(v) + return s +} + +// SetMessagesResponseContentPartWebSearchToolResult sets ContentBlockStartContentBlockSum to MessagesResponseContentPartWebSearchToolResult. +func (s *ContentBlockStartContentBlockSum) SetMessagesResponseContentPartWebSearchToolResult(v MessagesResponseContentPartWebSearchToolResult) { + s.Type = MessagesResponseContentPartWebSearchToolResultContentBlockStartContentBlockSum + s.MessagesResponseContentPartWebSearchToolResult = v +} + +// GetMessagesResponseContentPartWebSearchToolResult returns MessagesResponseContentPartWebSearchToolResult and true boolean if ContentBlockStartContentBlockSum is MessagesResponseContentPartWebSearchToolResult. +func (s ContentBlockStartContentBlockSum) GetMessagesResponseContentPartWebSearchToolResult() (v MessagesResponseContentPartWebSearchToolResult, ok bool) { + if !s.IsMessagesResponseContentPartWebSearchToolResult() { + return v, false + } + return s.MessagesResponseContentPartWebSearchToolResult, true +} + +// NewMessagesResponseContentPartWebSearchToolResultContentBlockStartContentBlockSum returns new ContentBlockStartContentBlockSum from MessagesResponseContentPartWebSearchToolResult. +func NewMessagesResponseContentPartWebSearchToolResultContentBlockStartContentBlockSum(v MessagesResponseContentPartWebSearchToolResult) ContentBlockStartContentBlockSum { + var s ContentBlockStartContentBlockSum + s.SetMessagesResponseContentPartWebSearchToolResult(v) + return s +} + +type ContentBlockStartType string + +const ( + ContentBlockStartTypeContentBlockStart ContentBlockStartType = "content_block_start" +) + +// AllValues returns all ContentBlockStartType values. +func (ContentBlockStartType) AllValues() []ContentBlockStartType { + return []ContentBlockStartType{ + ContentBlockStartTypeContentBlockStart, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s ContentBlockStartType) MarshalText() ([]byte, error) { + switch s { + case ContentBlockStartTypeContentBlockStart: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *ContentBlockStartType) UnmarshalText(data []byte) error { + switch ContentBlockStartType(data) { + case ContentBlockStartTypeContentBlockStart: + *s = ContentBlockStartTypeContentBlockStart + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Token count for a Messages request. +// Ref: #/components/schemas/CountTokensResponse +type CountTokensResponse struct { + InputTokens int32 `json:"input_tokens"` +} + +// GetInputTokens returns the value of InputTokens. +func (s *CountTokensResponse) GetInputTokens() int32 { + return s.InputTokens +} + +// SetInputTokens sets the value of InputTokens. +func (s *CountTokensResponse) SetInputTokens(val int32) { + s.InputTokens = val +} + +// Ref: #/components/schemas/Error +type Error struct { + // A machine-readable error code. + Code string `json:"code"` + // A human-readable description of the error. + Message string `json:"message"` + // The parameter that caused the error, if applicable. + Param string `json:"param"` + // The error type. + Type string `json:"type"` +} + +// GetCode returns the value of Code. +func (s *Error) GetCode() string { + return s.Code +} + +// GetMessage returns the value of Message. +func (s *Error) GetMessage() string { + return s.Message +} + +// GetParam returns the value of Param. +func (s *Error) GetParam() string { + return s.Param +} + +// GetType returns the value of Type. +func (s *Error) GetType() string { + return s.Type +} + +// SetCode sets the value of Code. +func (s *Error) SetCode(val string) { + s.Code = val +} + +// SetMessage sets the value of Message. +func (s *Error) SetMessage(val string) { + s.Message = val +} + +// SetParam sets the value of Param. +func (s *Error) SetParam(val string) { + s.Param = val +} + +// SetType sets the value of Type. +func (s *Error) SetType(val string) { + s.Type = val +} + +// Ref: #/components/schemas/MessagesContentPart +type MessagesContentPart struct { + OneOf MessagesContentPartSum +} + +// GetOneOf returns the value of OneOf. +func (s *MessagesContentPart) GetOneOf() MessagesContentPartSum { + return s.OneOf +} + +// SetOneOf sets the value of OneOf. +func (s *MessagesContentPart) SetOneOf(val MessagesContentPartSum) { + s.OneOf = val +} + +// Ref: #/components/schemas/MessagesContentPartDocument +type MessagesContentPartDocument struct { + // The type of the content part. Always `document`. + Type MessagesContentPartDocumentType `json:"type"` + Source MessagesContentPartDocumentSource `json:"source"` +} + +// GetType returns the value of Type. +func (s *MessagesContentPartDocument) GetType() MessagesContentPartDocumentType { + return s.Type +} + +// GetSource returns the value of Source. +func (s *MessagesContentPartDocument) GetSource() MessagesContentPartDocumentSource { + return s.Source +} + +// SetType sets the value of Type. +func (s *MessagesContentPartDocument) SetType(val MessagesContentPartDocumentType) { + s.Type = val +} + +// SetSource sets the value of Source. +func (s *MessagesContentPartDocument) SetSource(val MessagesContentPartDocumentSource) { + s.Source = val +} + +// Ref: #/components/schemas/MessagesContentPartDocumentSource +type MessagesContentPartDocumentSource struct { + // How the document is supplied. + Type MessagesDocumentSourceType `json:"type"` + // A URL of the document when `type` is `url`. + URL OptString `json:"url"` + // Document data for `base64` and `text` sources. + Data OptString `json:"data"` + // Inline document content when `type` is `content`. + Content *MessagesMessageContent `json:"content"` +} + +// GetType returns the value of Type. +func (s *MessagesContentPartDocumentSource) GetType() MessagesDocumentSourceType { + return s.Type +} + +// GetURL returns the value of URL. +func (s *MessagesContentPartDocumentSource) GetURL() OptString { + return s.URL +} + +// GetData returns the value of Data. +func (s *MessagesContentPartDocumentSource) GetData() OptString { + return s.Data +} + +// GetContent returns the value of Content. +func (s *MessagesContentPartDocumentSource) GetContent() *MessagesMessageContent { + return s.Content +} + +// SetType sets the value of Type. +func (s *MessagesContentPartDocumentSource) SetType(val MessagesDocumentSourceType) { + s.Type = val +} + +// SetURL sets the value of URL. +func (s *MessagesContentPartDocumentSource) SetURL(val OptString) { + s.URL = val +} + +// SetData sets the value of Data. +func (s *MessagesContentPartDocumentSource) SetData(val OptString) { + s.Data = val +} + +// SetContent sets the value of Content. +func (s *MessagesContentPartDocumentSource) SetContent(val *MessagesMessageContent) { + s.Content = val +} + +// The type of the content part. Always `document`. +type MessagesContentPartDocumentType string + +const ( + MessagesContentPartDocumentTypeDocument MessagesContentPartDocumentType = "document" +) + +// AllValues returns all MessagesContentPartDocumentType values. +func (MessagesContentPartDocumentType) AllValues() []MessagesContentPartDocumentType { + return []MessagesContentPartDocumentType{ + MessagesContentPartDocumentTypeDocument, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s MessagesContentPartDocumentType) MarshalText() ([]byte, error) { + switch s { + case MessagesContentPartDocumentTypeDocument: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *MessagesContentPartDocumentType) UnmarshalText(data []byte) error { + switch MessagesContentPartDocumentType(data) { + case MessagesContentPartDocumentTypeDocument: + *s = MessagesContentPartDocumentTypeDocument + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/MessagesContentPartImage +type MessagesContentPartImage struct { + // The type of the content part. Always `image`. + Type MessagesContentPartImageType `json:"type"` + Source MessagesContentPartImageSource `json:"source"` +} + +// GetType returns the value of Type. +func (s *MessagesContentPartImage) GetType() MessagesContentPartImageType { + return s.Type +} + +// GetSource returns the value of Source. +func (s *MessagesContentPartImage) GetSource() MessagesContentPartImageSource { + return s.Source +} + +// SetType sets the value of Type. +func (s *MessagesContentPartImage) SetType(val MessagesContentPartImageType) { + s.Type = val +} + +// SetSource sets the value of Source. +func (s *MessagesContentPartImage) SetSource(val MessagesContentPartImageSource) { + s.Source = val +} + +// Ref: #/components/schemas/MessagesContentPartImageSource +type MessagesContentPartImageSource struct { + // How the image is supplied. + Type MessagesImageSourceType `json:"type"` + // A URL of the image when `type` is `url`. + URL OptString `json:"url"` + // The media type of base64-encoded image data. + MediaType OptString `json:"media_type"` + // Base64-encoded image data when `type` is `base64`. + Data OptString `json:"data"` + // The blob id of an image uploaded out-of-band. + FileID OptString `json:"file_id"` + // Whether this image was extracted from a document or video. + IsFrame OptBool `json:"is_frame"` +} + +// GetType returns the value of Type. +func (s *MessagesContentPartImageSource) GetType() MessagesImageSourceType { + return s.Type +} + +// GetURL returns the value of URL. +func (s *MessagesContentPartImageSource) GetURL() OptString { + return s.URL +} + +// GetMediaType returns the value of MediaType. +func (s *MessagesContentPartImageSource) GetMediaType() OptString { + return s.MediaType +} + +// GetData returns the value of Data. +func (s *MessagesContentPartImageSource) GetData() OptString { + return s.Data +} + +// GetFileID returns the value of FileID. +func (s *MessagesContentPartImageSource) GetFileID() OptString { + return s.FileID +} + +// GetIsFrame returns the value of IsFrame. +func (s *MessagesContentPartImageSource) GetIsFrame() OptBool { + return s.IsFrame +} + +// SetType sets the value of Type. +func (s *MessagesContentPartImageSource) SetType(val MessagesImageSourceType) { + s.Type = val +} + +// SetURL sets the value of URL. +func (s *MessagesContentPartImageSource) SetURL(val OptString) { + s.URL = val +} + +// SetMediaType sets the value of MediaType. +func (s *MessagesContentPartImageSource) SetMediaType(val OptString) { + s.MediaType = val +} + +// SetData sets the value of Data. +func (s *MessagesContentPartImageSource) SetData(val OptString) { + s.Data = val +} + +// SetFileID sets the value of FileID. +func (s *MessagesContentPartImageSource) SetFileID(val OptString) { + s.FileID = val +} + +// SetIsFrame sets the value of IsFrame. +func (s *MessagesContentPartImageSource) SetIsFrame(val OptBool) { + s.IsFrame = val +} + +// The type of the content part. Always `image`. +type MessagesContentPartImageType string + +const ( + MessagesContentPartImageTypeImage MessagesContentPartImageType = "image" +) + +// AllValues returns all MessagesContentPartImageType values. +func (MessagesContentPartImageType) AllValues() []MessagesContentPartImageType { + return []MessagesContentPartImageType{ + MessagesContentPartImageTypeImage, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s MessagesContentPartImageType) MarshalText() ([]byte, error) { + switch s { + case MessagesContentPartImageTypeImage: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *MessagesContentPartImageType) UnmarshalText(data []byte) error { + switch MessagesContentPartImageType(data) { + case MessagesContentPartImageTypeImage: + *s = MessagesContentPartImageTypeImage + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/MessagesContentPartServerToolUse +type MessagesContentPartServerToolUse struct { + // The type of the content part. Always `server_tool_use`. + Type MessagesContentPartServerToolUseType `json:"type"` + // The public id of the server-managed tool invocation. + ID string `json:"id"` + // The name of the invoked server-managed tool. + Name string `json:"name"` + // The input generated for the tool. + Input MessagesContentPartServerToolUseInput `json:"input"` +} + +// GetType returns the value of Type. +func (s *MessagesContentPartServerToolUse) GetType() MessagesContentPartServerToolUseType { + return s.Type +} + +// GetID returns the value of ID. +func (s *MessagesContentPartServerToolUse) GetID() string { + return s.ID +} + +// GetName returns the value of Name. +func (s *MessagesContentPartServerToolUse) GetName() string { + return s.Name +} + +// GetInput returns the value of Input. +func (s *MessagesContentPartServerToolUse) GetInput() MessagesContentPartServerToolUseInput { + return s.Input +} + +// SetType sets the value of Type. +func (s *MessagesContentPartServerToolUse) SetType(val MessagesContentPartServerToolUseType) { + s.Type = val +} + +// SetID sets the value of ID. +func (s *MessagesContentPartServerToolUse) SetID(val string) { + s.ID = val +} + +// SetName sets the value of Name. +func (s *MessagesContentPartServerToolUse) SetName(val string) { + s.Name = val +} + +// SetInput sets the value of Input. +func (s *MessagesContentPartServerToolUse) SetInput(val MessagesContentPartServerToolUseInput) { + s.Input = val +} + +// The input generated for the tool. +type MessagesContentPartServerToolUseInput map[string]jx.Raw + +func (s *MessagesContentPartServerToolUseInput) init() MessagesContentPartServerToolUseInput { + m := *s + if m == nil { + m = map[string]jx.Raw{} + *s = m + } + return m +} + +// The type of the content part. Always `server_tool_use`. +type MessagesContentPartServerToolUseType string + +const ( + MessagesContentPartServerToolUseTypeServerToolUse MessagesContentPartServerToolUseType = "server_tool_use" +) + +// AllValues returns all MessagesContentPartServerToolUseType values. +func (MessagesContentPartServerToolUseType) AllValues() []MessagesContentPartServerToolUseType { + return []MessagesContentPartServerToolUseType{ + MessagesContentPartServerToolUseTypeServerToolUse, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s MessagesContentPartServerToolUseType) MarshalText() ([]byte, error) { + switch s { + case MessagesContentPartServerToolUseTypeServerToolUse: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *MessagesContentPartServerToolUseType) UnmarshalText(data []byte) error { + switch MessagesContentPartServerToolUseType(data) { + case MessagesContentPartServerToolUseTypeServerToolUse: + *s = MessagesContentPartServerToolUseTypeServerToolUse + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// MessagesContentPartSum represents sum type. +type MessagesContentPartSum struct { + Type MessagesContentPartSumType // switch on this field + MessagesContentPartText MessagesContentPartText + MessagesContentPartThinking MessagesContentPartThinking + MessagesContentPartImage MessagesContentPartImage + MessagesContentPartDocument MessagesContentPartDocument + MessagesContentPartToolUse MessagesContentPartToolUse + MessagesContentPartToolResult MessagesContentPartToolResult + MessagesContentPartServerToolUse MessagesContentPartServerToolUse + MessagesContentPartWebSearchToolResult MessagesContentPartWebSearchToolResult +} + +// MessagesContentPartSumType is oneOf type of MessagesContentPartSum. +type MessagesContentPartSumType string + +// Possible values for MessagesContentPartSumType. +const ( + MessagesContentPartTextMessagesContentPartSum MessagesContentPartSumType = "text" + MessagesContentPartThinkingMessagesContentPartSum MessagesContentPartSumType = "thinking" + MessagesContentPartImageMessagesContentPartSum MessagesContentPartSumType = "image" + MessagesContentPartDocumentMessagesContentPartSum MessagesContentPartSumType = "document" + MessagesContentPartToolUseMessagesContentPartSum MessagesContentPartSumType = "tool_use" + MessagesContentPartToolResultMessagesContentPartSum MessagesContentPartSumType = "tool_result" + MessagesContentPartServerToolUseMessagesContentPartSum MessagesContentPartSumType = "server_tool_use" + MessagesContentPartWebSearchToolResultMessagesContentPartSum MessagesContentPartSumType = "web_search_tool_result" +) + +// IsMessagesContentPartText reports whether MessagesContentPartSum is MessagesContentPartText. +func (s MessagesContentPartSum) IsMessagesContentPartText() bool { + return s.Type == MessagesContentPartTextMessagesContentPartSum +} + +// IsMessagesContentPartThinking reports whether MessagesContentPartSum is MessagesContentPartThinking. +func (s MessagesContentPartSum) IsMessagesContentPartThinking() bool { + return s.Type == MessagesContentPartThinkingMessagesContentPartSum +} + +// IsMessagesContentPartImage reports whether MessagesContentPartSum is MessagesContentPartImage. +func (s MessagesContentPartSum) IsMessagesContentPartImage() bool { + return s.Type == MessagesContentPartImageMessagesContentPartSum +} + +// IsMessagesContentPartDocument reports whether MessagesContentPartSum is MessagesContentPartDocument. +func (s MessagesContentPartSum) IsMessagesContentPartDocument() bool { + return s.Type == MessagesContentPartDocumentMessagesContentPartSum +} + +// IsMessagesContentPartToolUse reports whether MessagesContentPartSum is MessagesContentPartToolUse. +func (s MessagesContentPartSum) IsMessagesContentPartToolUse() bool { + return s.Type == MessagesContentPartToolUseMessagesContentPartSum +} + +// IsMessagesContentPartToolResult reports whether MessagesContentPartSum is MessagesContentPartToolResult. +func (s MessagesContentPartSum) IsMessagesContentPartToolResult() bool { + return s.Type == MessagesContentPartToolResultMessagesContentPartSum +} + +// IsMessagesContentPartServerToolUse reports whether MessagesContentPartSum is MessagesContentPartServerToolUse. +func (s MessagesContentPartSum) IsMessagesContentPartServerToolUse() bool { + return s.Type == MessagesContentPartServerToolUseMessagesContentPartSum +} + +// IsMessagesContentPartWebSearchToolResult reports whether MessagesContentPartSum is MessagesContentPartWebSearchToolResult. +func (s MessagesContentPartSum) IsMessagesContentPartWebSearchToolResult() bool { + return s.Type == MessagesContentPartWebSearchToolResultMessagesContentPartSum +} + +// SetMessagesContentPartText sets MessagesContentPartSum to MessagesContentPartText. +func (s *MessagesContentPartSum) SetMessagesContentPartText(v MessagesContentPartText) { + s.Type = MessagesContentPartTextMessagesContentPartSum + s.MessagesContentPartText = v +} + +// GetMessagesContentPartText returns MessagesContentPartText and true boolean if MessagesContentPartSum is MessagesContentPartText. +func (s MessagesContentPartSum) GetMessagesContentPartText() (v MessagesContentPartText, ok bool) { + if !s.IsMessagesContentPartText() { + return v, false + } + return s.MessagesContentPartText, true +} + +// NewMessagesContentPartTextMessagesContentPartSum returns new MessagesContentPartSum from MessagesContentPartText. +func NewMessagesContentPartTextMessagesContentPartSum(v MessagesContentPartText) MessagesContentPartSum { + var s MessagesContentPartSum + s.SetMessagesContentPartText(v) + return s +} + +// SetMessagesContentPartThinking sets MessagesContentPartSum to MessagesContentPartThinking. +func (s *MessagesContentPartSum) SetMessagesContentPartThinking(v MessagesContentPartThinking) { + s.Type = MessagesContentPartThinkingMessagesContentPartSum + s.MessagesContentPartThinking = v +} + +// GetMessagesContentPartThinking returns MessagesContentPartThinking and true boolean if MessagesContentPartSum is MessagesContentPartThinking. +func (s MessagesContentPartSum) GetMessagesContentPartThinking() (v MessagesContentPartThinking, ok bool) { + if !s.IsMessagesContentPartThinking() { + return v, false + } + return s.MessagesContentPartThinking, true +} + +// NewMessagesContentPartThinkingMessagesContentPartSum returns new MessagesContentPartSum from MessagesContentPartThinking. +func NewMessagesContentPartThinkingMessagesContentPartSum(v MessagesContentPartThinking) MessagesContentPartSum { + var s MessagesContentPartSum + s.SetMessagesContentPartThinking(v) + return s +} + +// SetMessagesContentPartImage sets MessagesContentPartSum to MessagesContentPartImage. +func (s *MessagesContentPartSum) SetMessagesContentPartImage(v MessagesContentPartImage) { + s.Type = MessagesContentPartImageMessagesContentPartSum + s.MessagesContentPartImage = v +} + +// GetMessagesContentPartImage returns MessagesContentPartImage and true boolean if MessagesContentPartSum is MessagesContentPartImage. +func (s MessagesContentPartSum) GetMessagesContentPartImage() (v MessagesContentPartImage, ok bool) { + if !s.IsMessagesContentPartImage() { + return v, false + } + return s.MessagesContentPartImage, true +} + +// NewMessagesContentPartImageMessagesContentPartSum returns new MessagesContentPartSum from MessagesContentPartImage. +func NewMessagesContentPartImageMessagesContentPartSum(v MessagesContentPartImage) MessagesContentPartSum { + var s MessagesContentPartSum + s.SetMessagesContentPartImage(v) + return s +} + +// SetMessagesContentPartDocument sets MessagesContentPartSum to MessagesContentPartDocument. +func (s *MessagesContentPartSum) SetMessagesContentPartDocument(v MessagesContentPartDocument) { + s.Type = MessagesContentPartDocumentMessagesContentPartSum + s.MessagesContentPartDocument = v +} + +// GetMessagesContentPartDocument returns MessagesContentPartDocument and true boolean if MessagesContentPartSum is MessagesContentPartDocument. +func (s MessagesContentPartSum) GetMessagesContentPartDocument() (v MessagesContentPartDocument, ok bool) { + if !s.IsMessagesContentPartDocument() { + return v, false + } + return s.MessagesContentPartDocument, true +} + +// NewMessagesContentPartDocumentMessagesContentPartSum returns new MessagesContentPartSum from MessagesContentPartDocument. +func NewMessagesContentPartDocumentMessagesContentPartSum(v MessagesContentPartDocument) MessagesContentPartSum { + var s MessagesContentPartSum + s.SetMessagesContentPartDocument(v) + return s +} + +// SetMessagesContentPartToolUse sets MessagesContentPartSum to MessagesContentPartToolUse. +func (s *MessagesContentPartSum) SetMessagesContentPartToolUse(v MessagesContentPartToolUse) { + s.Type = MessagesContentPartToolUseMessagesContentPartSum + s.MessagesContentPartToolUse = v +} + +// GetMessagesContentPartToolUse returns MessagesContentPartToolUse and true boolean if MessagesContentPartSum is MessagesContentPartToolUse. +func (s MessagesContentPartSum) GetMessagesContentPartToolUse() (v MessagesContentPartToolUse, ok bool) { + if !s.IsMessagesContentPartToolUse() { + return v, false + } + return s.MessagesContentPartToolUse, true +} + +// NewMessagesContentPartToolUseMessagesContentPartSum returns new MessagesContentPartSum from MessagesContentPartToolUse. +func NewMessagesContentPartToolUseMessagesContentPartSum(v MessagesContentPartToolUse) MessagesContentPartSum { + var s MessagesContentPartSum + s.SetMessagesContentPartToolUse(v) + return s +} + +// SetMessagesContentPartToolResult sets MessagesContentPartSum to MessagesContentPartToolResult. +func (s *MessagesContentPartSum) SetMessagesContentPartToolResult(v MessagesContentPartToolResult) { + s.Type = MessagesContentPartToolResultMessagesContentPartSum + s.MessagesContentPartToolResult = v +} + +// GetMessagesContentPartToolResult returns MessagesContentPartToolResult and true boolean if MessagesContentPartSum is MessagesContentPartToolResult. +func (s MessagesContentPartSum) GetMessagesContentPartToolResult() (v MessagesContentPartToolResult, ok bool) { + if !s.IsMessagesContentPartToolResult() { + return v, false + } + return s.MessagesContentPartToolResult, true +} + +// NewMessagesContentPartToolResultMessagesContentPartSum returns new MessagesContentPartSum from MessagesContentPartToolResult. +func NewMessagesContentPartToolResultMessagesContentPartSum(v MessagesContentPartToolResult) MessagesContentPartSum { + var s MessagesContentPartSum + s.SetMessagesContentPartToolResult(v) + return s +} + +// SetMessagesContentPartServerToolUse sets MessagesContentPartSum to MessagesContentPartServerToolUse. +func (s *MessagesContentPartSum) SetMessagesContentPartServerToolUse(v MessagesContentPartServerToolUse) { + s.Type = MessagesContentPartServerToolUseMessagesContentPartSum + s.MessagesContentPartServerToolUse = v +} + +// GetMessagesContentPartServerToolUse returns MessagesContentPartServerToolUse and true boolean if MessagesContentPartSum is MessagesContentPartServerToolUse. +func (s MessagesContentPartSum) GetMessagesContentPartServerToolUse() (v MessagesContentPartServerToolUse, ok bool) { + if !s.IsMessagesContentPartServerToolUse() { + return v, false + } + return s.MessagesContentPartServerToolUse, true +} + +// NewMessagesContentPartServerToolUseMessagesContentPartSum returns new MessagesContentPartSum from MessagesContentPartServerToolUse. +func NewMessagesContentPartServerToolUseMessagesContentPartSum(v MessagesContentPartServerToolUse) MessagesContentPartSum { + var s MessagesContentPartSum + s.SetMessagesContentPartServerToolUse(v) + return s +} + +// SetMessagesContentPartWebSearchToolResult sets MessagesContentPartSum to MessagesContentPartWebSearchToolResult. +func (s *MessagesContentPartSum) SetMessagesContentPartWebSearchToolResult(v MessagesContentPartWebSearchToolResult) { + s.Type = MessagesContentPartWebSearchToolResultMessagesContentPartSum + s.MessagesContentPartWebSearchToolResult = v +} + +// GetMessagesContentPartWebSearchToolResult returns MessagesContentPartWebSearchToolResult and true boolean if MessagesContentPartSum is MessagesContentPartWebSearchToolResult. +func (s MessagesContentPartSum) GetMessagesContentPartWebSearchToolResult() (v MessagesContentPartWebSearchToolResult, ok bool) { + if !s.IsMessagesContentPartWebSearchToolResult() { + return v, false + } + return s.MessagesContentPartWebSearchToolResult, true +} + +// NewMessagesContentPartWebSearchToolResultMessagesContentPartSum returns new MessagesContentPartSum from MessagesContentPartWebSearchToolResult. +func NewMessagesContentPartWebSearchToolResultMessagesContentPartSum(v MessagesContentPartWebSearchToolResult) MessagesContentPartSum { + var s MessagesContentPartSum + s.SetMessagesContentPartWebSearchToolResult(v) + return s +} + +// Ref: #/components/schemas/MessagesContentPartText +type MessagesContentPartText struct { + // The type of the content part. Always `text`. + Type MessagesContentPartTextType `json:"type"` + // The text content. + Text string `json:"text"` +} + +// GetType returns the value of Type. +func (s *MessagesContentPartText) GetType() MessagesContentPartTextType { + return s.Type +} + +// GetText returns the value of Text. +func (s *MessagesContentPartText) GetText() string { + return s.Text +} + +// SetType sets the value of Type. +func (s *MessagesContentPartText) SetType(val MessagesContentPartTextType) { + s.Type = val +} + +// SetText sets the value of Text. +func (s *MessagesContentPartText) SetText(val string) { + s.Text = val +} + +// The type of the content part. Always `text`. +type MessagesContentPartTextType string + +const ( + MessagesContentPartTextTypeText MessagesContentPartTextType = "text" +) + +// AllValues returns all MessagesContentPartTextType values. +func (MessagesContentPartTextType) AllValues() []MessagesContentPartTextType { + return []MessagesContentPartTextType{ + MessagesContentPartTextTypeText, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s MessagesContentPartTextType) MarshalText() ([]byte, error) { + switch s { + case MessagesContentPartTextTypeText: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *MessagesContentPartTextType) UnmarshalText(data []byte) error { + switch MessagesContentPartTextType(data) { + case MessagesContentPartTextTypeText: + *s = MessagesContentPartTextTypeText + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/MessagesContentPartThinking +type MessagesContentPartThinking struct { + // The type of the content part. Always `thinking`. + Type MessagesContentPartThinkingType `json:"type"` + // The model's thinking content. + Thinking OptString `json:"thinking"` + // An opaque signature used to replay thinking content. + Signature OptString `json:"signature"` +} + +// GetType returns the value of Type. +func (s *MessagesContentPartThinking) GetType() MessagesContentPartThinkingType { + return s.Type +} + +// GetThinking returns the value of Thinking. +func (s *MessagesContentPartThinking) GetThinking() OptString { + return s.Thinking +} + +// GetSignature returns the value of Signature. +func (s *MessagesContentPartThinking) GetSignature() OptString { + return s.Signature +} + +// SetType sets the value of Type. +func (s *MessagesContentPartThinking) SetType(val MessagesContentPartThinkingType) { + s.Type = val +} + +// SetThinking sets the value of Thinking. +func (s *MessagesContentPartThinking) SetThinking(val OptString) { + s.Thinking = val +} + +// SetSignature sets the value of Signature. +func (s *MessagesContentPartThinking) SetSignature(val OptString) { + s.Signature = val +} + +// The type of the content part. Always `thinking`. +type MessagesContentPartThinkingType string + +const ( + MessagesContentPartThinkingTypeThinking MessagesContentPartThinkingType = "thinking" +) + +// AllValues returns all MessagesContentPartThinkingType values. +func (MessagesContentPartThinkingType) AllValues() []MessagesContentPartThinkingType { + return []MessagesContentPartThinkingType{ + MessagesContentPartThinkingTypeThinking, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s MessagesContentPartThinkingType) MarshalText() ([]byte, error) { + switch s { + case MessagesContentPartThinkingTypeThinking: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *MessagesContentPartThinkingType) UnmarshalText(data []byte) error { + switch MessagesContentPartThinkingType(data) { + case MessagesContentPartThinkingTypeThinking: + *s = MessagesContentPartThinkingTypeThinking + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/MessagesContentPartToolReference +type MessagesContentPartToolReference struct { + // The type of the content part. Always `tool_reference`. + Type MessagesContentPartToolReferenceType `json:"type"` + // The referenced tool name. + ToolName string `json:"tool_name"` +} + +// GetType returns the value of Type. +func (s *MessagesContentPartToolReference) GetType() MessagesContentPartToolReferenceType { + return s.Type +} + +// GetToolName returns the value of ToolName. +func (s *MessagesContentPartToolReference) GetToolName() string { + return s.ToolName +} + +// SetType sets the value of Type. +func (s *MessagesContentPartToolReference) SetType(val MessagesContentPartToolReferenceType) { + s.Type = val +} + +// SetToolName sets the value of ToolName. +func (s *MessagesContentPartToolReference) SetToolName(val string) { + s.ToolName = val +} + +// The type of the content part. Always `tool_reference`. +type MessagesContentPartToolReferenceType string + +const ( + MessagesContentPartToolReferenceTypeToolReference MessagesContentPartToolReferenceType = "tool_reference" +) + +// AllValues returns all MessagesContentPartToolReferenceType values. +func (MessagesContentPartToolReferenceType) AllValues() []MessagesContentPartToolReferenceType { + return []MessagesContentPartToolReferenceType{ + MessagesContentPartToolReferenceTypeToolReference, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s MessagesContentPartToolReferenceType) MarshalText() ([]byte, error) { + switch s { + case MessagesContentPartToolReferenceTypeToolReference: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *MessagesContentPartToolReferenceType) UnmarshalText(data []byte) error { + switch MessagesContentPartToolReferenceType(data) { + case MessagesContentPartToolReferenceTypeToolReference: + *s = MessagesContentPartToolReferenceTypeToolReference + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/MessagesContentPartToolResult +type MessagesContentPartToolResult struct { + // The type of the content part. Always `tool_result`. + Type MessagesContentPartToolResultType `json:"type"` + // The tool invocation this result answers. + ToolUseID string `json:"tool_use_id"` + // The content returned by the tool. + Content MessagesToolResultContent `json:"content"` + // Whether the tool execution failed. + IsError OptBool `json:"is_error"` +} + +// GetType returns the value of Type. +func (s *MessagesContentPartToolResult) GetType() MessagesContentPartToolResultType { + return s.Type +} + +// GetToolUseID returns the value of ToolUseID. +func (s *MessagesContentPartToolResult) GetToolUseID() string { + return s.ToolUseID +} + +// GetContent returns the value of Content. +func (s *MessagesContentPartToolResult) GetContent() MessagesToolResultContent { + return s.Content +} + +// GetIsError returns the value of IsError. +func (s *MessagesContentPartToolResult) GetIsError() OptBool { + return s.IsError +} + +// SetType sets the value of Type. +func (s *MessagesContentPartToolResult) SetType(val MessagesContentPartToolResultType) { + s.Type = val +} + +// SetToolUseID sets the value of ToolUseID. +func (s *MessagesContentPartToolResult) SetToolUseID(val string) { + s.ToolUseID = val +} + +// SetContent sets the value of Content. +func (s *MessagesContentPartToolResult) SetContent(val MessagesToolResultContent) { + s.Content = val +} + +// SetIsError sets the value of IsError. +func (s *MessagesContentPartToolResult) SetIsError(val OptBool) { + s.IsError = val +} + +// The type of the content part. Always `tool_result`. +type MessagesContentPartToolResultType string + +const ( + MessagesContentPartToolResultTypeToolResult MessagesContentPartToolResultType = "tool_result" +) + +// AllValues returns all MessagesContentPartToolResultType values. +func (MessagesContentPartToolResultType) AllValues() []MessagesContentPartToolResultType { + return []MessagesContentPartToolResultType{ + MessagesContentPartToolResultTypeToolResult, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s MessagesContentPartToolResultType) MarshalText() ([]byte, error) { + switch s { + case MessagesContentPartToolResultTypeToolResult: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *MessagesContentPartToolResultType) UnmarshalText(data []byte) error { + switch MessagesContentPartToolResultType(data) { + case MessagesContentPartToolResultTypeToolResult: + *s = MessagesContentPartToolResultTypeToolResult + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/MessagesContentPartToolUse +type MessagesContentPartToolUse struct { + // The type of the content part. Always `tool_use`. + Type MessagesContentPartToolUseType `json:"type"` + // The id of the tool invocation. + ID string `json:"id"` + // The name of the invoked tool. + Name string `json:"name"` + // The input generated for the tool. + Input MessagesContentPartToolUseInput `json:"input"` +} + +// GetType returns the value of Type. +func (s *MessagesContentPartToolUse) GetType() MessagesContentPartToolUseType { + return s.Type +} + +// GetID returns the value of ID. +func (s *MessagesContentPartToolUse) GetID() string { + return s.ID +} + +// GetName returns the value of Name. +func (s *MessagesContentPartToolUse) GetName() string { + return s.Name +} + +// GetInput returns the value of Input. +func (s *MessagesContentPartToolUse) GetInput() MessagesContentPartToolUseInput { + return s.Input +} + +// SetType sets the value of Type. +func (s *MessagesContentPartToolUse) SetType(val MessagesContentPartToolUseType) { + s.Type = val +} + +// SetID sets the value of ID. +func (s *MessagesContentPartToolUse) SetID(val string) { + s.ID = val +} + +// SetName sets the value of Name. +func (s *MessagesContentPartToolUse) SetName(val string) { + s.Name = val +} + +// SetInput sets the value of Input. +func (s *MessagesContentPartToolUse) SetInput(val MessagesContentPartToolUseInput) { + s.Input = val +} + +// The input generated for the tool. +type MessagesContentPartToolUseInput map[string]jx.Raw + +func (s *MessagesContentPartToolUseInput) init() MessagesContentPartToolUseInput { + m := *s + if m == nil { + m = map[string]jx.Raw{} + *s = m + } + return m +} + +// The type of the content part. Always `tool_use`. +type MessagesContentPartToolUseType string + +const ( + MessagesContentPartToolUseTypeToolUse MessagesContentPartToolUseType = "tool_use" +) + +// AllValues returns all MessagesContentPartToolUseType values. +func (MessagesContentPartToolUseType) AllValues() []MessagesContentPartToolUseType { + return []MessagesContentPartToolUseType{ + MessagesContentPartToolUseTypeToolUse, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s MessagesContentPartToolUseType) MarshalText() ([]byte, error) { + switch s { + case MessagesContentPartToolUseTypeToolUse: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *MessagesContentPartToolUseType) UnmarshalText(data []byte) error { + switch MessagesContentPartToolUseType(data) { + case MessagesContentPartToolUseTypeToolUse: + *s = MessagesContentPartToolUseTypeToolUse + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/MessagesContentPartWebSearchToolResult +type MessagesContentPartWebSearchToolResult struct { + // The type of the content part. Always `web_search_tool_result`. + Type MessagesContentPartWebSearchToolResultType `json:"type"` + // The server-tool invocation this result answers. + ToolUseID string `json:"tool_use_id"` + Content MessagesWebSearchToolResultContent `json:"content"` + Caller OptMessagesServerToolCaller `json:"caller"` +} + +// GetType returns the value of Type. +func (s *MessagesContentPartWebSearchToolResult) GetType() MessagesContentPartWebSearchToolResultType { + return s.Type +} + +// GetToolUseID returns the value of ToolUseID. +func (s *MessagesContentPartWebSearchToolResult) GetToolUseID() string { + return s.ToolUseID +} + +// GetContent returns the value of Content. +func (s *MessagesContentPartWebSearchToolResult) GetContent() MessagesWebSearchToolResultContent { + return s.Content +} + +// GetCaller returns the value of Caller. +func (s *MessagesContentPartWebSearchToolResult) GetCaller() OptMessagesServerToolCaller { + return s.Caller +} + +// SetType sets the value of Type. +func (s *MessagesContentPartWebSearchToolResult) SetType(val MessagesContentPartWebSearchToolResultType) { + s.Type = val +} + +// SetToolUseID sets the value of ToolUseID. +func (s *MessagesContentPartWebSearchToolResult) SetToolUseID(val string) { + s.ToolUseID = val +} + +// SetContent sets the value of Content. +func (s *MessagesContentPartWebSearchToolResult) SetContent(val MessagesWebSearchToolResultContent) { + s.Content = val +} + +// SetCaller sets the value of Caller. +func (s *MessagesContentPartWebSearchToolResult) SetCaller(val OptMessagesServerToolCaller) { + s.Caller = val +} + +// The type of the content part. Always `web_search_tool_result`. +type MessagesContentPartWebSearchToolResultType string + +const ( + MessagesContentPartWebSearchToolResultTypeWebSearchToolResult MessagesContentPartWebSearchToolResultType = "web_search_tool_result" +) + +// AllValues returns all MessagesContentPartWebSearchToolResultType values. +func (MessagesContentPartWebSearchToolResultType) AllValues() []MessagesContentPartWebSearchToolResultType { + return []MessagesContentPartWebSearchToolResultType{ + MessagesContentPartWebSearchToolResultTypeWebSearchToolResult, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s MessagesContentPartWebSearchToolResultType) MarshalText() ([]byte, error) { + switch s { + case MessagesContentPartWebSearchToolResultTypeWebSearchToolResult: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *MessagesContentPartWebSearchToolResultType) UnmarshalText(data []byte) error { + switch MessagesContentPartWebSearchToolResultType(data) { + case MessagesContentPartWebSearchToolResultTypeWebSearchToolResult: + *s = MessagesContentPartWebSearchToolResultTypeWebSearchToolResult + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/MessagesContextManagement +type MessagesContextManagement struct { + Edits []MessagesContextManagementEdit `json:"edits"` +} + +// GetEdits returns the value of Edits. +func (s *MessagesContextManagement) GetEdits() []MessagesContextManagementEdit { + return s.Edits +} + +// SetEdits sets the value of Edits. +func (s *MessagesContextManagement) SetEdits(val []MessagesContextManagementEdit) { + s.Edits = val +} + +// Ref: #/components/schemas/MessagesContextManagementClearThinking +type MessagesContextManagementClearThinking struct { + Type MessagesContextManagementClearThinkingType `json:"type"` + Keep OptMessagesContextManagementKeep `json:"keep"` +} + +// GetType returns the value of Type. +func (s *MessagesContextManagementClearThinking) GetType() MessagesContextManagementClearThinkingType { + return s.Type +} + +// GetKeep returns the value of Keep. +func (s *MessagesContextManagementClearThinking) GetKeep() OptMessagesContextManagementKeep { + return s.Keep +} + +// SetType sets the value of Type. +func (s *MessagesContextManagementClearThinking) SetType(val MessagesContextManagementClearThinkingType) { + s.Type = val +} + +// SetKeep sets the value of Keep. +func (s *MessagesContextManagementClearThinking) SetKeep(val OptMessagesContextManagementKeep) { + s.Keep = val +} + +type MessagesContextManagementClearThinkingType string + +const ( + MessagesContextManagementClearThinkingTypeClearThinking MessagesContextManagementClearThinkingType = "clear_thinking" +) + +// AllValues returns all MessagesContextManagementClearThinkingType values. +func (MessagesContextManagementClearThinkingType) AllValues() []MessagesContextManagementClearThinkingType { + return []MessagesContextManagementClearThinkingType{ + MessagesContextManagementClearThinkingTypeClearThinking, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s MessagesContextManagementClearThinkingType) MarshalText() ([]byte, error) { + switch s { + case MessagesContextManagementClearThinkingTypeClearThinking: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *MessagesContextManagementClearThinkingType) UnmarshalText(data []byte) error { + switch MessagesContextManagementClearThinkingType(data) { + case MessagesContextManagementClearThinkingTypeClearThinking: + *s = MessagesContextManagementClearThinkingTypeClearThinking + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/MessagesContextManagementClearToolUses +type MessagesContextManagementClearToolUses struct { + Type MessagesContextManagementClearToolUsesType `json:"type"` + Keep OptMessagesContextManagementKeep `json:"keep"` + ExcludeTools []string `json:"exclude_tools"` + ClearToolInputs OptBool `json:"clear_tool_inputs"` + Trigger OptMessagesContextManagementClearToolUsesTrigger `json:"trigger"` +} + +// GetType returns the value of Type. +func (s *MessagesContextManagementClearToolUses) GetType() MessagesContextManagementClearToolUsesType { + return s.Type +} + +// GetKeep returns the value of Keep. +func (s *MessagesContextManagementClearToolUses) GetKeep() OptMessagesContextManagementKeep { + return s.Keep +} + +// GetExcludeTools returns the value of ExcludeTools. +func (s *MessagesContextManagementClearToolUses) GetExcludeTools() []string { + return s.ExcludeTools +} + +// GetClearToolInputs returns the value of ClearToolInputs. +func (s *MessagesContextManagementClearToolUses) GetClearToolInputs() OptBool { + return s.ClearToolInputs +} + +// GetTrigger returns the value of Trigger. +func (s *MessagesContextManagementClearToolUses) GetTrigger() OptMessagesContextManagementClearToolUsesTrigger { + return s.Trigger +} + +// SetType sets the value of Type. +func (s *MessagesContextManagementClearToolUses) SetType(val MessagesContextManagementClearToolUsesType) { + s.Type = val +} + +// SetKeep sets the value of Keep. +func (s *MessagesContextManagementClearToolUses) SetKeep(val OptMessagesContextManagementKeep) { + s.Keep = val +} + +// SetExcludeTools sets the value of ExcludeTools. +func (s *MessagesContextManagementClearToolUses) SetExcludeTools(val []string) { + s.ExcludeTools = val +} + +// SetClearToolInputs sets the value of ClearToolInputs. +func (s *MessagesContextManagementClearToolUses) SetClearToolInputs(val OptBool) { + s.ClearToolInputs = val +} + +// SetTrigger sets the value of Trigger. +func (s *MessagesContextManagementClearToolUses) SetTrigger(val OptMessagesContextManagementClearToolUsesTrigger) { + s.Trigger = val +} + +// Ref: #/components/schemas/MessagesContextManagementClearToolUsesTrigger +type MessagesContextManagementClearToolUsesTrigger struct { + Type MessagesContextManagementClearToolUsesTriggerType `json:"type"` + Value uint32 `json:"value"` +} + +// GetType returns the value of Type. +func (s *MessagesContextManagementClearToolUsesTrigger) GetType() MessagesContextManagementClearToolUsesTriggerType { + return s.Type +} + +// GetValue returns the value of Value. +func (s *MessagesContextManagementClearToolUsesTrigger) GetValue() uint32 { + return s.Value +} + +// SetType sets the value of Type. +func (s *MessagesContextManagementClearToolUsesTrigger) SetType(val MessagesContextManagementClearToolUsesTriggerType) { + s.Type = val +} + +// SetValue sets the value of Value. +func (s *MessagesContextManagementClearToolUsesTrigger) SetValue(val uint32) { + s.Value = val +} + +type MessagesContextManagementClearToolUsesTriggerType string + +const ( + MessagesContextManagementClearToolUsesTriggerTypeToolUses MessagesContextManagementClearToolUsesTriggerType = "tool_uses" +) + +// AllValues returns all MessagesContextManagementClearToolUsesTriggerType values. +func (MessagesContextManagementClearToolUsesTriggerType) AllValues() []MessagesContextManagementClearToolUsesTriggerType { + return []MessagesContextManagementClearToolUsesTriggerType{ + MessagesContextManagementClearToolUsesTriggerTypeToolUses, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s MessagesContextManagementClearToolUsesTriggerType) MarshalText() ([]byte, error) { + switch s { + case MessagesContextManagementClearToolUsesTriggerTypeToolUses: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *MessagesContextManagementClearToolUsesTriggerType) UnmarshalText(data []byte) error { + switch MessagesContextManagementClearToolUsesTriggerType(data) { + case MessagesContextManagementClearToolUsesTriggerTypeToolUses: + *s = MessagesContextManagementClearToolUsesTriggerTypeToolUses + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +type MessagesContextManagementClearToolUsesType string + +const ( + MessagesContextManagementClearToolUsesTypeClearToolUses MessagesContextManagementClearToolUsesType = "clear_tool_uses" +) + +// AllValues returns all MessagesContextManagementClearToolUsesType values. +func (MessagesContextManagementClearToolUsesType) AllValues() []MessagesContextManagementClearToolUsesType { + return []MessagesContextManagementClearToolUsesType{ + MessagesContextManagementClearToolUsesTypeClearToolUses, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s MessagesContextManagementClearToolUsesType) MarshalText() ([]byte, error) { + switch s { + case MessagesContextManagementClearToolUsesTypeClearToolUses: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *MessagesContextManagementClearToolUsesType) UnmarshalText(data []byte) error { + switch MessagesContextManagementClearToolUsesType(data) { + case MessagesContextManagementClearToolUsesTypeClearToolUses: + *s = MessagesContextManagementClearToolUsesTypeClearToolUses + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/MessagesContextManagementEdit +type MessagesContextManagementEdit struct { + OneOf MessagesContextManagementEditSum +} + +// GetOneOf returns the value of OneOf. +func (s *MessagesContextManagementEdit) GetOneOf() MessagesContextManagementEditSum { + return s.OneOf +} + +// SetOneOf sets the value of OneOf. +func (s *MessagesContextManagementEdit) SetOneOf(val MessagesContextManagementEditSum) { + s.OneOf = val +} + +// MessagesContextManagementEditSum represents sum type. +type MessagesContextManagementEditSum struct { + Type MessagesContextManagementEditSumType // switch on this field + MessagesContextManagementClearThinking MessagesContextManagementClearThinking + MessagesContextManagementClearToolUses MessagesContextManagementClearToolUses +} + +// MessagesContextManagementEditSumType is oneOf type of MessagesContextManagementEditSum. +type MessagesContextManagementEditSumType string + +// Possible values for MessagesContextManagementEditSumType. +const ( + MessagesContextManagementClearThinkingMessagesContextManagementEditSum MessagesContextManagementEditSumType = "clear_thinking" + MessagesContextManagementClearToolUsesMessagesContextManagementEditSum MessagesContextManagementEditSumType = "clear_tool_uses" +) + +// IsMessagesContextManagementClearThinking reports whether MessagesContextManagementEditSum is MessagesContextManagementClearThinking. +func (s MessagesContextManagementEditSum) IsMessagesContextManagementClearThinking() bool { + return s.Type == MessagesContextManagementClearThinkingMessagesContextManagementEditSum +} + +// IsMessagesContextManagementClearToolUses reports whether MessagesContextManagementEditSum is MessagesContextManagementClearToolUses. +func (s MessagesContextManagementEditSum) IsMessagesContextManagementClearToolUses() bool { + return s.Type == MessagesContextManagementClearToolUsesMessagesContextManagementEditSum +} + +// SetMessagesContextManagementClearThinking sets MessagesContextManagementEditSum to MessagesContextManagementClearThinking. +func (s *MessagesContextManagementEditSum) SetMessagesContextManagementClearThinking(v MessagesContextManagementClearThinking) { + s.Type = MessagesContextManagementClearThinkingMessagesContextManagementEditSum + s.MessagesContextManagementClearThinking = v +} + +// GetMessagesContextManagementClearThinking returns MessagesContextManagementClearThinking and true boolean if MessagesContextManagementEditSum is MessagesContextManagementClearThinking. +func (s MessagesContextManagementEditSum) GetMessagesContextManagementClearThinking() (v MessagesContextManagementClearThinking, ok bool) { + if !s.IsMessagesContextManagementClearThinking() { + return v, false + } + return s.MessagesContextManagementClearThinking, true +} + +// NewMessagesContextManagementClearThinkingMessagesContextManagementEditSum returns new MessagesContextManagementEditSum from MessagesContextManagementClearThinking. +func NewMessagesContextManagementClearThinkingMessagesContextManagementEditSum(v MessagesContextManagementClearThinking) MessagesContextManagementEditSum { + var s MessagesContextManagementEditSum + s.SetMessagesContextManagementClearThinking(v) + return s +} + +// SetMessagesContextManagementClearToolUses sets MessagesContextManagementEditSum to MessagesContextManagementClearToolUses. +func (s *MessagesContextManagementEditSum) SetMessagesContextManagementClearToolUses(v MessagesContextManagementClearToolUses) { + s.Type = MessagesContextManagementClearToolUsesMessagesContextManagementEditSum + s.MessagesContextManagementClearToolUses = v +} + +// GetMessagesContextManagementClearToolUses returns MessagesContextManagementClearToolUses and true boolean if MessagesContextManagementEditSum is MessagesContextManagementClearToolUses. +func (s MessagesContextManagementEditSum) GetMessagesContextManagementClearToolUses() (v MessagesContextManagementClearToolUses, ok bool) { + if !s.IsMessagesContextManagementClearToolUses() { + return v, false + } + return s.MessagesContextManagementClearToolUses, true +} + +// NewMessagesContextManagementClearToolUsesMessagesContextManagementEditSum returns new MessagesContextManagementEditSum from MessagesContextManagementClearToolUses. +func NewMessagesContextManagementClearToolUsesMessagesContextManagementEditSum(v MessagesContextManagementClearToolUses) MessagesContextManagementEditSum { + var s MessagesContextManagementEditSum + s.SetMessagesContextManagementClearToolUses(v) + return s +} + +// A literal retention mode or a typed retention parameter. +// Ref: #/components/schemas/MessagesContextManagementKeep +// MessagesContextManagementKeep represents sum type. +type MessagesContextManagementKeep struct { + Type MessagesContextManagementKeepType // switch on this field + MessagesContextManagementKeep0 MessagesContextManagementKeep0 + MessagesContextManagementKeepParameter MessagesContextManagementKeepParameter +} + +// MessagesContextManagementKeepType is oneOf type of MessagesContextManagementKeep. +type MessagesContextManagementKeepType string + +// Possible values for MessagesContextManagementKeepType. +const ( + MessagesContextManagementKeep0MessagesContextManagementKeep MessagesContextManagementKeepType = "MessagesContextManagementKeep0" + MessagesContextManagementKeepParameterMessagesContextManagementKeep MessagesContextManagementKeepType = "MessagesContextManagementKeepParameter" +) + +// IsMessagesContextManagementKeep0 reports whether MessagesContextManagementKeep is MessagesContextManagementKeep0. +func (s MessagesContextManagementKeep) IsMessagesContextManagementKeep0() bool { + return s.Type == MessagesContextManagementKeep0MessagesContextManagementKeep +} + +// IsMessagesContextManagementKeepParameter reports whether MessagesContextManagementKeep is MessagesContextManagementKeepParameter. +func (s MessagesContextManagementKeep) IsMessagesContextManagementKeepParameter() bool { + return s.Type == MessagesContextManagementKeepParameterMessagesContextManagementKeep +} + +// SetMessagesContextManagementKeep0 sets MessagesContextManagementKeep to MessagesContextManagementKeep0. +func (s *MessagesContextManagementKeep) SetMessagesContextManagementKeep0(v MessagesContextManagementKeep0) { + s.Type = MessagesContextManagementKeep0MessagesContextManagementKeep + s.MessagesContextManagementKeep0 = v +} + +// GetMessagesContextManagementKeep0 returns MessagesContextManagementKeep0 and true boolean if MessagesContextManagementKeep is MessagesContextManagementKeep0. +func (s MessagesContextManagementKeep) GetMessagesContextManagementKeep0() (v MessagesContextManagementKeep0, ok bool) { + if !s.IsMessagesContextManagementKeep0() { + return v, false + } + return s.MessagesContextManagementKeep0, true +} + +// NewMessagesContextManagementKeep0MessagesContextManagementKeep returns new MessagesContextManagementKeep from MessagesContextManagementKeep0. +func NewMessagesContextManagementKeep0MessagesContextManagementKeep(v MessagesContextManagementKeep0) MessagesContextManagementKeep { + var s MessagesContextManagementKeep + s.SetMessagesContextManagementKeep0(v) + return s +} + +// SetMessagesContextManagementKeepParameter sets MessagesContextManagementKeep to MessagesContextManagementKeepParameter. +func (s *MessagesContextManagementKeep) SetMessagesContextManagementKeepParameter(v MessagesContextManagementKeepParameter) { + s.Type = MessagesContextManagementKeepParameterMessagesContextManagementKeep + s.MessagesContextManagementKeepParameter = v +} + +// GetMessagesContextManagementKeepParameter returns MessagesContextManagementKeepParameter and true boolean if MessagesContextManagementKeep is MessagesContextManagementKeepParameter. +func (s MessagesContextManagementKeep) GetMessagesContextManagementKeepParameter() (v MessagesContextManagementKeepParameter, ok bool) { + if !s.IsMessagesContextManagementKeepParameter() { + return v, false + } + return s.MessagesContextManagementKeepParameter, true +} + +// NewMessagesContextManagementKeepParameterMessagesContextManagementKeep returns new MessagesContextManagementKeep from MessagesContextManagementKeepParameter. +func NewMessagesContextManagementKeepParameterMessagesContextManagementKeep(v MessagesContextManagementKeepParameter) MessagesContextManagementKeep { + var s MessagesContextManagementKeep + s.SetMessagesContextManagementKeepParameter(v) + return s +} + +type MessagesContextManagementKeep0 string + +const ( + MessagesContextManagementKeep0All MessagesContextManagementKeep0 = "all" +) + +// AllValues returns all MessagesContextManagementKeep0 values. +func (MessagesContextManagementKeep0) AllValues() []MessagesContextManagementKeep0 { + return []MessagesContextManagementKeep0{ + MessagesContextManagementKeep0All, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s MessagesContextManagementKeep0) MarshalText() ([]byte, error) { + switch s { + case MessagesContextManagementKeep0All: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *MessagesContextManagementKeep0) UnmarshalText(data []byte) error { + switch MessagesContextManagementKeep0(data) { + case MessagesContextManagementKeep0All: + *s = MessagesContextManagementKeep0All + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/MessagesContextManagementKeepAll +type MessagesContextManagementKeepAll struct { + Type MessagesContextManagementKeepAllType `json:"type"` +} + +// GetType returns the value of Type. +func (s *MessagesContextManagementKeepAll) GetType() MessagesContextManagementKeepAllType { + return s.Type +} + +// SetType sets the value of Type. +func (s *MessagesContextManagementKeepAll) SetType(val MessagesContextManagementKeepAllType) { + s.Type = val +} + +type MessagesContextManagementKeepAllType string + +const ( + MessagesContextManagementKeepAllTypeAll MessagesContextManagementKeepAllType = "all" +) + +// AllValues returns all MessagesContextManagementKeepAllType values. +func (MessagesContextManagementKeepAllType) AllValues() []MessagesContextManagementKeepAllType { + return []MessagesContextManagementKeepAllType{ + MessagesContextManagementKeepAllTypeAll, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s MessagesContextManagementKeepAllType) MarshalText() ([]byte, error) { + switch s { + case MessagesContextManagementKeepAllTypeAll: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *MessagesContextManagementKeepAllType) UnmarshalText(data []byte) error { + switch MessagesContextManagementKeepAllType(data) { + case MessagesContextManagementKeepAllTypeAll: + *s = MessagesContextManagementKeepAllTypeAll + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// What context to retain while applying a context-management edit. +// Ref: #/components/schemas/MessagesContextManagementKeepParameter +type MessagesContextManagementKeepParameter struct { + OneOf MessagesContextManagementKeepParameterSum +} + +// GetOneOf returns the value of OneOf. +func (s *MessagesContextManagementKeepParameter) GetOneOf() MessagesContextManagementKeepParameterSum { + return s.OneOf +} + +// SetOneOf sets the value of OneOf. +func (s *MessagesContextManagementKeepParameter) SetOneOf(val MessagesContextManagementKeepParameterSum) { + s.OneOf = val +} + +// MessagesContextManagementKeepParameterSum represents sum type. +type MessagesContextManagementKeepParameterSum struct { + Type MessagesContextManagementKeepParameterSumType // switch on this field + MessagesContextManagementKeepAll MessagesContextManagementKeepAll + MessagesContextManagementKeepThinkingTurns MessagesContextManagementKeepThinkingTurns + MessagesContextManagementKeepToolUses MessagesContextManagementKeepToolUses +} + +// MessagesContextManagementKeepParameterSumType is oneOf type of MessagesContextManagementKeepParameterSum. +type MessagesContextManagementKeepParameterSumType string + +// Possible values for MessagesContextManagementKeepParameterSumType. +const ( + MessagesContextManagementKeepAllMessagesContextManagementKeepParameterSum MessagesContextManagementKeepParameterSumType = "all" + MessagesContextManagementKeepThinkingTurnsMessagesContextManagementKeepParameterSum MessagesContextManagementKeepParameterSumType = "thinking_turns" + MessagesContextManagementKeepToolUsesMessagesContextManagementKeepParameterSum MessagesContextManagementKeepParameterSumType = "tool_uses" +) + +// IsMessagesContextManagementKeepAll reports whether MessagesContextManagementKeepParameterSum is MessagesContextManagementKeepAll. +func (s MessagesContextManagementKeepParameterSum) IsMessagesContextManagementKeepAll() bool { + return s.Type == MessagesContextManagementKeepAllMessagesContextManagementKeepParameterSum +} + +// IsMessagesContextManagementKeepThinkingTurns reports whether MessagesContextManagementKeepParameterSum is MessagesContextManagementKeepThinkingTurns. +func (s MessagesContextManagementKeepParameterSum) IsMessagesContextManagementKeepThinkingTurns() bool { + return s.Type == MessagesContextManagementKeepThinkingTurnsMessagesContextManagementKeepParameterSum +} + +// IsMessagesContextManagementKeepToolUses reports whether MessagesContextManagementKeepParameterSum is MessagesContextManagementKeepToolUses. +func (s MessagesContextManagementKeepParameterSum) IsMessagesContextManagementKeepToolUses() bool { + return s.Type == MessagesContextManagementKeepToolUsesMessagesContextManagementKeepParameterSum +} + +// SetMessagesContextManagementKeepAll sets MessagesContextManagementKeepParameterSum to MessagesContextManagementKeepAll. +func (s *MessagesContextManagementKeepParameterSum) SetMessagesContextManagementKeepAll(v MessagesContextManagementKeepAll) { + s.Type = MessagesContextManagementKeepAllMessagesContextManagementKeepParameterSum + s.MessagesContextManagementKeepAll = v +} + +// GetMessagesContextManagementKeepAll returns MessagesContextManagementKeepAll and true boolean if MessagesContextManagementKeepParameterSum is MessagesContextManagementKeepAll. +func (s MessagesContextManagementKeepParameterSum) GetMessagesContextManagementKeepAll() (v MessagesContextManagementKeepAll, ok bool) { + if !s.IsMessagesContextManagementKeepAll() { + return v, false + } + return s.MessagesContextManagementKeepAll, true +} + +// NewMessagesContextManagementKeepAllMessagesContextManagementKeepParameterSum returns new MessagesContextManagementKeepParameterSum from MessagesContextManagementKeepAll. +func NewMessagesContextManagementKeepAllMessagesContextManagementKeepParameterSum(v MessagesContextManagementKeepAll) MessagesContextManagementKeepParameterSum { + var s MessagesContextManagementKeepParameterSum + s.SetMessagesContextManagementKeepAll(v) + return s +} + +// SetMessagesContextManagementKeepThinkingTurns sets MessagesContextManagementKeepParameterSum to MessagesContextManagementKeepThinkingTurns. +func (s *MessagesContextManagementKeepParameterSum) SetMessagesContextManagementKeepThinkingTurns(v MessagesContextManagementKeepThinkingTurns) { + s.Type = MessagesContextManagementKeepThinkingTurnsMessagesContextManagementKeepParameterSum + s.MessagesContextManagementKeepThinkingTurns = v +} + +// GetMessagesContextManagementKeepThinkingTurns returns MessagesContextManagementKeepThinkingTurns and true boolean if MessagesContextManagementKeepParameterSum is MessagesContextManagementKeepThinkingTurns. +func (s MessagesContextManagementKeepParameterSum) GetMessagesContextManagementKeepThinkingTurns() (v MessagesContextManagementKeepThinkingTurns, ok bool) { + if !s.IsMessagesContextManagementKeepThinkingTurns() { + return v, false + } + return s.MessagesContextManagementKeepThinkingTurns, true +} + +// NewMessagesContextManagementKeepThinkingTurnsMessagesContextManagementKeepParameterSum returns new MessagesContextManagementKeepParameterSum from MessagesContextManagementKeepThinkingTurns. +func NewMessagesContextManagementKeepThinkingTurnsMessagesContextManagementKeepParameterSum(v MessagesContextManagementKeepThinkingTurns) MessagesContextManagementKeepParameterSum { + var s MessagesContextManagementKeepParameterSum + s.SetMessagesContextManagementKeepThinkingTurns(v) + return s +} + +// SetMessagesContextManagementKeepToolUses sets MessagesContextManagementKeepParameterSum to MessagesContextManagementKeepToolUses. +func (s *MessagesContextManagementKeepParameterSum) SetMessagesContextManagementKeepToolUses(v MessagesContextManagementKeepToolUses) { + s.Type = MessagesContextManagementKeepToolUsesMessagesContextManagementKeepParameterSum + s.MessagesContextManagementKeepToolUses = v +} + +// GetMessagesContextManagementKeepToolUses returns MessagesContextManagementKeepToolUses and true boolean if MessagesContextManagementKeepParameterSum is MessagesContextManagementKeepToolUses. +func (s MessagesContextManagementKeepParameterSum) GetMessagesContextManagementKeepToolUses() (v MessagesContextManagementKeepToolUses, ok bool) { + if !s.IsMessagesContextManagementKeepToolUses() { + return v, false + } + return s.MessagesContextManagementKeepToolUses, true +} + +// NewMessagesContextManagementKeepToolUsesMessagesContextManagementKeepParameterSum returns new MessagesContextManagementKeepParameterSum from MessagesContextManagementKeepToolUses. +func NewMessagesContextManagementKeepToolUsesMessagesContextManagementKeepParameterSum(v MessagesContextManagementKeepToolUses) MessagesContextManagementKeepParameterSum { + var s MessagesContextManagementKeepParameterSum + s.SetMessagesContextManagementKeepToolUses(v) + return s +} + +// Ref: #/components/schemas/MessagesContextManagementKeepThinkingTurns +type MessagesContextManagementKeepThinkingTurns struct { + Type MessagesContextManagementKeepThinkingTurnsType `json:"type"` + Value int32 `json:"value"` +} + +// GetType returns the value of Type. +func (s *MessagesContextManagementKeepThinkingTurns) GetType() MessagesContextManagementKeepThinkingTurnsType { + return s.Type +} + +// GetValue returns the value of Value. +func (s *MessagesContextManagementKeepThinkingTurns) GetValue() int32 { + return s.Value +} + +// SetType sets the value of Type. +func (s *MessagesContextManagementKeepThinkingTurns) SetType(val MessagesContextManagementKeepThinkingTurnsType) { + s.Type = val +} + +// SetValue sets the value of Value. +func (s *MessagesContextManagementKeepThinkingTurns) SetValue(val int32) { + s.Value = val +} + +type MessagesContextManagementKeepThinkingTurnsType string + +const ( + MessagesContextManagementKeepThinkingTurnsTypeThinkingTurns MessagesContextManagementKeepThinkingTurnsType = "thinking_turns" +) + +// AllValues returns all MessagesContextManagementKeepThinkingTurnsType values. +func (MessagesContextManagementKeepThinkingTurnsType) AllValues() []MessagesContextManagementKeepThinkingTurnsType { + return []MessagesContextManagementKeepThinkingTurnsType{ + MessagesContextManagementKeepThinkingTurnsTypeThinkingTurns, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s MessagesContextManagementKeepThinkingTurnsType) MarshalText() ([]byte, error) { + switch s { + case MessagesContextManagementKeepThinkingTurnsTypeThinkingTurns: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *MessagesContextManagementKeepThinkingTurnsType) UnmarshalText(data []byte) error { + switch MessagesContextManagementKeepThinkingTurnsType(data) { + case MessagesContextManagementKeepThinkingTurnsTypeThinkingTurns: + *s = MessagesContextManagementKeepThinkingTurnsTypeThinkingTurns + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/MessagesContextManagementKeepToolUses +type MessagesContextManagementKeepToolUses struct { + Type MessagesContextManagementKeepToolUsesType `json:"type"` + Value int32 `json:"value"` +} + +// GetType returns the value of Type. +func (s *MessagesContextManagementKeepToolUses) GetType() MessagesContextManagementKeepToolUsesType { + return s.Type +} + +// GetValue returns the value of Value. +func (s *MessagesContextManagementKeepToolUses) GetValue() int32 { + return s.Value +} + +// SetType sets the value of Type. +func (s *MessagesContextManagementKeepToolUses) SetType(val MessagesContextManagementKeepToolUsesType) { + s.Type = val +} + +// SetValue sets the value of Value. +func (s *MessagesContextManagementKeepToolUses) SetValue(val int32) { + s.Value = val +} + +type MessagesContextManagementKeepToolUsesType string + +const ( + MessagesContextManagementKeepToolUsesTypeToolUses MessagesContextManagementKeepToolUsesType = "tool_uses" +) + +// AllValues returns all MessagesContextManagementKeepToolUsesType values. +func (MessagesContextManagementKeepToolUsesType) AllValues() []MessagesContextManagementKeepToolUsesType { + return []MessagesContextManagementKeepToolUsesType{ + MessagesContextManagementKeepToolUsesTypeToolUses, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s MessagesContextManagementKeepToolUsesType) MarshalText() ([]byte, error) { + switch s { + case MessagesContextManagementKeepToolUsesTypeToolUses: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *MessagesContextManagementKeepToolUsesType) UnmarshalText(data []byte) error { + switch MessagesContextManagementKeepToolUsesType(data) { + case MessagesContextManagementKeepToolUsesTypeToolUses: + *s = MessagesContextManagementKeepToolUsesTypeToolUses + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/MessagesDocumentSourceType +type MessagesDocumentSourceType string + +const ( + MessagesDocumentSourceTypeBase64 MessagesDocumentSourceType = "base64" + MessagesDocumentSourceTypeText MessagesDocumentSourceType = "text" + MessagesDocumentSourceTypeURL MessagesDocumentSourceType = "url" + MessagesDocumentSourceTypeContent MessagesDocumentSourceType = "content" +) + +// AllValues returns all MessagesDocumentSourceType values. +func (MessagesDocumentSourceType) AllValues() []MessagesDocumentSourceType { + return []MessagesDocumentSourceType{ + MessagesDocumentSourceTypeBase64, + MessagesDocumentSourceTypeText, + MessagesDocumentSourceTypeURL, + MessagesDocumentSourceTypeContent, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s MessagesDocumentSourceType) MarshalText() ([]byte, error) { + switch s { + case MessagesDocumentSourceTypeBase64: + return []byte(s), nil + case MessagesDocumentSourceTypeText: + return []byte(s), nil + case MessagesDocumentSourceTypeURL: + return []byte(s), nil + case MessagesDocumentSourceTypeContent: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *MessagesDocumentSourceType) UnmarshalText(data []byte) error { + switch MessagesDocumentSourceType(data) { + case MessagesDocumentSourceTypeBase64: + *s = MessagesDocumentSourceTypeBase64 + return nil + case MessagesDocumentSourceTypeText: + *s = MessagesDocumentSourceTypeText + return nil + case MessagesDocumentSourceTypeURL: + *s = MessagesDocumentSourceTypeURL + return nil + case MessagesDocumentSourceTypeContent: + *s = MessagesDocumentSourceTypeContent + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/MessagesErrorResponse +type MessagesErrorResponse struct { + // The event type. Always `error`. + Type MessagesErrorResponseType `json:"type"` + Error Error `json:"error"` +} + +// GetType returns the value of Type. +func (s *MessagesErrorResponse) GetType() MessagesErrorResponseType { + return s.Type +} + +// GetError returns the value of Error. +func (s *MessagesErrorResponse) GetError() Error { + return s.Error +} + +// SetType sets the value of Type. +func (s *MessagesErrorResponse) SetType(val MessagesErrorResponseType) { + s.Type = val +} + +// SetError sets the value of Error. +func (s *MessagesErrorResponse) SetError(val Error) { + s.Error = val +} + +// The event type. Always `error`. +type MessagesErrorResponseType string + +const ( + MessagesErrorResponseTypeError MessagesErrorResponseType = "error" +) + +// AllValues returns all MessagesErrorResponseType values. +func (MessagesErrorResponseType) AllValues() []MessagesErrorResponseType { + return []MessagesErrorResponseType{ + MessagesErrorResponseTypeError, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s MessagesErrorResponseType) MarshalText() ([]byte, error) { + switch s { + case MessagesErrorResponseTypeError: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *MessagesErrorResponseType) UnmarshalText(data []byte) error { + switch MessagesErrorResponseType(data) { + case MessagesErrorResponseTypeError: + *s = MessagesErrorResponseTypeError + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/MessagesImageSourceType +type MessagesImageSourceType string + +const ( + MessagesImageSourceTypeURL MessagesImageSourceType = "url" + MessagesImageSourceTypeBase64 MessagesImageSourceType = "base64" +) + +// AllValues returns all MessagesImageSourceType values. +func (MessagesImageSourceType) AllValues() []MessagesImageSourceType { + return []MessagesImageSourceType{ + MessagesImageSourceTypeURL, + MessagesImageSourceTypeBase64, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s MessagesImageSourceType) MarshalText() ([]byte, error) { + switch s { + case MessagesImageSourceTypeURL: + return []byte(s), nil + case MessagesImageSourceTypeBase64: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *MessagesImageSourceType) UnmarshalText(data []byte) error { + switch MessagesImageSourceType(data) { + case MessagesImageSourceTypeURL: + *s = MessagesImageSourceTypeURL + return nil + case MessagesImageSourceTypeBase64: + *s = MessagesImageSourceTypeBase64 + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/MessagesIterationUsage +type MessagesIterationUsage struct { + // The iteration usage record type. + Type string `json:"type"` + // Number of input tokens consumed by this model iteration. + InputTokens int32 `json:"input_tokens"` + // Number of output tokens generated by this model iteration. + OutputTokens int32 `json:"output_tokens"` + // Number of cached input tokens read by this model iteration. + CacheReadInputTokens int32 `json:"cache_read_input_tokens"` +} + +// GetType returns the value of Type. +func (s *MessagesIterationUsage) GetType() string { + return s.Type +} + +// GetInputTokens returns the value of InputTokens. +func (s *MessagesIterationUsage) GetInputTokens() int32 { + return s.InputTokens +} + +// GetOutputTokens returns the value of OutputTokens. +func (s *MessagesIterationUsage) GetOutputTokens() int32 { + return s.OutputTokens +} + +// GetCacheReadInputTokens returns the value of CacheReadInputTokens. +func (s *MessagesIterationUsage) GetCacheReadInputTokens() int32 { + return s.CacheReadInputTokens +} + +// SetType sets the value of Type. +func (s *MessagesIterationUsage) SetType(val string) { + s.Type = val +} + +// SetInputTokens sets the value of InputTokens. +func (s *MessagesIterationUsage) SetInputTokens(val int32) { + s.InputTokens = val +} + +// SetOutputTokens sets the value of OutputTokens. +func (s *MessagesIterationUsage) SetOutputTokens(val int32) { + s.OutputTokens = val +} + +// SetCacheReadInputTokens sets the value of CacheReadInputTokens. +func (s *MessagesIterationUsage) SetCacheReadInputTokens(val int32) { + s.CacheReadInputTokens = val +} + +// Message content can be a bare string or an array of typed content parts. +// Ref: #/components/schemas/MessagesMessageContent +// MessagesMessageContent represents sum type. +type MessagesMessageContent struct { + Type MessagesMessageContentType // switch on this field + String string + MessagesContentPartArray []MessagesContentPart +} + +// MessagesMessageContentType is oneOf type of MessagesMessageContent. +type MessagesMessageContentType string + +// Possible values for MessagesMessageContentType. +const ( + StringMessagesMessageContent MessagesMessageContentType = "string" + MessagesContentPartArrayMessagesMessageContent MessagesMessageContentType = "[]MessagesContentPart" +) + +// IsString reports whether MessagesMessageContent is string. +func (s MessagesMessageContent) IsString() bool { return s.Type == StringMessagesMessageContent } + +// IsMessagesContentPartArray reports whether MessagesMessageContent is []MessagesContentPart. +func (s MessagesMessageContent) IsMessagesContentPartArray() bool { + return s.Type == MessagesContentPartArrayMessagesMessageContent +} + +// SetString sets MessagesMessageContent to string. +func (s *MessagesMessageContent) SetString(v string) { + s.Type = StringMessagesMessageContent + s.String = v +} + +// GetString returns string and true boolean if MessagesMessageContent is string. +func (s MessagesMessageContent) GetString() (v string, ok bool) { + if !s.IsString() { + return v, false + } + return s.String, true +} + +// NewStringMessagesMessageContent returns new MessagesMessageContent from string. +func NewStringMessagesMessageContent(v string) MessagesMessageContent { + var s MessagesMessageContent + s.SetString(v) + return s +} + +// SetMessagesContentPartArray sets MessagesMessageContent to []MessagesContentPart. +func (s *MessagesMessageContent) SetMessagesContentPartArray(v []MessagesContentPart) { + s.Type = MessagesContentPartArrayMessagesMessageContent + s.MessagesContentPartArray = v +} + +// GetMessagesContentPartArray returns []MessagesContentPart and true boolean if MessagesMessageContent is []MessagesContentPart. +func (s MessagesMessageContent) GetMessagesContentPartArray() (v []MessagesContentPart, ok bool) { + if !s.IsMessagesContentPartArray() { + return v, false + } + return s.MessagesContentPartArray, true +} + +// NewMessagesContentPartArrayMessagesMessageContent returns new MessagesMessageContent from []MessagesContentPart. +func NewMessagesContentPartArrayMessagesMessageContent(v []MessagesContentPart) MessagesMessageContent { + var s MessagesMessageContent + s.SetMessagesContentPartArray(v) + return s +} + +// Ref: #/components/schemas/MessagesMetadata +type MessagesMetadata struct { + // An external identifier for the user associated with the request. + UserID OptString `json:"user_id"` +} + +// GetUserID returns the value of UserID. +func (s *MessagesMetadata) GetUserID() OptString { + return s.UserID +} + +// SetUserID sets the value of UserID. +func (s *MessagesMetadata) SetUserID(val OptString) { + s.UserID = val +} + +// Ref: #/components/schemas/MessagesOutputConfig +type MessagesOutputConfig struct { + // Requested reasoning effort. + Effort OptString `json:"effort"` +} + +// GetEffort returns the value of Effort. +func (s *MessagesOutputConfig) GetEffort() OptString { + return s.Effort +} + +// SetEffort sets the value of Effort. +func (s *MessagesOutputConfig) SetEffort(val OptString) { + s.Effort = val +} + +// Ref: #/components/schemas/MessagesOutputFormat +type MessagesOutputFormat struct { + // The requested output format. + Type MessagesOutputFormatType `json:"type"` + // JSON Schema used when `type` is `json_schema`. + Schema OptMessagesOutputFormatSchema `json:"schema"` +} + +// GetType returns the value of Type. +func (s *MessagesOutputFormat) GetType() MessagesOutputFormatType { + return s.Type +} + +// GetSchema returns the value of Schema. +func (s *MessagesOutputFormat) GetSchema() OptMessagesOutputFormatSchema { + return s.Schema +} + +// SetType sets the value of Type. +func (s *MessagesOutputFormat) SetType(val MessagesOutputFormatType) { + s.Type = val +} + +// SetSchema sets the value of Schema. +func (s *MessagesOutputFormat) SetSchema(val OptMessagesOutputFormatSchema) { + s.Schema = val +} + +// JSON Schema used when `type` is `json_schema`. +type MessagesOutputFormatSchema map[string]jx.Raw + +func (s *MessagesOutputFormatSchema) init() MessagesOutputFormatSchema { + m := *s + if m == nil { + m = map[string]jx.Raw{} + *s = m + } + return m +} + +// Ref: #/components/schemas/MessagesOutputFormatType +type MessagesOutputFormatType string + +const ( + MessagesOutputFormatTypeText MessagesOutputFormatType = "text" + MessagesOutputFormatTypeJSONObject MessagesOutputFormatType = "json_object" + MessagesOutputFormatTypeJSONSchema MessagesOutputFormatType = "json_schema" +) + +// AllValues returns all MessagesOutputFormatType values. +func (MessagesOutputFormatType) AllValues() []MessagesOutputFormatType { + return []MessagesOutputFormatType{ + MessagesOutputFormatTypeText, + MessagesOutputFormatTypeJSONObject, + MessagesOutputFormatTypeJSONSchema, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s MessagesOutputFormatType) MarshalText() ([]byte, error) { + switch s { + case MessagesOutputFormatTypeText: + return []byte(s), nil + case MessagesOutputFormatTypeJSONObject: + return []byte(s), nil + case MessagesOutputFormatTypeJSONSchema: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *MessagesOutputFormatType) UnmarshalText(data []byte) error { + switch MessagesOutputFormatType(data) { + case MessagesOutputFormatTypeText: + *s = MessagesOutputFormatTypeText + return nil + case MessagesOutputFormatTypeJSONObject: + *s = MessagesOutputFormatTypeJSONObject + return nil + case MessagesOutputFormatTypeJSONSchema: + *s = MessagesOutputFormatTypeJSONSchema + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Creates a model response for the supplied conversation. +// Ref: #/components/schemas/MessagesRequest +type MessagesRequest struct { + // A list of messages comprising the conversation so far. + Messages []MessagesRequestMessage `json:"messages"` + // Endpoint ID of the model to use. + Model string `json:"model"` + // A system prompt supplied separately from the conversation messages. + System OptMessagesSystem `json:"system"` + // Number between -2.0 and 2.0. Positive values penalize tokens based on + // their existing frequency in the generated text. + FrequencyPenalty OptFloat64 `json:"frequency_penalty"` + // Modify the likelihood of token IDs appearing in the response. Values + // range from -100 to 100. + LogitBias OptMessagesRequestLogitBias `json:"logit_bias"` + // Whether to return log probabilities of output tokens. + Logprobs OptBool `json:"logprobs"` + // Maximum number of tokens that may be generated. + MaxTokens OptInt32 `json:"max_tokens"` + // Number between -2.0 and 2.0. Positive values penalize tokens based on + // whether they have appeared in the generated text. + PresencePenalty OptFloat64 `json:"presence_penalty"` + // Number between 0.0 and 2.0 that penalizes repetition. + RepetitionPenalty OptFloat64 `json:"repetition_penalty"` + // The format the model must produce. + OutputFormat OptMessagesOutputFormat `json:"output_format"` + // Sequences that stop generation when produced. + StopSequences OptMessagesStopSequences `json:"stop_sequences"` + // Whether to stream the response as server-sent events. + Stream OptBool `json:"stream"` + // Options for streaming responses. + StreamOptions OptMessagesStreamOptions `json:"stream_options"` + // Sampling temperature between 0 and 2. + Temperature OptFloat64 `json:"temperature"` + // Controls which tool, if any, the model calls. + ToolChoice OptMessagesToolChoice `json:"tool_choice"` + // Tools the model may call. + Tools []MessagesTool `json:"tools"` + // Number of most-likely tokens returned at each position. Range 0-20. + TopLogprobs OptInt32 `json:"top_logprobs"` + // Nucleus sampling probability between 0 and 1. + TopP OptFloat64 `json:"top_p"` + // Latency tier used to process the request. + ServiceTier OptMessagesRequestServiceTier `json:"service_tier"` + // Thinking-mode configuration. + Thinking OptMessagesThinking `json:"thinking"` + // Output configuration for reasoning models. + OutputConfig OptMessagesOutputConfig `json:"output_config"` + // Metadata associated with the request. + Metadata OptMessagesMetadata `json:"metadata"` + // Context-editing rules applied before inference. + ContextManagement OptMessagesContextManagement `json:"context_management"` +} + +// GetMessages returns the value of Messages. +func (s *MessagesRequest) GetMessages() []MessagesRequestMessage { + return s.Messages +} + +// GetModel returns the value of Model. +func (s *MessagesRequest) GetModel() string { + return s.Model +} + +// GetSystem returns the value of System. +func (s *MessagesRequest) GetSystem() OptMessagesSystem { + return s.System +} + +// GetFrequencyPenalty returns the value of FrequencyPenalty. +func (s *MessagesRequest) GetFrequencyPenalty() OptFloat64 { + return s.FrequencyPenalty +} + +// GetLogitBias returns the value of LogitBias. +func (s *MessagesRequest) GetLogitBias() OptMessagesRequestLogitBias { + return s.LogitBias +} + +// GetLogprobs returns the value of Logprobs. +func (s *MessagesRequest) GetLogprobs() OptBool { + return s.Logprobs +} + +// GetMaxTokens returns the value of MaxTokens. +func (s *MessagesRequest) GetMaxTokens() OptInt32 { + return s.MaxTokens +} + +// GetPresencePenalty returns the value of PresencePenalty. +func (s *MessagesRequest) GetPresencePenalty() OptFloat64 { + return s.PresencePenalty +} + +// GetRepetitionPenalty returns the value of RepetitionPenalty. +func (s *MessagesRequest) GetRepetitionPenalty() OptFloat64 { + return s.RepetitionPenalty +} + +// GetOutputFormat returns the value of OutputFormat. +func (s *MessagesRequest) GetOutputFormat() OptMessagesOutputFormat { + return s.OutputFormat +} + +// GetStopSequences returns the value of StopSequences. +func (s *MessagesRequest) GetStopSequences() OptMessagesStopSequences { + return s.StopSequences +} + +// GetStream returns the value of Stream. +func (s *MessagesRequest) GetStream() OptBool { + return s.Stream +} + +// GetStreamOptions returns the value of StreamOptions. +func (s *MessagesRequest) GetStreamOptions() OptMessagesStreamOptions { + return s.StreamOptions +} + +// GetTemperature returns the value of Temperature. +func (s *MessagesRequest) GetTemperature() OptFloat64 { + return s.Temperature +} + +// GetToolChoice returns the value of ToolChoice. +func (s *MessagesRequest) GetToolChoice() OptMessagesToolChoice { + return s.ToolChoice +} + +// GetTools returns the value of Tools. +func (s *MessagesRequest) GetTools() []MessagesTool { + return s.Tools +} + +// GetTopLogprobs returns the value of TopLogprobs. +func (s *MessagesRequest) GetTopLogprobs() OptInt32 { + return s.TopLogprobs +} + +// GetTopP returns the value of TopP. +func (s *MessagesRequest) GetTopP() OptFloat64 { + return s.TopP +} + +// GetServiceTier returns the value of ServiceTier. +func (s *MessagesRequest) GetServiceTier() OptMessagesRequestServiceTier { + return s.ServiceTier +} + +// GetThinking returns the value of Thinking. +func (s *MessagesRequest) GetThinking() OptMessagesThinking { + return s.Thinking +} + +// GetOutputConfig returns the value of OutputConfig. +func (s *MessagesRequest) GetOutputConfig() OptMessagesOutputConfig { + return s.OutputConfig +} + +// GetMetadata returns the value of Metadata. +func (s *MessagesRequest) GetMetadata() OptMessagesMetadata { + return s.Metadata +} + +// GetContextManagement returns the value of ContextManagement. +func (s *MessagesRequest) GetContextManagement() OptMessagesContextManagement { + return s.ContextManagement +} + +// SetMessages sets the value of Messages. +func (s *MessagesRequest) SetMessages(val []MessagesRequestMessage) { + s.Messages = val +} + +// SetModel sets the value of Model. +func (s *MessagesRequest) SetModel(val string) { + s.Model = val +} + +// SetSystem sets the value of System. +func (s *MessagesRequest) SetSystem(val OptMessagesSystem) { + s.System = val +} + +// SetFrequencyPenalty sets the value of FrequencyPenalty. +func (s *MessagesRequest) SetFrequencyPenalty(val OptFloat64) { + s.FrequencyPenalty = val +} + +// SetLogitBias sets the value of LogitBias. +func (s *MessagesRequest) SetLogitBias(val OptMessagesRequestLogitBias) { + s.LogitBias = val +} + +// SetLogprobs sets the value of Logprobs. +func (s *MessagesRequest) SetLogprobs(val OptBool) { + s.Logprobs = val +} + +// SetMaxTokens sets the value of MaxTokens. +func (s *MessagesRequest) SetMaxTokens(val OptInt32) { + s.MaxTokens = val +} + +// SetPresencePenalty sets the value of PresencePenalty. +func (s *MessagesRequest) SetPresencePenalty(val OptFloat64) { + s.PresencePenalty = val +} + +// SetRepetitionPenalty sets the value of RepetitionPenalty. +func (s *MessagesRequest) SetRepetitionPenalty(val OptFloat64) { + s.RepetitionPenalty = val +} + +// SetOutputFormat sets the value of OutputFormat. +func (s *MessagesRequest) SetOutputFormat(val OptMessagesOutputFormat) { + s.OutputFormat = val +} + +// SetStopSequences sets the value of StopSequences. +func (s *MessagesRequest) SetStopSequences(val OptMessagesStopSequences) { + s.StopSequences = val +} + +// SetStream sets the value of Stream. +func (s *MessagesRequest) SetStream(val OptBool) { + s.Stream = val +} + +// SetStreamOptions sets the value of StreamOptions. +func (s *MessagesRequest) SetStreamOptions(val OptMessagesStreamOptions) { + s.StreamOptions = val +} + +// SetTemperature sets the value of Temperature. +func (s *MessagesRequest) SetTemperature(val OptFloat64) { + s.Temperature = val +} + +// SetToolChoice sets the value of ToolChoice. +func (s *MessagesRequest) SetToolChoice(val OptMessagesToolChoice) { + s.ToolChoice = val +} + +// SetTools sets the value of Tools. +func (s *MessagesRequest) SetTools(val []MessagesTool) { + s.Tools = val +} + +// SetTopLogprobs sets the value of TopLogprobs. +func (s *MessagesRequest) SetTopLogprobs(val OptInt32) { + s.TopLogprobs = val +} + +// SetTopP sets the value of TopP. +func (s *MessagesRequest) SetTopP(val OptFloat64) { + s.TopP = val +} + +// SetServiceTier sets the value of ServiceTier. +func (s *MessagesRequest) SetServiceTier(val OptMessagesRequestServiceTier) { + s.ServiceTier = val +} + +// SetThinking sets the value of Thinking. +func (s *MessagesRequest) SetThinking(val OptMessagesThinking) { + s.Thinking = val +} + +// SetOutputConfig sets the value of OutputConfig. +func (s *MessagesRequest) SetOutputConfig(val OptMessagesOutputConfig) { + s.OutputConfig = val +} + +// SetMetadata sets the value of Metadata. +func (s *MessagesRequest) SetMetadata(val OptMessagesMetadata) { + s.Metadata = val +} + +// SetContextManagement sets the value of ContextManagement. +func (s *MessagesRequest) SetContextManagement(val OptMessagesContextManagement) { + s.ContextManagement = val +} + +// Modify the likelihood of token IDs appearing in the response. Values +// range from -100 to 100. +type MessagesRequestLogitBias map[string]float32 + +func (s *MessagesRequestLogitBias) init() MessagesRequestLogitBias { + m := *s + if m == nil { + m = map[string]float32{} + *s = m + } + return m +} + +// Ref: #/components/schemas/MessagesRequestMessage +type MessagesRequestMessage struct { + // The role of the message author. + Role MessagesRole `json:"role"` + // The contents of the message. + Content MessagesMessageContent `json:"content"` +} + +// GetRole returns the value of Role. +func (s *MessagesRequestMessage) GetRole() MessagesRole { + return s.Role +} + +// GetContent returns the value of Content. +func (s *MessagesRequestMessage) GetContent() MessagesMessageContent { + return s.Content +} + +// SetRole sets the value of Role. +func (s *MessagesRequestMessage) SetRole(val MessagesRole) { + s.Role = val +} + +// SetContent sets the value of Content. +func (s *MessagesRequestMessage) SetContent(val MessagesMessageContent) { + s.Content = val +} + +// Ref: #/components/schemas/MessagesRequestServiceTier +type MessagesRequestServiceTier string + +const ( + MessagesRequestServiceTierAuto MessagesRequestServiceTier = "auto" + MessagesRequestServiceTierDefault MessagesRequestServiceTier = "default" +) + +// AllValues returns all MessagesRequestServiceTier values. +func (MessagesRequestServiceTier) AllValues() []MessagesRequestServiceTier { + return []MessagesRequestServiceTier{ + MessagesRequestServiceTierAuto, + MessagesRequestServiceTierDefault, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s MessagesRequestServiceTier) MarshalText() ([]byte, error) { + switch s { + case MessagesRequestServiceTierAuto: + return []byte(s), nil + case MessagesRequestServiceTierDefault: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *MessagesRequestServiceTier) UnmarshalText(data []byte) error { + switch MessagesRequestServiceTier(data) { + case MessagesRequestServiceTierAuto: + *s = MessagesRequestServiceTierAuto + return nil + case MessagesRequestServiceTierDefault: + *s = MessagesRequestServiceTierDefault + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// A Messages API response. +// Ref: #/components/schemas/MessagesResponse +type MessagesResponse struct { + // A unique identifier for the response. + ID string `json:"id"` + // The response object type. Always `message`. + Type MessagesResponseType `json:"type"` + // The response role. Always `assistant`. + Role MessagesResponseRole `json:"role"` + // The model used to generate the response. + Model string `json:"model"` + // Service status such as model fallback information. + ServiceStatus OptMessagesServiceStatus `json:"service_status"` + // Content generated by the model. + Content []MessagesResponseContentPart `json:"content"` + // The reason the model stopped generating tokens. + StopReason OptMessagesResponseStopReason `json:"stop_reason"` + // The custom stop sequence that was generated, if any. + StopSequence OptString `json:"stop_sequence"` + // Usage statistics for this request. + Usage OptMessagesUsage `json:"usage"` +} + +// GetID returns the value of ID. +func (s *MessagesResponse) GetID() string { + return s.ID +} + +// GetType returns the value of Type. +func (s *MessagesResponse) GetType() MessagesResponseType { + return s.Type +} + +// GetRole returns the value of Role. +func (s *MessagesResponse) GetRole() MessagesResponseRole { + return s.Role +} + +// GetModel returns the value of Model. +func (s *MessagesResponse) GetModel() string { + return s.Model +} + +// GetServiceStatus returns the value of ServiceStatus. +func (s *MessagesResponse) GetServiceStatus() OptMessagesServiceStatus { + return s.ServiceStatus +} + +// GetContent returns the value of Content. +func (s *MessagesResponse) GetContent() []MessagesResponseContentPart { + return s.Content +} + +// GetStopReason returns the value of StopReason. +func (s *MessagesResponse) GetStopReason() OptMessagesResponseStopReason { + return s.StopReason +} + +// GetStopSequence returns the value of StopSequence. +func (s *MessagesResponse) GetStopSequence() OptString { + return s.StopSequence +} + +// GetUsage returns the value of Usage. +func (s *MessagesResponse) GetUsage() OptMessagesUsage { + return s.Usage +} + +// SetID sets the value of ID. +func (s *MessagesResponse) SetID(val string) { + s.ID = val +} + +// SetType sets the value of Type. +func (s *MessagesResponse) SetType(val MessagesResponseType) { + s.Type = val +} + +// SetRole sets the value of Role. +func (s *MessagesResponse) SetRole(val MessagesResponseRole) { + s.Role = val +} + +// SetModel sets the value of Model. +func (s *MessagesResponse) SetModel(val string) { + s.Model = val +} + +// SetServiceStatus sets the value of ServiceStatus. +func (s *MessagesResponse) SetServiceStatus(val OptMessagesServiceStatus) { + s.ServiceStatus = val +} + +// SetContent sets the value of Content. +func (s *MessagesResponse) SetContent(val []MessagesResponseContentPart) { + s.Content = val +} + +// SetStopReason sets the value of StopReason. +func (s *MessagesResponse) SetStopReason(val OptMessagesResponseStopReason) { + s.StopReason = val +} + +// SetStopSequence sets the value of StopSequence. +func (s *MessagesResponse) SetStopSequence(val OptString) { + s.StopSequence = val +} + +// SetUsage sets the value of Usage. +func (s *MessagesResponse) SetUsage(val OptMessagesUsage) { + s.Usage = val +} + +func (*MessagesResponse) messagesCreateRes() {} + +// Ref: #/components/schemas/MessagesResponseContentBlock +type MessagesResponseContentBlock struct { + Type MessagesResponseContentBlockType `json:"type"` + Index int32 `json:"index"` + Delta MessagesResponseContentBlockDelta `json:"delta"` +} + +// GetType returns the value of Type. +func (s *MessagesResponseContentBlock) GetType() MessagesResponseContentBlockType { + return s.Type +} + +// GetIndex returns the value of Index. +func (s *MessagesResponseContentBlock) GetIndex() int32 { + return s.Index +} + +// GetDelta returns the value of Delta. +func (s *MessagesResponseContentBlock) GetDelta() MessagesResponseContentBlockDelta { + return s.Delta +} + +// SetType sets the value of Type. +func (s *MessagesResponseContentBlock) SetType(val MessagesResponseContentBlockType) { + s.Type = val +} + +// SetIndex sets the value of Index. +func (s *MessagesResponseContentBlock) SetIndex(val int32) { + s.Index = val +} + +// SetDelta sets the value of Delta. +func (s *MessagesResponseContentBlock) SetDelta(val MessagesResponseContentBlockDelta) { + s.Delta = val +} + +// Ref: #/components/schemas/MessagesResponseContentBlockDelta +type MessagesResponseContentBlockDelta struct { + OneOf MessagesResponseContentBlockDeltaSum +} + +// GetOneOf returns the value of OneOf. +func (s *MessagesResponseContentBlockDelta) GetOneOf() MessagesResponseContentBlockDeltaSum { + return s.OneOf +} + +// SetOneOf sets the value of OneOf. +func (s *MessagesResponseContentBlockDelta) SetOneOf(val MessagesResponseContentBlockDeltaSum) { + s.OneOf = val +} + +// Ref: #/components/schemas/MessagesResponseContentBlockDeltaSignature +type MessagesResponseContentBlockDeltaSignature struct { + Type MessagesResponseContentBlockDeltaSignatureType `json:"type"` + Signature string `json:"signature"` +} + +// GetType returns the value of Type. +func (s *MessagesResponseContentBlockDeltaSignature) GetType() MessagesResponseContentBlockDeltaSignatureType { + return s.Type +} + +// GetSignature returns the value of Signature. +func (s *MessagesResponseContentBlockDeltaSignature) GetSignature() string { + return s.Signature +} + +// SetType sets the value of Type. +func (s *MessagesResponseContentBlockDeltaSignature) SetType(val MessagesResponseContentBlockDeltaSignatureType) { + s.Type = val +} + +// SetSignature sets the value of Signature. +func (s *MessagesResponseContentBlockDeltaSignature) SetSignature(val string) { + s.Signature = val +} + +type MessagesResponseContentBlockDeltaSignatureType string + +const ( + MessagesResponseContentBlockDeltaSignatureTypeSignatureDelta MessagesResponseContentBlockDeltaSignatureType = "signature_delta" +) + +// AllValues returns all MessagesResponseContentBlockDeltaSignatureType values. +func (MessagesResponseContentBlockDeltaSignatureType) AllValues() []MessagesResponseContentBlockDeltaSignatureType { + return []MessagesResponseContentBlockDeltaSignatureType{ + MessagesResponseContentBlockDeltaSignatureTypeSignatureDelta, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s MessagesResponseContentBlockDeltaSignatureType) MarshalText() ([]byte, error) { + switch s { + case MessagesResponseContentBlockDeltaSignatureTypeSignatureDelta: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *MessagesResponseContentBlockDeltaSignatureType) UnmarshalText(data []byte) error { + switch MessagesResponseContentBlockDeltaSignatureType(data) { + case MessagesResponseContentBlockDeltaSignatureTypeSignatureDelta: + *s = MessagesResponseContentBlockDeltaSignatureTypeSignatureDelta + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// MessagesResponseContentBlockDeltaSum represents sum type. +type MessagesResponseContentBlockDeltaSum struct { + Type MessagesResponseContentBlockDeltaSumType // switch on this field + MessagesResponseContentBlockDeltaText MessagesResponseContentBlockDeltaText + MessagesResponseContentBlockDeltaThinking MessagesResponseContentBlockDeltaThinking + MessagesResponseContentBlockDeltaSignature MessagesResponseContentBlockDeltaSignature + MessagesResponseContentBlockDeltaToolUse MessagesResponseContentBlockDeltaToolUse +} + +// MessagesResponseContentBlockDeltaSumType is oneOf type of MessagesResponseContentBlockDeltaSum. +type MessagesResponseContentBlockDeltaSumType string + +// Possible values for MessagesResponseContentBlockDeltaSumType. +const ( + MessagesResponseContentBlockDeltaTextMessagesResponseContentBlockDeltaSum MessagesResponseContentBlockDeltaSumType = "text_delta" + MessagesResponseContentBlockDeltaThinkingMessagesResponseContentBlockDeltaSum MessagesResponseContentBlockDeltaSumType = "thinking_delta" + MessagesResponseContentBlockDeltaSignatureMessagesResponseContentBlockDeltaSum MessagesResponseContentBlockDeltaSumType = "signature_delta" + MessagesResponseContentBlockDeltaToolUseMessagesResponseContentBlockDeltaSum MessagesResponseContentBlockDeltaSumType = "input_json_delta" +) + +// IsMessagesResponseContentBlockDeltaText reports whether MessagesResponseContentBlockDeltaSum is MessagesResponseContentBlockDeltaText. +func (s MessagesResponseContentBlockDeltaSum) IsMessagesResponseContentBlockDeltaText() bool { + return s.Type == MessagesResponseContentBlockDeltaTextMessagesResponseContentBlockDeltaSum +} + +// IsMessagesResponseContentBlockDeltaThinking reports whether MessagesResponseContentBlockDeltaSum is MessagesResponseContentBlockDeltaThinking. +func (s MessagesResponseContentBlockDeltaSum) IsMessagesResponseContentBlockDeltaThinking() bool { + return s.Type == MessagesResponseContentBlockDeltaThinkingMessagesResponseContentBlockDeltaSum +} + +// IsMessagesResponseContentBlockDeltaSignature reports whether MessagesResponseContentBlockDeltaSum is MessagesResponseContentBlockDeltaSignature. +func (s MessagesResponseContentBlockDeltaSum) IsMessagesResponseContentBlockDeltaSignature() bool { + return s.Type == MessagesResponseContentBlockDeltaSignatureMessagesResponseContentBlockDeltaSum +} + +// IsMessagesResponseContentBlockDeltaToolUse reports whether MessagesResponseContentBlockDeltaSum is MessagesResponseContentBlockDeltaToolUse. +func (s MessagesResponseContentBlockDeltaSum) IsMessagesResponseContentBlockDeltaToolUse() bool { + return s.Type == MessagesResponseContentBlockDeltaToolUseMessagesResponseContentBlockDeltaSum +} + +// SetMessagesResponseContentBlockDeltaText sets MessagesResponseContentBlockDeltaSum to MessagesResponseContentBlockDeltaText. +func (s *MessagesResponseContentBlockDeltaSum) SetMessagesResponseContentBlockDeltaText(v MessagesResponseContentBlockDeltaText) { + s.Type = MessagesResponseContentBlockDeltaTextMessagesResponseContentBlockDeltaSum + s.MessagesResponseContentBlockDeltaText = v +} + +// GetMessagesResponseContentBlockDeltaText returns MessagesResponseContentBlockDeltaText and true boolean if MessagesResponseContentBlockDeltaSum is MessagesResponseContentBlockDeltaText. +func (s MessagesResponseContentBlockDeltaSum) GetMessagesResponseContentBlockDeltaText() (v MessagesResponseContentBlockDeltaText, ok bool) { + if !s.IsMessagesResponseContentBlockDeltaText() { + return v, false + } + return s.MessagesResponseContentBlockDeltaText, true +} + +// NewMessagesResponseContentBlockDeltaTextMessagesResponseContentBlockDeltaSum returns new MessagesResponseContentBlockDeltaSum from MessagesResponseContentBlockDeltaText. +func NewMessagesResponseContentBlockDeltaTextMessagesResponseContentBlockDeltaSum(v MessagesResponseContentBlockDeltaText) MessagesResponseContentBlockDeltaSum { + var s MessagesResponseContentBlockDeltaSum + s.SetMessagesResponseContentBlockDeltaText(v) + return s +} + +// SetMessagesResponseContentBlockDeltaThinking sets MessagesResponseContentBlockDeltaSum to MessagesResponseContentBlockDeltaThinking. +func (s *MessagesResponseContentBlockDeltaSum) SetMessagesResponseContentBlockDeltaThinking(v MessagesResponseContentBlockDeltaThinking) { + s.Type = MessagesResponseContentBlockDeltaThinkingMessagesResponseContentBlockDeltaSum + s.MessagesResponseContentBlockDeltaThinking = v +} + +// GetMessagesResponseContentBlockDeltaThinking returns MessagesResponseContentBlockDeltaThinking and true boolean if MessagesResponseContentBlockDeltaSum is MessagesResponseContentBlockDeltaThinking. +func (s MessagesResponseContentBlockDeltaSum) GetMessagesResponseContentBlockDeltaThinking() (v MessagesResponseContentBlockDeltaThinking, ok bool) { + if !s.IsMessagesResponseContentBlockDeltaThinking() { + return v, false + } + return s.MessagesResponseContentBlockDeltaThinking, true +} + +// NewMessagesResponseContentBlockDeltaThinkingMessagesResponseContentBlockDeltaSum returns new MessagesResponseContentBlockDeltaSum from MessagesResponseContentBlockDeltaThinking. +func NewMessagesResponseContentBlockDeltaThinkingMessagesResponseContentBlockDeltaSum(v MessagesResponseContentBlockDeltaThinking) MessagesResponseContentBlockDeltaSum { + var s MessagesResponseContentBlockDeltaSum + s.SetMessagesResponseContentBlockDeltaThinking(v) + return s +} + +// SetMessagesResponseContentBlockDeltaSignature sets MessagesResponseContentBlockDeltaSum to MessagesResponseContentBlockDeltaSignature. +func (s *MessagesResponseContentBlockDeltaSum) SetMessagesResponseContentBlockDeltaSignature(v MessagesResponseContentBlockDeltaSignature) { + s.Type = MessagesResponseContentBlockDeltaSignatureMessagesResponseContentBlockDeltaSum + s.MessagesResponseContentBlockDeltaSignature = v +} + +// GetMessagesResponseContentBlockDeltaSignature returns MessagesResponseContentBlockDeltaSignature and true boolean if MessagesResponseContentBlockDeltaSum is MessagesResponseContentBlockDeltaSignature. +func (s MessagesResponseContentBlockDeltaSum) GetMessagesResponseContentBlockDeltaSignature() (v MessagesResponseContentBlockDeltaSignature, ok bool) { + if !s.IsMessagesResponseContentBlockDeltaSignature() { + return v, false + } + return s.MessagesResponseContentBlockDeltaSignature, true +} + +// NewMessagesResponseContentBlockDeltaSignatureMessagesResponseContentBlockDeltaSum returns new MessagesResponseContentBlockDeltaSum from MessagesResponseContentBlockDeltaSignature. +func NewMessagesResponseContentBlockDeltaSignatureMessagesResponseContentBlockDeltaSum(v MessagesResponseContentBlockDeltaSignature) MessagesResponseContentBlockDeltaSum { + var s MessagesResponseContentBlockDeltaSum + s.SetMessagesResponseContentBlockDeltaSignature(v) + return s +} + +// SetMessagesResponseContentBlockDeltaToolUse sets MessagesResponseContentBlockDeltaSum to MessagesResponseContentBlockDeltaToolUse. +func (s *MessagesResponseContentBlockDeltaSum) SetMessagesResponseContentBlockDeltaToolUse(v MessagesResponseContentBlockDeltaToolUse) { + s.Type = MessagesResponseContentBlockDeltaToolUseMessagesResponseContentBlockDeltaSum + s.MessagesResponseContentBlockDeltaToolUse = v +} + +// GetMessagesResponseContentBlockDeltaToolUse returns MessagesResponseContentBlockDeltaToolUse and true boolean if MessagesResponseContentBlockDeltaSum is MessagesResponseContentBlockDeltaToolUse. +func (s MessagesResponseContentBlockDeltaSum) GetMessagesResponseContentBlockDeltaToolUse() (v MessagesResponseContentBlockDeltaToolUse, ok bool) { + if !s.IsMessagesResponseContentBlockDeltaToolUse() { + return v, false + } + return s.MessagesResponseContentBlockDeltaToolUse, true +} + +// NewMessagesResponseContentBlockDeltaToolUseMessagesResponseContentBlockDeltaSum returns new MessagesResponseContentBlockDeltaSum from MessagesResponseContentBlockDeltaToolUse. +func NewMessagesResponseContentBlockDeltaToolUseMessagesResponseContentBlockDeltaSum(v MessagesResponseContentBlockDeltaToolUse) MessagesResponseContentBlockDeltaSum { + var s MessagesResponseContentBlockDeltaSum + s.SetMessagesResponseContentBlockDeltaToolUse(v) + return s +} + +// Ref: #/components/schemas/MessagesResponseContentBlockDeltaText +type MessagesResponseContentBlockDeltaText struct { + Type MessagesResponseContentBlockDeltaTextType `json:"type"` + Text string `json:"text"` +} + +// GetType returns the value of Type. +func (s *MessagesResponseContentBlockDeltaText) GetType() MessagesResponseContentBlockDeltaTextType { + return s.Type +} + +// GetText returns the value of Text. +func (s *MessagesResponseContentBlockDeltaText) GetText() string { + return s.Text +} + +// SetType sets the value of Type. +func (s *MessagesResponseContentBlockDeltaText) SetType(val MessagesResponseContentBlockDeltaTextType) { + s.Type = val +} + +// SetText sets the value of Text. +func (s *MessagesResponseContentBlockDeltaText) SetText(val string) { + s.Text = val +} + +type MessagesResponseContentBlockDeltaTextType string + +const ( + MessagesResponseContentBlockDeltaTextTypeTextDelta MessagesResponseContentBlockDeltaTextType = "text_delta" +) + +// AllValues returns all MessagesResponseContentBlockDeltaTextType values. +func (MessagesResponseContentBlockDeltaTextType) AllValues() []MessagesResponseContentBlockDeltaTextType { + return []MessagesResponseContentBlockDeltaTextType{ + MessagesResponseContentBlockDeltaTextTypeTextDelta, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s MessagesResponseContentBlockDeltaTextType) MarshalText() ([]byte, error) { + switch s { + case MessagesResponseContentBlockDeltaTextTypeTextDelta: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *MessagesResponseContentBlockDeltaTextType) UnmarshalText(data []byte) error { + switch MessagesResponseContentBlockDeltaTextType(data) { + case MessagesResponseContentBlockDeltaTextTypeTextDelta: + *s = MessagesResponseContentBlockDeltaTextTypeTextDelta + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/MessagesResponseContentBlockDeltaThinking +type MessagesResponseContentBlockDeltaThinking struct { + Type MessagesResponseContentBlockDeltaThinkingType `json:"type"` + Thinking string `json:"thinking"` +} + +// GetType returns the value of Type. +func (s *MessagesResponseContentBlockDeltaThinking) GetType() MessagesResponseContentBlockDeltaThinkingType { + return s.Type +} + +// GetThinking returns the value of Thinking. +func (s *MessagesResponseContentBlockDeltaThinking) GetThinking() string { + return s.Thinking +} + +// SetType sets the value of Type. +func (s *MessagesResponseContentBlockDeltaThinking) SetType(val MessagesResponseContentBlockDeltaThinkingType) { + s.Type = val +} + +// SetThinking sets the value of Thinking. +func (s *MessagesResponseContentBlockDeltaThinking) SetThinking(val string) { + s.Thinking = val +} + +type MessagesResponseContentBlockDeltaThinkingType string + +const ( + MessagesResponseContentBlockDeltaThinkingTypeThinkingDelta MessagesResponseContentBlockDeltaThinkingType = "thinking_delta" +) + +// AllValues returns all MessagesResponseContentBlockDeltaThinkingType values. +func (MessagesResponseContentBlockDeltaThinkingType) AllValues() []MessagesResponseContentBlockDeltaThinkingType { + return []MessagesResponseContentBlockDeltaThinkingType{ + MessagesResponseContentBlockDeltaThinkingTypeThinkingDelta, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s MessagesResponseContentBlockDeltaThinkingType) MarshalText() ([]byte, error) { + switch s { + case MessagesResponseContentBlockDeltaThinkingTypeThinkingDelta: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *MessagesResponseContentBlockDeltaThinkingType) UnmarshalText(data []byte) error { + switch MessagesResponseContentBlockDeltaThinkingType(data) { + case MessagesResponseContentBlockDeltaThinkingTypeThinkingDelta: + *s = MessagesResponseContentBlockDeltaThinkingTypeThinkingDelta + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/MessagesResponseContentBlockDeltaToolUse +type MessagesResponseContentBlockDeltaToolUse struct { + Type MessagesResponseContentBlockDeltaToolUseType `json:"type"` + PartialJSON string `json:"partial_json"` +} + +// GetType returns the value of Type. +func (s *MessagesResponseContentBlockDeltaToolUse) GetType() MessagesResponseContentBlockDeltaToolUseType { + return s.Type +} + +// GetPartialJSON returns the value of PartialJSON. +func (s *MessagesResponseContentBlockDeltaToolUse) GetPartialJSON() string { + return s.PartialJSON +} + +// SetType sets the value of Type. +func (s *MessagesResponseContentBlockDeltaToolUse) SetType(val MessagesResponseContentBlockDeltaToolUseType) { + s.Type = val +} + +// SetPartialJSON sets the value of PartialJSON. +func (s *MessagesResponseContentBlockDeltaToolUse) SetPartialJSON(val string) { + s.PartialJSON = val +} + +type MessagesResponseContentBlockDeltaToolUseType string + +const ( + MessagesResponseContentBlockDeltaToolUseTypeInputJSONDelta MessagesResponseContentBlockDeltaToolUseType = "input_json_delta" +) + +// AllValues returns all MessagesResponseContentBlockDeltaToolUseType values. +func (MessagesResponseContentBlockDeltaToolUseType) AllValues() []MessagesResponseContentBlockDeltaToolUseType { + return []MessagesResponseContentBlockDeltaToolUseType{ + MessagesResponseContentBlockDeltaToolUseTypeInputJSONDelta, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s MessagesResponseContentBlockDeltaToolUseType) MarshalText() ([]byte, error) { + switch s { + case MessagesResponseContentBlockDeltaToolUseTypeInputJSONDelta: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *MessagesResponseContentBlockDeltaToolUseType) UnmarshalText(data []byte) error { + switch MessagesResponseContentBlockDeltaToolUseType(data) { + case MessagesResponseContentBlockDeltaToolUseTypeInputJSONDelta: + *s = MessagesResponseContentBlockDeltaToolUseTypeInputJSONDelta + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/MessagesResponseContentBlockStop +type MessagesResponseContentBlockStop struct { + Type MessagesResponseContentBlockStopType `json:"type"` + Index int32 `json:"index"` +} + +// GetType returns the value of Type. +func (s *MessagesResponseContentBlockStop) GetType() MessagesResponseContentBlockStopType { + return s.Type +} + +// GetIndex returns the value of Index. +func (s *MessagesResponseContentBlockStop) GetIndex() int32 { + return s.Index +} + +// SetType sets the value of Type. +func (s *MessagesResponseContentBlockStop) SetType(val MessagesResponseContentBlockStopType) { + s.Type = val +} + +// SetIndex sets the value of Index. +func (s *MessagesResponseContentBlockStop) SetIndex(val int32) { + s.Index = val +} + +type MessagesResponseContentBlockStopType string + +const ( + MessagesResponseContentBlockStopTypeContentBlockStop MessagesResponseContentBlockStopType = "content_block_stop" +) + +// AllValues returns all MessagesResponseContentBlockStopType values. +func (MessagesResponseContentBlockStopType) AllValues() []MessagesResponseContentBlockStopType { + return []MessagesResponseContentBlockStopType{ + MessagesResponseContentBlockStopTypeContentBlockStop, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s MessagesResponseContentBlockStopType) MarshalText() ([]byte, error) { + switch s { + case MessagesResponseContentBlockStopTypeContentBlockStop: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *MessagesResponseContentBlockStopType) UnmarshalText(data []byte) error { + switch MessagesResponseContentBlockStopType(data) { + case MessagesResponseContentBlockStopTypeContentBlockStop: + *s = MessagesResponseContentBlockStopTypeContentBlockStop + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +type MessagesResponseContentBlockType string + +const ( + MessagesResponseContentBlockTypeContentBlockDelta MessagesResponseContentBlockType = "content_block_delta" +) + +// AllValues returns all MessagesResponseContentBlockType values. +func (MessagesResponseContentBlockType) AllValues() []MessagesResponseContentBlockType { + return []MessagesResponseContentBlockType{ + MessagesResponseContentBlockTypeContentBlockDelta, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s MessagesResponseContentBlockType) MarshalText() ([]byte, error) { + switch s { + case MessagesResponseContentBlockTypeContentBlockDelta: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *MessagesResponseContentBlockType) UnmarshalText(data []byte) error { + switch MessagesResponseContentBlockType(data) { + case MessagesResponseContentBlockTypeContentBlockDelta: + *s = MessagesResponseContentBlockTypeContentBlockDelta + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/MessagesResponseContentPart +type MessagesResponseContentPart struct { + OneOf MessagesResponseContentPartSum +} + +// GetOneOf returns the value of OneOf. +func (s *MessagesResponseContentPart) GetOneOf() MessagesResponseContentPartSum { + return s.OneOf +} + +// SetOneOf sets the value of OneOf. +func (s *MessagesResponseContentPart) SetOneOf(val MessagesResponseContentPartSum) { + s.OneOf = val +} + +// Ref: #/components/schemas/MessagesResponseContentPartServerToolUse +type MessagesResponseContentPartServerToolUse struct { + Type MessagesResponseContentPartServerToolUseType `json:"type"` + ID string `json:"id"` + Name string `json:"name"` + Input MessagesResponseContentPartServerToolUseInput `json:"input"` +} + +// GetType returns the value of Type. +func (s *MessagesResponseContentPartServerToolUse) GetType() MessagesResponseContentPartServerToolUseType { + return s.Type +} + +// GetID returns the value of ID. +func (s *MessagesResponseContentPartServerToolUse) GetID() string { + return s.ID +} + +// GetName returns the value of Name. +func (s *MessagesResponseContentPartServerToolUse) GetName() string { + return s.Name +} + +// GetInput returns the value of Input. +func (s *MessagesResponseContentPartServerToolUse) GetInput() MessagesResponseContentPartServerToolUseInput { + return s.Input +} + +// SetType sets the value of Type. +func (s *MessagesResponseContentPartServerToolUse) SetType(val MessagesResponseContentPartServerToolUseType) { + s.Type = val +} + +// SetID sets the value of ID. +func (s *MessagesResponseContentPartServerToolUse) SetID(val string) { + s.ID = val +} + +// SetName sets the value of Name. +func (s *MessagesResponseContentPartServerToolUse) SetName(val string) { + s.Name = val +} + +// SetInput sets the value of Input. +func (s *MessagesResponseContentPartServerToolUse) SetInput(val MessagesResponseContentPartServerToolUseInput) { + s.Input = val +} + +type MessagesResponseContentPartServerToolUseInput map[string]jx.Raw + +func (s *MessagesResponseContentPartServerToolUseInput) init() MessagesResponseContentPartServerToolUseInput { + m := *s + if m == nil { + m = map[string]jx.Raw{} + *s = m + } + return m +} + +type MessagesResponseContentPartServerToolUseType string + +const ( + MessagesResponseContentPartServerToolUseTypeServerToolUse MessagesResponseContentPartServerToolUseType = "server_tool_use" +) + +// AllValues returns all MessagesResponseContentPartServerToolUseType values. +func (MessagesResponseContentPartServerToolUseType) AllValues() []MessagesResponseContentPartServerToolUseType { + return []MessagesResponseContentPartServerToolUseType{ + MessagesResponseContentPartServerToolUseTypeServerToolUse, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s MessagesResponseContentPartServerToolUseType) MarshalText() ([]byte, error) { + switch s { + case MessagesResponseContentPartServerToolUseTypeServerToolUse: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *MessagesResponseContentPartServerToolUseType) UnmarshalText(data []byte) error { + switch MessagesResponseContentPartServerToolUseType(data) { + case MessagesResponseContentPartServerToolUseTypeServerToolUse: + *s = MessagesResponseContentPartServerToolUseTypeServerToolUse + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// MessagesResponseContentPartSum represents sum type. +type MessagesResponseContentPartSum struct { + Type MessagesResponseContentPartSumType // switch on this field + MessagesResponseContentPartText MessagesResponseContentPartText + MessagesResponseContentPartThinking MessagesResponseContentPartThinking + MessagesResponseContentPartToolUse MessagesResponseContentPartToolUse + MessagesResponseContentPartServerToolUse MessagesResponseContentPartServerToolUse + MessagesResponseContentPartWebSearchToolResult MessagesResponseContentPartWebSearchToolResult +} + +// MessagesResponseContentPartSumType is oneOf type of MessagesResponseContentPartSum. +type MessagesResponseContentPartSumType string + +// Possible values for MessagesResponseContentPartSumType. +const ( + MessagesResponseContentPartTextMessagesResponseContentPartSum MessagesResponseContentPartSumType = "text" + MessagesResponseContentPartThinkingMessagesResponseContentPartSum MessagesResponseContentPartSumType = "thinking" + MessagesResponseContentPartToolUseMessagesResponseContentPartSum MessagesResponseContentPartSumType = "tool_use" + MessagesResponseContentPartServerToolUseMessagesResponseContentPartSum MessagesResponseContentPartSumType = "server_tool_use" + MessagesResponseContentPartWebSearchToolResultMessagesResponseContentPartSum MessagesResponseContentPartSumType = "web_search_tool_result" +) + +// IsMessagesResponseContentPartText reports whether MessagesResponseContentPartSum is MessagesResponseContentPartText. +func (s MessagesResponseContentPartSum) IsMessagesResponseContentPartText() bool { + return s.Type == MessagesResponseContentPartTextMessagesResponseContentPartSum +} + +// IsMessagesResponseContentPartThinking reports whether MessagesResponseContentPartSum is MessagesResponseContentPartThinking. +func (s MessagesResponseContentPartSum) IsMessagesResponseContentPartThinking() bool { + return s.Type == MessagesResponseContentPartThinkingMessagesResponseContentPartSum +} + +// IsMessagesResponseContentPartToolUse reports whether MessagesResponseContentPartSum is MessagesResponseContentPartToolUse. +func (s MessagesResponseContentPartSum) IsMessagesResponseContentPartToolUse() bool { + return s.Type == MessagesResponseContentPartToolUseMessagesResponseContentPartSum +} + +// IsMessagesResponseContentPartServerToolUse reports whether MessagesResponseContentPartSum is MessagesResponseContentPartServerToolUse. +func (s MessagesResponseContentPartSum) IsMessagesResponseContentPartServerToolUse() bool { + return s.Type == MessagesResponseContentPartServerToolUseMessagesResponseContentPartSum +} + +// IsMessagesResponseContentPartWebSearchToolResult reports whether MessagesResponseContentPartSum is MessagesResponseContentPartWebSearchToolResult. +func (s MessagesResponseContentPartSum) IsMessagesResponseContentPartWebSearchToolResult() bool { + return s.Type == MessagesResponseContentPartWebSearchToolResultMessagesResponseContentPartSum +} + +// SetMessagesResponseContentPartText sets MessagesResponseContentPartSum to MessagesResponseContentPartText. +func (s *MessagesResponseContentPartSum) SetMessagesResponseContentPartText(v MessagesResponseContentPartText) { + s.Type = MessagesResponseContentPartTextMessagesResponseContentPartSum + s.MessagesResponseContentPartText = v +} + +// GetMessagesResponseContentPartText returns MessagesResponseContentPartText and true boolean if MessagesResponseContentPartSum is MessagesResponseContentPartText. +func (s MessagesResponseContentPartSum) GetMessagesResponseContentPartText() (v MessagesResponseContentPartText, ok bool) { + if !s.IsMessagesResponseContentPartText() { + return v, false + } + return s.MessagesResponseContentPartText, true +} + +// NewMessagesResponseContentPartTextMessagesResponseContentPartSum returns new MessagesResponseContentPartSum from MessagesResponseContentPartText. +func NewMessagesResponseContentPartTextMessagesResponseContentPartSum(v MessagesResponseContentPartText) MessagesResponseContentPartSum { + var s MessagesResponseContentPartSum + s.SetMessagesResponseContentPartText(v) + return s +} + +// SetMessagesResponseContentPartThinking sets MessagesResponseContentPartSum to MessagesResponseContentPartThinking. +func (s *MessagesResponseContentPartSum) SetMessagesResponseContentPartThinking(v MessagesResponseContentPartThinking) { + s.Type = MessagesResponseContentPartThinkingMessagesResponseContentPartSum + s.MessagesResponseContentPartThinking = v +} + +// GetMessagesResponseContentPartThinking returns MessagesResponseContentPartThinking and true boolean if MessagesResponseContentPartSum is MessagesResponseContentPartThinking. +func (s MessagesResponseContentPartSum) GetMessagesResponseContentPartThinking() (v MessagesResponseContentPartThinking, ok bool) { + if !s.IsMessagesResponseContentPartThinking() { + return v, false + } + return s.MessagesResponseContentPartThinking, true +} + +// NewMessagesResponseContentPartThinkingMessagesResponseContentPartSum returns new MessagesResponseContentPartSum from MessagesResponseContentPartThinking. +func NewMessagesResponseContentPartThinkingMessagesResponseContentPartSum(v MessagesResponseContentPartThinking) MessagesResponseContentPartSum { + var s MessagesResponseContentPartSum + s.SetMessagesResponseContentPartThinking(v) + return s +} + +// SetMessagesResponseContentPartToolUse sets MessagesResponseContentPartSum to MessagesResponseContentPartToolUse. +func (s *MessagesResponseContentPartSum) SetMessagesResponseContentPartToolUse(v MessagesResponseContentPartToolUse) { + s.Type = MessagesResponseContentPartToolUseMessagesResponseContentPartSum + s.MessagesResponseContentPartToolUse = v +} + +// GetMessagesResponseContentPartToolUse returns MessagesResponseContentPartToolUse and true boolean if MessagesResponseContentPartSum is MessagesResponseContentPartToolUse. +func (s MessagesResponseContentPartSum) GetMessagesResponseContentPartToolUse() (v MessagesResponseContentPartToolUse, ok bool) { + if !s.IsMessagesResponseContentPartToolUse() { + return v, false + } + return s.MessagesResponseContentPartToolUse, true +} + +// NewMessagesResponseContentPartToolUseMessagesResponseContentPartSum returns new MessagesResponseContentPartSum from MessagesResponseContentPartToolUse. +func NewMessagesResponseContentPartToolUseMessagesResponseContentPartSum(v MessagesResponseContentPartToolUse) MessagesResponseContentPartSum { + var s MessagesResponseContentPartSum + s.SetMessagesResponseContentPartToolUse(v) + return s +} + +// SetMessagesResponseContentPartServerToolUse sets MessagesResponseContentPartSum to MessagesResponseContentPartServerToolUse. +func (s *MessagesResponseContentPartSum) SetMessagesResponseContentPartServerToolUse(v MessagesResponseContentPartServerToolUse) { + s.Type = MessagesResponseContentPartServerToolUseMessagesResponseContentPartSum + s.MessagesResponseContentPartServerToolUse = v +} + +// GetMessagesResponseContentPartServerToolUse returns MessagesResponseContentPartServerToolUse and true boolean if MessagesResponseContentPartSum is MessagesResponseContentPartServerToolUse. +func (s MessagesResponseContentPartSum) GetMessagesResponseContentPartServerToolUse() (v MessagesResponseContentPartServerToolUse, ok bool) { + if !s.IsMessagesResponseContentPartServerToolUse() { + return v, false + } + return s.MessagesResponseContentPartServerToolUse, true +} + +// NewMessagesResponseContentPartServerToolUseMessagesResponseContentPartSum returns new MessagesResponseContentPartSum from MessagesResponseContentPartServerToolUse. +func NewMessagesResponseContentPartServerToolUseMessagesResponseContentPartSum(v MessagesResponseContentPartServerToolUse) MessagesResponseContentPartSum { + var s MessagesResponseContentPartSum + s.SetMessagesResponseContentPartServerToolUse(v) + return s +} + +// SetMessagesResponseContentPartWebSearchToolResult sets MessagesResponseContentPartSum to MessagesResponseContentPartWebSearchToolResult. +func (s *MessagesResponseContentPartSum) SetMessagesResponseContentPartWebSearchToolResult(v MessagesResponseContentPartWebSearchToolResult) { + s.Type = MessagesResponseContentPartWebSearchToolResultMessagesResponseContentPartSum + s.MessagesResponseContentPartWebSearchToolResult = v +} + +// GetMessagesResponseContentPartWebSearchToolResult returns MessagesResponseContentPartWebSearchToolResult and true boolean if MessagesResponseContentPartSum is MessagesResponseContentPartWebSearchToolResult. +func (s MessagesResponseContentPartSum) GetMessagesResponseContentPartWebSearchToolResult() (v MessagesResponseContentPartWebSearchToolResult, ok bool) { + if !s.IsMessagesResponseContentPartWebSearchToolResult() { + return v, false + } + return s.MessagesResponseContentPartWebSearchToolResult, true +} + +// NewMessagesResponseContentPartWebSearchToolResultMessagesResponseContentPartSum returns new MessagesResponseContentPartSum from MessagesResponseContentPartWebSearchToolResult. +func NewMessagesResponseContentPartWebSearchToolResultMessagesResponseContentPartSum(v MessagesResponseContentPartWebSearchToolResult) MessagesResponseContentPartSum { + var s MessagesResponseContentPartSum + s.SetMessagesResponseContentPartWebSearchToolResult(v) + return s +} + +// Ref: #/components/schemas/MessagesResponseContentPartText +type MessagesResponseContentPartText struct { + Type MessagesResponseContentPartTextType `json:"type"` + Text string `json:"text"` +} + +// GetType returns the value of Type. +func (s *MessagesResponseContentPartText) GetType() MessagesResponseContentPartTextType { + return s.Type +} + +// GetText returns the value of Text. +func (s *MessagesResponseContentPartText) GetText() string { + return s.Text +} + +// SetType sets the value of Type. +func (s *MessagesResponseContentPartText) SetType(val MessagesResponseContentPartTextType) { + s.Type = val +} + +// SetText sets the value of Text. +func (s *MessagesResponseContentPartText) SetText(val string) { + s.Text = val +} + +type MessagesResponseContentPartTextType string + +const ( + MessagesResponseContentPartTextTypeText MessagesResponseContentPartTextType = "text" +) + +// AllValues returns all MessagesResponseContentPartTextType values. +func (MessagesResponseContentPartTextType) AllValues() []MessagesResponseContentPartTextType { + return []MessagesResponseContentPartTextType{ + MessagesResponseContentPartTextTypeText, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s MessagesResponseContentPartTextType) MarshalText() ([]byte, error) { + switch s { + case MessagesResponseContentPartTextTypeText: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *MessagesResponseContentPartTextType) UnmarshalText(data []byte) error { + switch MessagesResponseContentPartTextType(data) { + case MessagesResponseContentPartTextTypeText: + *s = MessagesResponseContentPartTextTypeText + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/MessagesResponseContentPartThinking +type MessagesResponseContentPartThinking struct { + Type MessagesResponseContentPartThinkingType `json:"type"` + Thinking string `json:"thinking"` + Signature OptString `json:"signature"` +} + +// GetType returns the value of Type. +func (s *MessagesResponseContentPartThinking) GetType() MessagesResponseContentPartThinkingType { + return s.Type +} + +// GetThinking returns the value of Thinking. +func (s *MessagesResponseContentPartThinking) GetThinking() string { + return s.Thinking +} + +// GetSignature returns the value of Signature. +func (s *MessagesResponseContentPartThinking) GetSignature() OptString { + return s.Signature +} + +// SetType sets the value of Type. +func (s *MessagesResponseContentPartThinking) SetType(val MessagesResponseContentPartThinkingType) { + s.Type = val +} + +// SetThinking sets the value of Thinking. +func (s *MessagesResponseContentPartThinking) SetThinking(val string) { + s.Thinking = val +} + +// SetSignature sets the value of Signature. +func (s *MessagesResponseContentPartThinking) SetSignature(val OptString) { + s.Signature = val +} + +type MessagesResponseContentPartThinkingType string + +const ( + MessagesResponseContentPartThinkingTypeThinking MessagesResponseContentPartThinkingType = "thinking" +) + +// AllValues returns all MessagesResponseContentPartThinkingType values. +func (MessagesResponseContentPartThinkingType) AllValues() []MessagesResponseContentPartThinkingType { + return []MessagesResponseContentPartThinkingType{ + MessagesResponseContentPartThinkingTypeThinking, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s MessagesResponseContentPartThinkingType) MarshalText() ([]byte, error) { + switch s { + case MessagesResponseContentPartThinkingTypeThinking: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *MessagesResponseContentPartThinkingType) UnmarshalText(data []byte) error { + switch MessagesResponseContentPartThinkingType(data) { + case MessagesResponseContentPartThinkingTypeThinking: + *s = MessagesResponseContentPartThinkingTypeThinking + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/MessagesResponseContentPartToolUse +type MessagesResponseContentPartToolUse struct { + Type MessagesResponseContentPartToolUseType `json:"type"` + ID string `json:"id"` + Name string `json:"name"` + Input MessagesResponseContentPartToolUseInput `json:"input"` +} + +// GetType returns the value of Type. +func (s *MessagesResponseContentPartToolUse) GetType() MessagesResponseContentPartToolUseType { + return s.Type +} + +// GetID returns the value of ID. +func (s *MessagesResponseContentPartToolUse) GetID() string { + return s.ID +} + +// GetName returns the value of Name. +func (s *MessagesResponseContentPartToolUse) GetName() string { + return s.Name +} + +// GetInput returns the value of Input. +func (s *MessagesResponseContentPartToolUse) GetInput() MessagesResponseContentPartToolUseInput { + return s.Input +} + +// SetType sets the value of Type. +func (s *MessagesResponseContentPartToolUse) SetType(val MessagesResponseContentPartToolUseType) { + s.Type = val +} + +// SetID sets the value of ID. +func (s *MessagesResponseContentPartToolUse) SetID(val string) { + s.ID = val +} + +// SetName sets the value of Name. +func (s *MessagesResponseContentPartToolUse) SetName(val string) { + s.Name = val +} + +// SetInput sets the value of Input. +func (s *MessagesResponseContentPartToolUse) SetInput(val MessagesResponseContentPartToolUseInput) { + s.Input = val +} + +type MessagesResponseContentPartToolUseInput map[string]jx.Raw + +func (s *MessagesResponseContentPartToolUseInput) init() MessagesResponseContentPartToolUseInput { + m := *s + if m == nil { + m = map[string]jx.Raw{} + *s = m + } + return m +} + +type MessagesResponseContentPartToolUseType string + +const ( + MessagesResponseContentPartToolUseTypeToolUse MessagesResponseContentPartToolUseType = "tool_use" +) + +// AllValues returns all MessagesResponseContentPartToolUseType values. +func (MessagesResponseContentPartToolUseType) AllValues() []MessagesResponseContentPartToolUseType { + return []MessagesResponseContentPartToolUseType{ + MessagesResponseContentPartToolUseTypeToolUse, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s MessagesResponseContentPartToolUseType) MarshalText() ([]byte, error) { + switch s { + case MessagesResponseContentPartToolUseTypeToolUse: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *MessagesResponseContentPartToolUseType) UnmarshalText(data []byte) error { + switch MessagesResponseContentPartToolUseType(data) { + case MessagesResponseContentPartToolUseTypeToolUse: + *s = MessagesResponseContentPartToolUseTypeToolUse + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/MessagesResponseContentPartWebSearchToolResult +type MessagesResponseContentPartWebSearchToolResult struct { + Type MessagesResponseContentPartWebSearchToolResultType `json:"type"` + ToolUseID string `json:"tool_use_id"` + Content MessagesWebSearchToolResultContent `json:"content"` + Caller OptMessagesServerToolCaller `json:"caller"` +} + +// GetType returns the value of Type. +func (s *MessagesResponseContentPartWebSearchToolResult) GetType() MessagesResponseContentPartWebSearchToolResultType { + return s.Type +} + +// GetToolUseID returns the value of ToolUseID. +func (s *MessagesResponseContentPartWebSearchToolResult) GetToolUseID() string { + return s.ToolUseID +} + +// GetContent returns the value of Content. +func (s *MessagesResponseContentPartWebSearchToolResult) GetContent() MessagesWebSearchToolResultContent { + return s.Content +} + +// GetCaller returns the value of Caller. +func (s *MessagesResponseContentPartWebSearchToolResult) GetCaller() OptMessagesServerToolCaller { + return s.Caller +} + +// SetType sets the value of Type. +func (s *MessagesResponseContentPartWebSearchToolResult) SetType(val MessagesResponseContentPartWebSearchToolResultType) { + s.Type = val +} + +// SetToolUseID sets the value of ToolUseID. +func (s *MessagesResponseContentPartWebSearchToolResult) SetToolUseID(val string) { + s.ToolUseID = val +} + +// SetContent sets the value of Content. +func (s *MessagesResponseContentPartWebSearchToolResult) SetContent(val MessagesWebSearchToolResultContent) { + s.Content = val +} + +// SetCaller sets the value of Caller. +func (s *MessagesResponseContentPartWebSearchToolResult) SetCaller(val OptMessagesServerToolCaller) { + s.Caller = val +} + +type MessagesResponseContentPartWebSearchToolResultType string + +const ( + MessagesResponseContentPartWebSearchToolResultTypeWebSearchToolResult MessagesResponseContentPartWebSearchToolResultType = "web_search_tool_result" +) + +// AllValues returns all MessagesResponseContentPartWebSearchToolResultType values. +func (MessagesResponseContentPartWebSearchToolResultType) AllValues() []MessagesResponseContentPartWebSearchToolResultType { + return []MessagesResponseContentPartWebSearchToolResultType{ + MessagesResponseContentPartWebSearchToolResultTypeWebSearchToolResult, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s MessagesResponseContentPartWebSearchToolResultType) MarshalText() ([]byte, error) { + switch s { + case MessagesResponseContentPartWebSearchToolResultTypeWebSearchToolResult: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *MessagesResponseContentPartWebSearchToolResultType) UnmarshalText(data []byte) error { + switch MessagesResponseContentPartWebSearchToolResultType(data) { + case MessagesResponseContentPartWebSearchToolResultTypeWebSearchToolResult: + *s = MessagesResponseContentPartWebSearchToolResultTypeWebSearchToolResult + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// The response role. Always `assistant`. +type MessagesResponseRole string + +const ( + MessagesResponseRoleAssistant MessagesResponseRole = "assistant" +) + +// AllValues returns all MessagesResponseRole values. +func (MessagesResponseRole) AllValues() []MessagesResponseRole { + return []MessagesResponseRole{ + MessagesResponseRoleAssistant, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s MessagesResponseRole) MarshalText() ([]byte, error) { + switch s { + case MessagesResponseRoleAssistant: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *MessagesResponseRole) UnmarshalText(data []byte) error { + switch MessagesResponseRole(data) { + case MessagesResponseRoleAssistant: + *s = MessagesResponseRoleAssistant + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// The reason the model stopped generating tokens. +// Ref: #/components/schemas/MessagesResponseStopReason +type MessagesResponseStopReason string + +const ( + MessagesResponseStopReasonEndTurn MessagesResponseStopReason = "end_turn" + MessagesResponseStopReasonMaxTokens MessagesResponseStopReason = "max_tokens" + MessagesResponseStopReasonStopSequence MessagesResponseStopReason = "stop_sequence" + MessagesResponseStopReasonToolUse MessagesResponseStopReason = "tool_use" + MessagesResponseStopReasonPauseTurn MessagesResponseStopReason = "pause_turn" + MessagesResponseStopReasonRefusal MessagesResponseStopReason = "refusal" +) + +// AllValues returns all MessagesResponseStopReason values. +func (MessagesResponseStopReason) AllValues() []MessagesResponseStopReason { + return []MessagesResponseStopReason{ + MessagesResponseStopReasonEndTurn, + MessagesResponseStopReasonMaxTokens, + MessagesResponseStopReasonStopSequence, + MessagesResponseStopReasonToolUse, + MessagesResponseStopReasonPauseTurn, + MessagesResponseStopReasonRefusal, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s MessagesResponseStopReason) MarshalText() ([]byte, error) { + switch s { + case MessagesResponseStopReasonEndTurn: + return []byte(s), nil + case MessagesResponseStopReasonMaxTokens: + return []byte(s), nil + case MessagesResponseStopReasonStopSequence: + return []byte(s), nil + case MessagesResponseStopReasonToolUse: + return []byte(s), nil + case MessagesResponseStopReasonPauseTurn: + return []byte(s), nil + case MessagesResponseStopReasonRefusal: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *MessagesResponseStopReason) UnmarshalText(data []byte) error { + switch MessagesResponseStopReason(data) { + case MessagesResponseStopReasonEndTurn: + *s = MessagesResponseStopReasonEndTurn + return nil + case MessagesResponseStopReasonMaxTokens: + *s = MessagesResponseStopReasonMaxTokens + return nil + case MessagesResponseStopReasonStopSequence: + *s = MessagesResponseStopReasonStopSequence + return nil + case MessagesResponseStopReasonToolUse: + *s = MessagesResponseStopReasonToolUse + return nil + case MessagesResponseStopReasonPauseTurn: + *s = MessagesResponseStopReasonPauseTurn + return nil + case MessagesResponseStopReasonRefusal: + *s = MessagesResponseStopReasonRefusal + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/MessagesResponseStreamMessageDelta +type MessagesResponseStreamMessageDelta struct { + Type MessagesResponseStreamMessageDeltaType `json:"type"` + Delta MessagesResponseStreamMessageDeltaDelta `json:"delta"` + Usage NilMessagesUsage `json:"usage"` +} + +// GetType returns the value of Type. +func (s *MessagesResponseStreamMessageDelta) GetType() MessagesResponseStreamMessageDeltaType { + return s.Type +} + +// GetDelta returns the value of Delta. +func (s *MessagesResponseStreamMessageDelta) GetDelta() MessagesResponseStreamMessageDeltaDelta { + return s.Delta +} + +// GetUsage returns the value of Usage. +func (s *MessagesResponseStreamMessageDelta) GetUsage() NilMessagesUsage { + return s.Usage +} + +// SetType sets the value of Type. +func (s *MessagesResponseStreamMessageDelta) SetType(val MessagesResponseStreamMessageDeltaType) { + s.Type = val +} + +// SetDelta sets the value of Delta. +func (s *MessagesResponseStreamMessageDelta) SetDelta(val MessagesResponseStreamMessageDeltaDelta) { + s.Delta = val +} + +// SetUsage sets the value of Usage. +func (s *MessagesResponseStreamMessageDelta) SetUsage(val NilMessagesUsage) { + s.Usage = val +} + +// Ref: #/components/schemas/MessagesResponseStreamMessageDeltaDelta +type MessagesResponseStreamMessageDeltaDelta struct { + StopReason MessagesResponseStopReason `json:"stop_reason"` + StopSequence NilString `json:"stop_sequence"` +} + +// GetStopReason returns the value of StopReason. +func (s *MessagesResponseStreamMessageDeltaDelta) GetStopReason() MessagesResponseStopReason { + return s.StopReason +} + +// GetStopSequence returns the value of StopSequence. +func (s *MessagesResponseStreamMessageDeltaDelta) GetStopSequence() NilString { + return s.StopSequence +} + +// SetStopReason sets the value of StopReason. +func (s *MessagesResponseStreamMessageDeltaDelta) SetStopReason(val MessagesResponseStopReason) { + s.StopReason = val +} + +// SetStopSequence sets the value of StopSequence. +func (s *MessagesResponseStreamMessageDeltaDelta) SetStopSequence(val NilString) { + s.StopSequence = val +} + +type MessagesResponseStreamMessageDeltaType string + +const ( + MessagesResponseStreamMessageDeltaTypeMessageDelta MessagesResponseStreamMessageDeltaType = "message_delta" +) + +// AllValues returns all MessagesResponseStreamMessageDeltaType values. +func (MessagesResponseStreamMessageDeltaType) AllValues() []MessagesResponseStreamMessageDeltaType { + return []MessagesResponseStreamMessageDeltaType{ + MessagesResponseStreamMessageDeltaTypeMessageDelta, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s MessagesResponseStreamMessageDeltaType) MarshalText() ([]byte, error) { + switch s { + case MessagesResponseStreamMessageDeltaTypeMessageDelta: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *MessagesResponseStreamMessageDeltaType) UnmarshalText(data []byte) error { + switch MessagesResponseStreamMessageDeltaType(data) { + case MessagesResponseStreamMessageDeltaTypeMessageDelta: + *s = MessagesResponseStreamMessageDeltaTypeMessageDelta + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/MessagesResponseStreamMessageStart +type MessagesResponseStreamMessageStart struct { + Type MessagesResponseStreamMessageStartType `json:"type"` + Message MessagesResponseStreamMessageStartMessage `json:"message"` +} + +// GetType returns the value of Type. +func (s *MessagesResponseStreamMessageStart) GetType() MessagesResponseStreamMessageStartType { + return s.Type +} + +// GetMessage returns the value of Message. +func (s *MessagesResponseStreamMessageStart) GetMessage() MessagesResponseStreamMessageStartMessage { + return s.Message +} + +// SetType sets the value of Type. +func (s *MessagesResponseStreamMessageStart) SetType(val MessagesResponseStreamMessageStartType) { + s.Type = val +} + +// SetMessage sets the value of Message. +func (s *MessagesResponseStreamMessageStart) SetMessage(val MessagesResponseStreamMessageStartMessage) { + s.Message = val +} + +// Ref: #/components/schemas/MessagesResponseStreamMessageStartMessage +type MessagesResponseStreamMessageStartMessage struct { + Type MessagesResponseStreamMessageStartMessageType `json:"type"` + ID string `json:"id"` + Role MessagesResponseStreamMessageStartMessageRole `json:"role"` + Content []jx.Raw `json:"content"` + Model string `json:"model"` + ServiceStatus OptMessagesServiceStatus `json:"service_status"` + StopReason NilMessagesResponseStopReason `json:"stop_reason"` + StopSequence NilString `json:"stop_sequence"` + Usage NilMessagesUsage `json:"usage"` +} + +// GetType returns the value of Type. +func (s *MessagesResponseStreamMessageStartMessage) GetType() MessagesResponseStreamMessageStartMessageType { + return s.Type +} + +// GetID returns the value of ID. +func (s *MessagesResponseStreamMessageStartMessage) GetID() string { + return s.ID +} + +// GetRole returns the value of Role. +func (s *MessagesResponseStreamMessageStartMessage) GetRole() MessagesResponseStreamMessageStartMessageRole { + return s.Role +} + +// GetContent returns the value of Content. +func (s *MessagesResponseStreamMessageStartMessage) GetContent() []jx.Raw { + return s.Content +} + +// GetModel returns the value of Model. +func (s *MessagesResponseStreamMessageStartMessage) GetModel() string { + return s.Model +} + +// GetServiceStatus returns the value of ServiceStatus. +func (s *MessagesResponseStreamMessageStartMessage) GetServiceStatus() OptMessagesServiceStatus { + return s.ServiceStatus +} + +// GetStopReason returns the value of StopReason. +func (s *MessagesResponseStreamMessageStartMessage) GetStopReason() NilMessagesResponseStopReason { + return s.StopReason +} + +// GetStopSequence returns the value of StopSequence. +func (s *MessagesResponseStreamMessageStartMessage) GetStopSequence() NilString { + return s.StopSequence +} + +// GetUsage returns the value of Usage. +func (s *MessagesResponseStreamMessageStartMessage) GetUsage() NilMessagesUsage { + return s.Usage +} + +// SetType sets the value of Type. +func (s *MessagesResponseStreamMessageStartMessage) SetType(val MessagesResponseStreamMessageStartMessageType) { + s.Type = val +} + +// SetID sets the value of ID. +func (s *MessagesResponseStreamMessageStartMessage) SetID(val string) { + s.ID = val +} + +// SetRole sets the value of Role. +func (s *MessagesResponseStreamMessageStartMessage) SetRole(val MessagesResponseStreamMessageStartMessageRole) { + s.Role = val +} + +// SetContent sets the value of Content. +func (s *MessagesResponseStreamMessageStartMessage) SetContent(val []jx.Raw) { + s.Content = val +} + +// SetModel sets the value of Model. +func (s *MessagesResponseStreamMessageStartMessage) SetModel(val string) { + s.Model = val +} + +// SetServiceStatus sets the value of ServiceStatus. +func (s *MessagesResponseStreamMessageStartMessage) SetServiceStatus(val OptMessagesServiceStatus) { + s.ServiceStatus = val +} + +// SetStopReason sets the value of StopReason. +func (s *MessagesResponseStreamMessageStartMessage) SetStopReason(val NilMessagesResponseStopReason) { + s.StopReason = val +} + +// SetStopSequence sets the value of StopSequence. +func (s *MessagesResponseStreamMessageStartMessage) SetStopSequence(val NilString) { + s.StopSequence = val +} + +// SetUsage sets the value of Usage. +func (s *MessagesResponseStreamMessageStartMessage) SetUsage(val NilMessagesUsage) { + s.Usage = val +} + +type MessagesResponseStreamMessageStartMessageRole string + +const ( + MessagesResponseStreamMessageStartMessageRoleAssistant MessagesResponseStreamMessageStartMessageRole = "assistant" +) + +// AllValues returns all MessagesResponseStreamMessageStartMessageRole values. +func (MessagesResponseStreamMessageStartMessageRole) AllValues() []MessagesResponseStreamMessageStartMessageRole { + return []MessagesResponseStreamMessageStartMessageRole{ + MessagesResponseStreamMessageStartMessageRoleAssistant, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s MessagesResponseStreamMessageStartMessageRole) MarshalText() ([]byte, error) { + switch s { + case MessagesResponseStreamMessageStartMessageRoleAssistant: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *MessagesResponseStreamMessageStartMessageRole) UnmarshalText(data []byte) error { + switch MessagesResponseStreamMessageStartMessageRole(data) { + case MessagesResponseStreamMessageStartMessageRoleAssistant: + *s = MessagesResponseStreamMessageStartMessageRoleAssistant + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +type MessagesResponseStreamMessageStartMessageType string + +const ( + MessagesResponseStreamMessageStartMessageTypeMessage MessagesResponseStreamMessageStartMessageType = "message" +) + +// AllValues returns all MessagesResponseStreamMessageStartMessageType values. +func (MessagesResponseStreamMessageStartMessageType) AllValues() []MessagesResponseStreamMessageStartMessageType { + return []MessagesResponseStreamMessageStartMessageType{ + MessagesResponseStreamMessageStartMessageTypeMessage, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s MessagesResponseStreamMessageStartMessageType) MarshalText() ([]byte, error) { + switch s { + case MessagesResponseStreamMessageStartMessageTypeMessage: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *MessagesResponseStreamMessageStartMessageType) UnmarshalText(data []byte) error { + switch MessagesResponseStreamMessageStartMessageType(data) { + case MessagesResponseStreamMessageStartMessageTypeMessage: + *s = MessagesResponseStreamMessageStartMessageTypeMessage + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +type MessagesResponseStreamMessageStartType string + +const ( + MessagesResponseStreamMessageStartTypeMessageStart MessagesResponseStreamMessageStartType = "message_start" +) + +// AllValues returns all MessagesResponseStreamMessageStartType values. +func (MessagesResponseStreamMessageStartType) AllValues() []MessagesResponseStreamMessageStartType { + return []MessagesResponseStreamMessageStartType{ + MessagesResponseStreamMessageStartTypeMessageStart, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s MessagesResponseStreamMessageStartType) MarshalText() ([]byte, error) { + switch s { + case MessagesResponseStreamMessageStartTypeMessageStart: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *MessagesResponseStreamMessageStartType) UnmarshalText(data []byte) error { + switch MessagesResponseStreamMessageStartType(data) { + case MessagesResponseStreamMessageStartTypeMessageStart: + *s = MessagesResponseStreamMessageStartTypeMessageStart + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/MessagesResponseStreamMessageStop +type MessagesResponseStreamMessageStop struct { + Type MessagesResponseStreamMessageStopType `json:"type"` +} + +// GetType returns the value of Type. +func (s *MessagesResponseStreamMessageStop) GetType() MessagesResponseStreamMessageStopType { + return s.Type +} + +// SetType sets the value of Type. +func (s *MessagesResponseStreamMessageStop) SetType(val MessagesResponseStreamMessageStopType) { + s.Type = val +} + +type MessagesResponseStreamMessageStopType string + +const ( + MessagesResponseStreamMessageStopTypeMessageStop MessagesResponseStreamMessageStopType = "message_stop" +) + +// AllValues returns all MessagesResponseStreamMessageStopType values. +func (MessagesResponseStreamMessageStopType) AllValues() []MessagesResponseStreamMessageStopType { + return []MessagesResponseStreamMessageStopType{ + MessagesResponseStreamMessageStopTypeMessageStop, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s MessagesResponseStreamMessageStopType) MarshalText() ([]byte, error) { + switch s { + case MessagesResponseStreamMessageStopTypeMessageStop: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *MessagesResponseStreamMessageStopType) UnmarshalText(data []byte) error { + switch MessagesResponseStreamMessageStopType(data) { + case MessagesResponseStreamMessageStopTypeMessageStop: + *s = MessagesResponseStreamMessageStopTypeMessageStop + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// The response object type. Always `message`. +type MessagesResponseType string + +const ( + MessagesResponseTypeMessage MessagesResponseType = "message" +) + +// AllValues returns all MessagesResponseType values. +func (MessagesResponseType) AllValues() []MessagesResponseType { + return []MessagesResponseType{ + MessagesResponseTypeMessage, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s MessagesResponseType) MarshalText() ([]byte, error) { + switch s { + case MessagesResponseTypeMessage: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *MessagesResponseType) UnmarshalText(data []byte) error { + switch MessagesResponseType(data) { + case MessagesResponseTypeMessage: + *s = MessagesResponseTypeMessage + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/MessagesRole +type MessagesRole string + +const ( + MessagesRoleAssistant MessagesRole = "assistant" + MessagesRoleUser MessagesRole = "user" + MessagesRoleSystem MessagesRole = "system" +) + +// AllValues returns all MessagesRole values. +func (MessagesRole) AllValues() []MessagesRole { + return []MessagesRole{ + MessagesRoleAssistant, + MessagesRoleUser, + MessagesRoleSystem, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s MessagesRole) MarshalText() ([]byte, error) { + switch s { + case MessagesRoleAssistant: + return []byte(s), nil + case MessagesRoleUser: + return []byte(s), nil + case MessagesRoleSystem: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *MessagesRole) UnmarshalText(data []byte) error { + switch MessagesRole(data) { + case MessagesRoleAssistant: + *s = MessagesRoleAssistant + return nil + case MessagesRoleUser: + *s = MessagesRoleUser + return nil + case MessagesRoleSystem: + *s = MessagesRoleSystem + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/MessagesServerToolCaller +type MessagesServerToolCaller struct { + // Identifies the server-side caller that produced this result. + Type string `json:"type"` +} + +// GetType returns the value of Type. +func (s *MessagesServerToolCaller) GetType() string { + return s.Type +} + +// SetType sets the value of Type. +func (s *MessagesServerToolCaller) SetType(val string) { + s.Type = val +} + +// Ref: #/components/schemas/MessagesServerToolUsage +type MessagesServerToolUsage struct { + // Number of web-search requests dispatched by server-managed tools. + WebSearchRequests int32 `json:"web_search_requests"` + // Number of web-fetch requests dispatched by server-managed tools. + WebFetchRequests int32 `json:"web_fetch_requests"` +} + +// GetWebSearchRequests returns the value of WebSearchRequests. +func (s *MessagesServerToolUsage) GetWebSearchRequests() int32 { + return s.WebSearchRequests +} + +// GetWebFetchRequests returns the value of WebFetchRequests. +func (s *MessagesServerToolUsage) GetWebFetchRequests() int32 { + return s.WebFetchRequests +} + +// SetWebSearchRequests sets the value of WebSearchRequests. +func (s *MessagesServerToolUsage) SetWebSearchRequests(val int32) { + s.WebSearchRequests = val +} + +// SetWebFetchRequests sets the value of WebFetchRequests. +func (s *MessagesServerToolUsage) SetWebFetchRequests(val int32) { + s.WebFetchRequests = val +} + +// Ref: #/components/schemas/MessagesServiceStatus +type MessagesServiceStatus struct { + ModelFallback OptModelFallbackStatus `json:"model_fallback"` +} + +// GetModelFallback returns the value of ModelFallback. +func (s *MessagesServiceStatus) GetModelFallback() OptModelFallbackStatus { + return s.ModelFallback +} + +// SetModelFallback sets the value of ModelFallback. +func (s *MessagesServiceStatus) SetModelFallback(val OptModelFallbackStatus) { + s.ModelFallback = val +} + +// One stop sequence or up to four stop sequences. +// Ref: #/components/schemas/MessagesStopSequences +// MessagesStopSequences represents sum type. +type MessagesStopSequences struct { + Type MessagesStopSequencesType // switch on this field + String string + StringArray []string +} + +// MessagesStopSequencesType is oneOf type of MessagesStopSequences. +type MessagesStopSequencesType string + +// Possible values for MessagesStopSequencesType. +const ( + StringMessagesStopSequences MessagesStopSequencesType = "string" + StringArrayMessagesStopSequences MessagesStopSequencesType = "[]string" +) + +// IsString reports whether MessagesStopSequences is string. +func (s MessagesStopSequences) IsString() bool { return s.Type == StringMessagesStopSequences } + +// IsStringArray reports whether MessagesStopSequences is []string. +func (s MessagesStopSequences) IsStringArray() bool { + return s.Type == StringArrayMessagesStopSequences +} + +// SetString sets MessagesStopSequences to string. +func (s *MessagesStopSequences) SetString(v string) { + s.Type = StringMessagesStopSequences + s.String = v +} + +// GetString returns string and true boolean if MessagesStopSequences is string. +func (s MessagesStopSequences) GetString() (v string, ok bool) { + if !s.IsString() { + return v, false + } + return s.String, true +} + +// NewStringMessagesStopSequences returns new MessagesStopSequences from string. +func NewStringMessagesStopSequences(v string) MessagesStopSequences { + var s MessagesStopSequences + s.SetString(v) + return s +} + +// SetStringArray sets MessagesStopSequences to []string. +func (s *MessagesStopSequences) SetStringArray(v []string) { + s.Type = StringArrayMessagesStopSequences + s.StringArray = v +} + +// GetStringArray returns []string and true boolean if MessagesStopSequences is []string. +func (s MessagesStopSequences) GetStringArray() (v []string, ok bool) { + if !s.IsStringArray() { + return v, false + } + return s.StringArray, true +} + +// NewStringArrayMessagesStopSequences returns new MessagesStopSequences from []string. +func NewStringArrayMessagesStopSequences(v []string) MessagesStopSequences { + var s MessagesStopSequences + s.SetStringArray(v) + return s +} + +// Ref: #/components/schemas/MessagesStreamEvent +type MessagesStreamEvent struct { + OneOf MessagesStreamEventSum +} + +// GetOneOf returns the value of OneOf. +func (s *MessagesStreamEvent) GetOneOf() MessagesStreamEventSum { + return s.OneOf +} + +// SetOneOf sets the value of OneOf. +func (s *MessagesStreamEvent) SetOneOf(val MessagesStreamEventSum) { + s.OneOf = val +} + +func (*MessagesStreamEvent) messagesCreateRes() {} + +// MessagesStreamEventSum represents sum type. +type MessagesStreamEventSum struct { + Type MessagesStreamEventSumType // switch on this field + MessagesResponseStreamMessageStart MessagesResponseStreamMessageStart + ContentBlockStart ContentBlockStart + MessagesResponseContentBlock MessagesResponseContentBlock + MessagesResponseContentBlockStop MessagesResponseContentBlockStop + MessagesResponseStreamMessageDelta MessagesResponseStreamMessageDelta + MessagesResponseStreamMessageStop MessagesResponseStreamMessageStop + MessagesErrorResponse MessagesErrorResponse +} + +// MessagesStreamEventSumType is oneOf type of MessagesStreamEventSum. +type MessagesStreamEventSumType string + +// Possible values for MessagesStreamEventSumType. +const ( + MessagesResponseStreamMessageStartMessagesStreamEventSum MessagesStreamEventSumType = "message_start" + ContentBlockStartMessagesStreamEventSum MessagesStreamEventSumType = "content_block_start" + MessagesResponseContentBlockMessagesStreamEventSum MessagesStreamEventSumType = "content_block_delta" + MessagesResponseContentBlockStopMessagesStreamEventSum MessagesStreamEventSumType = "content_block_stop" + MessagesResponseStreamMessageDeltaMessagesStreamEventSum MessagesStreamEventSumType = "message_delta" + MessagesResponseStreamMessageStopMessagesStreamEventSum MessagesStreamEventSumType = "message_stop" + MessagesErrorResponseMessagesStreamEventSum MessagesStreamEventSumType = "error" +) + +// IsMessagesResponseStreamMessageStart reports whether MessagesStreamEventSum is MessagesResponseStreamMessageStart. +func (s MessagesStreamEventSum) IsMessagesResponseStreamMessageStart() bool { + return s.Type == MessagesResponseStreamMessageStartMessagesStreamEventSum +} + +// IsContentBlockStart reports whether MessagesStreamEventSum is ContentBlockStart. +func (s MessagesStreamEventSum) IsContentBlockStart() bool { + return s.Type == ContentBlockStartMessagesStreamEventSum +} + +// IsMessagesResponseContentBlock reports whether MessagesStreamEventSum is MessagesResponseContentBlock. +func (s MessagesStreamEventSum) IsMessagesResponseContentBlock() bool { + return s.Type == MessagesResponseContentBlockMessagesStreamEventSum +} + +// IsMessagesResponseContentBlockStop reports whether MessagesStreamEventSum is MessagesResponseContentBlockStop. +func (s MessagesStreamEventSum) IsMessagesResponseContentBlockStop() bool { + return s.Type == MessagesResponseContentBlockStopMessagesStreamEventSum +} + +// IsMessagesResponseStreamMessageDelta reports whether MessagesStreamEventSum is MessagesResponseStreamMessageDelta. +func (s MessagesStreamEventSum) IsMessagesResponseStreamMessageDelta() bool { + return s.Type == MessagesResponseStreamMessageDeltaMessagesStreamEventSum +} + +// IsMessagesResponseStreamMessageStop reports whether MessagesStreamEventSum is MessagesResponseStreamMessageStop. +func (s MessagesStreamEventSum) IsMessagesResponseStreamMessageStop() bool { + return s.Type == MessagesResponseStreamMessageStopMessagesStreamEventSum +} + +// IsMessagesErrorResponse reports whether MessagesStreamEventSum is MessagesErrorResponse. +func (s MessagesStreamEventSum) IsMessagesErrorResponse() bool { + return s.Type == MessagesErrorResponseMessagesStreamEventSum +} + +// SetMessagesResponseStreamMessageStart sets MessagesStreamEventSum to MessagesResponseStreamMessageStart. +func (s *MessagesStreamEventSum) SetMessagesResponseStreamMessageStart(v MessagesResponseStreamMessageStart) { + s.Type = MessagesResponseStreamMessageStartMessagesStreamEventSum + s.MessagesResponseStreamMessageStart = v +} + +// GetMessagesResponseStreamMessageStart returns MessagesResponseStreamMessageStart and true boolean if MessagesStreamEventSum is MessagesResponseStreamMessageStart. +func (s MessagesStreamEventSum) GetMessagesResponseStreamMessageStart() (v MessagesResponseStreamMessageStart, ok bool) { + if !s.IsMessagesResponseStreamMessageStart() { + return v, false + } + return s.MessagesResponseStreamMessageStart, true +} + +// NewMessagesResponseStreamMessageStartMessagesStreamEventSum returns new MessagesStreamEventSum from MessagesResponseStreamMessageStart. +func NewMessagesResponseStreamMessageStartMessagesStreamEventSum(v MessagesResponseStreamMessageStart) MessagesStreamEventSum { + var s MessagesStreamEventSum + s.SetMessagesResponseStreamMessageStart(v) + return s +} + +// SetContentBlockStart sets MessagesStreamEventSum to ContentBlockStart. +func (s *MessagesStreamEventSum) SetContentBlockStart(v ContentBlockStart) { + s.Type = ContentBlockStartMessagesStreamEventSum + s.ContentBlockStart = v +} + +// GetContentBlockStart returns ContentBlockStart and true boolean if MessagesStreamEventSum is ContentBlockStart. +func (s MessagesStreamEventSum) GetContentBlockStart() (v ContentBlockStart, ok bool) { + if !s.IsContentBlockStart() { + return v, false + } + return s.ContentBlockStart, true +} + +// NewContentBlockStartMessagesStreamEventSum returns new MessagesStreamEventSum from ContentBlockStart. +func NewContentBlockStartMessagesStreamEventSum(v ContentBlockStart) MessagesStreamEventSum { + var s MessagesStreamEventSum + s.SetContentBlockStart(v) + return s +} + +// SetMessagesResponseContentBlock sets MessagesStreamEventSum to MessagesResponseContentBlock. +func (s *MessagesStreamEventSum) SetMessagesResponseContentBlock(v MessagesResponseContentBlock) { + s.Type = MessagesResponseContentBlockMessagesStreamEventSum + s.MessagesResponseContentBlock = v +} + +// GetMessagesResponseContentBlock returns MessagesResponseContentBlock and true boolean if MessagesStreamEventSum is MessagesResponseContentBlock. +func (s MessagesStreamEventSum) GetMessagesResponseContentBlock() (v MessagesResponseContentBlock, ok bool) { + if !s.IsMessagesResponseContentBlock() { + return v, false + } + return s.MessagesResponseContentBlock, true +} + +// NewMessagesResponseContentBlockMessagesStreamEventSum returns new MessagesStreamEventSum from MessagesResponseContentBlock. +func NewMessagesResponseContentBlockMessagesStreamEventSum(v MessagesResponseContentBlock) MessagesStreamEventSum { + var s MessagesStreamEventSum + s.SetMessagesResponseContentBlock(v) + return s +} + +// SetMessagesResponseContentBlockStop sets MessagesStreamEventSum to MessagesResponseContentBlockStop. +func (s *MessagesStreamEventSum) SetMessagesResponseContentBlockStop(v MessagesResponseContentBlockStop) { + s.Type = MessagesResponseContentBlockStopMessagesStreamEventSum + s.MessagesResponseContentBlockStop = v +} + +// GetMessagesResponseContentBlockStop returns MessagesResponseContentBlockStop and true boolean if MessagesStreamEventSum is MessagesResponseContentBlockStop. +func (s MessagesStreamEventSum) GetMessagesResponseContentBlockStop() (v MessagesResponseContentBlockStop, ok bool) { + if !s.IsMessagesResponseContentBlockStop() { + return v, false + } + return s.MessagesResponseContentBlockStop, true +} + +// NewMessagesResponseContentBlockStopMessagesStreamEventSum returns new MessagesStreamEventSum from MessagesResponseContentBlockStop. +func NewMessagesResponseContentBlockStopMessagesStreamEventSum(v MessagesResponseContentBlockStop) MessagesStreamEventSum { + var s MessagesStreamEventSum + s.SetMessagesResponseContentBlockStop(v) + return s +} + +// SetMessagesResponseStreamMessageDelta sets MessagesStreamEventSum to MessagesResponseStreamMessageDelta. +func (s *MessagesStreamEventSum) SetMessagesResponseStreamMessageDelta(v MessagesResponseStreamMessageDelta) { + s.Type = MessagesResponseStreamMessageDeltaMessagesStreamEventSum + s.MessagesResponseStreamMessageDelta = v +} + +// GetMessagesResponseStreamMessageDelta returns MessagesResponseStreamMessageDelta and true boolean if MessagesStreamEventSum is MessagesResponseStreamMessageDelta. +func (s MessagesStreamEventSum) GetMessagesResponseStreamMessageDelta() (v MessagesResponseStreamMessageDelta, ok bool) { + if !s.IsMessagesResponseStreamMessageDelta() { + return v, false + } + return s.MessagesResponseStreamMessageDelta, true +} + +// NewMessagesResponseStreamMessageDeltaMessagesStreamEventSum returns new MessagesStreamEventSum from MessagesResponseStreamMessageDelta. +func NewMessagesResponseStreamMessageDeltaMessagesStreamEventSum(v MessagesResponseStreamMessageDelta) MessagesStreamEventSum { + var s MessagesStreamEventSum + s.SetMessagesResponseStreamMessageDelta(v) + return s +} + +// SetMessagesResponseStreamMessageStop sets MessagesStreamEventSum to MessagesResponseStreamMessageStop. +func (s *MessagesStreamEventSum) SetMessagesResponseStreamMessageStop(v MessagesResponseStreamMessageStop) { + s.Type = MessagesResponseStreamMessageStopMessagesStreamEventSum + s.MessagesResponseStreamMessageStop = v +} + +// GetMessagesResponseStreamMessageStop returns MessagesResponseStreamMessageStop and true boolean if MessagesStreamEventSum is MessagesResponseStreamMessageStop. +func (s MessagesStreamEventSum) GetMessagesResponseStreamMessageStop() (v MessagesResponseStreamMessageStop, ok bool) { + if !s.IsMessagesResponseStreamMessageStop() { + return v, false + } + return s.MessagesResponseStreamMessageStop, true +} + +// NewMessagesResponseStreamMessageStopMessagesStreamEventSum returns new MessagesStreamEventSum from MessagesResponseStreamMessageStop. +func NewMessagesResponseStreamMessageStopMessagesStreamEventSum(v MessagesResponseStreamMessageStop) MessagesStreamEventSum { + var s MessagesStreamEventSum + s.SetMessagesResponseStreamMessageStop(v) + return s +} + +// SetMessagesErrorResponse sets MessagesStreamEventSum to MessagesErrorResponse. +func (s *MessagesStreamEventSum) SetMessagesErrorResponse(v MessagesErrorResponse) { + s.Type = MessagesErrorResponseMessagesStreamEventSum + s.MessagesErrorResponse = v +} + +// GetMessagesErrorResponse returns MessagesErrorResponse and true boolean if MessagesStreamEventSum is MessagesErrorResponse. +func (s MessagesStreamEventSum) GetMessagesErrorResponse() (v MessagesErrorResponse, ok bool) { + if !s.IsMessagesErrorResponse() { + return v, false + } + return s.MessagesErrorResponse, true +} + +// NewMessagesErrorResponseMessagesStreamEventSum returns new MessagesStreamEventSum from MessagesErrorResponse. +func NewMessagesErrorResponseMessagesStreamEventSum(v MessagesErrorResponse) MessagesStreamEventSum { + var s MessagesStreamEventSum + s.SetMessagesErrorResponse(v) + return s +} + +// Ref: #/components/schemas/MessagesStreamOptions +type MessagesStreamOptions struct { + // Whether to include usage in the final stream event. + IncludeUsage OptBool `json:"include_usage"` + // Whether to include usage in every stream event. + ChunkIncludeUsage OptBool `json:"chunk_include_usage"` +} + +// GetIncludeUsage returns the value of IncludeUsage. +func (s *MessagesStreamOptions) GetIncludeUsage() OptBool { + return s.IncludeUsage +} + +// GetChunkIncludeUsage returns the value of ChunkIncludeUsage. +func (s *MessagesStreamOptions) GetChunkIncludeUsage() OptBool { + return s.ChunkIncludeUsage +} + +// SetIncludeUsage sets the value of IncludeUsage. +func (s *MessagesStreamOptions) SetIncludeUsage(val OptBool) { + s.IncludeUsage = val +} + +// SetChunkIncludeUsage sets the value of ChunkIncludeUsage. +func (s *MessagesStreamOptions) SetChunkIncludeUsage(val OptBool) { + s.ChunkIncludeUsage = val +} + +// A system prompt can be a bare string or an array of text parts. +// Ref: #/components/schemas/MessagesSystem +// MessagesSystem represents sum type. +type MessagesSystem struct { + Type MessagesSystemType // switch on this field + String string + MessagesSystemTextPartArray []MessagesSystemTextPart +} + +// MessagesSystemType is oneOf type of MessagesSystem. +type MessagesSystemType string + +// Possible values for MessagesSystemType. +const ( + StringMessagesSystem MessagesSystemType = "string" + MessagesSystemTextPartArrayMessagesSystem MessagesSystemType = "[]MessagesSystemTextPart" +) + +// IsString reports whether MessagesSystem is string. +func (s MessagesSystem) IsString() bool { return s.Type == StringMessagesSystem } + +// IsMessagesSystemTextPartArray reports whether MessagesSystem is []MessagesSystemTextPart. +func (s MessagesSystem) IsMessagesSystemTextPartArray() bool { + return s.Type == MessagesSystemTextPartArrayMessagesSystem +} + +// SetString sets MessagesSystem to string. +func (s *MessagesSystem) SetString(v string) { + s.Type = StringMessagesSystem + s.String = v +} + +// GetString returns string and true boolean if MessagesSystem is string. +func (s MessagesSystem) GetString() (v string, ok bool) { + if !s.IsString() { + return v, false + } + return s.String, true +} + +// NewStringMessagesSystem returns new MessagesSystem from string. +func NewStringMessagesSystem(v string) MessagesSystem { + var s MessagesSystem + s.SetString(v) + return s +} + +// SetMessagesSystemTextPartArray sets MessagesSystem to []MessagesSystemTextPart. +func (s *MessagesSystem) SetMessagesSystemTextPartArray(v []MessagesSystemTextPart) { + s.Type = MessagesSystemTextPartArrayMessagesSystem + s.MessagesSystemTextPartArray = v +} + +// GetMessagesSystemTextPartArray returns []MessagesSystemTextPart and true boolean if MessagesSystem is []MessagesSystemTextPart. +func (s MessagesSystem) GetMessagesSystemTextPartArray() (v []MessagesSystemTextPart, ok bool) { + if !s.IsMessagesSystemTextPartArray() { + return v, false + } + return s.MessagesSystemTextPartArray, true +} + +// NewMessagesSystemTextPartArrayMessagesSystem returns new MessagesSystem from []MessagesSystemTextPart. +func NewMessagesSystemTextPartArrayMessagesSystem(v []MessagesSystemTextPart) MessagesSystem { + var s MessagesSystem + s.SetMessagesSystemTextPartArray(v) + return s +} + +// Ref: #/components/schemas/MessagesSystemTextPart +type MessagesSystemTextPart struct { + // The type of the system content part. Always `text`. + Type MessagesSystemTextPartType `json:"type"` + Text string `json:"text"` +} + +// GetType returns the value of Type. +func (s *MessagesSystemTextPart) GetType() MessagesSystemTextPartType { + return s.Type +} + +// GetText returns the value of Text. +func (s *MessagesSystemTextPart) GetText() string { + return s.Text +} + +// SetType sets the value of Type. +func (s *MessagesSystemTextPart) SetType(val MessagesSystemTextPartType) { + s.Type = val +} + +// SetText sets the value of Text. +func (s *MessagesSystemTextPart) SetText(val string) { + s.Text = val +} + +// The type of the system content part. Always `text`. +type MessagesSystemTextPartType string + +const ( + MessagesSystemTextPartTypeText MessagesSystemTextPartType = "text" +) + +// AllValues returns all MessagesSystemTextPartType values. +func (MessagesSystemTextPartType) AllValues() []MessagesSystemTextPartType { + return []MessagesSystemTextPartType{ + MessagesSystemTextPartTypeText, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s MessagesSystemTextPartType) MarshalText() ([]byte, error) { + switch s { + case MessagesSystemTextPartTypeText: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *MessagesSystemTextPartType) UnmarshalText(data []byte) error { + switch MessagesSystemTextPartType(data) { + case MessagesSystemTextPartTypeText: + *s = MessagesSystemTextPartTypeText + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/MessagesThinking +type MessagesThinking struct { + // Thinking mode requested from the model. + Type string `json:"type"` +} + +// GetType returns the value of Type. +func (s *MessagesThinking) GetType() string { + return s.Type +} + +// SetType sets the value of Type. +func (s *MessagesThinking) SetType(val string) { + s.Type = val +} + +// Ref: #/components/schemas/MessagesTool +type MessagesTool struct { + // A description of what the tool does and when the model should use it. + Description OptString `json:"description"` + // The tool name. + Name string `json:"name"` + // The tool input, described as a JSON Schema object. + InputSchema OptMessagesToolInputSchema `json:"input_schema"` + // Whether strict schema adherence is enabled for this tool. + Strict OptBool `json:"strict"` + // A server-managed tool version, such as `web_search_20250305`. + Type OptString `json:"type"` + // Maximum number of times a server-managed tool may be dispatched. + MaxUses OptInt32 `json:"max_uses"` + // Domains that a server-managed web tool is allowed to access. + AllowedDomains []string `json:"allowed_domains"` + // Domains that a server-managed web tool must not access. + BlockedDomains []string `json:"blocked_domains"` + // Optional user location supplied to a server-managed web tool. + UserLocation OptMessagesToolUserLocation `json:"user_location"` +} + +// GetDescription returns the value of Description. +func (s *MessagesTool) GetDescription() OptString { + return s.Description +} + +// GetName returns the value of Name. +func (s *MessagesTool) GetName() string { + return s.Name +} + +// GetInputSchema returns the value of InputSchema. +func (s *MessagesTool) GetInputSchema() OptMessagesToolInputSchema { + return s.InputSchema +} + +// GetStrict returns the value of Strict. +func (s *MessagesTool) GetStrict() OptBool { + return s.Strict +} + +// GetType returns the value of Type. +func (s *MessagesTool) GetType() OptString { + return s.Type +} + +// GetMaxUses returns the value of MaxUses. +func (s *MessagesTool) GetMaxUses() OptInt32 { + return s.MaxUses +} + +// GetAllowedDomains returns the value of AllowedDomains. +func (s *MessagesTool) GetAllowedDomains() []string { + return s.AllowedDomains +} + +// GetBlockedDomains returns the value of BlockedDomains. +func (s *MessagesTool) GetBlockedDomains() []string { + return s.BlockedDomains +} + +// GetUserLocation returns the value of UserLocation. +func (s *MessagesTool) GetUserLocation() OptMessagesToolUserLocation { + return s.UserLocation +} + +// SetDescription sets the value of Description. +func (s *MessagesTool) SetDescription(val OptString) { + s.Description = val +} + +// SetName sets the value of Name. +func (s *MessagesTool) SetName(val string) { + s.Name = val +} + +// SetInputSchema sets the value of InputSchema. +func (s *MessagesTool) SetInputSchema(val OptMessagesToolInputSchema) { + s.InputSchema = val +} + +// SetStrict sets the value of Strict. +func (s *MessagesTool) SetStrict(val OptBool) { + s.Strict = val +} + +// SetType sets the value of Type. +func (s *MessagesTool) SetType(val OptString) { + s.Type = val +} + +// SetMaxUses sets the value of MaxUses. +func (s *MessagesTool) SetMaxUses(val OptInt32) { + s.MaxUses = val +} + +// SetAllowedDomains sets the value of AllowedDomains. +func (s *MessagesTool) SetAllowedDomains(val []string) { + s.AllowedDomains = val +} + +// SetBlockedDomains sets the value of BlockedDomains. +func (s *MessagesTool) SetBlockedDomains(val []string) { + s.BlockedDomains = val +} + +// SetUserLocation sets the value of UserLocation. +func (s *MessagesTool) SetUserLocation(val OptMessagesToolUserLocation) { + s.UserLocation = val +} + +// Ref: #/components/schemas/MessagesToolChoice +type MessagesToolChoice struct { + OneOf MessagesToolChoiceSum +} + +// GetOneOf returns the value of OneOf. +func (s *MessagesToolChoice) GetOneOf() MessagesToolChoiceSum { + return s.OneOf +} + +// SetOneOf sets the value of OneOf. +func (s *MessagesToolChoice) SetOneOf(val MessagesToolChoiceSum) { + s.OneOf = val +} + +// Ref: #/components/schemas/MessagesToolChoiceAny +type MessagesToolChoiceAny struct { + Type MessagesToolChoiceAnyType `json:"type"` + DisableParallelToolUse OptBool `json:"disable_parallel_tool_use"` +} + +// GetType returns the value of Type. +func (s *MessagesToolChoiceAny) GetType() MessagesToolChoiceAnyType { + return s.Type +} + +// GetDisableParallelToolUse returns the value of DisableParallelToolUse. +func (s *MessagesToolChoiceAny) GetDisableParallelToolUse() OptBool { + return s.DisableParallelToolUse +} + +// SetType sets the value of Type. +func (s *MessagesToolChoiceAny) SetType(val MessagesToolChoiceAnyType) { + s.Type = val +} + +// SetDisableParallelToolUse sets the value of DisableParallelToolUse. +func (s *MessagesToolChoiceAny) SetDisableParallelToolUse(val OptBool) { + s.DisableParallelToolUse = val +} + +type MessagesToolChoiceAnyType string + +const ( + MessagesToolChoiceAnyTypeAny MessagesToolChoiceAnyType = "any" +) + +// AllValues returns all MessagesToolChoiceAnyType values. +func (MessagesToolChoiceAnyType) AllValues() []MessagesToolChoiceAnyType { + return []MessagesToolChoiceAnyType{ + MessagesToolChoiceAnyTypeAny, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s MessagesToolChoiceAnyType) MarshalText() ([]byte, error) { + switch s { + case MessagesToolChoiceAnyTypeAny: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *MessagesToolChoiceAnyType) UnmarshalText(data []byte) error { + switch MessagesToolChoiceAnyType(data) { + case MessagesToolChoiceAnyTypeAny: + *s = MessagesToolChoiceAnyTypeAny + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/MessagesToolChoiceAuto +type MessagesToolChoiceAuto struct { + Type MessagesToolChoiceAutoType `json:"type"` + DisableParallelToolUse OptBool `json:"disable_parallel_tool_use"` +} + +// GetType returns the value of Type. +func (s *MessagesToolChoiceAuto) GetType() MessagesToolChoiceAutoType { + return s.Type +} + +// GetDisableParallelToolUse returns the value of DisableParallelToolUse. +func (s *MessagesToolChoiceAuto) GetDisableParallelToolUse() OptBool { + return s.DisableParallelToolUse +} + +// SetType sets the value of Type. +func (s *MessagesToolChoiceAuto) SetType(val MessagesToolChoiceAutoType) { + s.Type = val +} + +// SetDisableParallelToolUse sets the value of DisableParallelToolUse. +func (s *MessagesToolChoiceAuto) SetDisableParallelToolUse(val OptBool) { + s.DisableParallelToolUse = val +} + +type MessagesToolChoiceAutoType string + +const ( + MessagesToolChoiceAutoTypeAuto MessagesToolChoiceAutoType = "auto" +) + +// AllValues returns all MessagesToolChoiceAutoType values. +func (MessagesToolChoiceAutoType) AllValues() []MessagesToolChoiceAutoType { + return []MessagesToolChoiceAutoType{ + MessagesToolChoiceAutoTypeAuto, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s MessagesToolChoiceAutoType) MarshalText() ([]byte, error) { + switch s { + case MessagesToolChoiceAutoTypeAuto: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *MessagesToolChoiceAutoType) UnmarshalText(data []byte) error { + switch MessagesToolChoiceAutoType(data) { + case MessagesToolChoiceAutoTypeAuto: + *s = MessagesToolChoiceAutoTypeAuto + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/MessagesToolChoiceNone +type MessagesToolChoiceNone struct { + Type MessagesToolChoiceNoneType `json:"type"` + DisableParallelToolUse OptBool `json:"disable_parallel_tool_use"` +} + +// GetType returns the value of Type. +func (s *MessagesToolChoiceNone) GetType() MessagesToolChoiceNoneType { + return s.Type +} + +// GetDisableParallelToolUse returns the value of DisableParallelToolUse. +func (s *MessagesToolChoiceNone) GetDisableParallelToolUse() OptBool { + return s.DisableParallelToolUse +} + +// SetType sets the value of Type. +func (s *MessagesToolChoiceNone) SetType(val MessagesToolChoiceNoneType) { + s.Type = val +} + +// SetDisableParallelToolUse sets the value of DisableParallelToolUse. +func (s *MessagesToolChoiceNone) SetDisableParallelToolUse(val OptBool) { + s.DisableParallelToolUse = val +} + +type MessagesToolChoiceNoneType string + +const ( + MessagesToolChoiceNoneTypeNone MessagesToolChoiceNoneType = "none" +) + +// AllValues returns all MessagesToolChoiceNoneType values. +func (MessagesToolChoiceNoneType) AllValues() []MessagesToolChoiceNoneType { + return []MessagesToolChoiceNoneType{ + MessagesToolChoiceNoneTypeNone, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s MessagesToolChoiceNoneType) MarshalText() ([]byte, error) { + switch s { + case MessagesToolChoiceNoneTypeNone: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *MessagesToolChoiceNoneType) UnmarshalText(data []byte) error { + switch MessagesToolChoiceNoneType(data) { + case MessagesToolChoiceNoneTypeNone: + *s = MessagesToolChoiceNoneTypeNone + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// MessagesToolChoiceSum represents sum type. +type MessagesToolChoiceSum struct { + Type MessagesToolChoiceSumType // switch on this field + MessagesToolChoiceAuto MessagesToolChoiceAuto + MessagesToolChoiceAny MessagesToolChoiceAny + MessagesToolChoiceNone MessagesToolChoiceNone + MessagesToolChoiceTool MessagesToolChoiceTool +} + +// MessagesToolChoiceSumType is oneOf type of MessagesToolChoiceSum. +type MessagesToolChoiceSumType string + +// Possible values for MessagesToolChoiceSumType. +const ( + MessagesToolChoiceAutoMessagesToolChoiceSum MessagesToolChoiceSumType = "auto" + MessagesToolChoiceAnyMessagesToolChoiceSum MessagesToolChoiceSumType = "any" + MessagesToolChoiceNoneMessagesToolChoiceSum MessagesToolChoiceSumType = "none" + MessagesToolChoiceToolMessagesToolChoiceSum MessagesToolChoiceSumType = "tool" +) + +// IsMessagesToolChoiceAuto reports whether MessagesToolChoiceSum is MessagesToolChoiceAuto. +func (s MessagesToolChoiceSum) IsMessagesToolChoiceAuto() bool { + return s.Type == MessagesToolChoiceAutoMessagesToolChoiceSum +} + +// IsMessagesToolChoiceAny reports whether MessagesToolChoiceSum is MessagesToolChoiceAny. +func (s MessagesToolChoiceSum) IsMessagesToolChoiceAny() bool { + return s.Type == MessagesToolChoiceAnyMessagesToolChoiceSum +} + +// IsMessagesToolChoiceNone reports whether MessagesToolChoiceSum is MessagesToolChoiceNone. +func (s MessagesToolChoiceSum) IsMessagesToolChoiceNone() bool { + return s.Type == MessagesToolChoiceNoneMessagesToolChoiceSum +} + +// IsMessagesToolChoiceTool reports whether MessagesToolChoiceSum is MessagesToolChoiceTool. +func (s MessagesToolChoiceSum) IsMessagesToolChoiceTool() bool { + return s.Type == MessagesToolChoiceToolMessagesToolChoiceSum +} + +// SetMessagesToolChoiceAuto sets MessagesToolChoiceSum to MessagesToolChoiceAuto. +func (s *MessagesToolChoiceSum) SetMessagesToolChoiceAuto(v MessagesToolChoiceAuto) { + s.Type = MessagesToolChoiceAutoMessagesToolChoiceSum + s.MessagesToolChoiceAuto = v +} + +// GetMessagesToolChoiceAuto returns MessagesToolChoiceAuto and true boolean if MessagesToolChoiceSum is MessagesToolChoiceAuto. +func (s MessagesToolChoiceSum) GetMessagesToolChoiceAuto() (v MessagesToolChoiceAuto, ok bool) { + if !s.IsMessagesToolChoiceAuto() { + return v, false + } + return s.MessagesToolChoiceAuto, true +} + +// NewMessagesToolChoiceAutoMessagesToolChoiceSum returns new MessagesToolChoiceSum from MessagesToolChoiceAuto. +func NewMessagesToolChoiceAutoMessagesToolChoiceSum(v MessagesToolChoiceAuto) MessagesToolChoiceSum { + var s MessagesToolChoiceSum + s.SetMessagesToolChoiceAuto(v) + return s +} + +// SetMessagesToolChoiceAny sets MessagesToolChoiceSum to MessagesToolChoiceAny. +func (s *MessagesToolChoiceSum) SetMessagesToolChoiceAny(v MessagesToolChoiceAny) { + s.Type = MessagesToolChoiceAnyMessagesToolChoiceSum + s.MessagesToolChoiceAny = v +} + +// GetMessagesToolChoiceAny returns MessagesToolChoiceAny and true boolean if MessagesToolChoiceSum is MessagesToolChoiceAny. +func (s MessagesToolChoiceSum) GetMessagesToolChoiceAny() (v MessagesToolChoiceAny, ok bool) { + if !s.IsMessagesToolChoiceAny() { + return v, false + } + return s.MessagesToolChoiceAny, true +} + +// NewMessagesToolChoiceAnyMessagesToolChoiceSum returns new MessagesToolChoiceSum from MessagesToolChoiceAny. +func NewMessagesToolChoiceAnyMessagesToolChoiceSum(v MessagesToolChoiceAny) MessagesToolChoiceSum { + var s MessagesToolChoiceSum + s.SetMessagesToolChoiceAny(v) + return s +} + +// SetMessagesToolChoiceNone sets MessagesToolChoiceSum to MessagesToolChoiceNone. +func (s *MessagesToolChoiceSum) SetMessagesToolChoiceNone(v MessagesToolChoiceNone) { + s.Type = MessagesToolChoiceNoneMessagesToolChoiceSum + s.MessagesToolChoiceNone = v +} + +// GetMessagesToolChoiceNone returns MessagesToolChoiceNone and true boolean if MessagesToolChoiceSum is MessagesToolChoiceNone. +func (s MessagesToolChoiceSum) GetMessagesToolChoiceNone() (v MessagesToolChoiceNone, ok bool) { + if !s.IsMessagesToolChoiceNone() { + return v, false + } + return s.MessagesToolChoiceNone, true +} + +// NewMessagesToolChoiceNoneMessagesToolChoiceSum returns new MessagesToolChoiceSum from MessagesToolChoiceNone. +func NewMessagesToolChoiceNoneMessagesToolChoiceSum(v MessagesToolChoiceNone) MessagesToolChoiceSum { + var s MessagesToolChoiceSum + s.SetMessagesToolChoiceNone(v) + return s +} + +// SetMessagesToolChoiceTool sets MessagesToolChoiceSum to MessagesToolChoiceTool. +func (s *MessagesToolChoiceSum) SetMessagesToolChoiceTool(v MessagesToolChoiceTool) { + s.Type = MessagesToolChoiceToolMessagesToolChoiceSum + s.MessagesToolChoiceTool = v +} + +// GetMessagesToolChoiceTool returns MessagesToolChoiceTool and true boolean if MessagesToolChoiceSum is MessagesToolChoiceTool. +func (s MessagesToolChoiceSum) GetMessagesToolChoiceTool() (v MessagesToolChoiceTool, ok bool) { + if !s.IsMessagesToolChoiceTool() { + return v, false + } + return s.MessagesToolChoiceTool, true +} + +// NewMessagesToolChoiceToolMessagesToolChoiceSum returns new MessagesToolChoiceSum from MessagesToolChoiceTool. +func NewMessagesToolChoiceToolMessagesToolChoiceSum(v MessagesToolChoiceTool) MessagesToolChoiceSum { + var s MessagesToolChoiceSum + s.SetMessagesToolChoiceTool(v) + return s +} + +// Ref: #/components/schemas/MessagesToolChoiceTool +type MessagesToolChoiceTool struct { + Type MessagesToolChoiceToolType `json:"type"` + DisableParallelToolUse OptBool `json:"disable_parallel_tool_use"` + // The name of the tool the model must invoke. + Name string `json:"name"` +} + +// GetType returns the value of Type. +func (s *MessagesToolChoiceTool) GetType() MessagesToolChoiceToolType { + return s.Type +} + +// GetDisableParallelToolUse returns the value of DisableParallelToolUse. +func (s *MessagesToolChoiceTool) GetDisableParallelToolUse() OptBool { + return s.DisableParallelToolUse +} + +// GetName returns the value of Name. +func (s *MessagesToolChoiceTool) GetName() string { + return s.Name +} + +// SetType sets the value of Type. +func (s *MessagesToolChoiceTool) SetType(val MessagesToolChoiceToolType) { + s.Type = val +} + +// SetDisableParallelToolUse sets the value of DisableParallelToolUse. +func (s *MessagesToolChoiceTool) SetDisableParallelToolUse(val OptBool) { + s.DisableParallelToolUse = val +} + +// SetName sets the value of Name. +func (s *MessagesToolChoiceTool) SetName(val string) { + s.Name = val +} + +type MessagesToolChoiceToolType string + +const ( + MessagesToolChoiceToolTypeTool MessagesToolChoiceToolType = "tool" +) + +// AllValues returns all MessagesToolChoiceToolType values. +func (MessagesToolChoiceToolType) AllValues() []MessagesToolChoiceToolType { + return []MessagesToolChoiceToolType{ + MessagesToolChoiceToolTypeTool, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s MessagesToolChoiceToolType) MarshalText() ([]byte, error) { + switch s { + case MessagesToolChoiceToolTypeTool: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *MessagesToolChoiceToolType) UnmarshalText(data []byte) error { + switch MessagesToolChoiceToolType(data) { + case MessagesToolChoiceToolTypeTool: + *s = MessagesToolChoiceToolTypeTool + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// The tool input, described as a JSON Schema object. +type MessagesToolInputSchema map[string]jx.Raw + +func (s *MessagesToolInputSchema) init() MessagesToolInputSchema { + m := *s + if m == nil { + m = map[string]jx.Raw{} + *s = m + } + return m +} + +// A tool result can be plain text or an array of typed content parts. +// Ref: #/components/schemas/MessagesToolResultContent +// MessagesToolResultContent represents sum type. +type MessagesToolResultContent struct { + Type MessagesToolResultContentType // switch on this field + String string + MessagesToolResultContentPartArray []MessagesToolResultContentPart +} + +// MessagesToolResultContentType is oneOf type of MessagesToolResultContent. +type MessagesToolResultContentType string + +// Possible values for MessagesToolResultContentType. +const ( + StringMessagesToolResultContent MessagesToolResultContentType = "string" + MessagesToolResultContentPartArrayMessagesToolResultContent MessagesToolResultContentType = "[]MessagesToolResultContentPart" +) + +// IsString reports whether MessagesToolResultContent is string. +func (s MessagesToolResultContent) IsString() bool { return s.Type == StringMessagesToolResultContent } + +// IsMessagesToolResultContentPartArray reports whether MessagesToolResultContent is []MessagesToolResultContentPart. +func (s MessagesToolResultContent) IsMessagesToolResultContentPartArray() bool { + return s.Type == MessagesToolResultContentPartArrayMessagesToolResultContent +} + +// SetString sets MessagesToolResultContent to string. +func (s *MessagesToolResultContent) SetString(v string) { + s.Type = StringMessagesToolResultContent + s.String = v +} + +// GetString returns string and true boolean if MessagesToolResultContent is string. +func (s MessagesToolResultContent) GetString() (v string, ok bool) { + if !s.IsString() { + return v, false + } + return s.String, true +} + +// NewStringMessagesToolResultContent returns new MessagesToolResultContent from string. +func NewStringMessagesToolResultContent(v string) MessagesToolResultContent { + var s MessagesToolResultContent + s.SetString(v) + return s +} + +// SetMessagesToolResultContentPartArray sets MessagesToolResultContent to []MessagesToolResultContentPart. +func (s *MessagesToolResultContent) SetMessagesToolResultContentPartArray(v []MessagesToolResultContentPart) { + s.Type = MessagesToolResultContentPartArrayMessagesToolResultContent + s.MessagesToolResultContentPartArray = v +} + +// GetMessagesToolResultContentPartArray returns []MessagesToolResultContentPart and true boolean if MessagesToolResultContent is []MessagesToolResultContentPart. +func (s MessagesToolResultContent) GetMessagesToolResultContentPartArray() (v []MessagesToolResultContentPart, ok bool) { + if !s.IsMessagesToolResultContentPartArray() { + return v, false + } + return s.MessagesToolResultContentPartArray, true +} + +// NewMessagesToolResultContentPartArrayMessagesToolResultContent returns new MessagesToolResultContent from []MessagesToolResultContentPart. +func NewMessagesToolResultContentPartArrayMessagesToolResultContent(v []MessagesToolResultContentPart) MessagesToolResultContent { + var s MessagesToolResultContent + s.SetMessagesToolResultContentPartArray(v) + return s +} + +// Ref: #/components/schemas/MessagesToolResultContentPart +type MessagesToolResultContentPart struct { + OneOf MessagesToolResultContentPartSum +} + +// GetOneOf returns the value of OneOf. +func (s *MessagesToolResultContentPart) GetOneOf() MessagesToolResultContentPartSum { + return s.OneOf +} + +// SetOneOf sets the value of OneOf. +func (s *MessagesToolResultContentPart) SetOneOf(val MessagesToolResultContentPartSum) { + s.OneOf = val +} + +// MessagesToolResultContentPartSum represents sum type. +type MessagesToolResultContentPartSum struct { + Type MessagesToolResultContentPartSumType // switch on this field + MessagesContentPartText MessagesContentPartText + MessagesContentPartImage MessagesContentPartImage + MessagesContentPartToolReference MessagesContentPartToolReference +} + +// MessagesToolResultContentPartSumType is oneOf type of MessagesToolResultContentPartSum. +type MessagesToolResultContentPartSumType string + +// Possible values for MessagesToolResultContentPartSumType. +const ( + MessagesContentPartTextMessagesToolResultContentPartSum MessagesToolResultContentPartSumType = "text" + MessagesContentPartImageMessagesToolResultContentPartSum MessagesToolResultContentPartSumType = "image" + MessagesContentPartToolReferenceMessagesToolResultContentPartSum MessagesToolResultContentPartSumType = "tool_reference" +) + +// IsMessagesContentPartText reports whether MessagesToolResultContentPartSum is MessagesContentPartText. +func (s MessagesToolResultContentPartSum) IsMessagesContentPartText() bool { + return s.Type == MessagesContentPartTextMessagesToolResultContentPartSum +} + +// IsMessagesContentPartImage reports whether MessagesToolResultContentPartSum is MessagesContentPartImage. +func (s MessagesToolResultContentPartSum) IsMessagesContentPartImage() bool { + return s.Type == MessagesContentPartImageMessagesToolResultContentPartSum +} + +// IsMessagesContentPartToolReference reports whether MessagesToolResultContentPartSum is MessagesContentPartToolReference. +func (s MessagesToolResultContentPartSum) IsMessagesContentPartToolReference() bool { + return s.Type == MessagesContentPartToolReferenceMessagesToolResultContentPartSum +} + +// SetMessagesContentPartText sets MessagesToolResultContentPartSum to MessagesContentPartText. +func (s *MessagesToolResultContentPartSum) SetMessagesContentPartText(v MessagesContentPartText) { + s.Type = MessagesContentPartTextMessagesToolResultContentPartSum + s.MessagesContentPartText = v +} + +// GetMessagesContentPartText returns MessagesContentPartText and true boolean if MessagesToolResultContentPartSum is MessagesContentPartText. +func (s MessagesToolResultContentPartSum) GetMessagesContentPartText() (v MessagesContentPartText, ok bool) { + if !s.IsMessagesContentPartText() { + return v, false + } + return s.MessagesContentPartText, true +} + +// NewMessagesContentPartTextMessagesToolResultContentPartSum returns new MessagesToolResultContentPartSum from MessagesContentPartText. +func NewMessagesContentPartTextMessagesToolResultContentPartSum(v MessagesContentPartText) MessagesToolResultContentPartSum { + var s MessagesToolResultContentPartSum + s.SetMessagesContentPartText(v) + return s +} + +// SetMessagesContentPartImage sets MessagesToolResultContentPartSum to MessagesContentPartImage. +func (s *MessagesToolResultContentPartSum) SetMessagesContentPartImage(v MessagesContentPartImage) { + s.Type = MessagesContentPartImageMessagesToolResultContentPartSum + s.MessagesContentPartImage = v +} + +// GetMessagesContentPartImage returns MessagesContentPartImage and true boolean if MessagesToolResultContentPartSum is MessagesContentPartImage. +func (s MessagesToolResultContentPartSum) GetMessagesContentPartImage() (v MessagesContentPartImage, ok bool) { + if !s.IsMessagesContentPartImage() { + return v, false + } + return s.MessagesContentPartImage, true +} + +// NewMessagesContentPartImageMessagesToolResultContentPartSum returns new MessagesToolResultContentPartSum from MessagesContentPartImage. +func NewMessagesContentPartImageMessagesToolResultContentPartSum(v MessagesContentPartImage) MessagesToolResultContentPartSum { + var s MessagesToolResultContentPartSum + s.SetMessagesContentPartImage(v) + return s +} + +// SetMessagesContentPartToolReference sets MessagesToolResultContentPartSum to MessagesContentPartToolReference. +func (s *MessagesToolResultContentPartSum) SetMessagesContentPartToolReference(v MessagesContentPartToolReference) { + s.Type = MessagesContentPartToolReferenceMessagesToolResultContentPartSum + s.MessagesContentPartToolReference = v +} + +// GetMessagesContentPartToolReference returns MessagesContentPartToolReference and true boolean if MessagesToolResultContentPartSum is MessagesContentPartToolReference. +func (s MessagesToolResultContentPartSum) GetMessagesContentPartToolReference() (v MessagesContentPartToolReference, ok bool) { + if !s.IsMessagesContentPartToolReference() { + return v, false + } + return s.MessagesContentPartToolReference, true +} + +// NewMessagesContentPartToolReferenceMessagesToolResultContentPartSum returns new MessagesToolResultContentPartSum from MessagesContentPartToolReference. +func NewMessagesContentPartToolReferenceMessagesToolResultContentPartSum(v MessagesContentPartToolReference) MessagesToolResultContentPartSum { + var s MessagesToolResultContentPartSum + s.SetMessagesContentPartToolReference(v) + return s +} + +// Ref: #/components/schemas/MessagesToolUserLocation +type MessagesToolUserLocation struct { + Type OptString `json:"type"` + City OptString `json:"city"` + Region OptString `json:"region"` + Country OptString `json:"country"` + Timezone OptString `json:"timezone"` +} + +// GetType returns the value of Type. +func (s *MessagesToolUserLocation) GetType() OptString { + return s.Type +} + +// GetCity returns the value of City. +func (s *MessagesToolUserLocation) GetCity() OptString { + return s.City +} + +// GetRegion returns the value of Region. +func (s *MessagesToolUserLocation) GetRegion() OptString { + return s.Region +} + +// GetCountry returns the value of Country. +func (s *MessagesToolUserLocation) GetCountry() OptString { + return s.Country +} + +// GetTimezone returns the value of Timezone. +func (s *MessagesToolUserLocation) GetTimezone() OptString { + return s.Timezone +} + +// SetType sets the value of Type. +func (s *MessagesToolUserLocation) SetType(val OptString) { + s.Type = val +} + +// SetCity sets the value of City. +func (s *MessagesToolUserLocation) SetCity(val OptString) { + s.City = val +} + +// SetRegion sets the value of Region. +func (s *MessagesToolUserLocation) SetRegion(val OptString) { + s.Region = val +} + +// SetCountry sets the value of Country. +func (s *MessagesToolUserLocation) SetCountry(val OptString) { + s.Country = val +} + +// SetTimezone sets the value of Timezone. +func (s *MessagesToolUserLocation) SetTimezone(val OptString) { + s.Timezone = val +} + +// Usage statistics for the Messages API. +// Ref: #/components/schemas/MessagesUsage +type MessagesUsage struct { + // Number of tokens in the prompt. + InputTokens OptInt32 `json:"input_tokens"` + // Number of tokens in the generated completion. + OutputTokens OptInt32 `json:"output_tokens"` + // Number of prompt tokens read from the prefill cache. + CacheReadInputTokens OptInt32 `json:"cache_read_input_tokens"` + // Counts of requests dispatched by server-managed tools. + ServerToolUse OptMessagesServerToolUsage `json:"server_tool_use"` + // One token-usage record for each model iteration. + Iterations []MessagesIterationUsage `json:"iterations"` +} + +// GetInputTokens returns the value of InputTokens. +func (s *MessagesUsage) GetInputTokens() OptInt32 { + return s.InputTokens +} + +// GetOutputTokens returns the value of OutputTokens. +func (s *MessagesUsage) GetOutputTokens() OptInt32 { + return s.OutputTokens +} + +// GetCacheReadInputTokens returns the value of CacheReadInputTokens. +func (s *MessagesUsage) GetCacheReadInputTokens() OptInt32 { + return s.CacheReadInputTokens +} + +// GetServerToolUse returns the value of ServerToolUse. +func (s *MessagesUsage) GetServerToolUse() OptMessagesServerToolUsage { + return s.ServerToolUse +} + +// GetIterations returns the value of Iterations. +func (s *MessagesUsage) GetIterations() []MessagesIterationUsage { + return s.Iterations +} + +// SetInputTokens sets the value of InputTokens. +func (s *MessagesUsage) SetInputTokens(val OptInt32) { + s.InputTokens = val +} + +// SetOutputTokens sets the value of OutputTokens. +func (s *MessagesUsage) SetOutputTokens(val OptInt32) { + s.OutputTokens = val +} + +// SetCacheReadInputTokens sets the value of CacheReadInputTokens. +func (s *MessagesUsage) SetCacheReadInputTokens(val OptInt32) { + s.CacheReadInputTokens = val +} + +// SetServerToolUse sets the value of ServerToolUse. +func (s *MessagesUsage) SetServerToolUse(val OptMessagesServerToolUsage) { + s.ServerToolUse = val +} + +// SetIterations sets the value of Iterations. +func (s *MessagesUsage) SetIterations(val []MessagesIterationUsage) { + s.Iterations = val +} + +// Ref: #/components/schemas/MessagesWebSearchResult +type MessagesWebSearchResult struct { + // The type of the result. Always `web_search_result`. + Type MessagesWebSearchResultType `json:"type"` + Title string `json:"title"` + URL string `json:"url"` + EncryptedContent string `json:"encrypted_content"` + PageAge OptString `json:"page_age"` +} + +// GetType returns the value of Type. +func (s *MessagesWebSearchResult) GetType() MessagesWebSearchResultType { + return s.Type +} + +// GetTitle returns the value of Title. +func (s *MessagesWebSearchResult) GetTitle() string { + return s.Title +} + +// GetURL returns the value of URL. +func (s *MessagesWebSearchResult) GetURL() string { + return s.URL +} + +// GetEncryptedContent returns the value of EncryptedContent. +func (s *MessagesWebSearchResult) GetEncryptedContent() string { + return s.EncryptedContent +} + +// GetPageAge returns the value of PageAge. +func (s *MessagesWebSearchResult) GetPageAge() OptString { + return s.PageAge +} + +// SetType sets the value of Type. +func (s *MessagesWebSearchResult) SetType(val MessagesWebSearchResultType) { + s.Type = val +} + +// SetTitle sets the value of Title. +func (s *MessagesWebSearchResult) SetTitle(val string) { + s.Title = val +} + +// SetURL sets the value of URL. +func (s *MessagesWebSearchResult) SetURL(val string) { + s.URL = val +} + +// SetEncryptedContent sets the value of EncryptedContent. +func (s *MessagesWebSearchResult) SetEncryptedContent(val string) { + s.EncryptedContent = val +} + +// SetPageAge sets the value of PageAge. +func (s *MessagesWebSearchResult) SetPageAge(val OptString) { + s.PageAge = val +} + +// The type of the result. Always `web_search_result`. +type MessagesWebSearchResultType string + +const ( + MessagesWebSearchResultTypeWebSearchResult MessagesWebSearchResultType = "web_search_result" +) + +// AllValues returns all MessagesWebSearchResultType values. +func (MessagesWebSearchResultType) AllValues() []MessagesWebSearchResultType { + return []MessagesWebSearchResultType{ + MessagesWebSearchResultTypeWebSearchResult, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s MessagesWebSearchResultType) MarshalText() ([]byte, error) { + switch s { + case MessagesWebSearchResultTypeWebSearchResult: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *MessagesWebSearchResultType) UnmarshalText(data []byte) error { + switch MessagesWebSearchResultType(data) { + case MessagesWebSearchResultTypeWebSearchResult: + *s = MessagesWebSearchResultTypeWebSearchResult + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Successful web-search results or one model-visible server-tool error. +// Ref: #/components/schemas/MessagesWebSearchToolResultContent +// MessagesWebSearchToolResultContent represents sum type. +type MessagesWebSearchToolResultContent struct { + Type MessagesWebSearchToolResultContentType // switch on this field + MessagesWebSearchResultArray []MessagesWebSearchResult + MessagesWebSearchToolResultError MessagesWebSearchToolResultError +} + +// MessagesWebSearchToolResultContentType is oneOf type of MessagesWebSearchToolResultContent. +type MessagesWebSearchToolResultContentType string + +// Possible values for MessagesWebSearchToolResultContentType. +const ( + MessagesWebSearchResultArrayMessagesWebSearchToolResultContent MessagesWebSearchToolResultContentType = "[]MessagesWebSearchResult" + MessagesWebSearchToolResultErrorMessagesWebSearchToolResultContent MessagesWebSearchToolResultContentType = "MessagesWebSearchToolResultError" +) + +// IsMessagesWebSearchResultArray reports whether MessagesWebSearchToolResultContent is []MessagesWebSearchResult. +func (s MessagesWebSearchToolResultContent) IsMessagesWebSearchResultArray() bool { + return s.Type == MessagesWebSearchResultArrayMessagesWebSearchToolResultContent +} + +// IsMessagesWebSearchToolResultError reports whether MessagesWebSearchToolResultContent is MessagesWebSearchToolResultError. +func (s MessagesWebSearchToolResultContent) IsMessagesWebSearchToolResultError() bool { + return s.Type == MessagesWebSearchToolResultErrorMessagesWebSearchToolResultContent +} + +// SetMessagesWebSearchResultArray sets MessagesWebSearchToolResultContent to []MessagesWebSearchResult. +func (s *MessagesWebSearchToolResultContent) SetMessagesWebSearchResultArray(v []MessagesWebSearchResult) { + s.Type = MessagesWebSearchResultArrayMessagesWebSearchToolResultContent + s.MessagesWebSearchResultArray = v +} + +// GetMessagesWebSearchResultArray returns []MessagesWebSearchResult and true boolean if MessagesWebSearchToolResultContent is []MessagesWebSearchResult. +func (s MessagesWebSearchToolResultContent) GetMessagesWebSearchResultArray() (v []MessagesWebSearchResult, ok bool) { + if !s.IsMessagesWebSearchResultArray() { + return v, false + } + return s.MessagesWebSearchResultArray, true +} + +// NewMessagesWebSearchResultArrayMessagesWebSearchToolResultContent returns new MessagesWebSearchToolResultContent from []MessagesWebSearchResult. +func NewMessagesWebSearchResultArrayMessagesWebSearchToolResultContent(v []MessagesWebSearchResult) MessagesWebSearchToolResultContent { + var s MessagesWebSearchToolResultContent + s.SetMessagesWebSearchResultArray(v) + return s +} + +// SetMessagesWebSearchToolResultError sets MessagesWebSearchToolResultContent to MessagesWebSearchToolResultError. +func (s *MessagesWebSearchToolResultContent) SetMessagesWebSearchToolResultError(v MessagesWebSearchToolResultError) { + s.Type = MessagesWebSearchToolResultErrorMessagesWebSearchToolResultContent + s.MessagesWebSearchToolResultError = v +} + +// GetMessagesWebSearchToolResultError returns MessagesWebSearchToolResultError and true boolean if MessagesWebSearchToolResultContent is MessagesWebSearchToolResultError. +func (s MessagesWebSearchToolResultContent) GetMessagesWebSearchToolResultError() (v MessagesWebSearchToolResultError, ok bool) { + if !s.IsMessagesWebSearchToolResultError() { + return v, false + } + return s.MessagesWebSearchToolResultError, true +} + +// NewMessagesWebSearchToolResultErrorMessagesWebSearchToolResultContent returns new MessagesWebSearchToolResultContent from MessagesWebSearchToolResultError. +func NewMessagesWebSearchToolResultErrorMessagesWebSearchToolResultContent(v MessagesWebSearchToolResultError) MessagesWebSearchToolResultContent { + var s MessagesWebSearchToolResultContent + s.SetMessagesWebSearchToolResultError(v) + return s +} + +// Ref: #/components/schemas/MessagesWebSearchToolResultError +type MessagesWebSearchToolResultError struct { + // The type of the result. Always `web_search_tool_result_error`. + Type MessagesWebSearchToolResultErrorType `json:"type"` + ErrorCode string `json:"error_code"` +} + +// GetType returns the value of Type. +func (s *MessagesWebSearchToolResultError) GetType() MessagesWebSearchToolResultErrorType { + return s.Type +} + +// GetErrorCode returns the value of ErrorCode. +func (s *MessagesWebSearchToolResultError) GetErrorCode() string { + return s.ErrorCode +} + +// SetType sets the value of Type. +func (s *MessagesWebSearchToolResultError) SetType(val MessagesWebSearchToolResultErrorType) { + s.Type = val +} + +// SetErrorCode sets the value of ErrorCode. +func (s *MessagesWebSearchToolResultError) SetErrorCode(val string) { + s.ErrorCode = val +} + +// The type of the result. Always `web_search_tool_result_error`. +type MessagesWebSearchToolResultErrorType string + +const ( + MessagesWebSearchToolResultErrorTypeWebSearchToolResultError MessagesWebSearchToolResultErrorType = "web_search_tool_result_error" +) + +// AllValues returns all MessagesWebSearchToolResultErrorType values. +func (MessagesWebSearchToolResultErrorType) AllValues() []MessagesWebSearchToolResultErrorType { + return []MessagesWebSearchToolResultErrorType{ + MessagesWebSearchToolResultErrorTypeWebSearchToolResultError, + } +} + +// MarshalText implements encoding.TextMarshaler. +func (s MessagesWebSearchToolResultErrorType) MarshalText() ([]byte, error) { + switch s { + case MessagesWebSearchToolResultErrorTypeWebSearchToolResultError: + return []byte(s), nil + default: + return nil, errors.Errorf("invalid value: %q", s) + } +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (s *MessagesWebSearchToolResultErrorType) UnmarshalText(data []byte) error { + switch MessagesWebSearchToolResultErrorType(data) { + case MessagesWebSearchToolResultErrorTypeWebSearchToolResultError: + *s = MessagesWebSearchToolResultErrorTypeWebSearchToolResultError + return nil + default: + return errors.Errorf("invalid value: %q", data) + } +} + +// Ref: #/components/schemas/ModelFallbackStatus +type ModelFallbackStatus struct { + // Whether a model fallback was triggered for this request. + FallbackTriggered bool `json:"fallback_triggered"` + // The model originally requested before fallback. + OriginalModel string `json:"original_model"` +} + +// GetFallbackTriggered returns the value of FallbackTriggered. +func (s *ModelFallbackStatus) GetFallbackTriggered() bool { + return s.FallbackTriggered +} + +// GetOriginalModel returns the value of OriginalModel. +func (s *ModelFallbackStatus) GetOriginalModel() string { + return s.OriginalModel +} + +// SetFallbackTriggered sets the value of FallbackTriggered. +func (s *ModelFallbackStatus) SetFallbackTriggered(val bool) { + s.FallbackTriggered = val +} + +// SetOriginalModel sets the value of OriginalModel. +func (s *ModelFallbackStatus) SetOriginalModel(val string) { + s.OriginalModel = val +} + +// NewNilMessagesResponseStopReason returns new NilMessagesResponseStopReason with value set to v. +func NewNilMessagesResponseStopReason(v MessagesResponseStopReason) NilMessagesResponseStopReason { + return NilMessagesResponseStopReason{ + Value: v, + } +} + +// NilMessagesResponseStopReason is nullable MessagesResponseStopReason. +type NilMessagesResponseStopReason struct { + Value MessagesResponseStopReason + Null bool +} + +// SetTo sets value to v. +func (o *NilMessagesResponseStopReason) SetTo(v MessagesResponseStopReason) { + o.Null = false + o.Value = v +} + +// IsNull returns true if value is Null. +func (o NilMessagesResponseStopReason) IsNull() bool { return o.Null } + +// SetToNull sets value to null. +func (o *NilMessagesResponseStopReason) SetToNull() { + o.Null = true + var v MessagesResponseStopReason + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o NilMessagesResponseStopReason) Get() (v MessagesResponseStopReason, ok bool) { + if o.Null { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o NilMessagesResponseStopReason) Or(d MessagesResponseStopReason) MessagesResponseStopReason { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewNilMessagesUsage returns new NilMessagesUsage with value set to v. +func NewNilMessagesUsage(v MessagesUsage) NilMessagesUsage { + return NilMessagesUsage{ + Value: v, + } +} + +// NilMessagesUsage is nullable MessagesUsage. +type NilMessagesUsage struct { + Value MessagesUsage + Null bool +} + +// SetTo sets value to v. +func (o *NilMessagesUsage) SetTo(v MessagesUsage) { + o.Null = false + o.Value = v +} + +// IsNull returns true if value is Null. +func (o NilMessagesUsage) IsNull() bool { return o.Null } + +// SetToNull sets value to null. +func (o *NilMessagesUsage) SetToNull() { + o.Null = true + var v MessagesUsage + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o NilMessagesUsage) Get() (v MessagesUsage, ok bool) { + if o.Null { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o NilMessagesUsage) Or(d MessagesUsage) MessagesUsage { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewNilString returns new NilString with value set to v. +func NewNilString(v string) NilString { + return NilString{ + Value: v, + } +} + +// NilString is nullable string. +type NilString struct { + Value string + Null bool +} + +// SetTo sets value to v. +func (o *NilString) SetTo(v string) { + o.Null = false + o.Value = v +} + +// IsNull returns true if value is Null. +func (o NilString) IsNull() bool { return o.Null } + +// SetToNull sets value to null. +func (o *NilString) SetToNull() { + o.Null = true + var v string + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o NilString) Get() (v string, ok bool) { + if o.Null { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o NilString) Or(d string) string { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptBool returns new OptBool with value set to v. +func NewOptBool(v bool) OptBool { + return OptBool{ + Value: v, + Set: true, + } +} + +// OptBool is optional bool. +type OptBool struct { + Value bool + Set bool +} + +// IsSet returns true if OptBool was set. +func (o OptBool) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptBool) Reset() { + var v bool + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptBool) SetTo(v bool) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptBool) Get() (v bool, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptBool) Or(d bool) bool { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptFloat64 returns new OptFloat64 with value set to v. +func NewOptFloat64(v float64) OptFloat64 { + return OptFloat64{ + Value: v, + Set: true, + } +} + +// OptFloat64 is optional float64. +type OptFloat64 struct { + Value float64 + Set bool +} + +// IsSet returns true if OptFloat64 was set. +func (o OptFloat64) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptFloat64) Reset() { + var v float64 + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptFloat64) SetTo(v float64) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptFloat64) Get() (v float64, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptFloat64) Or(d float64) float64 { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptInt32 returns new OptInt32 with value set to v. +func NewOptInt32(v int32) OptInt32 { + return OptInt32{ + Value: v, + Set: true, + } +} + +// OptInt32 is optional int32. +type OptInt32 struct { + Value int32 + Set bool +} + +// IsSet returns true if OptInt32 was set. +func (o OptInt32) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptInt32) Reset() { + var v int32 + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptInt32) SetTo(v int32) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptInt32) Get() (v int32, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptInt32) Or(d int32) int32 { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptMessagesContextManagement returns new OptMessagesContextManagement with value set to v. +func NewOptMessagesContextManagement(v MessagesContextManagement) OptMessagesContextManagement { + return OptMessagesContextManagement{ + Value: v, + Set: true, + } +} + +// OptMessagesContextManagement is optional MessagesContextManagement. +type OptMessagesContextManagement struct { + Value MessagesContextManagement + Set bool +} + +// IsSet returns true if OptMessagesContextManagement was set. +func (o OptMessagesContextManagement) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptMessagesContextManagement) Reset() { + var v MessagesContextManagement + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptMessagesContextManagement) SetTo(v MessagesContextManagement) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptMessagesContextManagement) Get() (v MessagesContextManagement, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptMessagesContextManagement) Or(d MessagesContextManagement) MessagesContextManagement { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptMessagesContextManagementClearToolUsesTrigger returns new OptMessagesContextManagementClearToolUsesTrigger with value set to v. +func NewOptMessagesContextManagementClearToolUsesTrigger(v MessagesContextManagementClearToolUsesTrigger) OptMessagesContextManagementClearToolUsesTrigger { + return OptMessagesContextManagementClearToolUsesTrigger{ + Value: v, + Set: true, + } +} + +// OptMessagesContextManagementClearToolUsesTrigger is optional MessagesContextManagementClearToolUsesTrigger. +type OptMessagesContextManagementClearToolUsesTrigger struct { + Value MessagesContextManagementClearToolUsesTrigger + Set bool +} + +// IsSet returns true if OptMessagesContextManagementClearToolUsesTrigger was set. +func (o OptMessagesContextManagementClearToolUsesTrigger) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptMessagesContextManagementClearToolUsesTrigger) Reset() { + var v MessagesContextManagementClearToolUsesTrigger + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptMessagesContextManagementClearToolUsesTrigger) SetTo(v MessagesContextManagementClearToolUsesTrigger) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptMessagesContextManagementClearToolUsesTrigger) Get() (v MessagesContextManagementClearToolUsesTrigger, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptMessagesContextManagementClearToolUsesTrigger) Or(d MessagesContextManagementClearToolUsesTrigger) MessagesContextManagementClearToolUsesTrigger { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptMessagesContextManagementKeep returns new OptMessagesContextManagementKeep with value set to v. +func NewOptMessagesContextManagementKeep(v MessagesContextManagementKeep) OptMessagesContextManagementKeep { + return OptMessagesContextManagementKeep{ + Value: v, + Set: true, + } +} + +// OptMessagesContextManagementKeep is optional MessagesContextManagementKeep. +type OptMessagesContextManagementKeep struct { + Value MessagesContextManagementKeep + Set bool +} + +// IsSet returns true if OptMessagesContextManagementKeep was set. +func (o OptMessagesContextManagementKeep) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptMessagesContextManagementKeep) Reset() { + var v MessagesContextManagementKeep + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptMessagesContextManagementKeep) SetTo(v MessagesContextManagementKeep) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptMessagesContextManagementKeep) Get() (v MessagesContextManagementKeep, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptMessagesContextManagementKeep) Or(d MessagesContextManagementKeep) MessagesContextManagementKeep { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptMessagesMetadata returns new OptMessagesMetadata with value set to v. +func NewOptMessagesMetadata(v MessagesMetadata) OptMessagesMetadata { + return OptMessagesMetadata{ + Value: v, + Set: true, + } +} + +// OptMessagesMetadata is optional MessagesMetadata. +type OptMessagesMetadata struct { + Value MessagesMetadata + Set bool +} + +// IsSet returns true if OptMessagesMetadata was set. +func (o OptMessagesMetadata) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptMessagesMetadata) Reset() { + var v MessagesMetadata + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptMessagesMetadata) SetTo(v MessagesMetadata) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptMessagesMetadata) Get() (v MessagesMetadata, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptMessagesMetadata) Or(d MessagesMetadata) MessagesMetadata { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptMessagesOutputConfig returns new OptMessagesOutputConfig with value set to v. +func NewOptMessagesOutputConfig(v MessagesOutputConfig) OptMessagesOutputConfig { + return OptMessagesOutputConfig{ + Value: v, + Set: true, + } +} + +// OptMessagesOutputConfig is optional MessagesOutputConfig. +type OptMessagesOutputConfig struct { + Value MessagesOutputConfig + Set bool +} + +// IsSet returns true if OptMessagesOutputConfig was set. +func (o OptMessagesOutputConfig) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptMessagesOutputConfig) Reset() { + var v MessagesOutputConfig + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptMessagesOutputConfig) SetTo(v MessagesOutputConfig) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptMessagesOutputConfig) Get() (v MessagesOutputConfig, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptMessagesOutputConfig) Or(d MessagesOutputConfig) MessagesOutputConfig { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptMessagesOutputFormat returns new OptMessagesOutputFormat with value set to v. +func NewOptMessagesOutputFormat(v MessagesOutputFormat) OptMessagesOutputFormat { + return OptMessagesOutputFormat{ + Value: v, + Set: true, + } +} + +// OptMessagesOutputFormat is optional MessagesOutputFormat. +type OptMessagesOutputFormat struct { + Value MessagesOutputFormat + Set bool +} + +// IsSet returns true if OptMessagesOutputFormat was set. +func (o OptMessagesOutputFormat) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptMessagesOutputFormat) Reset() { + var v MessagesOutputFormat + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptMessagesOutputFormat) SetTo(v MessagesOutputFormat) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptMessagesOutputFormat) Get() (v MessagesOutputFormat, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptMessagesOutputFormat) Or(d MessagesOutputFormat) MessagesOutputFormat { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptMessagesOutputFormatSchema returns new OptMessagesOutputFormatSchema with value set to v. +func NewOptMessagesOutputFormatSchema(v MessagesOutputFormatSchema) OptMessagesOutputFormatSchema { + return OptMessagesOutputFormatSchema{ + Value: v, + Set: true, + } +} + +// OptMessagesOutputFormatSchema is optional MessagesOutputFormatSchema. +type OptMessagesOutputFormatSchema struct { + Value MessagesOutputFormatSchema + Set bool +} + +// IsSet returns true if OptMessagesOutputFormatSchema was set. +func (o OptMessagesOutputFormatSchema) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptMessagesOutputFormatSchema) Reset() { + var v MessagesOutputFormatSchema + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptMessagesOutputFormatSchema) SetTo(v MessagesOutputFormatSchema) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptMessagesOutputFormatSchema) Get() (v MessagesOutputFormatSchema, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptMessagesOutputFormatSchema) Or(d MessagesOutputFormatSchema) MessagesOutputFormatSchema { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptMessagesRequestLogitBias returns new OptMessagesRequestLogitBias with value set to v. +func NewOptMessagesRequestLogitBias(v MessagesRequestLogitBias) OptMessagesRequestLogitBias { + return OptMessagesRequestLogitBias{ + Value: v, + Set: true, + } +} + +// OptMessagesRequestLogitBias is optional MessagesRequestLogitBias. +type OptMessagesRequestLogitBias struct { + Value MessagesRequestLogitBias + Set bool +} + +// IsSet returns true if OptMessagesRequestLogitBias was set. +func (o OptMessagesRequestLogitBias) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptMessagesRequestLogitBias) Reset() { + var v MessagesRequestLogitBias + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptMessagesRequestLogitBias) SetTo(v MessagesRequestLogitBias) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptMessagesRequestLogitBias) Get() (v MessagesRequestLogitBias, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptMessagesRequestLogitBias) Or(d MessagesRequestLogitBias) MessagesRequestLogitBias { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptMessagesRequestServiceTier returns new OptMessagesRequestServiceTier with value set to v. +func NewOptMessagesRequestServiceTier(v MessagesRequestServiceTier) OptMessagesRequestServiceTier { + return OptMessagesRequestServiceTier{ + Value: v, + Set: true, + } +} + +// OptMessagesRequestServiceTier is optional MessagesRequestServiceTier. +type OptMessagesRequestServiceTier struct { + Value MessagesRequestServiceTier + Set bool +} + +// IsSet returns true if OptMessagesRequestServiceTier was set. +func (o OptMessagesRequestServiceTier) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptMessagesRequestServiceTier) Reset() { + var v MessagesRequestServiceTier + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptMessagesRequestServiceTier) SetTo(v MessagesRequestServiceTier) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptMessagesRequestServiceTier) Get() (v MessagesRequestServiceTier, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptMessagesRequestServiceTier) Or(d MessagesRequestServiceTier) MessagesRequestServiceTier { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptMessagesResponseStopReason returns new OptMessagesResponseStopReason with value set to v. +func NewOptMessagesResponseStopReason(v MessagesResponseStopReason) OptMessagesResponseStopReason { + return OptMessagesResponseStopReason{ + Value: v, + Set: true, + } +} + +// OptMessagesResponseStopReason is optional MessagesResponseStopReason. +type OptMessagesResponseStopReason struct { + Value MessagesResponseStopReason + Set bool +} + +// IsSet returns true if OptMessagesResponseStopReason was set. +func (o OptMessagesResponseStopReason) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptMessagesResponseStopReason) Reset() { + var v MessagesResponseStopReason + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptMessagesResponseStopReason) SetTo(v MessagesResponseStopReason) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptMessagesResponseStopReason) Get() (v MessagesResponseStopReason, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptMessagesResponseStopReason) Or(d MessagesResponseStopReason) MessagesResponseStopReason { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptMessagesServerToolCaller returns new OptMessagesServerToolCaller with value set to v. +func NewOptMessagesServerToolCaller(v MessagesServerToolCaller) OptMessagesServerToolCaller { + return OptMessagesServerToolCaller{ + Value: v, + Set: true, + } +} + +// OptMessagesServerToolCaller is optional MessagesServerToolCaller. +type OptMessagesServerToolCaller struct { + Value MessagesServerToolCaller + Set bool +} + +// IsSet returns true if OptMessagesServerToolCaller was set. +func (o OptMessagesServerToolCaller) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptMessagesServerToolCaller) Reset() { + var v MessagesServerToolCaller + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptMessagesServerToolCaller) SetTo(v MessagesServerToolCaller) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptMessagesServerToolCaller) Get() (v MessagesServerToolCaller, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptMessagesServerToolCaller) Or(d MessagesServerToolCaller) MessagesServerToolCaller { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptMessagesServerToolUsage returns new OptMessagesServerToolUsage with value set to v. +func NewOptMessagesServerToolUsage(v MessagesServerToolUsage) OptMessagesServerToolUsage { + return OptMessagesServerToolUsage{ + Value: v, + Set: true, + } +} + +// OptMessagesServerToolUsage is optional MessagesServerToolUsage. +type OptMessagesServerToolUsage struct { + Value MessagesServerToolUsage + Set bool +} + +// IsSet returns true if OptMessagesServerToolUsage was set. +func (o OptMessagesServerToolUsage) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptMessagesServerToolUsage) Reset() { + var v MessagesServerToolUsage + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptMessagesServerToolUsage) SetTo(v MessagesServerToolUsage) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptMessagesServerToolUsage) Get() (v MessagesServerToolUsage, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptMessagesServerToolUsage) Or(d MessagesServerToolUsage) MessagesServerToolUsage { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptMessagesServiceStatus returns new OptMessagesServiceStatus with value set to v. +func NewOptMessagesServiceStatus(v MessagesServiceStatus) OptMessagesServiceStatus { + return OptMessagesServiceStatus{ + Value: v, + Set: true, + } +} + +// OptMessagesServiceStatus is optional MessagesServiceStatus. +type OptMessagesServiceStatus struct { + Value MessagesServiceStatus + Set bool +} + +// IsSet returns true if OptMessagesServiceStatus was set. +func (o OptMessagesServiceStatus) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptMessagesServiceStatus) Reset() { + var v MessagesServiceStatus + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptMessagesServiceStatus) SetTo(v MessagesServiceStatus) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptMessagesServiceStatus) Get() (v MessagesServiceStatus, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptMessagesServiceStatus) Or(d MessagesServiceStatus) MessagesServiceStatus { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptMessagesStopSequences returns new OptMessagesStopSequences with value set to v. +func NewOptMessagesStopSequences(v MessagesStopSequences) OptMessagesStopSequences { + return OptMessagesStopSequences{ + Value: v, + Set: true, + } +} + +// OptMessagesStopSequences is optional MessagesStopSequences. +type OptMessagesStopSequences struct { + Value MessagesStopSequences + Set bool +} + +// IsSet returns true if OptMessagesStopSequences was set. +func (o OptMessagesStopSequences) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptMessagesStopSequences) Reset() { + var v MessagesStopSequences + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptMessagesStopSequences) SetTo(v MessagesStopSequences) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptMessagesStopSequences) Get() (v MessagesStopSequences, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptMessagesStopSequences) Or(d MessagesStopSequences) MessagesStopSequences { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptMessagesStreamOptions returns new OptMessagesStreamOptions with value set to v. +func NewOptMessagesStreamOptions(v MessagesStreamOptions) OptMessagesStreamOptions { + return OptMessagesStreamOptions{ + Value: v, + Set: true, + } +} + +// OptMessagesStreamOptions is optional MessagesStreamOptions. +type OptMessagesStreamOptions struct { + Value MessagesStreamOptions + Set bool +} + +// IsSet returns true if OptMessagesStreamOptions was set. +func (o OptMessagesStreamOptions) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptMessagesStreamOptions) Reset() { + var v MessagesStreamOptions + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptMessagesStreamOptions) SetTo(v MessagesStreamOptions) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptMessagesStreamOptions) Get() (v MessagesStreamOptions, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptMessagesStreamOptions) Or(d MessagesStreamOptions) MessagesStreamOptions { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptMessagesSystem returns new OptMessagesSystem with value set to v. +func NewOptMessagesSystem(v MessagesSystem) OptMessagesSystem { + return OptMessagesSystem{ + Value: v, + Set: true, + } +} + +// OptMessagesSystem is optional MessagesSystem. +type OptMessagesSystem struct { + Value MessagesSystem + Set bool +} + +// IsSet returns true if OptMessagesSystem was set. +func (o OptMessagesSystem) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptMessagesSystem) Reset() { + var v MessagesSystem + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptMessagesSystem) SetTo(v MessagesSystem) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptMessagesSystem) Get() (v MessagesSystem, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptMessagesSystem) Or(d MessagesSystem) MessagesSystem { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptMessagesThinking returns new OptMessagesThinking with value set to v. +func NewOptMessagesThinking(v MessagesThinking) OptMessagesThinking { + return OptMessagesThinking{ + Value: v, + Set: true, + } +} + +// OptMessagesThinking is optional MessagesThinking. +type OptMessagesThinking struct { + Value MessagesThinking + Set bool +} + +// IsSet returns true if OptMessagesThinking was set. +func (o OptMessagesThinking) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptMessagesThinking) Reset() { + var v MessagesThinking + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptMessagesThinking) SetTo(v MessagesThinking) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptMessagesThinking) Get() (v MessagesThinking, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptMessagesThinking) Or(d MessagesThinking) MessagesThinking { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptMessagesToolChoice returns new OptMessagesToolChoice with value set to v. +func NewOptMessagesToolChoice(v MessagesToolChoice) OptMessagesToolChoice { + return OptMessagesToolChoice{ + Value: v, + Set: true, + } +} + +// OptMessagesToolChoice is optional MessagesToolChoice. +type OptMessagesToolChoice struct { + Value MessagesToolChoice + Set bool +} + +// IsSet returns true if OptMessagesToolChoice was set. +func (o OptMessagesToolChoice) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptMessagesToolChoice) Reset() { + var v MessagesToolChoice + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptMessagesToolChoice) SetTo(v MessagesToolChoice) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptMessagesToolChoice) Get() (v MessagesToolChoice, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptMessagesToolChoice) Or(d MessagesToolChoice) MessagesToolChoice { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptMessagesToolInputSchema returns new OptMessagesToolInputSchema with value set to v. +func NewOptMessagesToolInputSchema(v MessagesToolInputSchema) OptMessagesToolInputSchema { + return OptMessagesToolInputSchema{ + Value: v, + Set: true, + } +} + +// OptMessagesToolInputSchema is optional MessagesToolInputSchema. +type OptMessagesToolInputSchema struct { + Value MessagesToolInputSchema + Set bool +} + +// IsSet returns true if OptMessagesToolInputSchema was set. +func (o OptMessagesToolInputSchema) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptMessagesToolInputSchema) Reset() { + var v MessagesToolInputSchema + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptMessagesToolInputSchema) SetTo(v MessagesToolInputSchema) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptMessagesToolInputSchema) Get() (v MessagesToolInputSchema, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptMessagesToolInputSchema) Or(d MessagesToolInputSchema) MessagesToolInputSchema { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptMessagesToolUserLocation returns new OptMessagesToolUserLocation with value set to v. +func NewOptMessagesToolUserLocation(v MessagesToolUserLocation) OptMessagesToolUserLocation { + return OptMessagesToolUserLocation{ + Value: v, + Set: true, + } +} + +// OptMessagesToolUserLocation is optional MessagesToolUserLocation. +type OptMessagesToolUserLocation struct { + Value MessagesToolUserLocation + Set bool +} + +// IsSet returns true if OptMessagesToolUserLocation was set. +func (o OptMessagesToolUserLocation) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptMessagesToolUserLocation) Reset() { + var v MessagesToolUserLocation + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptMessagesToolUserLocation) SetTo(v MessagesToolUserLocation) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptMessagesToolUserLocation) Get() (v MessagesToolUserLocation, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptMessagesToolUserLocation) Or(d MessagesToolUserLocation) MessagesToolUserLocation { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptMessagesUsage returns new OptMessagesUsage with value set to v. +func NewOptMessagesUsage(v MessagesUsage) OptMessagesUsage { + return OptMessagesUsage{ + Value: v, + Set: true, + } +} + +// OptMessagesUsage is optional MessagesUsage. +type OptMessagesUsage struct { + Value MessagesUsage + Set bool +} + +// IsSet returns true if OptMessagesUsage was set. +func (o OptMessagesUsage) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptMessagesUsage) Reset() { + var v MessagesUsage + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptMessagesUsage) SetTo(v MessagesUsage) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptMessagesUsage) Get() (v MessagesUsage, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptMessagesUsage) Or(d MessagesUsage) MessagesUsage { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptModelFallbackStatus returns new OptModelFallbackStatus with value set to v. +func NewOptModelFallbackStatus(v ModelFallbackStatus) OptModelFallbackStatus { + return OptModelFallbackStatus{ + Value: v, + Set: true, + } +} + +// OptModelFallbackStatus is optional ModelFallbackStatus. +type OptModelFallbackStatus struct { + Value ModelFallbackStatus + Set bool +} + +// IsSet returns true if OptModelFallbackStatus was set. +func (o OptModelFallbackStatus) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptModelFallbackStatus) Reset() { + var v ModelFallbackStatus + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptModelFallbackStatus) SetTo(v ModelFallbackStatus) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptModelFallbackStatus) Get() (v ModelFallbackStatus, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptModelFallbackStatus) Or(d ModelFallbackStatus) ModelFallbackStatus { + if v, ok := o.Get(); ok { + return v + } + return d +} + +// NewOptString returns new OptString with value set to v. +func NewOptString(v string) OptString { + return OptString{ + Value: v, + Set: true, + } +} + +// OptString is optional string. +type OptString struct { + Value string + Set bool +} + +// IsSet returns true if OptString was set. +func (o OptString) IsSet() bool { return o.Set } + +// Reset unsets value. +func (o *OptString) Reset() { + var v string + o.Value = v + o.Set = false +} + +// SetTo sets value to v. +func (o *OptString) SetTo(v string) { + o.Set = true + o.Value = v +} + +// Get returns value and boolean that denotes whether value was set. +func (o OptString) Get() (v string, ok bool) { + if !o.Set { + return v, false + } + return o.Value, true +} + +// Or returns value if set, or given parameter if does not. +func (o OptString) Or(d string) string { + if v, ok := o.Get(); ok { + return v + } + return d +} diff --git a/arkruntime/model/messages/oas_validators_gen.go b/arkruntime/model/messages/oas_validators_gen.go new file mode 100644 index 0000000..a1c28b1 --- /dev/null +++ b/arkruntime/model/messages/oas_validators_gen.go @@ -0,0 +1,2745 @@ +// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates. +// SPDX-License-Identifier: Apache-2.0 + +// Code generated by ogen, DO NOT EDIT. + +package messages + +import ( + "fmt" + + "github.com/go-faster/errors" + "github.com/volcengine/ark-runtime-go/arkruntime/internal/validate" +) + +func (s *ContentBlockStart) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Type.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "type", + Error: err, + }) + } + if err := func() error { + if err := s.ContentBlock.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "content_block", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *ContentBlockStartContentBlock) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.OneOf.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "OneOf", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s ContentBlockStartContentBlockSum) Validate() error { + switch s.Type { + case MessagesResponseContentPartTextContentBlockStartContentBlockSum: + if err := s.MessagesResponseContentPartText.Validate(); err != nil { + return err + } + return nil + case MessagesResponseContentPartThinkingContentBlockStartContentBlockSum: + if err := s.MessagesResponseContentPartThinking.Validate(); err != nil { + return err + } + return nil + case MessagesResponseContentPartToolUseContentBlockStartContentBlockSum: + if err := s.MessagesResponseContentPartToolUse.Validate(); err != nil { + return err + } + return nil + case MessagesResponseContentPartServerToolUseContentBlockStartContentBlockSum: + if err := s.MessagesResponseContentPartServerToolUse.Validate(); err != nil { + return err + } + return nil + case MessagesResponseContentPartWebSearchToolResultContentBlockStartContentBlockSum: + if err := s.MessagesResponseContentPartWebSearchToolResult.Validate(); err != nil { + return err + } + return nil + default: + return errors.Errorf("invalid type %q", s.Type) + } +} + +func (s ContentBlockStartType) Validate() error { + switch s { + case "content_block_start": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *MessagesContentPart) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.OneOf.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "OneOf", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *MessagesContentPartDocument) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Type.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "type", + Error: err, + }) + } + if err := func() error { + if err := s.Source.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "source", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *MessagesContentPartDocumentSource) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Type.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "type", + Error: err, + }) + } + if err := func() error { + if s.Content == nil { + return nil // optional + } + if err := func() error { + if err := s.Content.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return errors.Wrap(err, "pointer") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "content", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s MessagesContentPartDocumentType) Validate() error { + switch s { + case "document": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *MessagesContentPartImage) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Type.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "type", + Error: err, + }) + } + if err := func() error { + if err := s.Source.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "source", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *MessagesContentPartImageSource) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Type.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "type", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s MessagesContentPartImageType) Validate() error { + switch s { + case "image": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *MessagesContentPartServerToolUse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Type.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "type", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s MessagesContentPartServerToolUseType) Validate() error { + switch s { + case "server_tool_use": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s MessagesContentPartSum) Validate() error { + switch s.Type { + case MessagesContentPartTextMessagesContentPartSum: + if err := s.MessagesContentPartText.Validate(); err != nil { + return err + } + return nil + case MessagesContentPartThinkingMessagesContentPartSum: + if err := s.MessagesContentPartThinking.Validate(); err != nil { + return err + } + return nil + case MessagesContentPartImageMessagesContentPartSum: + if err := s.MessagesContentPartImage.Validate(); err != nil { + return err + } + return nil + case MessagesContentPartDocumentMessagesContentPartSum: + if err := s.MessagesContentPartDocument.Validate(); err != nil { + return err + } + return nil + case MessagesContentPartToolUseMessagesContentPartSum: + if err := s.MessagesContentPartToolUse.Validate(); err != nil { + return err + } + return nil + case MessagesContentPartToolResultMessagesContentPartSum: + if err := s.MessagesContentPartToolResult.Validate(); err != nil { + return err + } + return nil + case MessagesContentPartServerToolUseMessagesContentPartSum: + if err := s.MessagesContentPartServerToolUse.Validate(); err != nil { + return err + } + return nil + case MessagesContentPartWebSearchToolResultMessagesContentPartSum: + if err := s.MessagesContentPartWebSearchToolResult.Validate(); err != nil { + return err + } + return nil + default: + return errors.Errorf("invalid type %q", s.Type) + } +} + +func (s *MessagesContentPartText) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Type.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "type", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s MessagesContentPartTextType) Validate() error { + switch s { + case "text": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *MessagesContentPartThinking) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Type.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "type", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s MessagesContentPartThinkingType) Validate() error { + switch s { + case "thinking": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *MessagesContentPartToolReference) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Type.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "type", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s MessagesContentPartToolReferenceType) Validate() error { + switch s { + case "tool_reference": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *MessagesContentPartToolResult) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Type.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "type", + Error: err, + }) + } + if err := func() error { + if err := s.Content.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "content", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s MessagesContentPartToolResultType) Validate() error { + switch s { + case "tool_result": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *MessagesContentPartToolUse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Type.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "type", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s MessagesContentPartToolUseType) Validate() error { + switch s { + case "tool_use": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *MessagesContentPartWebSearchToolResult) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Type.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "type", + Error: err, + }) + } + if err := func() error { + if err := s.Content.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "content", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s MessagesContentPartWebSearchToolResultType) Validate() error { + switch s { + case "web_search_tool_result": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *MessagesContextManagement) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + var failures []validate.FieldError + for i, elem := range s.Edits { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "edits", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *MessagesContextManagementClearThinking) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Type.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "type", + Error: err, + }) + } + if err := func() error { + if value, ok := s.Keep.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "keep", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s MessagesContextManagementClearThinkingType) Validate() error { + switch s { + case "clear_thinking": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *MessagesContextManagementClearToolUses) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Type.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "type", + Error: err, + }) + } + if err := func() error { + if value, ok := s.Keep.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "keep", + Error: err, + }) + } + if err := func() error { + if value, ok := s.Trigger.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "trigger", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *MessagesContextManagementClearToolUsesTrigger) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Type.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "type", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s MessagesContextManagementClearToolUsesTriggerType) Validate() error { + switch s { + case "tool_uses": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s MessagesContextManagementClearToolUsesType) Validate() error { + switch s { + case "clear_tool_uses": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *MessagesContextManagementEdit) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.OneOf.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "OneOf", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s MessagesContextManagementEditSum) Validate() error { + switch s.Type { + case MessagesContextManagementClearThinkingMessagesContextManagementEditSum: + if err := s.MessagesContextManagementClearThinking.Validate(); err != nil { + return err + } + return nil + case MessagesContextManagementClearToolUsesMessagesContextManagementEditSum: + if err := s.MessagesContextManagementClearToolUses.Validate(); err != nil { + return err + } + return nil + default: + return errors.Errorf("invalid type %q", s.Type) + } +} + +func (s MessagesContextManagementKeep) Validate() error { + switch s.Type { + case MessagesContextManagementKeep0MessagesContextManagementKeep: + if err := s.MessagesContextManagementKeep0.Validate(); err != nil { + return err + } + return nil + case MessagesContextManagementKeepParameterMessagesContextManagementKeep: + if err := s.MessagesContextManagementKeepParameter.Validate(); err != nil { + return err + } + return nil + default: + return errors.Errorf("invalid type %q", s.Type) + } +} + +func (s MessagesContextManagementKeep0) Validate() error { + switch s { + case "all": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *MessagesContextManagementKeepAll) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Type.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "type", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s MessagesContextManagementKeepAllType) Validate() error { + switch s { + case "all": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *MessagesContextManagementKeepParameter) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.OneOf.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "OneOf", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s MessagesContextManagementKeepParameterSum) Validate() error { + switch s.Type { + case MessagesContextManagementKeepAllMessagesContextManagementKeepParameterSum: + if err := s.MessagesContextManagementKeepAll.Validate(); err != nil { + return err + } + return nil + case MessagesContextManagementKeepThinkingTurnsMessagesContextManagementKeepParameterSum: + if err := s.MessagesContextManagementKeepThinkingTurns.Validate(); err != nil { + return err + } + return nil + case MessagesContextManagementKeepToolUsesMessagesContextManagementKeepParameterSum: + if err := s.MessagesContextManagementKeepToolUses.Validate(); err != nil { + return err + } + return nil + default: + return errors.Errorf("invalid type %q", s.Type) + } +} + +func (s *MessagesContextManagementKeepThinkingTurns) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Type.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "type", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s MessagesContextManagementKeepThinkingTurnsType) Validate() error { + switch s { + case "thinking_turns": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *MessagesContextManagementKeepToolUses) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Type.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "type", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s MessagesContextManagementKeepToolUsesType) Validate() error { + switch s { + case "tool_uses": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s MessagesDocumentSourceType) Validate() error { + switch s { + case "base64": + return nil + case "text": + return nil + case "url": + return nil + case "content": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *MessagesErrorResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Type.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "type", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s MessagesErrorResponseType) Validate() error { + switch s { + case "error": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s MessagesImageSourceType) Validate() error { + switch s { + case "url": + return nil + case "base64": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s MessagesMessageContent) Validate() error { + switch s.Type { + case StringMessagesMessageContent: + return nil // no validation needed + case MessagesContentPartArrayMessagesMessageContent: + if s.MessagesContentPartArray == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.MessagesContentPartArray { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + default: + return errors.Errorf("invalid type %q", s.Type) + } +} + +func (s *MessagesOutputFormat) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Type.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "type", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s MessagesOutputFormatType) Validate() error { + switch s { + case "text": + return nil + case "json_object": + return nil + case "json_schema": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *MessagesRequest) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if s.Messages == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.Messages { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "messages", + Error: err, + }) + } + if err := func() error { + if value, ok := s.System.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "system", + Error: err, + }) + } + if err := func() error { + if value, ok := s.FrequencyPenalty.Get(); ok { + if err := func() error { + if err := (validate.Float{}).Validate(float64(value)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "frequency_penalty", + Error: err, + }) + } + if err := func() error { + if value, ok := s.LogitBias.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "logit_bias", + Error: err, + }) + } + if err := func() error { + if value, ok := s.PresencePenalty.Get(); ok { + if err := func() error { + if err := (validate.Float{}).Validate(float64(value)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "presence_penalty", + Error: err, + }) + } + if err := func() error { + if value, ok := s.RepetitionPenalty.Get(); ok { + if err := func() error { + if err := (validate.Float{}).Validate(float64(value)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "repetition_penalty", + Error: err, + }) + } + if err := func() error { + if value, ok := s.OutputFormat.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "output_format", + Error: err, + }) + } + if err := func() error { + if value, ok := s.StopSequences.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "stop_sequences", + Error: err, + }) + } + if err := func() error { + if value, ok := s.Temperature.Get(); ok { + if err := func() error { + if err := (validate.Float{}).Validate(float64(value)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "temperature", + Error: err, + }) + } + if err := func() error { + if value, ok := s.ToolChoice.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "tool_choice", + Error: err, + }) + } + if err := func() error { + if value, ok := s.TopP.Get(); ok { + if err := func() error { + if err := (validate.Float{}).Validate(float64(value)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "top_p", + Error: err, + }) + } + if err := func() error { + if value, ok := s.ServiceTier.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "service_tier", + Error: err, + }) + } + if err := func() error { + if value, ok := s.ContextManagement.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "context_management", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s MessagesRequestLogitBias) Validate() error { + var failures []validate.FieldError + for key, elem := range s { + if err := func() error { + if err := (validate.Float{}).Validate(float64(elem)); err != nil { + return errors.Wrap(err, "float") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: key, + Error: err, + }) + } + } + + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *MessagesRequestMessage) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Role.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "role", + Error: err, + }) + } + if err := func() error { + if err := s.Content.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "content", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s MessagesRequestServiceTier) Validate() error { + switch s { + case "auto": + return nil + case "default": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *MessagesResponse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Type.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "type", + Error: err, + }) + } + if err := func() error { + if err := s.Role.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "role", + Error: err, + }) + } + if err := func() error { + if s.Content == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.Content { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "content", + Error: err, + }) + } + if err := func() error { + if value, ok := s.StopReason.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "stop_reason", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *MessagesResponseContentBlock) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Type.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "type", + Error: err, + }) + } + if err := func() error { + if err := s.Delta.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "delta", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *MessagesResponseContentBlockDelta) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.OneOf.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "OneOf", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *MessagesResponseContentBlockDeltaSignature) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Type.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "type", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s MessagesResponseContentBlockDeltaSignatureType) Validate() error { + switch s { + case "signature_delta": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s MessagesResponseContentBlockDeltaSum) Validate() error { + switch s.Type { + case MessagesResponseContentBlockDeltaTextMessagesResponseContentBlockDeltaSum: + if err := s.MessagesResponseContentBlockDeltaText.Validate(); err != nil { + return err + } + return nil + case MessagesResponseContentBlockDeltaThinkingMessagesResponseContentBlockDeltaSum: + if err := s.MessagesResponseContentBlockDeltaThinking.Validate(); err != nil { + return err + } + return nil + case MessagesResponseContentBlockDeltaSignatureMessagesResponseContentBlockDeltaSum: + if err := s.MessagesResponseContentBlockDeltaSignature.Validate(); err != nil { + return err + } + return nil + case MessagesResponseContentBlockDeltaToolUseMessagesResponseContentBlockDeltaSum: + if err := s.MessagesResponseContentBlockDeltaToolUse.Validate(); err != nil { + return err + } + return nil + default: + return errors.Errorf("invalid type %q", s.Type) + } +} + +func (s *MessagesResponseContentBlockDeltaText) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Type.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "type", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s MessagesResponseContentBlockDeltaTextType) Validate() error { + switch s { + case "text_delta": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *MessagesResponseContentBlockDeltaThinking) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Type.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "type", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s MessagesResponseContentBlockDeltaThinkingType) Validate() error { + switch s { + case "thinking_delta": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *MessagesResponseContentBlockDeltaToolUse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Type.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "type", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s MessagesResponseContentBlockDeltaToolUseType) Validate() error { + switch s { + case "input_json_delta": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *MessagesResponseContentBlockStop) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Type.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "type", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s MessagesResponseContentBlockStopType) Validate() error { + switch s { + case "content_block_stop": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s MessagesResponseContentBlockType) Validate() error { + switch s { + case "content_block_delta": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *MessagesResponseContentPart) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.OneOf.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "OneOf", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *MessagesResponseContentPartServerToolUse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Type.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "type", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s MessagesResponseContentPartServerToolUseType) Validate() error { + switch s { + case "server_tool_use": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s MessagesResponseContentPartSum) Validate() error { + switch s.Type { + case MessagesResponseContentPartTextMessagesResponseContentPartSum: + if err := s.MessagesResponseContentPartText.Validate(); err != nil { + return err + } + return nil + case MessagesResponseContentPartThinkingMessagesResponseContentPartSum: + if err := s.MessagesResponseContentPartThinking.Validate(); err != nil { + return err + } + return nil + case MessagesResponseContentPartToolUseMessagesResponseContentPartSum: + if err := s.MessagesResponseContentPartToolUse.Validate(); err != nil { + return err + } + return nil + case MessagesResponseContentPartServerToolUseMessagesResponseContentPartSum: + if err := s.MessagesResponseContentPartServerToolUse.Validate(); err != nil { + return err + } + return nil + case MessagesResponseContentPartWebSearchToolResultMessagesResponseContentPartSum: + if err := s.MessagesResponseContentPartWebSearchToolResult.Validate(); err != nil { + return err + } + return nil + default: + return errors.Errorf("invalid type %q", s.Type) + } +} + +func (s *MessagesResponseContentPartText) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Type.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "type", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s MessagesResponseContentPartTextType) Validate() error { + switch s { + case "text": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *MessagesResponseContentPartThinking) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Type.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "type", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s MessagesResponseContentPartThinkingType) Validate() error { + switch s { + case "thinking": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *MessagesResponseContentPartToolUse) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Type.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "type", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s MessagesResponseContentPartToolUseType) Validate() error { + switch s { + case "tool_use": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *MessagesResponseContentPartWebSearchToolResult) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Type.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "type", + Error: err, + }) + } + if err := func() error { + if err := s.Content.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "content", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s MessagesResponseContentPartWebSearchToolResultType) Validate() error { + switch s { + case "web_search_tool_result": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s MessagesResponseRole) Validate() error { + switch s { + case "assistant": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s MessagesResponseStopReason) Validate() error { + switch s { + case "end_turn": + return nil + case "max_tokens": + return nil + case "stop_sequence": + return nil + case "tool_use": + return nil + case "pause_turn": + return nil + case "refusal": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *MessagesResponseStreamMessageDelta) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Type.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "type", + Error: err, + }) + } + if err := func() error { + if err := s.Delta.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "delta", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *MessagesResponseStreamMessageDeltaDelta) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.StopReason.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "stop_reason", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s MessagesResponseStreamMessageDeltaType) Validate() error { + switch s { + case "message_delta": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *MessagesResponseStreamMessageStart) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Type.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "type", + Error: err, + }) + } + if err := func() error { + if err := s.Message.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "message", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *MessagesResponseStreamMessageStartMessage) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Type.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "type", + Error: err, + }) + } + if err := func() error { + if err := s.Role.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "role", + Error: err, + }) + } + if err := func() error { + if s.Content == nil { + return errors.New("nil is invalid value") + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "content", + Error: err, + }) + } + if err := func() error { + if value, ok := s.StopReason.Get(); ok { + if err := func() error { + if err := value.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + return err + } + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "stop_reason", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s MessagesResponseStreamMessageStartMessageRole) Validate() error { + switch s { + case "assistant": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s MessagesResponseStreamMessageStartMessageType) Validate() error { + switch s { + case "message": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s MessagesResponseStreamMessageStartType) Validate() error { + switch s { + case "message_start": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *MessagesResponseStreamMessageStop) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Type.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "type", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s MessagesResponseStreamMessageStopType) Validate() error { + switch s { + case "message_stop": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s MessagesResponseType) Validate() error { + switch s { + case "message": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s MessagesRole) Validate() error { + switch s { + case "assistant": + return nil + case "user": + return nil + case "system": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s MessagesStopSequences) Validate() error { + switch s.Type { + case StringMessagesStopSequences: + return nil // no validation needed + case StringArrayMessagesStopSequences: + if s.StringArray == nil { + return errors.New("nil is invalid value") + } + return nil + default: + return errors.Errorf("invalid type %q", s.Type) + } +} + +func (s *MessagesStreamEvent) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.OneOf.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "OneOf", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s MessagesStreamEventSum) Validate() error { + switch s.Type { + case MessagesResponseStreamMessageStartMessagesStreamEventSum: + if err := s.MessagesResponseStreamMessageStart.Validate(); err != nil { + return err + } + return nil + case ContentBlockStartMessagesStreamEventSum: + if err := s.ContentBlockStart.Validate(); err != nil { + return err + } + return nil + case MessagesResponseContentBlockMessagesStreamEventSum: + if err := s.MessagesResponseContentBlock.Validate(); err != nil { + return err + } + return nil + case MessagesResponseContentBlockStopMessagesStreamEventSum: + if err := s.MessagesResponseContentBlockStop.Validate(); err != nil { + return err + } + return nil + case MessagesResponseStreamMessageDeltaMessagesStreamEventSum: + if err := s.MessagesResponseStreamMessageDelta.Validate(); err != nil { + return err + } + return nil + case MessagesResponseStreamMessageStopMessagesStreamEventSum: + if err := s.MessagesResponseStreamMessageStop.Validate(); err != nil { + return err + } + return nil + case MessagesErrorResponseMessagesStreamEventSum: + if err := s.MessagesErrorResponse.Validate(); err != nil { + return err + } + return nil + default: + return errors.Errorf("invalid type %q", s.Type) + } +} + +func (s MessagesSystem) Validate() error { + switch s.Type { + case StringMessagesSystem: + return nil // no validation needed + case MessagesSystemTextPartArrayMessagesSystem: + if s.MessagesSystemTextPartArray == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.MessagesSystemTextPartArray { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + default: + return errors.Errorf("invalid type %q", s.Type) + } +} + +func (s *MessagesSystemTextPart) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Type.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "type", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s MessagesSystemTextPartType) Validate() error { + switch s { + case "text": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *MessagesToolChoice) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.OneOf.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "OneOf", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s *MessagesToolChoiceAny) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Type.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "type", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s MessagesToolChoiceAnyType) Validate() error { + switch s { + case "any": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *MessagesToolChoiceAuto) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Type.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "type", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s MessagesToolChoiceAutoType) Validate() error { + switch s { + case "auto": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s *MessagesToolChoiceNone) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Type.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "type", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s MessagesToolChoiceNoneType) Validate() error { + switch s { + case "none": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s MessagesToolChoiceSum) Validate() error { + switch s.Type { + case MessagesToolChoiceAutoMessagesToolChoiceSum: + if err := s.MessagesToolChoiceAuto.Validate(); err != nil { + return err + } + return nil + case MessagesToolChoiceAnyMessagesToolChoiceSum: + if err := s.MessagesToolChoiceAny.Validate(); err != nil { + return err + } + return nil + case MessagesToolChoiceNoneMessagesToolChoiceSum: + if err := s.MessagesToolChoiceNone.Validate(); err != nil { + return err + } + return nil + case MessagesToolChoiceToolMessagesToolChoiceSum: + if err := s.MessagesToolChoiceTool.Validate(); err != nil { + return err + } + return nil + default: + return errors.Errorf("invalid type %q", s.Type) + } +} + +func (s *MessagesToolChoiceTool) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Type.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "type", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s MessagesToolChoiceToolType) Validate() error { + switch s { + case "tool": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s MessagesToolResultContent) Validate() error { + switch s.Type { + case StringMessagesToolResultContent: + return nil // no validation needed + case MessagesToolResultContentPartArrayMessagesToolResultContent: + if s.MessagesToolResultContentPartArray == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.MessagesToolResultContentPartArray { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + default: + return errors.Errorf("invalid type %q", s.Type) + } +} + +func (s *MessagesToolResultContentPart) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.OneOf.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "OneOf", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s MessagesToolResultContentPartSum) Validate() error { + switch s.Type { + case MessagesContentPartTextMessagesToolResultContentPartSum: + if err := s.MessagesContentPartText.Validate(); err != nil { + return err + } + return nil + case MessagesContentPartImageMessagesToolResultContentPartSum: + if err := s.MessagesContentPartImage.Validate(); err != nil { + return err + } + return nil + case MessagesContentPartToolReferenceMessagesToolResultContentPartSum: + if err := s.MessagesContentPartToolReference.Validate(); err != nil { + return err + } + return nil + default: + return errors.Errorf("invalid type %q", s.Type) + } +} + +func (s *MessagesWebSearchResult) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Type.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "type", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s MessagesWebSearchResultType) Validate() error { + switch s { + case "web_search_result": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +} + +func (s MessagesWebSearchToolResultContent) Validate() error { + switch s.Type { + case MessagesWebSearchResultArrayMessagesWebSearchToolResultContent: + if s.MessagesWebSearchResultArray == nil { + return errors.New("nil is invalid value") + } + var failures []validate.FieldError + for i, elem := range s.MessagesWebSearchResultArray { + if err := func() error { + if err := elem.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: fmt.Sprintf("[%d]", i), + Error: err, + }) + } + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil + case MessagesWebSearchToolResultErrorMessagesWebSearchToolResultContent: + if err := s.MessagesWebSearchToolResultError.Validate(); err != nil { + return err + } + return nil + default: + return errors.Errorf("invalid type %q", s.Type) + } +} + +func (s *MessagesWebSearchToolResultError) Validate() error { + if s == nil { + return validate.ErrNilPointer + } + + var failures []validate.FieldError + if err := func() error { + if err := s.Type.Validate(); err != nil { + return err + } + return nil + }(); err != nil { + failures = append(failures, validate.FieldError{ + Name: "type", + Error: err, + }) + } + if len(failures) > 0 { + return &validate.Error{Fields: failures} + } + return nil +} + +func (s MessagesWebSearchToolResultErrorType) Validate() error { + switch s { + case "web_search_tool_result_error": + return nil + default: + return errors.Errorf("invalid value: %v", s) + } +}