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

package types_test

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

func ExampleActionGroupExecutor_outputUsage() {
	var union types.ActionGroupExecutor
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.ActionGroupExecutorMemberCustomControl:
		_ = v.Value // Value is types.CustomControlMethod

	case *types.ActionGroupExecutorMemberLambda:
		_ = 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.CustomControlMethod

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

	case *types.APISchemaMemberS3:
		_ = v.Value // Value is types.S3Identifier

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

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

	}
}

var _ *string
var _ *types.S3Identifier

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

	case *types.ContentBlockMemberText:
		_ = 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

func ExampleFlowConnectionConfiguration_outputUsage() {
	var union types.FlowConnectionConfiguration
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.FlowConnectionConfigurationMemberConditional:
		_ = v.Value // Value is types.FlowConditionalConnectionConfiguration

	case *types.FlowConnectionConfigurationMemberData:
		_ = v.Value // Value is types.FlowDataConnectionConfiguration

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

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

	}
}

var _ *types.FlowConditionalConnectionConfiguration
var _ *types.FlowDataConnectionConfiguration

func ExampleFlowNodeConfiguration_outputUsage() {
	var union types.FlowNodeConfiguration
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.FlowNodeConfigurationMemberAgent:
		_ = v.Value // Value is types.AgentFlowNodeConfiguration

	case *types.FlowNodeConfigurationMemberCollector:
		_ = v.Value // Value is types.CollectorFlowNodeConfiguration

	case *types.FlowNodeConfigurationMemberCondition:
		_ = v.Value // Value is types.ConditionFlowNodeConfiguration

	case *types.FlowNodeConfigurationMemberInlineCode:
		_ = v.Value // Value is types.InlineCodeFlowNodeConfiguration

	case *types.FlowNodeConfigurationMemberInput:
		_ = v.Value // Value is types.InputFlowNodeConfiguration

	case *types.FlowNodeConfigurationMemberIterator:
		_ = v.Value // Value is types.IteratorFlowNodeConfiguration

	case *types.FlowNodeConfigurationMemberKnowledgeBase:
		_ = v.Value // Value is types.KnowledgeBaseFlowNodeConfiguration

	case *types.FlowNodeConfigurationMemberLambdaFunction:
		_ = v.Value // Value is types.LambdaFunctionFlowNodeConfiguration

	case *types.FlowNodeConfigurationMemberLex:
		_ = v.Value // Value is types.LexFlowNodeConfiguration

	case *types.FlowNodeConfigurationMemberLoop:
		_ = v.Value // Value is types.LoopFlowNodeConfiguration

	case *types.FlowNodeConfigurationMemberLoopController:
		_ = v.Value // Value is types.LoopControllerFlowNodeConfiguration

	case *types.FlowNodeConfigurationMemberLoopInput:
		_ = v.Value // Value is types.LoopInputFlowNodeConfiguration

	case *types.FlowNodeConfigurationMemberOutput:
		_ = v.Value // Value is types.OutputFlowNodeConfiguration

	case *types.FlowNodeConfigurationMemberPrompt:
		_ = v.Value // Value is types.PromptFlowNodeConfiguration

	case *types.FlowNodeConfigurationMemberRetrieval:
		_ = v.Value // Value is types.RetrievalFlowNodeConfiguration

	case *types.FlowNodeConfigurationMemberStorage:
		_ = v.Value // Value is types.StorageFlowNodeConfiguration

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

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

	}
}

var _ *types.IteratorFlowNodeConfiguration
var _ *types.AgentFlowNodeConfiguration
var _ *types.KnowledgeBaseFlowNodeConfiguration
var _ *types.PromptFlowNodeConfiguration
var _ *types.InputFlowNodeConfiguration
var _ *types.LoopFlowNodeConfiguration
var _ *types.InlineCodeFlowNodeConfiguration
var _ *types.LambdaFunctionFlowNodeConfiguration
var _ *types.ConditionFlowNodeConfiguration
var _ *types.LoopInputFlowNodeConfiguration
var _ *types.CollectorFlowNodeConfiguration
var _ *types.OutputFlowNodeConfiguration
var _ *types.LoopControllerFlowNodeConfiguration
var _ *types.RetrievalFlowNodeConfiguration
var _ *types.StorageFlowNodeConfiguration
var _ *types.LexFlowNodeConfiguration

