// Code generated by smithy-go-codegen DO NOT EDIT.

package types_test

import (
	"fmt"
	"github.com/aws/aws-sdk-go-v2/service/bedrockruntime/document"
	"github.com/aws/aws-sdk-go-v2/service/bedrockruntime/types"
)

func ExampleAsyncInvokeOutputDataConfig_outputUsage() {
	var union types.AsyncInvokeOutputDataConfig
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.AsyncInvokeOutputDataConfigMemberS3OutputDataConfig:
		_ = v.Value // Value is types.AsyncInvokeS3OutputDataConfig

	case *types.UnknownUnionMember:
		fmt.Println("unknown tag:", v.Tag)

	default:
		fmt.Println("union is nil or unknown type")

	}
}

var _ *types.AsyncInvokeS3OutputDataConfig

func ExampleAudioSource_outputUsage() {
	var union types.AudioSource
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.AudioSourceMemberBytes:
		_ = v.Value // Value is []byte

	case *types.AudioSourceMemberS3Location:
		_ = v.Value // Value is types.S3Location

	case *types.UnknownUnionMember:
		fmt.Println("unknown tag:", v.Tag)

	default:
		fmt.Println("union is nil or unknown type")

	}
}

var _ *types.S3Location
var _ []byte

func ExampleCitationGeneratedContent_outputUsage() {
	var union types.CitationGeneratedContent
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.CitationGeneratedContentMemberText:
		_ = v.Value // Value is string

	case *types.UnknownUnionMember:
		fmt.Println("unknown tag:", v.Tag)

	default:
		fmt.Println("union is nil or unknown type")

	}
}

var _ *string

func ExampleCitationLocation_outputUsage() {
	var union types.CitationLocation
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.CitationLocationMemberDocumentChar:
		_ = v.Value // Value is types.DocumentCharLocation

	case *types.CitationLocationMemberDocumentChunk:
		_ = v.Value // Value is types.DocumentChunkLocation

	case *types.CitationLocationMemberDocumentPage:
		_ = v.Value // Value is types.DocumentPageLocation

	case *types.CitationLocationMemberSearchResultLocation:
		_ = v.Value // Value is types.SearchResultLocation

	case *types.CitationLocationMemberWeb:
		_ = v.Value // Value is types.WebLocation

	case *types.UnknownUnionMember:
		fmt.Println("unknown tag:", v.Tag)

	default:
		fmt.Println("union is nil or unknown type")

	}
}

var _ *types.DocumentPageLocation
var _ *types.DocumentCharLocation
var _ *types.WebLocation
var _ *types.DocumentChunkLocation
var _ *types.SearchResultLocation

func ExampleCitationSourceContent_outputUsage() {
	var union types.CitationSourceContent
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.CitationSourceContentMemberText:
		_ = v.Value // Value is string

	case *types.UnknownUnionMember:
		fmt.Println("unknown tag:", v.Tag)

	default:
		fmt.Println("union is nil or unknown type")

	}
}

var _ *string

func ExampleContentBlock_outputUsage() {
	var union types.ContentBlock
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.ContentBlockMemberAudio:
		_ = v.Value // Value is types.AudioBlock

	case *types.ContentBlockMemberCachePoint:
		_ = v.Value // Value is types.CachePointBlock

	case *types.ContentBlockMemberCitationsContent:
		_ = v.Value // Value is types.CitationsContentBlock

	case *types.ContentBlockMemberDocument:
		_ = v.Value // Value is types.DocumentBlock

	case *types.ContentBlockMemberGuardContent:
		_ = v.Value // Value is types.GuardrailConverseContentBlock

	case *types.ContentBlockMemberImage:
		_ = v.Value // Value is types.ImageBlock

	case *types.ContentBlockMemberReasoningContent:
		_ = v.Value // Value is types.ReasoningContentBlock

	case *types.ContentBlockMemberSearchResult:
		_ = v.Value // Value is types.SearchResultBlock

	case *types.ContentBlockMemberText:
		_ = v.Value // Value is string

	case *types.ContentBlockMemberToolResult:
		_ = v.Value // Value is types.ToolResultBlock

	case *types.ContentBlockMemberToolUse:
		_ = v.Value // Value is types.ToolUseBlock

	case *types.ContentBlockMemberVideo:
		_ = v.Value // Value is types.VideoBlock

	case *types.UnknownUnionMember:
		fmt.Println("unknown tag:", v.Tag)

	default:
		fmt.Println("union is nil or unknown type")

	}
}

