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

package types_test

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

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

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

	case *types.AcmCertificateMetadataFilterMemberCertificateKeyPairOrigin:
		_ = v.Value // Value is types.CertificateKeyPairOrigin

	case *types.AcmCertificateMetadataFilterMemberExported:
		_ = v.Value // Value is bool

	case *types.AcmCertificateMetadataFilterMemberExportOption:
		_ = v.Value // Value is types.CertificateExport

	case *types.AcmCertificateMetadataFilterMemberInUse:
		_ = v.Value // Value is bool

	case *types.AcmCertificateMetadataFilterMemberManagedBy:
		_ = v.Value // Value is types.CertificateManagedBy

	case *types.AcmCertificateMetadataFilterMemberRenewalStatus:
		_ = v.Value // Value is types.RenewalStatus

	case *types.AcmCertificateMetadataFilterMemberStatus:
		_ = v.Value // Value is types.CertificateStatus

	case *types.AcmCertificateMetadataFilterMemberType:
		_ = v.Value // Value is types.CertificateType

	case *types.AcmCertificateMetadataFilterMemberValidationMethod:
		_ = v.Value // Value is types.ValidationMethod

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

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

	}
}

var _ types.CertificateType
var _ *string
var _ *string
var _ types.CertificateExport
var _ types.CertificateManagedBy
var _ *bool
var _ types.CertificateKeyPairOrigin
var _ types.CertificateStatus
var _ types.RenewalStatus
var _ types.ValidationMethod

func ExampleCertificateAuthority_outputUsage() {
	var union types.CertificateAuthority
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.CertificateAuthorityMemberPublicCertificateAuthority:
		_ = v.Value // Value is types.PublicCertificateAuthority

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

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

	}
}

var _ *types.PublicCertificateAuthority

func ExampleCertificateFilter_outputUsage() {
	var union types.CertificateFilter
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.CertificateFilterMemberAcmCertificateMetadataFilter:
		_ = v.Value // Value is types.AcmCertificateMetadataFilter

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

	case *types.CertificateFilterMemberX509AttributeFilter:
		_ = v.Value // Value is types.X509AttributeFilter

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

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

	}
}

var _ types.AcmCertificateMetadataFilter
var _ types.X509AttributeFilter
var _ *string

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

	case *types.CertificateFilterStatementMemberFilter:
		_ = v.Value // Value is types.CertificateFilter

	case *types.CertificateFilterStatementMemberNot:
		_ = v.Value // Value is types.CertificateFilterStatement

	case *types.CertificateFilterStatementMemberOr:
		_ = v.Value // Value is []types.CertificateFilterStatement

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

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

	}
}

var _ []types.CertificateFilterStatement
var _ types.CertificateFilter
var _ types.CertificateFilterStatement

func ExampleCertificateMetadata_outputUsage() {
	var union types.CertificateMetadata
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.CertificateMetadataMemberAcmCertificateMetadata:
		_ = v.Value // Value is types.AcmCertificateMetadata

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

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

	}
}

var _ *types.AcmCertificateMetadata

func ExampleGeneralName_outputUsage() {
	var union types.GeneralName
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.GeneralNameMemberDirectoryName:
		_ = v.Value // Value is types.DistinguishedName

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

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

	case *types.GeneralNameMemberOtherName:
		_ = v.Value // Value is types.OtherName

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

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

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

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

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

	}
}

var _ *types.DistinguishedName
var _ *string
var _ *types.OtherName

func ExamplePrevalidationDetails_outputUsage() {
	var union types.PrevalidationDetails
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.PrevalidationDetailsMemberDnsPrevalidation:
		_ = v.Value // Value is types.DnsPrevalidationDetails

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

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

	}
}

var _ *types.DnsPrevalidationDetails

func ExamplePrevalidationOptions_outputUsage() {
	var union types.PrevalidationOptions
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.PrevalidationOptionsMemberDnsPrevalidation:
		_ = v.Value // Value is types.DnsPrevalidationOptions

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

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

	}
}

var _ *types.DnsPrevalidationOptions

func ExampleSubjectAlternativeNameFilter_outputUsage() {
	var union types.SubjectAlternativeNameFilter
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.SubjectAlternativeNameFilterMemberDnsName:
		_ = v.Value // Value is types.DnsNameFilter

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

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

	}
}

var _ *types.DnsNameFilter

func ExampleSubjectFilter_outputUsage() {
	var union types.SubjectFilter
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.SubjectFilterMemberCommonName:
		_ = v.Value // Value is types.CommonNameFilter

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

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

	}
}

var _ *types.CommonNameFilter

func ExampleX509AttributeFilter_outputUsage() {
	var union types.X509AttributeFilter
	// type switches can be used to check the union value
	switch v := union.(type) {
	case *types.X509AttributeFilterMemberExtendedKeyUsage:
		_ = v.Value // Value is types.ExtendedKeyUsageName

	case *types.X509AttributeFilterMemberKeyAlgorithm:
		_ = v.Value // Value is types.KeyAlgorithm

	case *types.X509AttributeFilterMemberKeyUsage:
		_ = v.Value // Value is types.KeyUsageName

	case *types.X509AttributeFilterMemberNotAfter:
		_ = v.Value // Value is types.TimestampRange

	case *types.X509AttributeFilterMemberNotBefore:
		_ = v.Value // Value is types.TimestampRange

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

	case *types.X509AttributeFilterMemberSubject:
		_ = v.Value // Value is types.SubjectFilter

	case *types.X509AttributeFilterMemberSubjectAlternativeName:
		_ = v.Value // Value is types.SubjectAlternativeNameFilter

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

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

	}
}

var _ types.KeyAlgorithm
var _ types.ExtendedKeyUsageName
var _ *string
var _ *types.TimestampRange
var _ types.SubjectAlternativeNameFilter
var _ types.KeyUsageName
var _ types.SubjectFilter