func ExampleFlowValidationDetails_outputUsage() {
	var union types.FlowValidationDetails
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.FlowValidationDetailsMemberCyclicConnection:
		_ = v.Value // Value is types.CyclicConnectionFlowValidationDetails

	case *types.FlowValidationDetailsMemberDuplicateConditionExpression:
		_ = v.Value // Value is types.DuplicateConditionExpressionFlowValidationDetails

	case *types.FlowValidationDetailsMemberDuplicateConnections:
		_ = v.Value // Value is types.DuplicateConnectionsFlowValidationDetails

	case *types.FlowValidationDetailsMemberIncompatibleConnectionDataType:
		_ = v.Value // Value is types.IncompatibleConnectionDataTypeFlowValidationDetails

	case *types.FlowValidationDetailsMemberInvalidLoopBoundary:
		_ = v.Value // Value is types.InvalidLoopBoundaryFlowValidationDetails

	case *types.FlowValidationDetailsMemberLoopIncompatibleNodeType:
		_ = v.Value // Value is types.LoopIncompatibleNodeTypeFlowValidationDetails

	case *types.FlowValidationDetailsMemberMalformedConditionExpression:
		_ = v.Value // Value is types.MalformedConditionExpressionFlowValidationDetails

	case *types.FlowValidationDetailsMemberMalformedNodeInputExpression:
		_ = v.Value // Value is types.MalformedNodeInputExpressionFlowValidationDetails

	case *types.FlowValidationDetailsMemberMismatchedNodeInputType:
		_ = v.Value // Value is types.MismatchedNodeInputTypeFlowValidationDetails

	case *types.FlowValidationDetailsMemberMismatchedNodeOutputType:
		_ = v.Value // Value is types.MismatchedNodeOutputTypeFlowValidationDetails

	case *types.FlowValidationDetailsMemberMissingConnectionConfiguration:
		_ = v.Value // Value is types.MissingConnectionConfigurationFlowValidationDetails

	case *types.FlowValidationDetailsMemberMissingDefaultCondition:
		_ = v.Value // Value is types.MissingDefaultConditionFlowValidationDetails

	case *types.FlowValidationDetailsMemberMissingEndingNodes:
		_ = v.Value // Value is types.MissingEndingNodesFlowValidationDetails

	case *types.FlowValidationDetailsMemberMissingLoopControllerNode:
		_ = v.Value // Value is types.MissingLoopControllerNodeFlowValidationDetails

	case *types.FlowValidationDetailsMemberMissingLoopInputNode:
		_ = v.Value // Value is types.MissingLoopInputNodeFlowValidationDetails

	case *types.FlowValidationDetailsMemberMissingNodeConfiguration:
		_ = v.Value // Value is types.MissingNodeConfigurationFlowValidationDetails

	case *types.FlowValidationDetailsMemberMissingNodeInput:
		_ = v.Value // Value is types.MissingNodeInputFlowValidationDetails

	case *types.FlowValidationDetailsMemberMissingNodeOutput:
		_ = v.Value // Value is types.MissingNodeOutputFlowValidationDetails

	case *types.FlowValidationDetailsMemberMissingStartingNodes:
		_ = v.Value // Value is types.MissingStartingNodesFlowValidationDetails

	case *types.FlowValidationDetailsMemberMultipleLoopControllerNodes:
		_ = v.Value // Value is types.MultipleLoopControllerNodesFlowValidationDetails

	case *types.FlowValidationDetailsMemberMultipleLoopInputNodes:
		_ = v.Value // Value is types.MultipleLoopInputNodesFlowValidationDetails

	case *types.FlowValidationDetailsMemberMultipleNodeInputConnections:
		_ = v.Value // Value is types.MultipleNodeInputConnectionsFlowValidationDetails

	case *types.FlowValidationDetailsMemberUnfulfilledNodeInput:
		_ = v.Value // Value is types.UnfulfilledNodeInputFlowValidationDetails

	case *types.FlowValidationDetailsMemberUnknownConnectionCondition:
		_ = v.Value // Value is types.UnknownConnectionConditionFlowValidationDetails

	case *types.FlowValidationDetailsMemberUnknownConnectionSource:
		_ = v.Value // Value is types.UnknownConnectionSourceFlowValidationDetails

	case *types.FlowValidationDetailsMemberUnknownConnectionSourceOutput:
		_ = v.Value // Value is types.UnknownConnectionSourceOutputFlowValidationDetails

	case *types.FlowValidationDetailsMemberUnknownConnectionTarget:
		_ = v.Value // Value is types.UnknownConnectionTargetFlowValidationDetails

	case *types.FlowValidationDetailsMemberUnknownConnectionTargetInput:
		_ = v.Value // Value is types.UnknownConnectionTargetInputFlowValidationDetails

	case *types.FlowValidationDetailsMemberUnknownNodeInput:
		_ = v.Value // Value is types.UnknownNodeInputFlowValidationDetails

	case *types.FlowValidationDetailsMemberUnknownNodeOutput:
		_ = v.Value // Value is types.UnknownNodeOutputFlowValidationDetails

	case *types.FlowValidationDetailsMemberUnreachableNode:
		_ = v.Value // Value is types.UnreachableNodeFlowValidationDetails

	case *types.FlowValidationDetailsMemberUnsatisfiedConnectionConditions:
		_ = v.Value // Value is types.UnsatisfiedConnectionConditionsFlowValidationDetails

	case *types.FlowValidationDetailsMemberUnspecified:
		_ = v.Value // Value is types.UnspecifiedFlowValidationDetails

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

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

	}
}