var _ *types.CitationsContentBlock
var _ *types.SearchResultBlock
var _ *types.DocumentBlock
var _ *string
var _ types.ReasoningContentBlock
var _ *types.AudioBlock
var _ *types.CachePointBlock
var _ types.GuardrailConverseContentBlock
var _ *types.ImageBlock
var _ *types.ToolResultBlock
var _ *types.VideoBlock
var _ *types.ToolUseBlock

func ExampleContentBlockDelta_outputUsage() {
	var union types.ContentBlockDelta
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.ContentBlockDeltaMemberCitation:
		_ = v.Value // Value is types.CitationsDelta

	case *types.ContentBlockDeltaMemberImage:
		_ = v.Value // Value is types.ImageBlockDelta

	case *types.ContentBlockDeltaMemberReasoningContent:
		_ = v.Value // Value is types.ReasoningContentBlockDelta

	case *types.ContentBlockDeltaMemberText:
		_ = v.Value // Value is string

	case *types.ContentBlockDeltaMemberToolResult:
		_ = v.Value // Value is []types.ToolResultBlockDelta

	case *types.ContentBlockDeltaMemberToolUse:
		_ = v.Value // Value is types.ToolUseBlockDelta

	case *types.UnknownUnionMember:
		fmt.Println("unknown tag:", v.Tag)

	default:
		fmt.Println("union is nil or unknown type")

	}
}

var _ *types.ImageBlockDelta
var _ types.ReasoningContentBlockDelta
var _ *types.ToolUseBlockDelta
var _ *string
var _ []types.ToolResultBlockDelta
var _ *types.CitationsDelta

func ExampleContentBlockStart_outputUsage() {
	var union types.ContentBlockStart
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.ContentBlockStartMemberImage:
		_ = v.Value // Value is types.ImageBlockStart

	case *types.ContentBlockStartMemberToolResult:
		_ = v.Value // Value is types.ToolResultBlockStart

	case *types.ContentBlockStartMemberToolUse:
		_ = v.Value // Value is types.ToolUseBlockStart

	case *types.UnknownUnionMember:
		fmt.Println("unknown tag:", v.Tag)

	default:
		fmt.Println("union is nil or unknown type")

	}
}

var _ *types.ImageBlockStart
var _ *types.ToolUseBlockStart
var _ *types.ToolResultBlockStart

func ExampleConverseOutput_outputUsage() {
	var union types.ConverseOutput
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.ConverseOutputMemberMessage:
		_ = v.Value // Value is types.Message

	case *types.UnknownUnionMember:
		fmt.Println("unknown tag:", v.Tag)

	default:
		fmt.Println("union is nil or unknown type")

	}
}

var _ *types.Message

func ExampleConverseStreamOutput_outputUsage() {
	var union types.ConverseStreamOutput
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.ConverseStreamOutputMemberContentBlockDelta:
		_ = v.Value // Value is types.ContentBlockDeltaEvent

	case *types.ConverseStreamOutputMemberContentBlockStart:
		_ = v.Value // Value is types.ContentBlockStartEvent

	case *types.ConverseStreamOutputMemberContentBlockStop:
		_ = v.Value // Value is types.ContentBlockStopEvent

	case *types.ConverseStreamOutputMemberMessageStart:
		_ = v.Value // Value is types.MessageStartEvent

	case *types.ConverseStreamOutputMemberMessageStop:
		_ = v.Value // Value is types.MessageStopEvent

	case *types.ConverseStreamOutputMemberMetadata:
		_ = v.Value // Value is types.ConverseStreamMetadataEvent

	case *types.UnknownUnionMember:
		fmt.Println("unknown tag:", v.Tag)

	default:
		fmt.Println("union is nil or unknown type")

	}
}

var _ *types.MessageStartEvent
var _ *types.ContentBlockStopEvent
var _ *types.MessageStopEvent
var _ *types.ContentBlockDeltaEvent
var _ *types.ContentBlockStartEvent
var _ *types.ConverseStreamMetadataEvent

func ExampleCountTokensInput_outputUsage() {
	var union types.CountTokensInput
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.CountTokensInputMemberConverse:
		_ = v.Value // Value is types.ConverseTokensRequest

	case *types.CountTokensInputMemberInvokeModel:
		_ = v.Value // Value is types.InvokeModelTokensRequest

	case *types.UnknownUnionMember:
		fmt.Println("unknown tag:", v.Tag)

	default:
		fmt.Println("union is nil or unknown type")

	}
}