var _ *types.MissingLoopInputNodeFlowValidationDetails
var _ *types.MalformedConditionExpressionFlowValidationDetails
var _ *types.UnfulfilledNodeInputFlowValidationDetails
var _ *types.MalformedNodeInputExpressionFlowValidationDetails
var _ *types.UnknownConnectionConditionFlowValidationDetails
var _ *types.MissingNodeConfigurationFlowValidationDetails
var _ *types.DuplicateConditionExpressionFlowValidationDetails
var _ *types.MissingNodeInputFlowValidationDetails
var _ *types.UnknownConnectionTargetFlowValidationDetails
var _ *types.MultipleNodeInputConnectionsFlowValidationDetails
var _ *types.MultipleLoopInputNodesFlowValidationDetails
var _ *types.MismatchedNodeInputTypeFlowValidationDetails
var _ *types.UnsatisfiedConnectionConditionsFlowValidationDetails
var _ *types.MissingDefaultConditionFlowValidationDetails
var _ *types.DuplicateConnectionsFlowValidationDetails
var _ *types.UnreachableNodeFlowValidationDetails
var _ *types.MissingEndingNodesFlowValidationDetails
var _ *types.MissingLoopControllerNodeFlowValidationDetails
var _ *types.MissingStartingNodesFlowValidationDetails
var _ *types.UnknownConnectionSourceFlowValidationDetails
var _ *types.UnknownNodeInputFlowValidationDetails
var _ *types.UnknownConnectionTargetInputFlowValidationDetails
var _ *types.MismatchedNodeOutputTypeFlowValidationDetails
var _ *types.MissingNodeOutputFlowValidationDetails
var _ *types.UnknownConnectionSourceOutputFlowValidationDetails
var _ *types.UnspecifiedFlowValidationDetails
var _ *types.IncompatibleConnectionDataTypeFlowValidationDetails
var _ *types.LoopIncompatibleNodeTypeFlowValidationDetails
var _ *types.UnknownNodeOutputFlowValidationDetails
var _ *types.MultipleLoopControllerNodesFlowValidationDetails
var _ *types.InvalidLoopBoundaryFlowValidationDetails
var _ *types.CyclicConnectionFlowValidationDetails
var _ *types.MissingConnectionConfigurationFlowValidationDetails