var _ *types.ConverseTokensRequest
var _ *types.InvokeModelTokensRequest

func ExampleDocumentContentBlock_outputUsage() {
	var union types.DocumentContentBlock
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.DocumentContentBlockMemberText:
		_ = v.Value // Value is string

	case *types.UnknownUnionMember:
		fmt.Println("unknown tag:", v.Tag)

	default:
		fmt.Println("union is nil or unknown type")

	}
}

var _ *string

func ExampleDocumentSource_outputUsage() {
	var union types.DocumentSource
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.DocumentSourceMemberBytes:
		_ = v.Value // Value is []byte

	case *types.DocumentSourceMemberContent:
		_ = v.Value // Value is []types.DocumentContentBlock

	case *types.DocumentSourceMemberS3Location:
		_ = v.Value // Value is types.S3Location

	case *types.DocumentSourceMemberText:
		_ = v.Value // Value is string

	case *types.UnknownUnionMember:
		fmt.Println("unknown tag:", v.Tag)

	default:
		fmt.Println("union is nil or unknown type")

	}
}

var _ *string
var _ *types.S3Location
var _ []types.DocumentContentBlock
var _ []byte

func ExampleGuardrailAutomatedReasoningFinding_outputUsage() {
	var union types.GuardrailAutomatedReasoningFinding
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.GuardrailAutomatedReasoningFindingMemberImpossible:
		_ = v.Value // Value is types.GuardrailAutomatedReasoningImpossibleFinding

	case *types.GuardrailAutomatedReasoningFindingMemberInvalid:
		_ = v.Value // Value is types.GuardrailAutomatedReasoningInvalidFinding

	case *types.GuardrailAutomatedReasoningFindingMemberNoTranslations:
		_ = v.Value // Value is types.GuardrailAutomatedReasoningNoTranslationsFinding

	case *types.GuardrailAutomatedReasoningFindingMemberSatisfiable:
		_ = v.Value // Value is types.GuardrailAutomatedReasoningSatisfiableFinding

	case *types.GuardrailAutomatedReasoningFindingMemberTooComplex:
		_ = v.Value // Value is types.GuardrailAutomatedReasoningTooComplexFinding

	case *types.GuardrailAutomatedReasoningFindingMemberTranslationAmbiguous:
		_ = v.Value // Value is types.GuardrailAutomatedReasoningTranslationAmbiguousFinding

	case *types.GuardrailAutomatedReasoningFindingMemberValid:
		_ = v.Value // Value is types.GuardrailAutomatedReasoningValidFinding

	case *types.UnknownUnionMember:
		fmt.Println("unknown tag:", v.Tag)

	default:
		fmt.Println("union is nil or unknown type")

	}
}

var _ *types.GuardrailAutomatedReasoningSatisfiableFinding
var _ *types.GuardrailAutomatedReasoningInvalidFinding
var _ *types.GuardrailAutomatedReasoningImpossibleFinding
var _ *types.GuardrailAutomatedReasoningTooComplexFinding
var _ *types.GuardrailAutomatedReasoningTranslationAmbiguousFinding
var _ *types.GuardrailAutomatedReasoningValidFinding
var _ *types.GuardrailAutomatedReasoningNoTranslationsFinding

func ExampleGuardrailContentBlock_outputUsage() {
	var union types.GuardrailContentBlock
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.GuardrailContentBlockMemberImage:
		_ = v.Value // Value is types.GuardrailImageBlock

	case *types.GuardrailContentBlockMemberText:
		_ = v.Value // Value is types.GuardrailTextBlock

	case *types.UnknownUnionMember:
		fmt.Println("unknown tag:", v.Tag)

	default:
		fmt.Println("union is nil or unknown type")

	}
}

var _ *types.GuardrailImageBlock
var _ *types.GuardrailTextBlock

func ExampleGuardrailConverseContentBlock_outputUsage() {
	var union types.GuardrailConverseContentBlock
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.GuardrailConverseContentBlockMemberImage:
		_ = v.Value // Value is types.GuardrailConverseImageBlock

	case *types.GuardrailConverseContentBlockMemberText:
		_ = v.Value // Value is types.GuardrailConverseTextBlock

	case *types.UnknownUnionMember:
		fmt.Println("unknown tag:", v.Tag)

	default:
		fmt.Println("union is nil or unknown type")

	}
}

var _ *types.GuardrailConverseTextBlock
var _ *types.GuardrailConverseImageBlock

func ExampleGuardrailConverseImageSource_outputUsage() {
	var union types.GuardrailConverseImageSource
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.GuardrailConverseImageSourceMemberBytes:
		_ = v.Value // Value is []byte

	case *types.UnknownUnionMember:
		fmt.Println("unknown tag:", v.Tag)

	default:
		fmt.Println("union is nil or unknown type")

	}
}

var _ []byte

func ExampleGuardrailImageSource_outputUsage() {
	var union types.GuardrailImageSource
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.GuardrailImageSourceMemberBytes:
		_ = v.Value // Value is []byte

	case *types.UnknownUnionMember:
		fmt.Println("unknown tag:", v.Tag)

	default:
		fmt.Println("union is nil or unknown type")

	}
}

var _ []byte

func ExampleImageSource_outputUsage() {
	var union types.ImageSource
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.ImageSourceMemberBytes:
		_ = v.Value // Value is []byte

	case *types.ImageSourceMemberS3Location:
		_ = v.Value // Value is types.S3Location

	case *types.UnknownUnionMember:
		fmt.Println("unknown tag:", v.Tag)

	default:
		fmt.Println("union is nil or unknown type")

	}
}

var _ *types.S3Location
var _ []byte

func ExampleInvokeModelWithBidirectionalStreamInput_outputUsage() {
	var union types.InvokeModelWithBidirectionalStreamInput
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.InvokeModelWithBidirectionalStreamInputMemberChunk:
		_ = v.Value // Value is types.BidirectionalInputPayloadPart

	case *types.UnknownUnionMember:
		fmt.Println("unknown tag:", v.Tag)

	default:
		fmt.Println("union is nil or unknown type")

	}
}

var _ *types.BidirectionalInputPayloadPart

func ExampleInvokeModelWithBidirectionalStreamOutput_outputUsage() {
	var union types.InvokeModelWithBidirectionalStreamOutput
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.InvokeModelWithBidirectionalStreamOutputMemberChunk:
		_ = v.Value // Value is types.BidirectionalOutputPayloadPart

	case *types.UnknownUnionMember:
		fmt.Println("unknown tag:", v.Tag)

	default:
		fmt.Println("union is nil or unknown type")

	}
}

var _ *types.BidirectionalOutputPayloadPart

func ExampleOutputFormatStructure_outputUsage() {
	var union types.OutputFormatStructure
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.OutputFormatStructureMemberJsonSchema:
		_ = v.Value // Value is types.JsonSchemaDefinition

	case *types.UnknownUnionMember:
		fmt.Println("unknown tag:", v.Tag)

	default:
		fmt.Println("union is nil or unknown type")

	}
}

var _ *types.JsonSchemaDefinition

func ExamplePromptVariableValues_outputUsage() {
	var union types.PromptVariableValues
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.PromptVariableValuesMemberText:
		_ = v.Value // Value is string

	case *types.UnknownUnionMember:
		fmt.Println("unknown tag:", v.Tag)

	default:
		fmt.Println("union is nil or unknown type")

	}
}

var _ *string

func ExampleReasoningContentBlock_outputUsage() {
	var union types.ReasoningContentBlock
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.ReasoningContentBlockMemberReasoningText:
		_ = v.Value // Value is types.ReasoningTextBlock

	case *types.ReasoningContentBlockMemberRedactedContent:
		_ = v.Value // Value is []byte

	case *types.UnknownUnionMember:
		fmt.Println("unknown tag:", v.Tag)

	default:
		fmt.Println("union is nil or unknown type")

	}
}

var _ *types.ReasoningTextBlock
var _ []byte

func ExampleReasoningContentBlockDelta_outputUsage() {
	var union types.ReasoningContentBlockDelta
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.ReasoningContentBlockDeltaMemberRedactedContent:
		_ = v.Value // Value is []byte

	case *types.ReasoningContentBlockDeltaMemberSignature:
		_ = v.Value // Value is string

	case *types.ReasoningContentBlockDeltaMemberText:
		_ = v.Value // Value is string

	case *types.UnknownUnionMember:
		fmt.Println("unknown tag:", v.Tag)

	default:
		fmt.Println("union is nil or unknown type")

	}
}

var _ *string
var _ []byte

func ExampleResponseStream_outputUsage() {
	var union types.ResponseStream
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.ResponseStreamMemberChunk:
		_ = v.Value // Value is types.PayloadPart

	case *types.UnknownUnionMember:
		fmt.Println("unknown tag:", v.Tag)

	default:
		fmt.Println("union is nil or unknown type")

	}
}