func ExampleFunctionSchema_outputUsage() {
	var union types.FunctionSchema
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.FunctionSchemaMemberFunctions:
		_ = v.Value // Value is []types.Function

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

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

	}
}

var _ []types.Function

func ExampleOrchestrationExecutor_outputUsage() {
	var union types.OrchestrationExecutor
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.OrchestrationExecutorMemberLambda:
		_ = 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 ExamplePromptFlowNodeSourceConfiguration_outputUsage() {
	var union types.PromptFlowNodeSourceConfiguration
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.PromptFlowNodeSourceConfigurationMemberInline:
		_ = v.Value // Value is types.PromptFlowNodeInlineConfiguration

	case *types.PromptFlowNodeSourceConfigurationMemberResource:
		_ = v.Value // Value is types.PromptFlowNodeResourceConfiguration

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

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

	}
}

var _ *types.PromptFlowNodeInlineConfiguration
var _ *types.PromptFlowNodeResourceConfiguration

func ExamplePromptGenAiResource_outputUsage() {
	var union types.PromptGenAiResource
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.PromptGenAiResourceMemberAgent:
		_ = v.Value // Value is types.PromptAgentResource

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

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

	}
}

var _ *types.PromptAgentResource

func ExamplePromptInferenceConfiguration_outputUsage() {
	var union types.PromptInferenceConfiguration
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.PromptInferenceConfigurationMemberText:
		_ = v.Value // Value is types.PromptModelInferenceConfiguration

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

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

	}
}

var _ *types.PromptModelInferenceConfiguration

func ExamplePromptTemplateConfiguration_outputUsage() {
	var union types.PromptTemplateConfiguration
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.PromptTemplateConfigurationMemberChat:
		_ = v.Value // Value is types.ChatPromptTemplateConfiguration

	case *types.PromptTemplateConfigurationMemberText:
		_ = v.Value // Value is types.TextPromptTemplateConfiguration

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

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

	}
}

var _ *types.TextPromptTemplateConfiguration
var _ *types.ChatPromptTemplateConfiguration

func ExampleRerankingMetadataSelectiveModeConfiguration_outputUsage() {
	var union types.RerankingMetadataSelectiveModeConfiguration
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.RerankingMetadataSelectiveModeConfigurationMemberFieldsToExclude:
		_ = v.Value // Value is []types.FieldForReranking

	case *types.RerankingMetadataSelectiveModeConfigurationMemberFieldsToInclude:
		_ = v.Value // Value is []types.FieldForReranking

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

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

	}
}

var _ []types.FieldForReranking

func ExampleRetrievalFlowNodeServiceConfiguration_outputUsage() {
	var union types.RetrievalFlowNodeServiceConfiguration
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.RetrievalFlowNodeServiceConfigurationMemberS3:
		_ = v.Value // Value is types.RetrievalFlowNodeS3Configuration

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

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

	}
}

var _ *types.RetrievalFlowNodeS3Configuration

func ExampleStorageFlowNodeServiceConfiguration_outputUsage() {
	var union types.StorageFlowNodeServiceConfiguration
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.StorageFlowNodeServiceConfigurationMemberS3:
		_ = v.Value // Value is types.StorageFlowNodeS3Configuration

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

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

	}
}

var _ *types.StorageFlowNodeS3Configuration

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.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

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.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.CachePointBlock
var _ *types.ToolSpecification

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.AnyToolChoice
var _ *types.SpecificToolChoice

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