var _ *types.PayloadPart

func ExampleSystemContentBlock_outputUsage() {
	var union types.SystemContentBlock
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.SystemContentBlockMemberCachePoint:
		_ = v.Value // Value is types.CachePointBlock

	case *types.SystemContentBlockMemberGuardContent:
		_ = v.Value // Value is types.GuardrailConverseContentBlock

	case *types.SystemContentBlockMemberText:
		_ = v.Value // Value is string

	case *types.UnknownUnionMember:
		fmt.Println("unknown tag:", v.Tag)

	default:
		fmt.Println("union is nil or unknown type")

	}
}

var _ *string
var _ *types.CachePointBlock
var _ types.GuardrailConverseContentBlock

func ExampleTool_outputUsage() {
	var union types.Tool
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.ToolMemberCachePoint:
		_ = v.Value // Value is types.CachePointBlock

	case *types.ToolMemberSystemTool:
		_ = v.Value // Value is types.SystemTool

	case *types.ToolMemberToolSpec:
		_ = v.Value // Value is types.ToolSpecification

	case *types.UnknownUnionMember:
		fmt.Println("unknown tag:", v.Tag)

	default:
		fmt.Println("union is nil or unknown type")

	}
}

var _ *types.ToolSpecification
var _ *types.CachePointBlock
var _ *types.SystemTool

func ExampleToolChoice_outputUsage() {
	var union types.ToolChoice
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.ToolChoiceMemberAny:
		_ = v.Value // Value is types.AnyToolChoice

	case *types.ToolChoiceMemberAuto:
		_ = v.Value // Value is types.AutoToolChoice

	case *types.ToolChoiceMemberTool:
		_ = v.Value // Value is types.SpecificToolChoice

	case *types.UnknownUnionMember:
		fmt.Println("unknown tag:", v.Tag)

	default:
		fmt.Println("union is nil or unknown type")

	}
}

var _ *types.AutoToolChoice
var _ *types.SpecificToolChoice
var _ *types.AnyToolChoice

func ExampleToolInputSchema_outputUsage() {
	var union types.ToolInputSchema
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.ToolInputSchemaMemberJson:
		_ = v.Value // Value is document.Interface

	case *types.UnknownUnionMember:
		fmt.Println("unknown tag:", v.Tag)

	default:
		fmt.Println("union is nil or unknown type")

	}
}

var _ document.Interface

func ExampleToolResultBlockDelta_outputUsage() {
	var union types.ToolResultBlockDelta
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.ToolResultBlockDeltaMemberJson:
		_ = v.Value // Value is document.Interface

	case *types.ToolResultBlockDeltaMemberText:
		_ = v.Value // Value is string

	case *types.UnknownUnionMember:
		fmt.Println("unknown tag:", v.Tag)

	default:
		fmt.Println("union is nil or unknown type")

	}
}

var _ *string
var _ document.Interface

func ExampleToolResultContentBlock_outputUsage() {
	var union types.ToolResultContentBlock
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.ToolResultContentBlockMemberDocument:
		_ = v.Value // Value is types.DocumentBlock

	case *types.ToolResultContentBlockMemberImage:
		_ = v.Value // Value is types.ImageBlock

	case *types.ToolResultContentBlockMemberJson:
		_ = v.Value // Value is document.Interface

	case *types.ToolResultContentBlockMemberSearchResult:
		_ = v.Value // Value is types.SearchResultBlock

	case *types.ToolResultContentBlockMemberText:
		_ = v.Value // Value is string

	case *types.ToolResultContentBlockMemberVideo:
		_ = v.Value // Value is types.VideoBlock

	case *types.UnknownUnionMember:
		fmt.Println("unknown tag:", v.Tag)

	default:
		fmt.Println("union is nil or unknown type")

	}
}

var _ *types.SearchResultBlock
var _ *types.DocumentBlock
var _ *string
var _ document.Interface
var _ *types.ImageBlock
var _ *types.VideoBlock

func ExampleVideoSource_outputUsage() {
	var union types.VideoSource
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.VideoSourceMemberBytes:
		_ = v.Value // Value is []byte

	case *types.VideoSourceMemberS3Location:
		_ = v.Value // Value is types.S3Location

	case *types.UnknownUnionMember:
		fmt.Println("unknown tag:", v.Tag)

	default:
		fmt.Println("union is nil or unknown type")

	}
}

var _ *types.S3Location
var _ []byte
