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

package computeoptimizer

import (
	"context"
	"fmt"
	"github.com/aws/aws-sdk-go-v2/service/computeoptimizer/types"
	smithy "github.com/aws/smithy-go"
	smithycbor "github.com/aws/smithy-go/encoding/cbor"
	"github.com/aws/smithy-go/middleware"
	"github.com/aws/smithy-go/ptr"
	"github.com/aws/smithy-go/tracing"
	smithyhttp "github.com/aws/smithy-go/transport/http"
	"io"
	"strings"
	"time"
)

type smithyRpcv2cbor_deserializeOpDeleteRecommendationPreferences struct {
}

func (*smithyRpcv2cbor_deserializeOpDeleteRecommendationPreferences) ID() string {
	return "OperationDeserializer"
}

func (m *smithyRpcv2cbor_deserializeOpDeleteRecommendationPreferences) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
) {
	out, metadata, err = next.HandleDeserialize(ctx, in)

	_, span := tracing.StartSpan(ctx, "OperationDeserializer")
	endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
	defer endTimer()
	defer span.End()

	if err != nil {
		return out, metadata, err
	}

	resp, ok := out.RawResponse.(*smithyhttp.Response)
	if !ok {
		return out, metadata, fmt.Errorf("unexpected transport type %T", out.RawResponse)
	}

	if resp.Header.Get("smithy-protocol") != "rpc-v2-cbor" {
		return out, metadata, &smithy.DeserializationError{
			Err: fmt.Errorf(
				"unexpected smithy-protocol response header '%s' (HTTP status: %s)",
				resp.Header.Get("smithy-protocol"),
				resp.Status,
			),
		}
	}

	if resp.StatusCode != 200 {
		return out, metadata, rpc2_deserializeOpErrorDeleteRecommendationPreferences(resp)
	}

	if _, err = io.Copy(io.Discard, resp.Body); err != nil {
		return out, metadata, fmt.Errorf("discard response body: %w", err)
	}

	out.Result = &DeleteRecommendationPreferencesOutput{}

	return out, metadata, nil
}

type smithyRpcv2cbor_deserializeOpDescribeRecommendationExportJobs struct {
}

func (*smithyRpcv2cbor_deserializeOpDescribeRecommendationExportJobs) ID() string {
	return "OperationDeserializer"
}

func (m *smithyRpcv2cbor_deserializeOpDescribeRecommendationExportJobs) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
) {
	out, metadata, err = next.HandleDeserialize(ctx, in)

	_, span := tracing.StartSpan(ctx, "OperationDeserializer")
	endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
	defer endTimer()
	defer span.End()

	if err != nil {
		return out, metadata, err
	}

	resp, ok := out.RawResponse.(*smithyhttp.Response)
	if !ok {
		return out, metadata, fmt.Errorf("unexpected transport type %T", out.RawResponse)
	}

	if resp.Header.Get("smithy-protocol") != "rpc-v2-cbor" {
		return out, metadata, &smithy.DeserializationError{
			Err: fmt.Errorf(
				"unexpected smithy-protocol response header '%s' (HTTP status: %s)",
				resp.Header.Get("smithy-protocol"),
				resp.Status,
			),
		}
	}

	if resp.StatusCode != 200 {
		return out, metadata, rpc2_deserializeOpErrorDescribeRecommendationExportJobs(resp)
	}

	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return out, metadata, err
	}

	if len(payload) == 0 {
		out.Result = &DescribeRecommendationExportJobsOutput{}
		return out, metadata, nil
	}

	cv, err := smithycbor.Decode(payload)
	if err != nil {
		return out, metadata, err
	}

	output, err := deserializeCBOR_DescribeRecommendationExportJobsOutput(cv)
	if err != nil {
		return out, metadata, err
	}

	out.Result = output

	return out, metadata, nil
}

type smithyRpcv2cbor_deserializeOpExportAutoScalingGroupRecommendations struct {
}

func (*smithyRpcv2cbor_deserializeOpExportAutoScalingGroupRecommendations) ID() string {
	return "OperationDeserializer"
}

func (m *smithyRpcv2cbor_deserializeOpExportAutoScalingGroupRecommendations) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
) {
	out, metadata, err = next.HandleDeserialize(ctx, in)

	_, span := tracing.StartSpan(ctx, "OperationDeserializer")
	endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
	defer endTimer()
	defer span.End()

	if err != nil {
		return out, metadata, err
	}

	resp, ok := out.RawResponse.(*smithyhttp.Response)
	if !ok {
		return out, metadata, fmt.Errorf("unexpected transport type %T", out.RawResponse)
	}

	if resp.Header.Get("smithy-protocol") != "rpc-v2-cbor" {
		return out, metadata, &smithy.DeserializationError{
			Err: fmt.Errorf(
				"unexpected smithy-protocol response header '%s' (HTTP status: %s)",
				resp.Header.Get("smithy-protocol"),
				resp.Status,
			),
		}
	}

	if resp.StatusCode != 200 {
		return out, metadata, rpc2_deserializeOpErrorExportAutoScalingGroupRecommendations(resp)
	}

	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return out, metadata, err
	}

	if len(payload) == 0 {
		out.Result = &ExportAutoScalingGroupRecommendationsOutput{}
		return out, metadata, nil
	}

	cv, err := smithycbor.Decode(payload)
	if err != nil {
		return out, metadata, err
	}

	output, err := deserializeCBOR_ExportAutoScalingGroupRecommendationsOutput(cv)
	if err != nil {
		return out, metadata, err
	}

	out.Result = output

	return out, metadata, nil
}

type smithyRpcv2cbor_deserializeOpExportEBSVolumeRecommendations struct {
}

func (*smithyRpcv2cbor_deserializeOpExportEBSVolumeRecommendations) ID() string {
	return "OperationDeserializer"
}

func (m *smithyRpcv2cbor_deserializeOpExportEBSVolumeRecommendations) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
) {
	out, metadata, err = next.HandleDeserialize(ctx, in)

	_, span := tracing.StartSpan(ctx, "OperationDeserializer")
	endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
	defer endTimer()
	defer span.End()

	if err != nil {
		return out, metadata, err
	}

	resp, ok := out.RawResponse.(*smithyhttp.Response)
	if !ok {
		return out, metadata, fmt.Errorf("unexpected transport type %T", out.RawResponse)
	}

	if resp.Header.Get("smithy-protocol") != "rpc-v2-cbor" {
		return out, metadata, &smithy.DeserializationError{
			Err: fmt.Errorf(
				"unexpected smithy-protocol response header '%s' (HTTP status: %s)",
				resp.Header.Get("smithy-protocol"),
				resp.Status,
			),
		}
	}

	if resp.StatusCode != 200 {
		return out, metadata, rpc2_deserializeOpErrorExportEBSVolumeRecommendations(resp)
	}

	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return out, metadata, err
	}

	if len(payload) == 0 {
		out.Result = &ExportEBSVolumeRecommendationsOutput{}
		return out, metadata, nil
	}

	cv, err := smithycbor.Decode(payload)
	if err != nil {
		return out, metadata, err
	}

	output, err := deserializeCBOR_ExportEBSVolumeRecommendationsOutput(cv)
	if err != nil {
		return out, metadata, err
	}

	out.Result = output

	return out, metadata, nil
}

type smithyRpcv2cbor_deserializeOpExportEC2InstanceRecommendations struct {
}

func (*smithyRpcv2cbor_deserializeOpExportEC2InstanceRecommendations) ID() string {
	return "OperationDeserializer"
}

func (m *smithyRpcv2cbor_deserializeOpExportEC2InstanceRecommendations) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
) {
	out, metadata, err = next.HandleDeserialize(ctx, in)

	_, span := tracing.StartSpan(ctx, "OperationDeserializer")
	endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
	defer endTimer()
	defer span.End()

	if err != nil {
		return out, metadata, err
	}

	resp, ok := out.RawResponse.(*smithyhttp.Response)
	if !ok {
		return out, metadata, fmt.Errorf("unexpected transport type %T", out.RawResponse)
	}

	if resp.Header.Get("smithy-protocol") != "rpc-v2-cbor" {
		return out, metadata, &smithy.DeserializationError{
			Err: fmt.Errorf(
				"unexpected smithy-protocol response header '%s' (HTTP status: %s)",
				resp.Header.Get("smithy-protocol"),
				resp.Status,
			),
		}
	}

	if resp.StatusCode != 200 {
		return out, metadata, rpc2_deserializeOpErrorExportEC2InstanceRecommendations(resp)
	}

	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return out, metadata, err
	}

	if len(payload) == 0 {
		out.Result = &ExportEC2InstanceRecommendationsOutput{}
		return out, metadata, nil
	}

	cv, err := smithycbor.Decode(payload)
	if err != nil {
		return out, metadata, err
	}

	output, err := deserializeCBOR_ExportEC2InstanceRecommendationsOutput(cv)
	if err != nil {
		return out, metadata, err
	}

	out.Result = output

	return out, metadata, nil
}

type smithyRpcv2cbor_deserializeOpExportECSServiceRecommendations struct {
}

func (*smithyRpcv2cbor_deserializeOpExportECSServiceRecommendations) ID() string {
	return "OperationDeserializer"
}

func (m *smithyRpcv2cbor_deserializeOpExportECSServiceRecommendations) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
) {
	out, metadata, err = next.HandleDeserialize(ctx, in)

	_, span := tracing.StartSpan(ctx, "OperationDeserializer")
	endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
	defer endTimer()
	defer span.End()

	if err != nil {
		return out, metadata, err
	}

	resp, ok := out.RawResponse.(*smithyhttp.Response)
	if !ok {
		return out, metadata, fmt.Errorf("unexpected transport type %T", out.RawResponse)
	}

	if resp.Header.Get("smithy-protocol") != "rpc-v2-cbor" {
		return out, metadata, &smithy.DeserializationError{
			Err: fmt.Errorf(
				"unexpected smithy-protocol response header '%s' (HTTP status: %s)",
				resp.Header.Get("smithy-protocol"),
				resp.Status,
			),
		}
	}

	if resp.StatusCode != 200 {
		return out, metadata, rpc2_deserializeOpErrorExportECSServiceRecommendations(resp)
	}

	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return out, metadata, err
	}

	if len(payload) == 0 {
		out.Result = &ExportECSServiceRecommendationsOutput{}
		return out, metadata, nil
	}

	cv, err := smithycbor.Decode(payload)
	if err != nil {
		return out, metadata, err
	}

	output, err := deserializeCBOR_ExportECSServiceRecommendationsOutput(cv)
	if err != nil {
		return out, metadata, err
	}

	out.Result = output

	return out, metadata, nil
}

type smithyRpcv2cbor_deserializeOpExportIdleRecommendations struct {
}

func (*smithyRpcv2cbor_deserializeOpExportIdleRecommendations) ID() string {
	return "OperationDeserializer"
}

func (m *smithyRpcv2cbor_deserializeOpExportIdleRecommendations) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
) {
	out, metadata, err = next.HandleDeserialize(ctx, in)

	_, span := tracing.StartSpan(ctx, "OperationDeserializer")
	endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
	defer endTimer()
	defer span.End()

	if err != nil {
		return out, metadata, err
	}

	resp, ok := out.RawResponse.(*smithyhttp.Response)
	if !ok {
		return out, metadata, fmt.Errorf("unexpected transport type %T", out.RawResponse)
	}

	if resp.Header.Get("smithy-protocol") != "rpc-v2-cbor" {
		return out, metadata, &smithy.DeserializationError{
			Err: fmt.Errorf(
				"unexpected smithy-protocol response header '%s' (HTTP status: %s)",
				resp.Header.Get("smithy-protocol"),
				resp.Status,
			),
		}
	}

	if resp.StatusCode != 200 {
		return out, metadata, rpc2_deserializeOpErrorExportIdleRecommendations(resp)
	}

	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return out, metadata, err
	}

	if len(payload) == 0 {
		out.Result = &ExportIdleRecommendationsOutput{}
		return out, metadata, nil
	}

	cv, err := smithycbor.Decode(payload)
	if err != nil {
		return out, metadata, err
	}

	output, err := deserializeCBOR_ExportIdleRecommendationsOutput(cv)
	if err != nil {
		return out, metadata, err
	}

	out.Result = output

	return out, metadata, nil
}

type smithyRpcv2cbor_deserializeOpExportLambdaFunctionRecommendations struct {
}

func (*smithyRpcv2cbor_deserializeOpExportLambdaFunctionRecommendations) ID() string {
	return "OperationDeserializer"
}

func (m *smithyRpcv2cbor_deserializeOpExportLambdaFunctionRecommendations) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
) {
	out, metadata, err = next.HandleDeserialize(ctx, in)

	_, span := tracing.StartSpan(ctx, "OperationDeserializer")
	endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
	defer endTimer()
	defer span.End()

	if err != nil {
		return out, metadata, err
	}

	resp, ok := out.RawResponse.(*smithyhttp.Response)
	if !ok {
		return out, metadata, fmt.Errorf("unexpected transport type %T", out.RawResponse)
	}

	if resp.Header.Get("smithy-protocol") != "rpc-v2-cbor" {
		return out, metadata, &smithy.DeserializationError{
			Err: fmt.Errorf(
				"unexpected smithy-protocol response header '%s' (HTTP status: %s)",
				resp.Header.Get("smithy-protocol"),
				resp.Status,
			),
		}
	}

	if resp.StatusCode != 200 {
		return out, metadata, rpc2_deserializeOpErrorExportLambdaFunctionRecommendations(resp)
	}

	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return out, metadata, err
	}

	if len(payload) == 0 {
		out.Result = &ExportLambdaFunctionRecommendationsOutput{}
		return out, metadata, nil
	}

	cv, err := smithycbor.Decode(payload)
	if err != nil {
		return out, metadata, err
	}

	output, err := deserializeCBOR_ExportLambdaFunctionRecommendationsOutput(cv)
	if err != nil {
		return out, metadata, err
	}

	out.Result = output

	return out, metadata, nil
}

type smithyRpcv2cbor_deserializeOpExportLicenseRecommendations struct {
}

func (*smithyRpcv2cbor_deserializeOpExportLicenseRecommendations) ID() string {
	return "OperationDeserializer"
}

func (m *smithyRpcv2cbor_deserializeOpExportLicenseRecommendations) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
) {
	out, metadata, err = next.HandleDeserialize(ctx, in)

	_, span := tracing.StartSpan(ctx, "OperationDeserializer")
	endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
	defer endTimer()
	defer span.End()

	if err != nil {
		return out, metadata, err
	}

	resp, ok := out.RawResponse.(*smithyhttp.Response)
	if !ok {
		return out, metadata, fmt.Errorf("unexpected transport type %T", out.RawResponse)
	}

	if resp.Header.Get("smithy-protocol") != "rpc-v2-cbor" {
		return out, metadata, &smithy.DeserializationError{
			Err: fmt.Errorf(
				"unexpected smithy-protocol response header '%s' (HTTP status: %s)",
				resp.Header.Get("smithy-protocol"),
				resp.Status,
			),
		}
	}

	if resp.StatusCode != 200 {
		return out, metadata, rpc2_deserializeOpErrorExportLicenseRecommendations(resp)
	}

	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return out, metadata, err
	}

	if len(payload) == 0 {
		out.Result = &ExportLicenseRecommendationsOutput{}
		return out, metadata, nil
	}

	cv, err := smithycbor.Decode(payload)
	if err != nil {
		return out, metadata, err
	}

	output, err := deserializeCBOR_ExportLicenseRecommendationsOutput(cv)
	if err != nil {
		return out, metadata, err
	}

	out.Result = output

	return out, metadata, nil
}

type smithyRpcv2cbor_deserializeOpExportRDSDatabaseRecommendations struct {
}

func (*smithyRpcv2cbor_deserializeOpExportRDSDatabaseRecommendations) ID() string {
	return "OperationDeserializer"
}

func (m *smithyRpcv2cbor_deserializeOpExportRDSDatabaseRecommendations) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
) {
	out, metadata, err = next.HandleDeserialize(ctx, in)

	_, span := tracing.StartSpan(ctx, "OperationDeserializer")
	endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
	defer endTimer()
	defer span.End()

	if err != nil {
		return out, metadata, err
	}

	resp, ok := out.RawResponse.(*smithyhttp.Response)
	if !ok {
		return out, metadata, fmt.Errorf("unexpected transport type %T", out.RawResponse)
	}

	if resp.Header.Get("smithy-protocol") != "rpc-v2-cbor" {
		return out, metadata, &smithy.DeserializationError{
			Err: fmt.Errorf(
				"unexpected smithy-protocol response header '%s' (HTTP status: %s)",
				resp.Header.Get("smithy-protocol"),
				resp.Status,
			),
		}
	}

	if resp.StatusCode != 200 {
		return out, metadata, rpc2_deserializeOpErrorExportRDSDatabaseRecommendations(resp)
	}

	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return out, metadata, err
	}

	if len(payload) == 0 {
		out.Result = &ExportRDSDatabaseRecommendationsOutput{}
		return out, metadata, nil
	}

	cv, err := smithycbor.Decode(payload)
	if err != nil {
		return out, metadata, err
	}

	output, err := deserializeCBOR_ExportRDSDatabaseRecommendationsOutput(cv)
	if err != nil {
		return out, metadata, err
	}

	out.Result = output

	return out, metadata, nil
}

type smithyRpcv2cbor_deserializeOpGetAutoScalingGroupRecommendations struct {
}

func (*smithyRpcv2cbor_deserializeOpGetAutoScalingGroupRecommendations) ID() string {
	return "OperationDeserializer"
}

func (m *smithyRpcv2cbor_deserializeOpGetAutoScalingGroupRecommendations) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
) {
	out, metadata, err = next.HandleDeserialize(ctx, in)

	_, span := tracing.StartSpan(ctx, "OperationDeserializer")
	endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
	defer endTimer()
	defer span.End()

	if err != nil {
		return out, metadata, err
	}

	resp, ok := out.RawResponse.(*smithyhttp.Response)
	if !ok {
		return out, metadata, fmt.Errorf("unexpected transport type %T", out.RawResponse)
	}

	if resp.Header.Get("smithy-protocol") != "rpc-v2-cbor" {
		return out, metadata, &smithy.DeserializationError{
			Err: fmt.Errorf(
				"unexpected smithy-protocol response header '%s' (HTTP status: %s)",
				resp.Header.Get("smithy-protocol"),
				resp.Status,
			),
		}
	}

	if resp.StatusCode != 200 {
		return out, metadata, rpc2_deserializeOpErrorGetAutoScalingGroupRecommendations(resp)
	}

	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return out, metadata, err
	}

	if len(payload) == 0 {
		out.Result = &GetAutoScalingGroupRecommendationsOutput{}
		return out, metadata, nil
	}

	cv, err := smithycbor.Decode(payload)
	if err != nil {
		return out, metadata, err
	}

	output, err := deserializeCBOR_GetAutoScalingGroupRecommendationsOutput(cv)
	if err != nil {
		return out, metadata, err
	}

	out.Result = output

	return out, metadata, nil
}

type smithyRpcv2cbor_deserializeOpGetEBSVolumeRecommendations struct {
}

func (*smithyRpcv2cbor_deserializeOpGetEBSVolumeRecommendations) ID() string {
	return "OperationDeserializer"
}

func (m *smithyRpcv2cbor_deserializeOpGetEBSVolumeRecommendations) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
) {
	out, metadata, err = next.HandleDeserialize(ctx, in)

	_, span := tracing.StartSpan(ctx, "OperationDeserializer")
	endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
	defer endTimer()
	defer span.End()

	if err != nil {
		return out, metadata, err
	}

	resp, ok := out.RawResponse.(*smithyhttp.Response)
	if !ok {
		return out, metadata, fmt.Errorf("unexpected transport type %T", out.RawResponse)
	}

	if resp.Header.Get("smithy-protocol") != "rpc-v2-cbor" {
		return out, metadata, &smithy.DeserializationError{
			Err: fmt.Errorf(
				"unexpected smithy-protocol response header '%s' (HTTP status: %s)",
				resp.Header.Get("smithy-protocol"),
				resp.Status,
			),
		}
	}

	if resp.StatusCode != 200 {
		return out, metadata, rpc2_deserializeOpErrorGetEBSVolumeRecommendations(resp)
	}

	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return out, metadata, err
	}

	if len(payload) == 0 {
		out.Result = &GetEBSVolumeRecommendationsOutput{}
		return out, metadata, nil
	}

	cv, err := smithycbor.Decode(payload)
	if err != nil {
		return out, metadata, err
	}

	output, err := deserializeCBOR_GetEBSVolumeRecommendationsOutput(cv)
	if err != nil {
		return out, metadata, err
	}

	out.Result = output

	return out, metadata, nil
}

type smithyRpcv2cbor_deserializeOpGetEC2InstanceRecommendations struct {
}

func (*smithyRpcv2cbor_deserializeOpGetEC2InstanceRecommendations) ID() string {
	return "OperationDeserializer"
}

func (m *smithyRpcv2cbor_deserializeOpGetEC2InstanceRecommendations) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
) {
	out, metadata, err = next.HandleDeserialize(ctx, in)

	_, span := tracing.StartSpan(ctx, "OperationDeserializer")
	endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
	defer endTimer()
	defer span.End()

	if err != nil {
		return out, metadata, err
	}

	resp, ok := out.RawResponse.(*smithyhttp.Response)
	if !ok {
		return out, metadata, fmt.Errorf("unexpected transport type %T", out.RawResponse)
	}

	if resp.Header.Get("smithy-protocol") != "rpc-v2-cbor" {
		return out, metadata, &smithy.DeserializationError{
			Err: fmt.Errorf(
				"unexpected smithy-protocol response header '%s' (HTTP status: %s)",
				resp.Header.Get("smithy-protocol"),
				resp.Status,
			),
		}
	}

	if resp.StatusCode != 200 {
		return out, metadata, rpc2_deserializeOpErrorGetEC2InstanceRecommendations(resp)
	}

	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return out, metadata, err
	}

	if len(payload) == 0 {
		out.Result = &GetEC2InstanceRecommendationsOutput{}
		return out, metadata, nil
	}

	cv, err := smithycbor.Decode(payload)
	if err != nil {
		return out, metadata, err
	}

	output, err := deserializeCBOR_GetEC2InstanceRecommendationsOutput(cv)
	if err != nil {
		return out, metadata, err
	}

	out.Result = output

	return out, metadata, nil
}

type smithyRpcv2cbor_deserializeOpGetEC2RecommendationProjectedMetrics struct {
}

func (*smithyRpcv2cbor_deserializeOpGetEC2RecommendationProjectedMetrics) ID() string {
	return "OperationDeserializer"
}

func (m *smithyRpcv2cbor_deserializeOpGetEC2RecommendationProjectedMetrics) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
) {
	out, metadata, err = next.HandleDeserialize(ctx, in)

	_, span := tracing.StartSpan(ctx, "OperationDeserializer")
	endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
	defer endTimer()
	defer span.End()

	if err != nil {
		return out, metadata, err
	}

	resp, ok := out.RawResponse.(*smithyhttp.Response)
	if !ok {
		return out, metadata, fmt.Errorf("unexpected transport type %T", out.RawResponse)
	}

	if resp.Header.Get("smithy-protocol") != "rpc-v2-cbor" {
		return out, metadata, &smithy.DeserializationError{
			Err: fmt.Errorf(
				"unexpected smithy-protocol response header '%s' (HTTP status: %s)",
				resp.Header.Get("smithy-protocol"),
				resp.Status,
			),
		}
	}

	if resp.StatusCode != 200 {
		return out, metadata, rpc2_deserializeOpErrorGetEC2RecommendationProjectedMetrics(resp)
	}

	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return out, metadata, err
	}

	if len(payload) == 0 {
		out.Result = &GetEC2RecommendationProjectedMetricsOutput{}
		return out, metadata, nil
	}

	cv, err := smithycbor.Decode(payload)
	if err != nil {
		return out, metadata, err
	}

	output, err := deserializeCBOR_GetEC2RecommendationProjectedMetricsOutput(cv)
	if err != nil {
		return out, metadata, err
	}

	out.Result = output

	return out, metadata, nil
}

type smithyRpcv2cbor_deserializeOpGetECSServiceRecommendationProjectedMetrics struct {
}

func (*smithyRpcv2cbor_deserializeOpGetECSServiceRecommendationProjectedMetrics) ID() string {
	return "OperationDeserializer"
}

func (m *smithyRpcv2cbor_deserializeOpGetECSServiceRecommendationProjectedMetrics) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
) {
	out, metadata, err = next.HandleDeserialize(ctx, in)

	_, span := tracing.StartSpan(ctx, "OperationDeserializer")
	endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
	defer endTimer()
	defer span.End()

	if err != nil {
		return out, metadata, err
	}

	resp, ok := out.RawResponse.(*smithyhttp.Response)
	if !ok {
		return out, metadata, fmt.Errorf("unexpected transport type %T", out.RawResponse)
	}

	if resp.Header.Get("smithy-protocol") != "rpc-v2-cbor" {
		return out, metadata, &smithy.DeserializationError{
			Err: fmt.Errorf(
				"unexpected smithy-protocol response header '%s' (HTTP status: %s)",
				resp.Header.Get("smithy-protocol"),
				resp.Status,
			),
		}
	}

	if resp.StatusCode != 200 {
		return out, metadata, rpc2_deserializeOpErrorGetECSServiceRecommendationProjectedMetrics(resp)
	}

	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return out, metadata, err
	}

	if len(payload) == 0 {
		out.Result = &GetECSServiceRecommendationProjectedMetricsOutput{}
		return out, metadata, nil
	}

	cv, err := smithycbor.Decode(payload)
	if err != nil {
		return out, metadata, err
	}

	output, err := deserializeCBOR_GetECSServiceRecommendationProjectedMetricsOutput(cv)
	if err != nil {
		return out, metadata, err
	}

	out.Result = output

	return out, metadata, nil
}

type smithyRpcv2cbor_deserializeOpGetECSServiceRecommendations struct {
}

func (*smithyRpcv2cbor_deserializeOpGetECSServiceRecommendations) ID() string {
	return "OperationDeserializer"
}

func (m *smithyRpcv2cbor_deserializeOpGetECSServiceRecommendations) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
) {
	out, metadata, err = next.HandleDeserialize(ctx, in)

	_, span := tracing.StartSpan(ctx, "OperationDeserializer")
	endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
	defer endTimer()
	defer span.End()

	if err != nil {
		return out, metadata, err
	}

	resp, ok := out.RawResponse.(*smithyhttp.Response)
	if !ok {
		return out, metadata, fmt.Errorf("unexpected transport type %T", out.RawResponse)
	}

	if resp.Header.Get("smithy-protocol") != "rpc-v2-cbor" {
		return out, metadata, &smithy.DeserializationError{
			Err: fmt.Errorf(
				"unexpected smithy-protocol response header '%s' (HTTP status: %s)",
				resp.Header.Get("smithy-protocol"),
				resp.Status,
			),
		}
	}

	if resp.StatusCode != 200 {
		return out, metadata, rpc2_deserializeOpErrorGetECSServiceRecommendations(resp)
	}

	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return out, metadata, err
	}

	if len(payload) == 0 {
		out.Result = &GetECSServiceRecommendationsOutput{}
		return out, metadata, nil
	}

	cv, err := smithycbor.Decode(payload)
	if err != nil {
		return out, metadata, err
	}

	output, err := deserializeCBOR_GetECSServiceRecommendationsOutput(cv)
	if err != nil {
		return out, metadata, err
	}

	out.Result = output

	return out, metadata, nil
}

type smithyRpcv2cbor_deserializeOpGetEffectiveRecommendationPreferences struct {
}

func (*smithyRpcv2cbor_deserializeOpGetEffectiveRecommendationPreferences) ID() string {
	return "OperationDeserializer"
}

func (m *smithyRpcv2cbor_deserializeOpGetEffectiveRecommendationPreferences) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
) {
	out, metadata, err = next.HandleDeserialize(ctx, in)

	_, span := tracing.StartSpan(ctx, "OperationDeserializer")
	endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
	defer endTimer()
	defer span.End()

	if err != nil {
		return out, metadata, err
	}

	resp, ok := out.RawResponse.(*smithyhttp.Response)
	if !ok {
		return out, metadata, fmt.Errorf("unexpected transport type %T", out.RawResponse)
	}

	if resp.Header.Get("smithy-protocol") != "rpc-v2-cbor" {
		return out, metadata, &smithy.DeserializationError{
			Err: fmt.Errorf(
				"unexpected smithy-protocol response header '%s' (HTTP status: %s)",
				resp.Header.Get("smithy-protocol"),
				resp.Status,
			),
		}
	}

	if resp.StatusCode != 200 {
		return out, metadata, rpc2_deserializeOpErrorGetEffectiveRecommendationPreferences(resp)
	}

	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return out, metadata, err
	}

	if len(payload) == 0 {
		out.Result = &GetEffectiveRecommendationPreferencesOutput{}
		return out, metadata, nil
	}

	cv, err := smithycbor.Decode(payload)
	if err != nil {
		return out, metadata, err
	}

	output, err := deserializeCBOR_GetEffectiveRecommendationPreferencesOutput(cv)
	if err != nil {
		return out, metadata, err
	}

	out.Result = output

	return out, metadata, nil
}

type smithyRpcv2cbor_deserializeOpGetEnrollmentStatus struct {
}

func (*smithyRpcv2cbor_deserializeOpGetEnrollmentStatus) ID() string {
	return "OperationDeserializer"
}

func (m *smithyRpcv2cbor_deserializeOpGetEnrollmentStatus) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
) {
	out, metadata, err = next.HandleDeserialize(ctx, in)

	_, span := tracing.StartSpan(ctx, "OperationDeserializer")
	endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
	defer endTimer()
	defer span.End()

	if err != nil {
		return out, metadata, err
	}

	resp, ok := out.RawResponse.(*smithyhttp.Response)
	if !ok {
		return out, metadata, fmt.Errorf("unexpected transport type %T", out.RawResponse)
	}

	if resp.Header.Get("smithy-protocol") != "rpc-v2-cbor" {
		return out, metadata, &smithy.DeserializationError{
			Err: fmt.Errorf(
				"unexpected smithy-protocol response header '%s' (HTTP status: %s)",
				resp.Header.Get("smithy-protocol"),
				resp.Status,
			),
		}
	}

	if resp.StatusCode != 200 {
		return out, metadata, rpc2_deserializeOpErrorGetEnrollmentStatus(resp)
	}

	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return out, metadata, err
	}

	if len(payload) == 0 {
		out.Result = &GetEnrollmentStatusOutput{}
		return out, metadata, nil
	}

	cv, err := smithycbor.Decode(payload)
	if err != nil {
		return out, metadata, err
	}

	output, err := deserializeCBOR_GetEnrollmentStatusOutput(cv)
	if err != nil {
		return out, metadata, err
	}

	out.Result = output

	return out, metadata, nil
}

type smithyRpcv2cbor_deserializeOpGetEnrollmentStatusesForOrganization struct {
}

func (*smithyRpcv2cbor_deserializeOpGetEnrollmentStatusesForOrganization) ID() string {
	return "OperationDeserializer"
}

func (m *smithyRpcv2cbor_deserializeOpGetEnrollmentStatusesForOrganization) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
) {
	out, metadata, err = next.HandleDeserialize(ctx, in)

	_, span := tracing.StartSpan(ctx, "OperationDeserializer")
	endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
	defer endTimer()
	defer span.End()

	if err != nil {
		return out, metadata, err
	}

	resp, ok := out.RawResponse.(*smithyhttp.Response)
	if !ok {
		return out, metadata, fmt.Errorf("unexpected transport type %T", out.RawResponse)
	}

	if resp.Header.Get("smithy-protocol") != "rpc-v2-cbor" {
		return out, metadata, &smithy.DeserializationError{
			Err: fmt.Errorf(
				"unexpected smithy-protocol response header '%s' (HTTP status: %s)",
				resp.Header.Get("smithy-protocol"),
				resp.Status,
			),
		}
	}

	if resp.StatusCode != 200 {
		return out, metadata, rpc2_deserializeOpErrorGetEnrollmentStatusesForOrganization(resp)
	}

	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return out, metadata, err
	}

	if len(payload) == 0 {
		out.Result = &GetEnrollmentStatusesForOrganizationOutput{}
		return out, metadata, nil
	}

	cv, err := smithycbor.Decode(payload)
	if err != nil {
		return out, metadata, err
	}

	output, err := deserializeCBOR_GetEnrollmentStatusesForOrganizationOutput(cv)
	if err != nil {
		return out, metadata, err
	}

	out.Result = output

	return out, metadata, nil
}

type smithyRpcv2cbor_deserializeOpGetIdleRecommendations struct {
}

func (*smithyRpcv2cbor_deserializeOpGetIdleRecommendations) ID() string {
	return "OperationDeserializer"
}

func (m *smithyRpcv2cbor_deserializeOpGetIdleRecommendations) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
) {
	out, metadata, err = next.HandleDeserialize(ctx, in)

	_, span := tracing.StartSpan(ctx, "OperationDeserializer")
	endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
	defer endTimer()
	defer span.End()

	if err != nil {
		return out, metadata, err
	}

	resp, ok := out.RawResponse.(*smithyhttp.Response)
	if !ok {
		return out, metadata, fmt.Errorf("unexpected transport type %T", out.RawResponse)
	}

	if resp.Header.Get("smithy-protocol") != "rpc-v2-cbor" {
		return out, metadata, &smithy.DeserializationError{
			Err: fmt.Errorf(
				"unexpected smithy-protocol response header '%s' (HTTP status: %s)",
				resp.Header.Get("smithy-protocol"),
				resp.Status,
			),
		}
	}

	if resp.StatusCode != 200 {
		return out, metadata, rpc2_deserializeOpErrorGetIdleRecommendations(resp)
	}

	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return out, metadata, err
	}

	if len(payload) == 0 {
		out.Result = &GetIdleRecommendationsOutput{}
		return out, metadata, nil
	}

	cv, err := smithycbor.Decode(payload)
	if err != nil {
		return out, metadata, err
	}

	output, err := deserializeCBOR_GetIdleRecommendationsOutput(cv)
	if err != nil {
		return out, metadata, err
	}

	out.Result = output

	return out, metadata, nil
}

type smithyRpcv2cbor_deserializeOpGetLambdaFunctionRecommendations struct {
}

func (*smithyRpcv2cbor_deserializeOpGetLambdaFunctionRecommendations) ID() string {
	return "OperationDeserializer"
}

func (m *smithyRpcv2cbor_deserializeOpGetLambdaFunctionRecommendations) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
) {
	out, metadata, err = next.HandleDeserialize(ctx, in)

	_, span := tracing.StartSpan(ctx, "OperationDeserializer")
	endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
	defer endTimer()
	defer span.End()

	if err != nil {
		return out, metadata, err
	}

	resp, ok := out.RawResponse.(*smithyhttp.Response)
	if !ok {
		return out, metadata, fmt.Errorf("unexpected transport type %T", out.RawResponse)
	}

	if resp.Header.Get("smithy-protocol") != "rpc-v2-cbor" {
		return out, metadata, &smithy.DeserializationError{
			Err: fmt.Errorf(
				"unexpected smithy-protocol response header '%s' (HTTP status: %s)",
				resp.Header.Get("smithy-protocol"),
				resp.Status,
			),
		}
	}

	if resp.StatusCode != 200 {
		return out, metadata, rpc2_deserializeOpErrorGetLambdaFunctionRecommendations(resp)
	}

	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return out, metadata, err
	}

	if len(payload) == 0 {
		out.Result = &GetLambdaFunctionRecommendationsOutput{}
		return out, metadata, nil
	}

	cv, err := smithycbor.Decode(payload)
	if err != nil {
		return out, metadata, err
	}

	output, err := deserializeCBOR_GetLambdaFunctionRecommendationsOutput(cv)
	if err != nil {
		return out, metadata, err
	}

	out.Result = output

	return out, metadata, nil
}

type smithyRpcv2cbor_deserializeOpGetLicenseRecommendations struct {
}

func (*smithyRpcv2cbor_deserializeOpGetLicenseRecommendations) ID() string {
	return "OperationDeserializer"
}

func (m *smithyRpcv2cbor_deserializeOpGetLicenseRecommendations) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
) {
	out, metadata, err = next.HandleDeserialize(ctx, in)

	_, span := tracing.StartSpan(ctx, "OperationDeserializer")
	endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
	defer endTimer()
	defer span.End()

	if err != nil {
		return out, metadata, err
	}

	resp, ok := out.RawResponse.(*smithyhttp.Response)
	if !ok {
		return out, metadata, fmt.Errorf("unexpected transport type %T", out.RawResponse)
	}

	if resp.Header.Get("smithy-protocol") != "rpc-v2-cbor" {
		return out, metadata, &smithy.DeserializationError{
			Err: fmt.Errorf(
				"unexpected smithy-protocol response header '%s' (HTTP status: %s)",
				resp.Header.Get("smithy-protocol"),
				resp.Status,
			),
		}
	}

	if resp.StatusCode != 200 {
		return out, metadata, rpc2_deserializeOpErrorGetLicenseRecommendations(resp)
	}

	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return out, metadata, err
	}

	if len(payload) == 0 {
		out.Result = &GetLicenseRecommendationsOutput{}
		return out, metadata, nil
	}

	cv, err := smithycbor.Decode(payload)
	if err != nil {
		return out, metadata, err
	}

	output, err := deserializeCBOR_GetLicenseRecommendationsOutput(cv)
	if err != nil {
		return out, metadata, err
	}

	out.Result = output

	return out, metadata, nil
}

type smithyRpcv2cbor_deserializeOpGetRDSDatabaseRecommendationProjectedMetrics struct {
}

func (*smithyRpcv2cbor_deserializeOpGetRDSDatabaseRecommendationProjectedMetrics) ID() string {
	return "OperationDeserializer"
}

func (m *smithyRpcv2cbor_deserializeOpGetRDSDatabaseRecommendationProjectedMetrics) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
) {
	out, metadata, err = next.HandleDeserialize(ctx, in)

	_, span := tracing.StartSpan(ctx, "OperationDeserializer")
	endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
	defer endTimer()
	defer span.End()

	if err != nil {
		return out, metadata, err
	}

	resp, ok := out.RawResponse.(*smithyhttp.Response)
	if !ok {
		return out, metadata, fmt.Errorf("unexpected transport type %T", out.RawResponse)
	}

	if resp.Header.Get("smithy-protocol") != "rpc-v2-cbor" {
		return out, metadata, &smithy.DeserializationError{
			Err: fmt.Errorf(
				"unexpected smithy-protocol response header '%s' (HTTP status: %s)",
				resp.Header.Get("smithy-protocol"),
				resp.Status,
			),
		}
	}

	if resp.StatusCode != 200 {
		return out, metadata, rpc2_deserializeOpErrorGetRDSDatabaseRecommendationProjectedMetrics(resp)
	}

	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return out, metadata, err
	}

	if len(payload) == 0 {
		out.Result = &GetRDSDatabaseRecommendationProjectedMetricsOutput{}
		return out, metadata, nil
	}

	cv, err := smithycbor.Decode(payload)
	if err != nil {
		return out, metadata, err
	}

	output, err := deserializeCBOR_GetRDSDatabaseRecommendationProjectedMetricsOutput(cv)
	if err != nil {
		return out, metadata, err
	}

	out.Result = output

	return out, metadata, nil
}

type smithyRpcv2cbor_deserializeOpGetRDSDatabaseRecommendations struct {
}

func (*smithyRpcv2cbor_deserializeOpGetRDSDatabaseRecommendations) ID() string {
	return "OperationDeserializer"
}

func (m *smithyRpcv2cbor_deserializeOpGetRDSDatabaseRecommendations) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
) {
	out, metadata, err = next.HandleDeserialize(ctx, in)

	_, span := tracing.StartSpan(ctx, "OperationDeserializer")
	endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
	defer endTimer()
	defer span.End()

	if err != nil {
		return out, metadata, err
	}

	resp, ok := out.RawResponse.(*smithyhttp.Response)
	if !ok {
		return out, metadata, fmt.Errorf("unexpected transport type %T", out.RawResponse)
	}

	if resp.Header.Get("smithy-protocol") != "rpc-v2-cbor" {
		return out, metadata, &smithy.DeserializationError{
			Err: fmt.Errorf(
				"unexpected smithy-protocol response header '%s' (HTTP status: %s)",
				resp.Header.Get("smithy-protocol"),
				resp.Status,
			),
		}
	}

	if resp.StatusCode != 200 {
		return out, metadata, rpc2_deserializeOpErrorGetRDSDatabaseRecommendations(resp)
	}

	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return out, metadata, err
	}

	if len(payload) == 0 {
		out.Result = &GetRDSDatabaseRecommendationsOutput{}
		return out, metadata, nil
	}

	cv, err := smithycbor.Decode(payload)
	if err != nil {
		return out, metadata, err
	}

	output, err := deserializeCBOR_GetRDSDatabaseRecommendationsOutput(cv)
	if err != nil {
		return out, metadata, err
	}

	out.Result = output

	return out, metadata, nil
}

type smithyRpcv2cbor_deserializeOpGetRecommendationPreferences struct {
}

func (*smithyRpcv2cbor_deserializeOpGetRecommendationPreferences) ID() string {
	return "OperationDeserializer"
}

func (m *smithyRpcv2cbor_deserializeOpGetRecommendationPreferences) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
) {
	out, metadata, err = next.HandleDeserialize(ctx, in)

	_, span := tracing.StartSpan(ctx, "OperationDeserializer")
	endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
	defer endTimer()
	defer span.End()

	if err != nil {
		return out, metadata, err
	}

	resp, ok := out.RawResponse.(*smithyhttp.Response)
	if !ok {
		return out, metadata, fmt.Errorf("unexpected transport type %T", out.RawResponse)
	}

	if resp.Header.Get("smithy-protocol") != "rpc-v2-cbor" {
		return out, metadata, &smithy.DeserializationError{
			Err: fmt.Errorf(
				"unexpected smithy-protocol response header '%s' (HTTP status: %s)",
				resp.Header.Get("smithy-protocol"),
				resp.Status,
			),
		}
	}

	if resp.StatusCode != 200 {
		return out, metadata, rpc2_deserializeOpErrorGetRecommendationPreferences(resp)
	}

	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return out, metadata, err
	}

	if len(payload) == 0 {
		out.Result = &GetRecommendationPreferencesOutput{}
		return out, metadata, nil
	}

	cv, err := smithycbor.Decode(payload)
	if err != nil {
		return out, metadata, err
	}

	output, err := deserializeCBOR_GetRecommendationPreferencesOutput(cv)
	if err != nil {
		return out, metadata, err
	}

	out.Result = output

	return out, metadata, nil
}

type smithyRpcv2cbor_deserializeOpGetRecommendationSummaries struct {
}

func (*smithyRpcv2cbor_deserializeOpGetRecommendationSummaries) ID() string {
	return "OperationDeserializer"
}

func (m *smithyRpcv2cbor_deserializeOpGetRecommendationSummaries) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
) {
	out, metadata, err = next.HandleDeserialize(ctx, in)

	_, span := tracing.StartSpan(ctx, "OperationDeserializer")
	endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
	defer endTimer()
	defer span.End()

	if err != nil {
		return out, metadata, err
	}

	resp, ok := out.RawResponse.(*smithyhttp.Response)
	if !ok {
		return out, metadata, fmt.Errorf("unexpected transport type %T", out.RawResponse)
	}

	if resp.Header.Get("smithy-protocol") != "rpc-v2-cbor" {
		return out, metadata, &smithy.DeserializationError{
			Err: fmt.Errorf(
				"unexpected smithy-protocol response header '%s' (HTTP status: %s)",
				resp.Header.Get("smithy-protocol"),
				resp.Status,
			),
		}
	}

	if resp.StatusCode != 200 {
		return out, metadata, rpc2_deserializeOpErrorGetRecommendationSummaries(resp)
	}

	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return out, metadata, err
	}

	if len(payload) == 0 {
		out.Result = &GetRecommendationSummariesOutput{}
		return out, metadata, nil
	}

	cv, err := smithycbor.Decode(payload)
	if err != nil {
		return out, metadata, err
	}

	output, err := deserializeCBOR_GetRecommendationSummariesOutput(cv)
	if err != nil {
		return out, metadata, err
	}

	out.Result = output

	return out, metadata, nil
}

type smithyRpcv2cbor_deserializeOpPutRecommendationPreferences struct {
}

func (*smithyRpcv2cbor_deserializeOpPutRecommendationPreferences) ID() string {
	return "OperationDeserializer"
}

func (m *smithyRpcv2cbor_deserializeOpPutRecommendationPreferences) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
) {
	out, metadata, err = next.HandleDeserialize(ctx, in)

	_, span := tracing.StartSpan(ctx, "OperationDeserializer")
	endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
	defer endTimer()
	defer span.End()

	if err != nil {
		return out, metadata, err
	}

	resp, ok := out.RawResponse.(*smithyhttp.Response)
	if !ok {
		return out, metadata, fmt.Errorf("unexpected transport type %T", out.RawResponse)
	}

	if resp.Header.Get("smithy-protocol") != "rpc-v2-cbor" {
		return out, metadata, &smithy.DeserializationError{
			Err: fmt.Errorf(
				"unexpected smithy-protocol response header '%s' (HTTP status: %s)",
				resp.Header.Get("smithy-protocol"),
				resp.Status,
			),
		}
	}

	if resp.StatusCode != 200 {
		return out, metadata, rpc2_deserializeOpErrorPutRecommendationPreferences(resp)
	}

	if _, err = io.Copy(io.Discard, resp.Body); err != nil {
		return out, metadata, fmt.Errorf("discard response body: %w", err)
	}

	out.Result = &PutRecommendationPreferencesOutput{}

	return out, metadata, nil
}

type smithyRpcv2cbor_deserializeOpUpdateEnrollmentStatus struct {
}

func (*smithyRpcv2cbor_deserializeOpUpdateEnrollmentStatus) ID() string {
	return "OperationDeserializer"
}

func (m *smithyRpcv2cbor_deserializeOpUpdateEnrollmentStatus) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
) {
	out, metadata, err = next.HandleDeserialize(ctx, in)

	_, span := tracing.StartSpan(ctx, "OperationDeserializer")
	endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
	defer endTimer()
	defer span.End()

	if err != nil {
		return out, metadata, err
	}

	resp, ok := out.RawResponse.(*smithyhttp.Response)
	if !ok {
		return out, metadata, fmt.Errorf("unexpected transport type %T", out.RawResponse)
	}

	if resp.Header.Get("smithy-protocol") != "rpc-v2-cbor" {
		return out, metadata, &smithy.DeserializationError{
			Err: fmt.Errorf(
				"unexpected smithy-protocol response header '%s' (HTTP status: %s)",
				resp.Header.Get("smithy-protocol"),
				resp.Status,
			),
		}
	}

	if resp.StatusCode != 200 {
		return out, metadata, rpc2_deserializeOpErrorUpdateEnrollmentStatus(resp)
	}

	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return out, metadata, err
	}

	if len(payload) == 0 {
		out.Result = &UpdateEnrollmentStatusOutput{}
		return out, metadata, nil
	}

	cv, err := smithycbor.Decode(payload)
	if err != nil {
		return out, metadata, err
	}

	output, err := deserializeCBOR_UpdateEnrollmentStatusOutput(cv)
	if err != nil {
		return out, metadata, err
	}

	out.Result = output

	return out, metadata, nil
}
func deserializeCBOR_AccessDeniedException(v smithycbor.Value) (*types.AccessDeniedException, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.AccessDeniedException{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "message" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.Message = ptr.String(dv)
		}
	}
	return ds, nil
}

func deserializeCBOR_AccountEnrollmentStatus(v smithycbor.Value) (*types.AccountEnrollmentStatus, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.AccountEnrollmentStatus{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "accountId" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.AccountId = ptr.String(dv)
		}

		if key == "status" {

			dv, err := deserializeCBOR_Status(sv)
			if err != nil {
				return nil, err
			}
			ds.Status = dv
		}

		if key == "statusReason" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.StatusReason = ptr.String(dv)
		}

		if key == "lastUpdatedTimestamp" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_Time(sv)
			if err != nil {
				return nil, err
			}
			ds.LastUpdatedTimestamp = ptr.Time(dv)
		}
	}
	return ds, nil
}

func deserializeCBOR_AccountEnrollmentStatuses(v smithycbor.Value) ([]types.AccountEnrollmentStatus, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.AccountEnrollmentStatus
	for _, si := range av {

		di, err := deserializeCBOR_AccountEnrollmentStatus(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_AllocationStrategy(v smithycbor.Value) (types.AllocationStrategy, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.AllocationStrategy(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.AllocationStrategy(av), nil
}

func deserializeCBOR_AsgType(v smithycbor.Value) (types.AsgType, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.AsgType(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.AsgType(av), nil
}

func deserializeCBOR_AutoScalingConfiguration(v smithycbor.Value) (types.AutoScalingConfiguration, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.AutoScalingConfiguration(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.AutoScalingConfiguration(av), nil
}

func deserializeCBOR_AutoScalingGroupConfiguration(v smithycbor.Value) (*types.AutoScalingGroupConfiguration, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.AutoScalingGroupConfiguration{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "desiredCapacity" {

			dv, err := deserializeCBOR_Int32(sv)
			if err != nil {
				return nil, err
			}
			ds.DesiredCapacity = dv
		}

		if key == "minSize" {

			dv, err := deserializeCBOR_Int32(sv)
			if err != nil {
				return nil, err
			}
			ds.MinSize = dv
		}

		if key == "maxSize" {

			dv, err := deserializeCBOR_Int32(sv)
			if err != nil {
				return nil, err
			}
			ds.MaxSize = dv
		}

		if key == "instanceType" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.InstanceType = ptr.String(dv)
		}

		if key == "allocationStrategy" {

			dv, err := deserializeCBOR_AllocationStrategy(sv)
			if err != nil {
				return nil, err
			}
			ds.AllocationStrategy = dv
		}

		if key == "estimatedInstanceHourReductionPercentage" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_Float64(sv)
			if err != nil {
				return nil, err
			}
			ds.EstimatedInstanceHourReductionPercentage = ptr.Float64(dv)
		}

		if key == "type" {

			dv, err := deserializeCBOR_AsgType(sv)
			if err != nil {
				return nil, err
			}
			ds.Type = dv
		}

		if key == "mixedInstanceTypes" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_MixedInstanceTypes(sv)
			if err != nil {
				return nil, err
			}
			ds.MixedInstanceTypes = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_AutoScalingGroupEstimatedMonthlySavings(v smithycbor.Value) (*types.AutoScalingGroupEstimatedMonthlySavings, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.AutoScalingGroupEstimatedMonthlySavings{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "currency" {

			dv, err := deserializeCBOR_Currency(sv)
			if err != nil {
				return nil, err
			}
			ds.Currency = dv
		}

		if key == "value" {

			dv, err := deserializeCBOR_Float64(sv)
			if err != nil {
				return nil, err
			}
			ds.Value = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_AutoScalingGroupRecommendation(v smithycbor.Value) (*types.AutoScalingGroupRecommendation, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.AutoScalingGroupRecommendation{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "accountId" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.AccountId = ptr.String(dv)
		}

		if key == "autoScalingGroupArn" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.AutoScalingGroupArn = ptr.String(dv)
		}

		if key == "autoScalingGroupName" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.AutoScalingGroupName = ptr.String(dv)
		}

		if key == "finding" {

			dv, err := deserializeCBOR_Finding(sv)
			if err != nil {
				return nil, err
			}
			ds.Finding = dv
		}

		if key == "utilizationMetrics" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_UtilizationMetrics(sv)
			if err != nil {
				return nil, err
			}
			ds.UtilizationMetrics = dv
		}

		if key == "lookBackPeriodInDays" {

			dv, err := deserializeCBOR_Float64(sv)
			if err != nil {
				return nil, err
			}
			ds.LookBackPeriodInDays = dv
		}

		if key == "currentConfiguration" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_AutoScalingGroupConfiguration(sv)
			if err != nil {
				return nil, err
			}
			ds.CurrentConfiguration = dv
		}

		if key == "currentInstanceGpuInfo" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_GpuInfo(sv)
			if err != nil {
				return nil, err
			}
			ds.CurrentInstanceGpuInfo = dv
		}

		if key == "recommendationOptions" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_AutoScalingGroupRecommendationOptions(sv)
			if err != nil {
				return nil, err
			}
			ds.RecommendationOptions = dv
		}

		if key == "lastRefreshTimestamp" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_Time(sv)
			if err != nil {
				return nil, err
			}
			ds.LastRefreshTimestamp = ptr.Time(dv)
		}

		if key == "currentPerformanceRisk" {

			dv, err := deserializeCBOR_CurrentPerformanceRisk(sv)
			if err != nil {
				return nil, err
			}
			ds.CurrentPerformanceRisk = dv
		}

		if key == "effectiveRecommendationPreferences" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_EffectiveRecommendationPreferences(sv)
			if err != nil {
				return nil, err
			}
			ds.EffectiveRecommendationPreferences = dv
		}

		if key == "inferredWorkloadTypes" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_InferredWorkloadTypes(sv)
			if err != nil {
				return nil, err
			}
			ds.InferredWorkloadTypes = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_AutoScalingGroupRecommendationOption(v smithycbor.Value) (*types.AutoScalingGroupRecommendationOption, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.AutoScalingGroupRecommendationOption{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "configuration" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_AutoScalingGroupConfiguration(sv)
			if err != nil {
				return nil, err
			}
			ds.Configuration = dv
		}

		if key == "instanceGpuInfo" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_GpuInfo(sv)
			if err != nil {
				return nil, err
			}
			ds.InstanceGpuInfo = dv
		}

		if key == "projectedUtilizationMetrics" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_ProjectedUtilizationMetrics(sv)
			if err != nil {
				return nil, err
			}
			ds.ProjectedUtilizationMetrics = dv
		}

		if key == "performanceRisk" {

			dv, err := deserializeCBOR_Float64(sv)
			if err != nil {
				return nil, err
			}
			ds.PerformanceRisk = dv
		}

		if key == "rank" {

			dv, err := deserializeCBOR_Int32(sv)
			if err != nil {
				return nil, err
			}
			ds.Rank = dv
		}

		if key == "savingsOpportunity" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_SavingsOpportunity(sv)
			if err != nil {
				return nil, err
			}
			ds.SavingsOpportunity = dv
		}

		if key == "savingsOpportunityAfterDiscounts" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_AutoScalingGroupSavingsOpportunityAfterDiscounts(sv)
			if err != nil {
				return nil, err
			}
			ds.SavingsOpportunityAfterDiscounts = dv
		}

		if key == "migrationEffort" {

			dv, err := deserializeCBOR_MigrationEffort(sv)
			if err != nil {
				return nil, err
			}
			ds.MigrationEffort = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_AutoScalingGroupRecommendationOptions(v smithycbor.Value) ([]types.AutoScalingGroupRecommendationOption, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.AutoScalingGroupRecommendationOption
	for _, si := range av {

		di, err := deserializeCBOR_AutoScalingGroupRecommendationOption(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_AutoScalingGroupRecommendations(v smithycbor.Value) ([]types.AutoScalingGroupRecommendation, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.AutoScalingGroupRecommendation
	for _, si := range av {

		di, err := deserializeCBOR_AutoScalingGroupRecommendation(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_AutoScalingGroupSavingsOpportunityAfterDiscounts(v smithycbor.Value) (*types.AutoScalingGroupSavingsOpportunityAfterDiscounts, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.AutoScalingGroupSavingsOpportunityAfterDiscounts{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "savingsOpportunityPercentage" {

			dv, err := deserializeCBOR_Float64(sv)
			if err != nil {
				return nil, err
			}
			ds.SavingsOpportunityPercentage = dv
		}

		if key == "estimatedMonthlySavings" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_AutoScalingGroupEstimatedMonthlySavings(sv)
			if err != nil {
				return nil, err
			}
			ds.EstimatedMonthlySavings = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_ContainerConfiguration(v smithycbor.Value) (*types.ContainerConfiguration, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.ContainerConfiguration{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "containerName" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.ContainerName = ptr.String(dv)
		}

		if key == "memorySizeConfiguration" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_MemorySizeConfiguration(sv)
			if err != nil {
				return nil, err
			}
			ds.MemorySizeConfiguration = dv
		}

		if key == "cpu" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_Int32(sv)
			if err != nil {
				return nil, err
			}
			ds.Cpu = ptr.Int32(dv)
		}
	}
	return ds, nil
}

func deserializeCBOR_ContainerConfigurations(v smithycbor.Value) ([]types.ContainerConfiguration, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.ContainerConfiguration
	for _, si := range av {

		di, err := deserializeCBOR_ContainerConfiguration(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_ContainerRecommendation(v smithycbor.Value) (*types.ContainerRecommendation, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.ContainerRecommendation{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "containerName" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.ContainerName = ptr.String(dv)
		}

		if key == "memorySizeConfiguration" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_MemorySizeConfiguration(sv)
			if err != nil {
				return nil, err
			}
			ds.MemorySizeConfiguration = dv
		}

		if key == "cpu" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_Int32(sv)
			if err != nil {
				return nil, err
			}
			ds.Cpu = ptr.Int32(dv)
		}
	}
	return ds, nil
}

func deserializeCBOR_ContainerRecommendations(v smithycbor.Value) ([]types.ContainerRecommendation, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.ContainerRecommendation
	for _, si := range av {

		di, err := deserializeCBOR_ContainerRecommendation(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_CpuVendorArchitecture(v smithycbor.Value) (types.CpuVendorArchitecture, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.CpuVendorArchitecture(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.CpuVendorArchitecture(av), nil
}

func deserializeCBOR_CpuVendorArchitectures(v smithycbor.Value) ([]types.CpuVendorArchitecture, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.CpuVendorArchitecture
	for _, si := range av {

		di, err := deserializeCBOR_CpuVendorArchitecture(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, di)
	}
	return dl, nil
}

func deserializeCBOR_Currency(v smithycbor.Value) (types.Currency, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.Currency(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.Currency(av), nil
}

func deserializeCBOR_CurrentPerformanceRisk(v smithycbor.Value) (types.CurrentPerformanceRisk, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.CurrentPerformanceRisk(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.CurrentPerformanceRisk(av), nil
}

func deserializeCBOR_CurrentPerformanceRiskRatings(v smithycbor.Value) (*types.CurrentPerformanceRiskRatings, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.CurrentPerformanceRiskRatings{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "high" {

			dv, err := deserializeCBOR_Int64(sv)
			if err != nil {
				return nil, err
			}
			ds.High = dv
		}

		if key == "medium" {

			dv, err := deserializeCBOR_Int64(sv)
			if err != nil {
				return nil, err
			}
			ds.Medium = dv
		}

		if key == "low" {

			dv, err := deserializeCBOR_Int64(sv)
			if err != nil {
				return nil, err
			}
			ds.Low = dv
		}

		if key == "veryLow" {

			dv, err := deserializeCBOR_Int64(sv)
			if err != nil {
				return nil, err
			}
			ds.VeryLow = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_CustomizableMetricHeadroom(v smithycbor.Value) (types.CustomizableMetricHeadroom, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.CustomizableMetricHeadroom(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.CustomizableMetricHeadroom(av), nil
}

func deserializeCBOR_CustomizableMetricName(v smithycbor.Value) (types.CustomizableMetricName, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.CustomizableMetricName(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.CustomizableMetricName(av), nil
}

func deserializeCBOR_CustomizableMetricParameters(v smithycbor.Value) (*types.CustomizableMetricParameters, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.CustomizableMetricParameters{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "threshold" {

			dv, err := deserializeCBOR_CustomizableMetricThreshold(sv)
			if err != nil {
				return nil, err
			}
			ds.Threshold = dv
		}

		if key == "headroom" {

			dv, err := deserializeCBOR_CustomizableMetricHeadroom(sv)
			if err != nil {
				return nil, err
			}
			ds.Headroom = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_CustomizableMetricThreshold(v smithycbor.Value) (types.CustomizableMetricThreshold, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.CustomizableMetricThreshold(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.CustomizableMetricThreshold(av), nil
}

func deserializeCBOR_DBStorageConfiguration(v smithycbor.Value) (*types.DBStorageConfiguration, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.DBStorageConfiguration{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "storageType" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.StorageType = ptr.String(dv)
		}

		if key == "allocatedStorage" {

			dv, err := deserializeCBOR_Int32(sv)
			if err != nil {
				return nil, err
			}
			ds.AllocatedStorage = dv
		}

		if key == "iops" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_Int32(sv)
			if err != nil {
				return nil, err
			}
			ds.Iops = ptr.Int32(dv)
		}

		if key == "maxAllocatedStorage" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_Int32(sv)
			if err != nil {
				return nil, err
			}
			ds.MaxAllocatedStorage = ptr.Int32(dv)
		}

		if key == "storageThroughput" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_Int32(sv)
			if err != nil {
				return nil, err
			}
			ds.StorageThroughput = ptr.Int32(dv)
		}
	}
	return ds, nil
}

func deserializeCBOR_EBSEffectiveRecommendationPreferences(v smithycbor.Value) (*types.EBSEffectiveRecommendationPreferences, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.EBSEffectiveRecommendationPreferences{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "savingsEstimationMode" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_EBSSavingsEstimationMode(sv)
			if err != nil {
				return nil, err
			}
			ds.SavingsEstimationMode = dv
		}

		if key == "lookBackPeriod" {

			dv, err := deserializeCBOR_LookBackPeriodPreference(sv)
			if err != nil {
				return nil, err
			}
			ds.LookBackPeriod = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_EBSEstimatedMonthlySavings(v smithycbor.Value) (*types.EBSEstimatedMonthlySavings, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.EBSEstimatedMonthlySavings{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "currency" {

			dv, err := deserializeCBOR_Currency(sv)
			if err != nil {
				return nil, err
			}
			ds.Currency = dv
		}

		if key == "value" {

			dv, err := deserializeCBOR_Float64(sv)
			if err != nil {
				return nil, err
			}
			ds.Value = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_EBSFinding(v smithycbor.Value) (types.EBSFinding, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.EBSFinding(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.EBSFinding(av), nil
}

func deserializeCBOR_EBSMetricName(v smithycbor.Value) (types.EBSMetricName, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.EBSMetricName(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.EBSMetricName(av), nil
}

func deserializeCBOR_EBSSavingsEstimationMode(v smithycbor.Value) (*types.EBSSavingsEstimationMode, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.EBSSavingsEstimationMode{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "source" {

			dv, err := deserializeCBOR_EBSSavingsEstimationModeSource(sv)
			if err != nil {
				return nil, err
			}
			ds.Source = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_EBSSavingsEstimationModeSource(v smithycbor.Value) (types.EBSSavingsEstimationModeSource, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.EBSSavingsEstimationModeSource(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.EBSSavingsEstimationModeSource(av), nil
}

func deserializeCBOR_EBSSavingsOpportunityAfterDiscounts(v smithycbor.Value) (*types.EBSSavingsOpportunityAfterDiscounts, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.EBSSavingsOpportunityAfterDiscounts{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "savingsOpportunityPercentage" {

			dv, err := deserializeCBOR_Float64(sv)
			if err != nil {
				return nil, err
			}
			ds.SavingsOpportunityPercentage = dv
		}

		if key == "estimatedMonthlySavings" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_EBSEstimatedMonthlySavings(sv)
			if err != nil {
				return nil, err
			}
			ds.EstimatedMonthlySavings = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_EBSUtilizationMetric(v smithycbor.Value) (*types.EBSUtilizationMetric, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.EBSUtilizationMetric{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "name" {

			dv, err := deserializeCBOR_EBSMetricName(sv)
			if err != nil {
				return nil, err
			}
			ds.Name = dv
		}

		if key == "statistic" {

			dv, err := deserializeCBOR_MetricStatistic(sv)
			if err != nil {
				return nil, err
			}
			ds.Statistic = dv
		}

		if key == "value" {

			dv, err := deserializeCBOR_Float64(sv)
			if err != nil {
				return nil, err
			}
			ds.Value = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_EBSUtilizationMetrics(v smithycbor.Value) ([]types.EBSUtilizationMetric, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.EBSUtilizationMetric
	for _, si := range av {

		di, err := deserializeCBOR_EBSUtilizationMetric(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_ECSEffectiveRecommendationPreferences(v smithycbor.Value) (*types.ECSEffectiveRecommendationPreferences, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.ECSEffectiveRecommendationPreferences{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "savingsEstimationMode" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_ECSSavingsEstimationMode(sv)
			if err != nil {
				return nil, err
			}
			ds.SavingsEstimationMode = dv
		}

		if key == "lookBackPeriod" {

			dv, err := deserializeCBOR_LookBackPeriodPreference(sv)
			if err != nil {
				return nil, err
			}
			ds.LookBackPeriod = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_ECSEstimatedMonthlySavings(v smithycbor.Value) (*types.ECSEstimatedMonthlySavings, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.ECSEstimatedMonthlySavings{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "currency" {

			dv, err := deserializeCBOR_Currency(sv)
			if err != nil {
				return nil, err
			}
			ds.Currency = dv
		}

		if key == "value" {

			dv, err := deserializeCBOR_Float64(sv)
			if err != nil {
				return nil, err
			}
			ds.Value = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_ECSSavingsEstimationMode(v smithycbor.Value) (*types.ECSSavingsEstimationMode, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.ECSSavingsEstimationMode{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "source" {

			dv, err := deserializeCBOR_ECSSavingsEstimationModeSource(sv)
			if err != nil {
				return nil, err
			}
			ds.Source = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_ECSSavingsEstimationModeSource(v smithycbor.Value) (types.ECSSavingsEstimationModeSource, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.ECSSavingsEstimationModeSource(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.ECSSavingsEstimationModeSource(av), nil
}

func deserializeCBOR_ECSSavingsOpportunityAfterDiscounts(v smithycbor.Value) (*types.ECSSavingsOpportunityAfterDiscounts, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.ECSSavingsOpportunityAfterDiscounts{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "savingsOpportunityPercentage" {

			dv, err := deserializeCBOR_Float64(sv)
			if err != nil {
				return nil, err
			}
			ds.SavingsOpportunityPercentage = dv
		}

		if key == "estimatedMonthlySavings" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_ECSEstimatedMonthlySavings(sv)
			if err != nil {
				return nil, err
			}
			ds.EstimatedMonthlySavings = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_ECSServiceLaunchType(v smithycbor.Value) (types.ECSServiceLaunchType, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.ECSServiceLaunchType(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.ECSServiceLaunchType(av), nil
}

func deserializeCBOR_ECSServiceMetricName(v smithycbor.Value) (types.ECSServiceMetricName, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.ECSServiceMetricName(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.ECSServiceMetricName(av), nil
}

func deserializeCBOR_ECSServiceMetricStatistic(v smithycbor.Value) (types.ECSServiceMetricStatistic, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.ECSServiceMetricStatistic(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.ECSServiceMetricStatistic(av), nil
}

func deserializeCBOR_ECSServiceProjectedMetric(v smithycbor.Value) (*types.ECSServiceProjectedMetric, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.ECSServiceProjectedMetric{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "name" {

			dv, err := deserializeCBOR_ECSServiceMetricName(sv)
			if err != nil {
				return nil, err
			}
			ds.Name = dv
		}

		if key == "timestamps" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_Timestamps(sv)
			if err != nil {
				return nil, err
			}
			ds.Timestamps = dv
		}

		if key == "upperBoundValues" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_MetricValues(sv)
			if err != nil {
				return nil, err
			}
			ds.UpperBoundValues = dv
		}

		if key == "lowerBoundValues" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_MetricValues(sv)
			if err != nil {
				return nil, err
			}
			ds.LowerBoundValues = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_ECSServiceProjectedMetrics(v smithycbor.Value) ([]types.ECSServiceProjectedMetric, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.ECSServiceProjectedMetric
	for _, si := range av {

		di, err := deserializeCBOR_ECSServiceProjectedMetric(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_ECSServiceProjectedUtilizationMetric(v smithycbor.Value) (*types.ECSServiceProjectedUtilizationMetric, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.ECSServiceProjectedUtilizationMetric{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "name" {

			dv, err := deserializeCBOR_ECSServiceMetricName(sv)
			if err != nil {
				return nil, err
			}
			ds.Name = dv
		}

		if key == "statistic" {

			dv, err := deserializeCBOR_ECSServiceMetricStatistic(sv)
			if err != nil {
				return nil, err
			}
			ds.Statistic = dv
		}

		if key == "lowerBoundValue" {

			dv, err := deserializeCBOR_Float64(sv)
			if err != nil {
				return nil, err
			}
			ds.LowerBoundValue = dv
		}

		if key == "upperBoundValue" {

			dv, err := deserializeCBOR_Float64(sv)
			if err != nil {
				return nil, err
			}
			ds.UpperBoundValue = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_ECSServiceProjectedUtilizationMetrics(v smithycbor.Value) ([]types.ECSServiceProjectedUtilizationMetric, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.ECSServiceProjectedUtilizationMetric
	for _, si := range av {

		di, err := deserializeCBOR_ECSServiceProjectedUtilizationMetric(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_ECSServiceRecommendation(v smithycbor.Value) (*types.ECSServiceRecommendation, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.ECSServiceRecommendation{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "serviceArn" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.ServiceArn = ptr.String(dv)
		}

		if key == "accountId" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.AccountId = ptr.String(dv)
		}

		if key == "currentServiceConfiguration" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_ServiceConfiguration(sv)
			if err != nil {
				return nil, err
			}
			ds.CurrentServiceConfiguration = dv
		}

		if key == "utilizationMetrics" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_ECSServiceUtilizationMetrics(sv)
			if err != nil {
				return nil, err
			}
			ds.UtilizationMetrics = dv
		}

		if key == "lookbackPeriodInDays" {

			dv, err := deserializeCBOR_Float64(sv)
			if err != nil {
				return nil, err
			}
			ds.LookbackPeriodInDays = dv
		}

		if key == "launchType" {

			dv, err := deserializeCBOR_ECSServiceLaunchType(sv)
			if err != nil {
				return nil, err
			}
			ds.LaunchType = dv
		}

		if key == "lastRefreshTimestamp" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_Time(sv)
			if err != nil {
				return nil, err
			}
			ds.LastRefreshTimestamp = ptr.Time(dv)
		}

		if key == "finding" {

			dv, err := deserializeCBOR_ECSServiceRecommendationFinding(sv)
			if err != nil {
				return nil, err
			}
			ds.Finding = dv
		}

		if key == "findingReasonCodes" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_ECSServiceRecommendationFindingReasonCodes(sv)
			if err != nil {
				return nil, err
			}
			ds.FindingReasonCodes = dv
		}

		if key == "serviceRecommendationOptions" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_ECSServiceRecommendationOptions(sv)
			if err != nil {
				return nil, err
			}
			ds.ServiceRecommendationOptions = dv
		}

		if key == "currentPerformanceRisk" {

			dv, err := deserializeCBOR_CurrentPerformanceRisk(sv)
			if err != nil {
				return nil, err
			}
			ds.CurrentPerformanceRisk = dv
		}

		if key == "effectiveRecommendationPreferences" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_ECSEffectiveRecommendationPreferences(sv)
			if err != nil {
				return nil, err
			}
			ds.EffectiveRecommendationPreferences = dv
		}

		if key == "tags" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_Tags(sv)
			if err != nil {
				return nil, err
			}
			ds.Tags = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_ECSServiceRecommendationFinding(v smithycbor.Value) (types.ECSServiceRecommendationFinding, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.ECSServiceRecommendationFinding(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.ECSServiceRecommendationFinding(av), nil
}

func deserializeCBOR_ECSServiceRecommendationFindingReasonCode(v smithycbor.Value) (types.ECSServiceRecommendationFindingReasonCode, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.ECSServiceRecommendationFindingReasonCode(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.ECSServiceRecommendationFindingReasonCode(av), nil
}

func deserializeCBOR_ECSServiceRecommendationFindingReasonCodes(v smithycbor.Value) ([]types.ECSServiceRecommendationFindingReasonCode, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.ECSServiceRecommendationFindingReasonCode
	for _, si := range av {

		di, err := deserializeCBOR_ECSServiceRecommendationFindingReasonCode(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, di)
	}
	return dl, nil
}

func deserializeCBOR_ECSServiceRecommendationOption(v smithycbor.Value) (*types.ECSServiceRecommendationOption, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.ECSServiceRecommendationOption{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "memory" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_Int32(sv)
			if err != nil {
				return nil, err
			}
			ds.Memory = ptr.Int32(dv)
		}

		if key == "cpu" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_Int32(sv)
			if err != nil {
				return nil, err
			}
			ds.Cpu = ptr.Int32(dv)
		}

		if key == "savingsOpportunity" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_SavingsOpportunity(sv)
			if err != nil {
				return nil, err
			}
			ds.SavingsOpportunity = dv
		}

		if key == "savingsOpportunityAfterDiscounts" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_ECSSavingsOpportunityAfterDiscounts(sv)
			if err != nil {
				return nil, err
			}
			ds.SavingsOpportunityAfterDiscounts = dv
		}

		if key == "projectedUtilizationMetrics" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_ECSServiceProjectedUtilizationMetrics(sv)
			if err != nil {
				return nil, err
			}
			ds.ProjectedUtilizationMetrics = dv
		}

		if key == "containerRecommendations" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_ContainerRecommendations(sv)
			if err != nil {
				return nil, err
			}
			ds.ContainerRecommendations = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_ECSServiceRecommendationOptions(v smithycbor.Value) ([]types.ECSServiceRecommendationOption, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.ECSServiceRecommendationOption
	for _, si := range av {

		di, err := deserializeCBOR_ECSServiceRecommendationOption(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_ECSServiceRecommendations(v smithycbor.Value) ([]types.ECSServiceRecommendation, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.ECSServiceRecommendation
	for _, si := range av {

		di, err := deserializeCBOR_ECSServiceRecommendation(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_ECSServiceRecommendedOptionProjectedMetric(v smithycbor.Value) (*types.ECSServiceRecommendedOptionProjectedMetric, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.ECSServiceRecommendedOptionProjectedMetric{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "recommendedCpuUnits" {

			dv, err := deserializeCBOR_Int32(sv)
			if err != nil {
				return nil, err
			}
			ds.RecommendedCpuUnits = dv
		}

		if key == "recommendedMemorySize" {

			dv, err := deserializeCBOR_Int32(sv)
			if err != nil {
				return nil, err
			}
			ds.RecommendedMemorySize = dv
		}

		if key == "projectedMetrics" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_ECSServiceProjectedMetrics(sv)
			if err != nil {
				return nil, err
			}
			ds.ProjectedMetrics = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_ECSServiceRecommendedOptionProjectedMetrics(v smithycbor.Value) ([]types.ECSServiceRecommendedOptionProjectedMetric, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.ECSServiceRecommendedOptionProjectedMetric
	for _, si := range av {

		di, err := deserializeCBOR_ECSServiceRecommendedOptionProjectedMetric(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_ECSServiceUtilizationMetric(v smithycbor.Value) (*types.ECSServiceUtilizationMetric, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.ECSServiceUtilizationMetric{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "name" {

			dv, err := deserializeCBOR_ECSServiceMetricName(sv)
			if err != nil {
				return nil, err
			}
			ds.Name = dv
		}

		if key == "statistic" {

			dv, err := deserializeCBOR_ECSServiceMetricStatistic(sv)
			if err != nil {
				return nil, err
			}
			ds.Statistic = dv
		}

		if key == "value" {

			dv, err := deserializeCBOR_Float64(sv)
			if err != nil {
				return nil, err
			}
			ds.Value = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_ECSServiceUtilizationMetrics(v smithycbor.Value) ([]types.ECSServiceUtilizationMetric, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.ECSServiceUtilizationMetric
	for _, si := range av {

		di, err := deserializeCBOR_ECSServiceUtilizationMetric(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_EffectivePreferredResource(v smithycbor.Value) (*types.EffectivePreferredResource, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.EffectivePreferredResource{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "name" {

			dv, err := deserializeCBOR_PreferredResourceName(sv)
			if err != nil {
				return nil, err
			}
			ds.Name = dv
		}

		if key == "includeList" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_PreferredResourceValues(sv)
			if err != nil {
				return nil, err
			}
			ds.IncludeList = dv
		}

		if key == "effectiveIncludeList" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_PreferredResourceValues(sv)
			if err != nil {
				return nil, err
			}
			ds.EffectiveIncludeList = dv
		}

		if key == "excludeList" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_PreferredResourceValues(sv)
			if err != nil {
				return nil, err
			}
			ds.ExcludeList = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_EffectivePreferredResources(v smithycbor.Value) ([]types.EffectivePreferredResource, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.EffectivePreferredResource
	for _, si := range av {

		di, err := deserializeCBOR_EffectivePreferredResource(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_EffectiveRecommendationPreferences(v smithycbor.Value) (*types.EffectiveRecommendationPreferences, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.EffectiveRecommendationPreferences{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "cpuVendorArchitectures" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_CpuVendorArchitectures(sv)
			if err != nil {
				return nil, err
			}
			ds.CpuVendorArchitectures = dv
		}

		if key == "enhancedInfrastructureMetrics" {

			dv, err := deserializeCBOR_EnhancedInfrastructureMetrics(sv)
			if err != nil {
				return nil, err
			}
			ds.EnhancedInfrastructureMetrics = dv
		}

		if key == "inferredWorkloadTypes" {

			dv, err := deserializeCBOR_InferredWorkloadTypesPreference(sv)
			if err != nil {
				return nil, err
			}
			ds.InferredWorkloadTypes = dv
		}

		if key == "externalMetricsPreference" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_ExternalMetricsPreference(sv)
			if err != nil {
				return nil, err
			}
			ds.ExternalMetricsPreference = dv
		}

		if key == "lookBackPeriod" {

			dv, err := deserializeCBOR_LookBackPeriodPreference(sv)
			if err != nil {
				return nil, err
			}
			ds.LookBackPeriod = dv
		}

		if key == "utilizationPreferences" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_UtilizationPreferences(sv)
			if err != nil {
				return nil, err
			}
			ds.UtilizationPreferences = dv
		}

		if key == "preferredResources" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_EffectivePreferredResources(sv)
			if err != nil {
				return nil, err
			}
			ds.PreferredResources = dv
		}

		if key == "savingsEstimationMode" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_InstanceSavingsEstimationMode(sv)
			if err != nil {
				return nil, err
			}
			ds.SavingsEstimationMode = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_EnhancedInfrastructureMetrics(v smithycbor.Value) (types.EnhancedInfrastructureMetrics, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.EnhancedInfrastructureMetrics(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.EnhancedInfrastructureMetrics(av), nil
}

func deserializeCBOR_EstimatedMonthlySavings(v smithycbor.Value) (*types.EstimatedMonthlySavings, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.EstimatedMonthlySavings{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "currency" {

			dv, err := deserializeCBOR_Currency(sv)
			if err != nil {
				return nil, err
			}
			ds.Currency = dv
		}

		if key == "value" {

			dv, err := deserializeCBOR_Float64(sv)
			if err != nil {
				return nil, err
			}
			ds.Value = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_ExportDestination(v smithycbor.Value) (*types.ExportDestination, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.ExportDestination{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "s3" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_S3Destination(sv)
			if err != nil {
				return nil, err
			}
			ds.S3 = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_ExternalMetricsPreference(v smithycbor.Value) (*types.ExternalMetricsPreference, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.ExternalMetricsPreference{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "source" {

			dv, err := deserializeCBOR_ExternalMetricsSource(sv)
			if err != nil {
				return nil, err
			}
			ds.Source = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_ExternalMetricsSource(v smithycbor.Value) (types.ExternalMetricsSource, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.ExternalMetricsSource(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.ExternalMetricsSource(av), nil
}

func deserializeCBOR_ExternalMetricStatus(v smithycbor.Value) (*types.ExternalMetricStatus, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.ExternalMetricStatus{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "statusCode" {

			dv, err := deserializeCBOR_ExternalMetricStatusCode(sv)
			if err != nil {
				return nil, err
			}
			ds.StatusCode = dv
		}

		if key == "statusReason" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.StatusReason = ptr.String(dv)
		}
	}
	return ds, nil
}

func deserializeCBOR_ExternalMetricStatusCode(v smithycbor.Value) (types.ExternalMetricStatusCode, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.ExternalMetricStatusCode(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.ExternalMetricStatusCode(av), nil
}

func deserializeCBOR_Finding(v smithycbor.Value) (types.Finding, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.Finding(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.Finding(av), nil
}

func deserializeCBOR_FindingReasonCode(v smithycbor.Value) (types.FindingReasonCode, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.FindingReasonCode(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.FindingReasonCode(av), nil
}

func deserializeCBOR_GetRecommendationError(v smithycbor.Value) (*types.GetRecommendationError, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.GetRecommendationError{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "identifier" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.Identifier = ptr.String(dv)
		}

		if key == "code" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.Code = ptr.String(dv)
		}

		if key == "message" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.Message = ptr.String(dv)
		}
	}
	return ds, nil
}

func deserializeCBOR_GetRecommendationErrors(v smithycbor.Value) ([]types.GetRecommendationError, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.GetRecommendationError
	for _, si := range av {

		di, err := deserializeCBOR_GetRecommendationError(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_Gpu(v smithycbor.Value) (*types.Gpu, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.Gpu{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "gpuCount" {

			dv, err := deserializeCBOR_Int32(sv)
			if err != nil {
				return nil, err
			}
			ds.GpuCount = dv
		}

		if key == "gpuMemorySizeInMiB" {

			dv, err := deserializeCBOR_Int32(sv)
			if err != nil {
				return nil, err
			}
			ds.GpuMemorySizeInMiB = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_GpuInfo(v smithycbor.Value) (*types.GpuInfo, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.GpuInfo{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "gpus" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_Gpus(sv)
			if err != nil {
				return nil, err
			}
			ds.Gpus = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_Gpus(v smithycbor.Value) ([]types.Gpu, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.Gpu
	for _, si := range av {

		di, err := deserializeCBOR_Gpu(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_Idle(v smithycbor.Value) (types.Idle, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.Idle(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.Idle(av), nil
}

func deserializeCBOR_IdleDimension(v smithycbor.Value) (*types.IdleDimension, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.IdleDimension{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "key" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.Key = ptr.String(dv)
		}

		if key == "values" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_IdleDimensionValues(sv)
			if err != nil {
				return nil, err
			}
			ds.Values = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_IdleDimensions(v smithycbor.Value) ([]types.IdleDimension, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.IdleDimension
	for _, si := range av {

		di, err := deserializeCBOR_IdleDimension(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_IdleDimensionValues(v smithycbor.Value) ([]string, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []string
	for _, si := range av {

		di, err := deserializeCBOR_String(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, di)
	}
	return dl, nil
}

func deserializeCBOR_IdleEstimatedMonthlySavings(v smithycbor.Value) (*types.IdleEstimatedMonthlySavings, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.IdleEstimatedMonthlySavings{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "currency" {

			dv, err := deserializeCBOR_Currency(sv)
			if err != nil {
				return nil, err
			}
			ds.Currency = dv
		}

		if key == "value" {

			dv, err := deserializeCBOR_Float64(sv)
			if err != nil {
				return nil, err
			}
			ds.Value = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_IdleFinding(v smithycbor.Value) (types.IdleFinding, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.IdleFinding(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.IdleFinding(av), nil
}

func deserializeCBOR_IdleMetricName(v smithycbor.Value) (types.IdleMetricName, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.IdleMetricName(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.IdleMetricName(av), nil
}

func deserializeCBOR_IdleRecommendation(v smithycbor.Value) (*types.IdleRecommendation, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.IdleRecommendation{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "resourceArn" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.ResourceArn = ptr.String(dv)
		}

		if key == "resourceId" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.ResourceId = ptr.String(dv)
		}

		if key == "resourceType" {

			dv, err := deserializeCBOR_IdleRecommendationResourceType(sv)
			if err != nil {
				return nil, err
			}
			ds.ResourceType = dv
		}

		if key == "accountId" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.AccountId = ptr.String(dv)
		}

		if key == "finding" {

			dv, err := deserializeCBOR_IdleFinding(sv)
			if err != nil {
				return nil, err
			}
			ds.Finding = dv
		}

		if key == "findingDescription" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.FindingDescription = ptr.String(dv)
		}

		if key == "savingsOpportunity" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_IdleSavingsOpportunity(sv)
			if err != nil {
				return nil, err
			}
			ds.SavingsOpportunity = dv
		}

		if key == "savingsOpportunityAfterDiscounts" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_IdleSavingsOpportunityAfterDiscounts(sv)
			if err != nil {
				return nil, err
			}
			ds.SavingsOpportunityAfterDiscounts = dv
		}

		if key == "utilizationMetrics" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_IdleUtilizationMetrics(sv)
			if err != nil {
				return nil, err
			}
			ds.UtilizationMetrics = dv
		}

		if key == "lookBackPeriodInDays" {

			dv, err := deserializeCBOR_Float64(sv)
			if err != nil {
				return nil, err
			}
			ds.LookBackPeriodInDays = dv
		}

		if key == "lastRefreshTimestamp" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_Time(sv)
			if err != nil {
				return nil, err
			}
			ds.LastRefreshTimestamp = ptr.Time(dv)
		}

		if key == "tags" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_Tags(sv)
			if err != nil {
				return nil, err
			}
			ds.Tags = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_IdleRecommendationError(v smithycbor.Value) (*types.IdleRecommendationError, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.IdleRecommendationError{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "identifier" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.Identifier = ptr.String(dv)
		}

		if key == "code" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.Code = ptr.String(dv)
		}

		if key == "message" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.Message = ptr.String(dv)
		}

		if key == "resourceType" {

			dv, err := deserializeCBOR_IdleRecommendationResourceType(sv)
			if err != nil {
				return nil, err
			}
			ds.ResourceType = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_IdleRecommendationErrors(v smithycbor.Value) ([]types.IdleRecommendationError, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.IdleRecommendationError
	for _, si := range av {

		di, err := deserializeCBOR_IdleRecommendationError(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_IdleRecommendationResourceType(v smithycbor.Value) (types.IdleRecommendationResourceType, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.IdleRecommendationResourceType(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.IdleRecommendationResourceType(av), nil
}

func deserializeCBOR_IdleRecommendations(v smithycbor.Value) ([]types.IdleRecommendation, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.IdleRecommendation
	for _, si := range av {

		di, err := deserializeCBOR_IdleRecommendation(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_IdleSavingsOpportunity(v smithycbor.Value) (*types.IdleSavingsOpportunity, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.IdleSavingsOpportunity{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "savingsOpportunityPercentage" {

			dv, err := deserializeCBOR_Float64(sv)
			if err != nil {
				return nil, err
			}
			ds.SavingsOpportunityPercentage = dv
		}

		if key == "estimatedMonthlySavings" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_IdleEstimatedMonthlySavings(sv)
			if err != nil {
				return nil, err
			}
			ds.EstimatedMonthlySavings = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_IdleSavingsOpportunityAfterDiscounts(v smithycbor.Value) (*types.IdleSavingsOpportunityAfterDiscounts, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.IdleSavingsOpportunityAfterDiscounts{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "savingsOpportunityPercentage" {

			dv, err := deserializeCBOR_Float64(sv)
			if err != nil {
				return nil, err
			}
			ds.SavingsOpportunityPercentage = dv
		}

		if key == "estimatedMonthlySavings" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_IdleEstimatedMonthlySavings(sv)
			if err != nil {
				return nil, err
			}
			ds.EstimatedMonthlySavings = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_IdleSummaries(v smithycbor.Value) ([]types.IdleSummary, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.IdleSummary
	for _, si := range av {

		di, err := deserializeCBOR_IdleSummary(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_IdleSummary(v smithycbor.Value) (*types.IdleSummary, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.IdleSummary{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "name" {

			dv, err := deserializeCBOR_IdleFinding(sv)
			if err != nil {
				return nil, err
			}
			ds.Name = dv
		}

		if key == "value" {

			dv, err := deserializeCBOR_Float64(sv)
			if err != nil {
				return nil, err
			}
			ds.Value = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_IdleUtilizationMetric(v smithycbor.Value) (*types.IdleUtilizationMetric, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.IdleUtilizationMetric{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "name" {

			dv, err := deserializeCBOR_IdleMetricName(sv)
			if err != nil {
				return nil, err
			}
			ds.Name = dv
		}

		if key == "statistic" {

			dv, err := deserializeCBOR_MetricStatistic(sv)
			if err != nil {
				return nil, err
			}
			ds.Statistic = dv
		}

		if key == "value" {

			dv, err := deserializeCBOR_Float64(sv)
			if err != nil {
				return nil, err
			}
			ds.Value = dv
		}

		if key == "dimensions" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_IdleDimensions(sv)
			if err != nil {
				return nil, err
			}
			ds.Dimensions = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_IdleUtilizationMetrics(v smithycbor.Value) ([]types.IdleUtilizationMetric, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.IdleUtilizationMetric
	for _, si := range av {

		di, err := deserializeCBOR_IdleUtilizationMetric(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_InferredWorkloadSaving(v smithycbor.Value) (*types.InferredWorkloadSaving, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.InferredWorkloadSaving{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "inferredWorkloadTypes" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_InferredWorkloadTypes(sv)
			if err != nil {
				return nil, err
			}
			ds.InferredWorkloadTypes = dv
		}

		if key == "estimatedMonthlySavings" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_EstimatedMonthlySavings(sv)
			if err != nil {
				return nil, err
			}
			ds.EstimatedMonthlySavings = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_InferredWorkloadSavings(v smithycbor.Value) ([]types.InferredWorkloadSaving, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.InferredWorkloadSaving
	for _, si := range av {

		di, err := deserializeCBOR_InferredWorkloadSaving(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_InferredWorkloadType(v smithycbor.Value) (types.InferredWorkloadType, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.InferredWorkloadType(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.InferredWorkloadType(av), nil
}

func deserializeCBOR_InferredWorkloadTypes(v smithycbor.Value) ([]types.InferredWorkloadType, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.InferredWorkloadType
	for _, si := range av {

		di, err := deserializeCBOR_InferredWorkloadType(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, di)
	}
	return dl, nil
}

func deserializeCBOR_InferredWorkloadTypesPreference(v smithycbor.Value) (types.InferredWorkloadTypesPreference, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.InferredWorkloadTypesPreference(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.InferredWorkloadTypesPreference(av), nil
}

func deserializeCBOR_InstanceEstimatedMonthlySavings(v smithycbor.Value) (*types.InstanceEstimatedMonthlySavings, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.InstanceEstimatedMonthlySavings{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "currency" {

			dv, err := deserializeCBOR_Currency(sv)
			if err != nil {
				return nil, err
			}
			ds.Currency = dv
		}

		if key == "value" {

			dv, err := deserializeCBOR_Float64(sv)
			if err != nil {
				return nil, err
			}
			ds.Value = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_InstanceIdle(v smithycbor.Value) (types.InstanceIdle, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.InstanceIdle(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.InstanceIdle(av), nil
}

func deserializeCBOR_InstanceRecommendation(v smithycbor.Value) (*types.InstanceRecommendation, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.InstanceRecommendation{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "instanceArn" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.InstanceArn = ptr.String(dv)
		}

		if key == "accountId" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.AccountId = ptr.String(dv)
		}

		if key == "instanceName" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.InstanceName = ptr.String(dv)
		}

		if key == "currentInstanceType" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.CurrentInstanceType = ptr.String(dv)
		}

		if key == "finding" {

			dv, err := deserializeCBOR_Finding(sv)
			if err != nil {
				return nil, err
			}
			ds.Finding = dv
		}

		if key == "findingReasonCodes" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_InstanceRecommendationFindingReasonCodes(sv)
			if err != nil {
				return nil, err
			}
			ds.FindingReasonCodes = dv
		}

		if key == "utilizationMetrics" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_UtilizationMetrics(sv)
			if err != nil {
				return nil, err
			}
			ds.UtilizationMetrics = dv
		}

		if key == "lookBackPeriodInDays" {

			dv, err := deserializeCBOR_Float64(sv)
			if err != nil {
				return nil, err
			}
			ds.LookBackPeriodInDays = dv
		}

		if key == "recommendationOptions" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_RecommendationOptions(sv)
			if err != nil {
				return nil, err
			}
			ds.RecommendationOptions = dv
		}

		if key == "recommendationSources" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_RecommendationSources(sv)
			if err != nil {
				return nil, err
			}
			ds.RecommendationSources = dv
		}

		if key == "lastRefreshTimestamp" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_Time(sv)
			if err != nil {
				return nil, err
			}
			ds.LastRefreshTimestamp = ptr.Time(dv)
		}

		if key == "currentPerformanceRisk" {

			dv, err := deserializeCBOR_CurrentPerformanceRisk(sv)
			if err != nil {
				return nil, err
			}
			ds.CurrentPerformanceRisk = dv
		}

		if key == "effectiveRecommendationPreferences" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_EffectiveRecommendationPreferences(sv)
			if err != nil {
				return nil, err
			}
			ds.EffectiveRecommendationPreferences = dv
		}

		if key == "inferredWorkloadTypes" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_InferredWorkloadTypes(sv)
			if err != nil {
				return nil, err
			}
			ds.InferredWorkloadTypes = dv
		}

		if key == "instanceState" {

			dv, err := deserializeCBOR_InstanceState(sv)
			if err != nil {
				return nil, err
			}
			ds.InstanceState = dv
		}

		if key == "tags" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_Tags(sv)
			if err != nil {
				return nil, err
			}
			ds.Tags = dv
		}

		if key == "externalMetricStatus" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_ExternalMetricStatus(sv)
			if err != nil {
				return nil, err
			}
			ds.ExternalMetricStatus = dv
		}

		if key == "currentInstanceGpuInfo" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_GpuInfo(sv)
			if err != nil {
				return nil, err
			}
			ds.CurrentInstanceGpuInfo = dv
		}

		if key == "idle" {

			dv, err := deserializeCBOR_InstanceIdle(sv)
			if err != nil {
				return nil, err
			}
			ds.Idle = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_InstanceRecommendationFindingReasonCode(v smithycbor.Value) (types.InstanceRecommendationFindingReasonCode, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.InstanceRecommendationFindingReasonCode(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.InstanceRecommendationFindingReasonCode(av), nil
}

func deserializeCBOR_InstanceRecommendationFindingReasonCodes(v smithycbor.Value) ([]types.InstanceRecommendationFindingReasonCode, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.InstanceRecommendationFindingReasonCode
	for _, si := range av {

		di, err := deserializeCBOR_InstanceRecommendationFindingReasonCode(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, di)
	}
	return dl, nil
}

func deserializeCBOR_InstanceRecommendationOption(v smithycbor.Value) (*types.InstanceRecommendationOption, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.InstanceRecommendationOption{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "instanceType" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.InstanceType = ptr.String(dv)
		}

		if key == "instanceGpuInfo" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_GpuInfo(sv)
			if err != nil {
				return nil, err
			}
			ds.InstanceGpuInfo = dv
		}

		if key == "projectedUtilizationMetrics" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_ProjectedUtilizationMetrics(sv)
			if err != nil {
				return nil, err
			}
			ds.ProjectedUtilizationMetrics = dv
		}

		if key == "platformDifferences" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_PlatformDifferences(sv)
			if err != nil {
				return nil, err
			}
			ds.PlatformDifferences = dv
		}

		if key == "performanceRisk" {

			dv, err := deserializeCBOR_Float64(sv)
			if err != nil {
				return nil, err
			}
			ds.PerformanceRisk = dv
		}

		if key == "rank" {

			dv, err := deserializeCBOR_Int32(sv)
			if err != nil {
				return nil, err
			}
			ds.Rank = dv
		}

		if key == "savingsOpportunity" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_SavingsOpportunity(sv)
			if err != nil {
				return nil, err
			}
			ds.SavingsOpportunity = dv
		}

		if key == "savingsOpportunityAfterDiscounts" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_InstanceSavingsOpportunityAfterDiscounts(sv)
			if err != nil {
				return nil, err
			}
			ds.SavingsOpportunityAfterDiscounts = dv
		}

		if key == "migrationEffort" {

			dv, err := deserializeCBOR_MigrationEffort(sv)
			if err != nil {
				return nil, err
			}
			ds.MigrationEffort = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_InstanceRecommendations(v smithycbor.Value) ([]types.InstanceRecommendation, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.InstanceRecommendation
	for _, si := range av {

		di, err := deserializeCBOR_InstanceRecommendation(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_InstanceSavingsEstimationMode(v smithycbor.Value) (*types.InstanceSavingsEstimationMode, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.InstanceSavingsEstimationMode{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "source" {

			dv, err := deserializeCBOR_InstanceSavingsEstimationModeSource(sv)
			if err != nil {
				return nil, err
			}
			ds.Source = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_InstanceSavingsEstimationModeSource(v smithycbor.Value) (types.InstanceSavingsEstimationModeSource, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.InstanceSavingsEstimationModeSource(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.InstanceSavingsEstimationModeSource(av), nil
}

func deserializeCBOR_InstanceSavingsOpportunityAfterDiscounts(v smithycbor.Value) (*types.InstanceSavingsOpportunityAfterDiscounts, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.InstanceSavingsOpportunityAfterDiscounts{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "savingsOpportunityPercentage" {

			dv, err := deserializeCBOR_Float64(sv)
			if err != nil {
				return nil, err
			}
			ds.SavingsOpportunityPercentage = dv
		}

		if key == "estimatedMonthlySavings" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_InstanceEstimatedMonthlySavings(sv)
			if err != nil {
				return nil, err
			}
			ds.EstimatedMonthlySavings = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_InstanceState(v smithycbor.Value) (types.InstanceState, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.InstanceState(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.InstanceState(av), nil
}

func deserializeCBOR_InternalServerException(v smithycbor.Value) (*types.InternalServerException, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.InternalServerException{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "message" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.Message = ptr.String(dv)
		}
	}
	return ds, nil
}

func deserializeCBOR_InvalidParameterValueException(v smithycbor.Value) (*types.InvalidParameterValueException, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.InvalidParameterValueException{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "message" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.Message = ptr.String(dv)
		}
	}
	return ds, nil
}

func deserializeCBOR_JobStatus(v smithycbor.Value) (types.JobStatus, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.JobStatus(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.JobStatus(av), nil
}

func deserializeCBOR_LambdaEffectiveRecommendationPreferences(v smithycbor.Value) (*types.LambdaEffectiveRecommendationPreferences, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.LambdaEffectiveRecommendationPreferences{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "savingsEstimationMode" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_LambdaSavingsEstimationMode(sv)
			if err != nil {
				return nil, err
			}
			ds.SavingsEstimationMode = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_LambdaEstimatedMonthlySavings(v smithycbor.Value) (*types.LambdaEstimatedMonthlySavings, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.LambdaEstimatedMonthlySavings{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "currency" {

			dv, err := deserializeCBOR_Currency(sv)
			if err != nil {
				return nil, err
			}
			ds.Currency = dv
		}

		if key == "value" {

			dv, err := deserializeCBOR_Float64(sv)
			if err != nil {
				return nil, err
			}
			ds.Value = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_LambdaFunctionMemoryMetricName(v smithycbor.Value) (types.LambdaFunctionMemoryMetricName, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.LambdaFunctionMemoryMetricName(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.LambdaFunctionMemoryMetricName(av), nil
}

func deserializeCBOR_LambdaFunctionMemoryMetricStatistic(v smithycbor.Value) (types.LambdaFunctionMemoryMetricStatistic, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.LambdaFunctionMemoryMetricStatistic(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.LambdaFunctionMemoryMetricStatistic(av), nil
}

func deserializeCBOR_LambdaFunctionMemoryProjectedMetric(v smithycbor.Value) (*types.LambdaFunctionMemoryProjectedMetric, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.LambdaFunctionMemoryProjectedMetric{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "name" {

			dv, err := deserializeCBOR_LambdaFunctionMemoryMetricName(sv)
			if err != nil {
				return nil, err
			}
			ds.Name = dv
		}

		if key == "statistic" {

			dv, err := deserializeCBOR_LambdaFunctionMemoryMetricStatistic(sv)
			if err != nil {
				return nil, err
			}
			ds.Statistic = dv
		}

		if key == "value" {

			dv, err := deserializeCBOR_Float64(sv)
			if err != nil {
				return nil, err
			}
			ds.Value = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_LambdaFunctionMemoryProjectedMetrics(v smithycbor.Value) ([]types.LambdaFunctionMemoryProjectedMetric, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.LambdaFunctionMemoryProjectedMetric
	for _, si := range av {

		di, err := deserializeCBOR_LambdaFunctionMemoryProjectedMetric(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_LambdaFunctionMemoryRecommendationOption(v smithycbor.Value) (*types.LambdaFunctionMemoryRecommendationOption, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.LambdaFunctionMemoryRecommendationOption{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "rank" {

			dv, err := deserializeCBOR_Int32(sv)
			if err != nil {
				return nil, err
			}
			ds.Rank = dv
		}

		if key == "memorySize" {

			dv, err := deserializeCBOR_Int32(sv)
			if err != nil {
				return nil, err
			}
			ds.MemorySize = dv
		}

		if key == "projectedUtilizationMetrics" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_LambdaFunctionMemoryProjectedMetrics(sv)
			if err != nil {
				return nil, err
			}
			ds.ProjectedUtilizationMetrics = dv
		}

		if key == "savingsOpportunity" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_SavingsOpportunity(sv)
			if err != nil {
				return nil, err
			}
			ds.SavingsOpportunity = dv
		}

		if key == "savingsOpportunityAfterDiscounts" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_LambdaSavingsOpportunityAfterDiscounts(sv)
			if err != nil {
				return nil, err
			}
			ds.SavingsOpportunityAfterDiscounts = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_LambdaFunctionMemoryRecommendationOptions(v smithycbor.Value) ([]types.LambdaFunctionMemoryRecommendationOption, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.LambdaFunctionMemoryRecommendationOption
	for _, si := range av {

		di, err := deserializeCBOR_LambdaFunctionMemoryRecommendationOption(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_LambdaFunctionMetricName(v smithycbor.Value) (types.LambdaFunctionMetricName, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.LambdaFunctionMetricName(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.LambdaFunctionMetricName(av), nil
}

func deserializeCBOR_LambdaFunctionMetricStatistic(v smithycbor.Value) (types.LambdaFunctionMetricStatistic, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.LambdaFunctionMetricStatistic(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.LambdaFunctionMetricStatistic(av), nil
}

func deserializeCBOR_LambdaFunctionRecommendation(v smithycbor.Value) (*types.LambdaFunctionRecommendation, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.LambdaFunctionRecommendation{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "functionArn" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.FunctionArn = ptr.String(dv)
		}

		if key == "functionVersion" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.FunctionVersion = ptr.String(dv)
		}

		if key == "accountId" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.AccountId = ptr.String(dv)
		}

		if key == "currentMemorySize" {

			dv, err := deserializeCBOR_Int32(sv)
			if err != nil {
				return nil, err
			}
			ds.CurrentMemorySize = dv
		}

		if key == "numberOfInvocations" {

			dv, err := deserializeCBOR_Int64(sv)
			if err != nil {
				return nil, err
			}
			ds.NumberOfInvocations = dv
		}

		if key == "utilizationMetrics" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_LambdaFunctionUtilizationMetrics(sv)
			if err != nil {
				return nil, err
			}
			ds.UtilizationMetrics = dv
		}

		if key == "lookbackPeriodInDays" {

			dv, err := deserializeCBOR_Float64(sv)
			if err != nil {
				return nil, err
			}
			ds.LookbackPeriodInDays = dv
		}

		if key == "lastRefreshTimestamp" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_Time(sv)
			if err != nil {
				return nil, err
			}
			ds.LastRefreshTimestamp = ptr.Time(dv)
		}

		if key == "finding" {

			dv, err := deserializeCBOR_LambdaFunctionRecommendationFinding(sv)
			if err != nil {
				return nil, err
			}
			ds.Finding = dv
		}

		if key == "findingReasonCodes" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_LambdaFunctionRecommendationFindingReasonCodes(sv)
			if err != nil {
				return nil, err
			}
			ds.FindingReasonCodes = dv
		}

		if key == "memorySizeRecommendationOptions" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_LambdaFunctionMemoryRecommendationOptions(sv)
			if err != nil {
				return nil, err
			}
			ds.MemorySizeRecommendationOptions = dv
		}

		if key == "currentPerformanceRisk" {

			dv, err := deserializeCBOR_CurrentPerformanceRisk(sv)
			if err != nil {
				return nil, err
			}
			ds.CurrentPerformanceRisk = dv
		}

		if key == "effectiveRecommendationPreferences" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_LambdaEffectiveRecommendationPreferences(sv)
			if err != nil {
				return nil, err
			}
			ds.EffectiveRecommendationPreferences = dv
		}

		if key == "tags" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_Tags(sv)
			if err != nil {
				return nil, err
			}
			ds.Tags = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_LambdaFunctionRecommendationFinding(v smithycbor.Value) (types.LambdaFunctionRecommendationFinding, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.LambdaFunctionRecommendationFinding(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.LambdaFunctionRecommendationFinding(av), nil
}

func deserializeCBOR_LambdaFunctionRecommendationFindingReasonCode(v smithycbor.Value) (types.LambdaFunctionRecommendationFindingReasonCode, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.LambdaFunctionRecommendationFindingReasonCode(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.LambdaFunctionRecommendationFindingReasonCode(av), nil
}

func deserializeCBOR_LambdaFunctionRecommendationFindingReasonCodes(v smithycbor.Value) ([]types.LambdaFunctionRecommendationFindingReasonCode, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.LambdaFunctionRecommendationFindingReasonCode
	for _, si := range av {

		di, err := deserializeCBOR_LambdaFunctionRecommendationFindingReasonCode(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, di)
	}
	return dl, nil
}

func deserializeCBOR_LambdaFunctionRecommendations(v smithycbor.Value) ([]types.LambdaFunctionRecommendation, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.LambdaFunctionRecommendation
	for _, si := range av {

		di, err := deserializeCBOR_LambdaFunctionRecommendation(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_LambdaFunctionUtilizationMetric(v smithycbor.Value) (*types.LambdaFunctionUtilizationMetric, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.LambdaFunctionUtilizationMetric{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "name" {

			dv, err := deserializeCBOR_LambdaFunctionMetricName(sv)
			if err != nil {
				return nil, err
			}
			ds.Name = dv
		}

		if key == "statistic" {

			dv, err := deserializeCBOR_LambdaFunctionMetricStatistic(sv)
			if err != nil {
				return nil, err
			}
			ds.Statistic = dv
		}

		if key == "value" {

			dv, err := deserializeCBOR_Float64(sv)
			if err != nil {
				return nil, err
			}
			ds.Value = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_LambdaFunctionUtilizationMetrics(v smithycbor.Value) ([]types.LambdaFunctionUtilizationMetric, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.LambdaFunctionUtilizationMetric
	for _, si := range av {

		di, err := deserializeCBOR_LambdaFunctionUtilizationMetric(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_LambdaSavingsEstimationMode(v smithycbor.Value) (*types.LambdaSavingsEstimationMode, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.LambdaSavingsEstimationMode{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "source" {

			dv, err := deserializeCBOR_LambdaSavingsEstimationModeSource(sv)
			if err != nil {
				return nil, err
			}
			ds.Source = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_LambdaSavingsEstimationModeSource(v smithycbor.Value) (types.LambdaSavingsEstimationModeSource, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.LambdaSavingsEstimationModeSource(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.LambdaSavingsEstimationModeSource(av), nil
}

func deserializeCBOR_LambdaSavingsOpportunityAfterDiscounts(v smithycbor.Value) (*types.LambdaSavingsOpportunityAfterDiscounts, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.LambdaSavingsOpportunityAfterDiscounts{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "savingsOpportunityPercentage" {

			dv, err := deserializeCBOR_Float64(sv)
			if err != nil {
				return nil, err
			}
			ds.SavingsOpportunityPercentage = dv
		}

		if key == "estimatedMonthlySavings" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_LambdaEstimatedMonthlySavings(sv)
			if err != nil {
				return nil, err
			}
			ds.EstimatedMonthlySavings = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_LicenseConfiguration(v smithycbor.Value) (*types.LicenseConfiguration, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.LicenseConfiguration{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "numberOfCores" {

			dv, err := deserializeCBOR_Int32(sv)
			if err != nil {
				return nil, err
			}
			ds.NumberOfCores = dv
		}

		if key == "instanceType" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.InstanceType = ptr.String(dv)
		}

		if key == "operatingSystem" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.OperatingSystem = ptr.String(dv)
		}

		if key == "licenseEdition" {

			dv, err := deserializeCBOR_LicenseEdition(sv)
			if err != nil {
				return nil, err
			}
			ds.LicenseEdition = dv
		}

		if key == "licenseName" {

			dv, err := deserializeCBOR_LicenseName(sv)
			if err != nil {
				return nil, err
			}
			ds.LicenseName = dv
		}

		if key == "licenseModel" {

			dv, err := deserializeCBOR_LicenseModel(sv)
			if err != nil {
				return nil, err
			}
			ds.LicenseModel = dv
		}

		if key == "licenseVersion" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.LicenseVersion = ptr.String(dv)
		}

		if key == "metricsSource" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_MetricsSource(sv)
			if err != nil {
				return nil, err
			}
			ds.MetricsSource = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_LicenseEdition(v smithycbor.Value) (types.LicenseEdition, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.LicenseEdition(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.LicenseEdition(av), nil
}

func deserializeCBOR_LicenseFinding(v smithycbor.Value) (types.LicenseFinding, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.LicenseFinding(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.LicenseFinding(av), nil
}

func deserializeCBOR_LicenseFindingReasonCode(v smithycbor.Value) (types.LicenseFindingReasonCode, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.LicenseFindingReasonCode(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.LicenseFindingReasonCode(av), nil
}

func deserializeCBOR_LicenseFindingReasonCodes(v smithycbor.Value) ([]types.LicenseFindingReasonCode, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.LicenseFindingReasonCode
	for _, si := range av {

		di, err := deserializeCBOR_LicenseFindingReasonCode(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, di)
	}
	return dl, nil
}

func deserializeCBOR_LicenseModel(v smithycbor.Value) (types.LicenseModel, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.LicenseModel(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.LicenseModel(av), nil
}

func deserializeCBOR_LicenseName(v smithycbor.Value) (types.LicenseName, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.LicenseName(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.LicenseName(av), nil
}

func deserializeCBOR_LicenseRecommendation(v smithycbor.Value) (*types.LicenseRecommendation, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.LicenseRecommendation{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "resourceArn" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.ResourceArn = ptr.String(dv)
		}

		if key == "accountId" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.AccountId = ptr.String(dv)
		}

		if key == "currentLicenseConfiguration" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_LicenseConfiguration(sv)
			if err != nil {
				return nil, err
			}
			ds.CurrentLicenseConfiguration = dv
		}

		if key == "lookbackPeriodInDays" {

			dv, err := deserializeCBOR_Float64(sv)
			if err != nil {
				return nil, err
			}
			ds.LookbackPeriodInDays = dv
		}

		if key == "lastRefreshTimestamp" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_Time(sv)
			if err != nil {
				return nil, err
			}
			ds.LastRefreshTimestamp = ptr.Time(dv)
		}

		if key == "finding" {

			dv, err := deserializeCBOR_LicenseFinding(sv)
			if err != nil {
				return nil, err
			}
			ds.Finding = dv
		}

		if key == "findingReasonCodes" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_LicenseFindingReasonCodes(sv)
			if err != nil {
				return nil, err
			}
			ds.FindingReasonCodes = dv
		}

		if key == "licenseRecommendationOptions" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_LicenseRecommendationOptions(sv)
			if err != nil {
				return nil, err
			}
			ds.LicenseRecommendationOptions = dv
		}

		if key == "tags" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_Tags(sv)
			if err != nil {
				return nil, err
			}
			ds.Tags = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_LicenseRecommendationOption(v smithycbor.Value) (*types.LicenseRecommendationOption, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.LicenseRecommendationOption{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "rank" {

			dv, err := deserializeCBOR_Int32(sv)
			if err != nil {
				return nil, err
			}
			ds.Rank = dv
		}

		if key == "operatingSystem" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.OperatingSystem = ptr.String(dv)
		}

		if key == "licenseEdition" {

			dv, err := deserializeCBOR_LicenseEdition(sv)
			if err != nil {
				return nil, err
			}
			ds.LicenseEdition = dv
		}

		if key == "licenseModel" {

			dv, err := deserializeCBOR_LicenseModel(sv)
			if err != nil {
				return nil, err
			}
			ds.LicenseModel = dv
		}

		if key == "savingsOpportunity" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_SavingsOpportunity(sv)
			if err != nil {
				return nil, err
			}
			ds.SavingsOpportunity = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_LicenseRecommendationOptions(v smithycbor.Value) ([]types.LicenseRecommendationOption, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.LicenseRecommendationOption
	for _, si := range av {

		di, err := deserializeCBOR_LicenseRecommendationOption(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_LicenseRecommendations(v smithycbor.Value) ([]types.LicenseRecommendation, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.LicenseRecommendation
	for _, si := range av {

		di, err := deserializeCBOR_LicenseRecommendation(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_LimitExceededException(v smithycbor.Value) (*types.LimitExceededException, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.LimitExceededException{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "message" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.Message = ptr.String(dv)
		}
	}
	return ds, nil
}

func deserializeCBOR_LookBackPeriodPreference(v smithycbor.Value) (types.LookBackPeriodPreference, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.LookBackPeriodPreference(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.LookBackPeriodPreference(av), nil
}

func deserializeCBOR_MemorySizeConfiguration(v smithycbor.Value) (*types.MemorySizeConfiguration, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.MemorySizeConfiguration{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "memory" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_Int32(sv)
			if err != nil {
				return nil, err
			}
			ds.Memory = ptr.Int32(dv)
		}

		if key == "memoryReservation" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_Int32(sv)
			if err != nil {
				return nil, err
			}
			ds.MemoryReservation = ptr.Int32(dv)
		}
	}
	return ds, nil
}

func deserializeCBOR_MetricName(v smithycbor.Value) (types.MetricName, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.MetricName(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.MetricName(av), nil
}

func deserializeCBOR_MetricSource(v smithycbor.Value) (*types.MetricSource, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.MetricSource{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "provider" {

			dv, err := deserializeCBOR_MetricSourceProvider(sv)
			if err != nil {
				return nil, err
			}
			ds.Provider = dv
		}

		if key == "providerArn" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.ProviderArn = ptr.String(dv)
		}
	}
	return ds, nil
}

func deserializeCBOR_MetricSourceProvider(v smithycbor.Value) (types.MetricSourceProvider, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.MetricSourceProvider(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.MetricSourceProvider(av), nil
}

func deserializeCBOR_MetricsSource(v smithycbor.Value) ([]types.MetricSource, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.MetricSource
	for _, si := range av {

		di, err := deserializeCBOR_MetricSource(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_MetricStatistic(v smithycbor.Value) (types.MetricStatistic, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.MetricStatistic(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.MetricStatistic(av), nil
}

func deserializeCBOR_MetricValues(v smithycbor.Value) ([]float64, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []float64
	for _, si := range av {

		di, err := deserializeCBOR_Float64(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, di)
	}
	return dl, nil
}

func deserializeCBOR_MigrationEffort(v smithycbor.Value) (types.MigrationEffort, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.MigrationEffort(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.MigrationEffort(av), nil
}

func deserializeCBOR_MissingAuthenticationToken(v smithycbor.Value) (*types.MissingAuthenticationToken, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.MissingAuthenticationToken{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "message" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.Message = ptr.String(dv)
		}
	}
	return ds, nil
}

func deserializeCBOR_MixedInstanceTypes(v smithycbor.Value) ([]string, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []string
	for _, si := range av {

		di, err := deserializeCBOR_String(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, di)
	}
	return dl, nil
}

func deserializeCBOR_OptInRequiredException(v smithycbor.Value) (*types.OptInRequiredException, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.OptInRequiredException{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "message" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.Message = ptr.String(dv)
		}
	}
	return ds, nil
}

func deserializeCBOR_PlatformDifference(v smithycbor.Value) (types.PlatformDifference, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.PlatformDifference(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.PlatformDifference(av), nil
}

func deserializeCBOR_PlatformDifferences(v smithycbor.Value) ([]types.PlatformDifference, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.PlatformDifference
	for _, si := range av {

		di, err := deserializeCBOR_PlatformDifference(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, di)
	}
	return dl, nil
}

func deserializeCBOR_PreferredResourceName(v smithycbor.Value) (types.PreferredResourceName, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.PreferredResourceName(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.PreferredResourceName(av), nil
}

func deserializeCBOR_PreferredResourceValues(v smithycbor.Value) ([]string, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []string
	for _, si := range av {

		di, err := deserializeCBOR_String(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, di)
	}
	return dl, nil
}

func deserializeCBOR_ProjectedMetric(v smithycbor.Value) (*types.ProjectedMetric, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.ProjectedMetric{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "name" {

			dv, err := deserializeCBOR_MetricName(sv)
			if err != nil {
				return nil, err
			}
			ds.Name = dv
		}

		if key == "timestamps" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_Timestamps(sv)
			if err != nil {
				return nil, err
			}
			ds.Timestamps = dv
		}

		if key == "values" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_MetricValues(sv)
			if err != nil {
				return nil, err
			}
			ds.Values = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_ProjectedMetrics(v smithycbor.Value) ([]types.ProjectedMetric, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.ProjectedMetric
	for _, si := range av {

		di, err := deserializeCBOR_ProjectedMetric(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_ProjectedUtilizationMetrics(v smithycbor.Value) ([]types.UtilizationMetric, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.UtilizationMetric
	for _, si := range av {

		di, err := deserializeCBOR_UtilizationMetric(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_RDSCurrentInstancePerformanceRisk(v smithycbor.Value) (types.RDSCurrentInstancePerformanceRisk, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.RDSCurrentInstancePerformanceRisk(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.RDSCurrentInstancePerformanceRisk(av), nil
}

func deserializeCBOR_RDSDatabaseProjectedMetric(v smithycbor.Value) (*types.RDSDatabaseProjectedMetric, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.RDSDatabaseProjectedMetric{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "name" {

			dv, err := deserializeCBOR_RDSDBMetricName(sv)
			if err != nil {
				return nil, err
			}
			ds.Name = dv
		}

		if key == "timestamps" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_Timestamps(sv)
			if err != nil {
				return nil, err
			}
			ds.Timestamps = dv
		}

		if key == "values" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_MetricValues(sv)
			if err != nil {
				return nil, err
			}
			ds.Values = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_RDSDatabaseProjectedMetrics(v smithycbor.Value) ([]types.RDSDatabaseProjectedMetric, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.RDSDatabaseProjectedMetric
	for _, si := range av {

		di, err := deserializeCBOR_RDSDatabaseProjectedMetric(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_RDSDatabaseRecommendedOptionProjectedMetric(v smithycbor.Value) (*types.RDSDatabaseRecommendedOptionProjectedMetric, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.RDSDatabaseRecommendedOptionProjectedMetric{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "recommendedDBInstanceClass" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.RecommendedDBInstanceClass = ptr.String(dv)
		}

		if key == "rank" {

			dv, err := deserializeCBOR_Int32(sv)
			if err != nil {
				return nil, err
			}
			ds.Rank = dv
		}

		if key == "projectedMetrics" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_RDSDatabaseProjectedMetrics(sv)
			if err != nil {
				return nil, err
			}
			ds.ProjectedMetrics = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_RDSDatabaseRecommendedOptionProjectedMetrics(v smithycbor.Value) ([]types.RDSDatabaseRecommendedOptionProjectedMetric, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.RDSDatabaseRecommendedOptionProjectedMetric
	for _, si := range av {

		di, err := deserializeCBOR_RDSDatabaseRecommendedOptionProjectedMetric(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_RDSDBInstanceRecommendationOption(v smithycbor.Value) (*types.RDSDBInstanceRecommendationOption, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.RDSDBInstanceRecommendationOption{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "dbInstanceClass" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.DbInstanceClass = ptr.String(dv)
		}

		if key == "projectedUtilizationMetrics" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_RDSDBProjectedUtilizationMetrics(sv)
			if err != nil {
				return nil, err
			}
			ds.ProjectedUtilizationMetrics = dv
		}

		if key == "performanceRisk" {

			dv, err := deserializeCBOR_Float64(sv)
			if err != nil {
				return nil, err
			}
			ds.PerformanceRisk = dv
		}

		if key == "rank" {

			dv, err := deserializeCBOR_Int32(sv)
			if err != nil {
				return nil, err
			}
			ds.Rank = dv
		}

		if key == "savingsOpportunity" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_SavingsOpportunity(sv)
			if err != nil {
				return nil, err
			}
			ds.SavingsOpportunity = dv
		}

		if key == "savingsOpportunityAfterDiscounts" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_RDSInstanceSavingsOpportunityAfterDiscounts(sv)
			if err != nil {
				return nil, err
			}
			ds.SavingsOpportunityAfterDiscounts = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_RDSDBInstanceRecommendationOptions(v smithycbor.Value) ([]types.RDSDBInstanceRecommendationOption, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.RDSDBInstanceRecommendationOption
	for _, si := range av {

		di, err := deserializeCBOR_RDSDBInstanceRecommendationOption(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_RDSDBMetricName(v smithycbor.Value) (types.RDSDBMetricName, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.RDSDBMetricName(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.RDSDBMetricName(av), nil
}

func deserializeCBOR_RDSDBMetricStatistic(v smithycbor.Value) (types.RDSDBMetricStatistic, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.RDSDBMetricStatistic(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.RDSDBMetricStatistic(av), nil
}

func deserializeCBOR_RDSDBProjectedUtilizationMetrics(v smithycbor.Value) ([]types.RDSDBUtilizationMetric, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.RDSDBUtilizationMetric
	for _, si := range av {

		di, err := deserializeCBOR_RDSDBUtilizationMetric(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_RDSDBRecommendation(v smithycbor.Value) (*types.RDSDBRecommendation, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.RDSDBRecommendation{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "resourceArn" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.ResourceArn = ptr.String(dv)
		}

		if key == "accountId" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.AccountId = ptr.String(dv)
		}

		if key == "engine" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.Engine = ptr.String(dv)
		}

		if key == "engineVersion" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.EngineVersion = ptr.String(dv)
		}

		if key == "promotionTier" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_Int32(sv)
			if err != nil {
				return nil, err
			}
			ds.PromotionTier = ptr.Int32(dv)
		}

		if key == "currentDBInstanceClass" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.CurrentDBInstanceClass = ptr.String(dv)
		}

		if key == "currentStorageConfiguration" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_DBStorageConfiguration(sv)
			if err != nil {
				return nil, err
			}
			ds.CurrentStorageConfiguration = dv
		}

		if key == "dbClusterIdentifier" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.DbClusterIdentifier = ptr.String(dv)
		}

		if key == "idle" {

			dv, err := deserializeCBOR_Idle(sv)
			if err != nil {
				return nil, err
			}
			ds.Idle = dv
		}

		if key == "instanceFinding" {

			dv, err := deserializeCBOR_RDSInstanceFinding(sv)
			if err != nil {
				return nil, err
			}
			ds.InstanceFinding = dv
		}

		if key == "storageFinding" {

			dv, err := deserializeCBOR_RDSStorageFinding(sv)
			if err != nil {
				return nil, err
			}
			ds.StorageFinding = dv
		}

		if key == "instanceFindingReasonCodes" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_RDSInstanceFindingReasonCodes(sv)
			if err != nil {
				return nil, err
			}
			ds.InstanceFindingReasonCodes = dv
		}

		if key == "currentInstancePerformanceRisk" {

			dv, err := deserializeCBOR_RDSCurrentInstancePerformanceRisk(sv)
			if err != nil {
				return nil, err
			}
			ds.CurrentInstancePerformanceRisk = dv
		}

		if key == "currentStorageEstimatedMonthlyVolumeIOPsCostVariation" {

			dv, err := deserializeCBOR_RDSEstimatedMonthlyVolumeIOPsCostVariation(sv)
			if err != nil {
				return nil, err
			}
			ds.CurrentStorageEstimatedMonthlyVolumeIOPsCostVariation = dv
		}

		if key == "storageFindingReasonCodes" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_RDSStorageFindingReasonCodes(sv)
			if err != nil {
				return nil, err
			}
			ds.StorageFindingReasonCodes = dv
		}

		if key == "instanceRecommendationOptions" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_RDSDBInstanceRecommendationOptions(sv)
			if err != nil {
				return nil, err
			}
			ds.InstanceRecommendationOptions = dv
		}

		if key == "storageRecommendationOptions" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_RDSDBStorageRecommendationOptions(sv)
			if err != nil {
				return nil, err
			}
			ds.StorageRecommendationOptions = dv
		}

		if key == "utilizationMetrics" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_RDSDBUtilizationMetrics(sv)
			if err != nil {
				return nil, err
			}
			ds.UtilizationMetrics = dv
		}

		if key == "effectiveRecommendationPreferences" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_RDSEffectiveRecommendationPreferences(sv)
			if err != nil {
				return nil, err
			}
			ds.EffectiveRecommendationPreferences = dv
		}

		if key == "lookbackPeriodInDays" {

			dv, err := deserializeCBOR_Float64(sv)
			if err != nil {
				return nil, err
			}
			ds.LookbackPeriodInDays = dv
		}

		if key == "lastRefreshTimestamp" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_Time(sv)
			if err != nil {
				return nil, err
			}
			ds.LastRefreshTimestamp = ptr.Time(dv)
		}

		if key == "tags" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_Tags(sv)
			if err != nil {
				return nil, err
			}
			ds.Tags = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_RDSDBRecommendations(v smithycbor.Value) ([]types.RDSDBRecommendation, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.RDSDBRecommendation
	for _, si := range av {

		di, err := deserializeCBOR_RDSDBRecommendation(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_RDSDBStorageRecommendationOption(v smithycbor.Value) (*types.RDSDBStorageRecommendationOption, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.RDSDBStorageRecommendationOption{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "storageConfiguration" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_DBStorageConfiguration(sv)
			if err != nil {
				return nil, err
			}
			ds.StorageConfiguration = dv
		}

		if key == "rank" {

			dv, err := deserializeCBOR_Int32(sv)
			if err != nil {
				return nil, err
			}
			ds.Rank = dv
		}

		if key == "savingsOpportunity" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_SavingsOpportunity(sv)
			if err != nil {
				return nil, err
			}
			ds.SavingsOpportunity = dv
		}

		if key == "savingsOpportunityAfterDiscounts" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_RDSStorageSavingsOpportunityAfterDiscounts(sv)
			if err != nil {
				return nil, err
			}
			ds.SavingsOpportunityAfterDiscounts = dv
		}

		if key == "estimatedMonthlyVolumeIOPsCostVariation" {

			dv, err := deserializeCBOR_RDSEstimatedMonthlyVolumeIOPsCostVariation(sv)
			if err != nil {
				return nil, err
			}
			ds.EstimatedMonthlyVolumeIOPsCostVariation = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_RDSDBStorageRecommendationOptions(v smithycbor.Value) ([]types.RDSDBStorageRecommendationOption, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.RDSDBStorageRecommendationOption
	for _, si := range av {

		di, err := deserializeCBOR_RDSDBStorageRecommendationOption(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_RDSDBUtilizationMetric(v smithycbor.Value) (*types.RDSDBUtilizationMetric, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.RDSDBUtilizationMetric{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "name" {

			dv, err := deserializeCBOR_RDSDBMetricName(sv)
			if err != nil {
				return nil, err
			}
			ds.Name = dv
		}

		if key == "statistic" {

			dv, err := deserializeCBOR_RDSDBMetricStatistic(sv)
			if err != nil {
				return nil, err
			}
			ds.Statistic = dv
		}

		if key == "value" {

			dv, err := deserializeCBOR_Float64(sv)
			if err != nil {
				return nil, err
			}
			ds.Value = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_RDSDBUtilizationMetrics(v smithycbor.Value) ([]types.RDSDBUtilizationMetric, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.RDSDBUtilizationMetric
	for _, si := range av {

		di, err := deserializeCBOR_RDSDBUtilizationMetric(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_RDSEffectiveRecommendationPreferences(v smithycbor.Value) (*types.RDSEffectiveRecommendationPreferences, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.RDSEffectiveRecommendationPreferences{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "cpuVendorArchitectures" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_CpuVendorArchitectures(sv)
			if err != nil {
				return nil, err
			}
			ds.CpuVendorArchitectures = dv
		}

		if key == "enhancedInfrastructureMetrics" {

			dv, err := deserializeCBOR_EnhancedInfrastructureMetrics(sv)
			if err != nil {
				return nil, err
			}
			ds.EnhancedInfrastructureMetrics = dv
		}

		if key == "lookBackPeriod" {

			dv, err := deserializeCBOR_LookBackPeriodPreference(sv)
			if err != nil {
				return nil, err
			}
			ds.LookBackPeriod = dv
		}

		if key == "savingsEstimationMode" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_RDSSavingsEstimationMode(sv)
			if err != nil {
				return nil, err
			}
			ds.SavingsEstimationMode = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_RDSEstimatedMonthlyVolumeIOPsCostVariation(v smithycbor.Value) (types.RDSEstimatedMonthlyVolumeIOPsCostVariation, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.RDSEstimatedMonthlyVolumeIOPsCostVariation(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.RDSEstimatedMonthlyVolumeIOPsCostVariation(av), nil
}

func deserializeCBOR_RDSInstanceEstimatedMonthlySavings(v smithycbor.Value) (*types.RDSInstanceEstimatedMonthlySavings, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.RDSInstanceEstimatedMonthlySavings{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "currency" {

			dv, err := deserializeCBOR_Currency(sv)
			if err != nil {
				return nil, err
			}
			ds.Currency = dv
		}

		if key == "value" {

			dv, err := deserializeCBOR_Float64(sv)
			if err != nil {
				return nil, err
			}
			ds.Value = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_RDSInstanceFinding(v smithycbor.Value) (types.RDSInstanceFinding, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.RDSInstanceFinding(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.RDSInstanceFinding(av), nil
}

func deserializeCBOR_RDSInstanceFindingReasonCode(v smithycbor.Value) (types.RDSInstanceFindingReasonCode, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.RDSInstanceFindingReasonCode(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.RDSInstanceFindingReasonCode(av), nil
}

func deserializeCBOR_RDSInstanceFindingReasonCodes(v smithycbor.Value) ([]types.RDSInstanceFindingReasonCode, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.RDSInstanceFindingReasonCode
	for _, si := range av {

		di, err := deserializeCBOR_RDSInstanceFindingReasonCode(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, di)
	}
	return dl, nil
}

func deserializeCBOR_RDSInstanceSavingsOpportunityAfterDiscounts(v smithycbor.Value) (*types.RDSInstanceSavingsOpportunityAfterDiscounts, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.RDSInstanceSavingsOpportunityAfterDiscounts{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "savingsOpportunityPercentage" {

			dv, err := deserializeCBOR_Float64(sv)
			if err != nil {
				return nil, err
			}
			ds.SavingsOpportunityPercentage = dv
		}

		if key == "estimatedMonthlySavings" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_RDSInstanceEstimatedMonthlySavings(sv)
			if err != nil {
				return nil, err
			}
			ds.EstimatedMonthlySavings = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_RDSSavingsEstimationMode(v smithycbor.Value) (*types.RDSSavingsEstimationMode, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.RDSSavingsEstimationMode{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "source" {

			dv, err := deserializeCBOR_RDSSavingsEstimationModeSource(sv)
			if err != nil {
				return nil, err
			}
			ds.Source = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_RDSSavingsEstimationModeSource(v smithycbor.Value) (types.RDSSavingsEstimationModeSource, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.RDSSavingsEstimationModeSource(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.RDSSavingsEstimationModeSource(av), nil
}

func deserializeCBOR_RDSStorageEstimatedMonthlySavings(v smithycbor.Value) (*types.RDSStorageEstimatedMonthlySavings, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.RDSStorageEstimatedMonthlySavings{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "currency" {

			dv, err := deserializeCBOR_Currency(sv)
			if err != nil {
				return nil, err
			}
			ds.Currency = dv
		}

		if key == "value" {

			dv, err := deserializeCBOR_Float64(sv)
			if err != nil {
				return nil, err
			}
			ds.Value = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_RDSStorageFinding(v smithycbor.Value) (types.RDSStorageFinding, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.RDSStorageFinding(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.RDSStorageFinding(av), nil
}

func deserializeCBOR_RDSStorageFindingReasonCode(v smithycbor.Value) (types.RDSStorageFindingReasonCode, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.RDSStorageFindingReasonCode(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.RDSStorageFindingReasonCode(av), nil
}

func deserializeCBOR_RDSStorageFindingReasonCodes(v smithycbor.Value) ([]types.RDSStorageFindingReasonCode, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.RDSStorageFindingReasonCode
	for _, si := range av {

		di, err := deserializeCBOR_RDSStorageFindingReasonCode(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, di)
	}
	return dl, nil
}

func deserializeCBOR_RDSStorageSavingsOpportunityAfterDiscounts(v smithycbor.Value) (*types.RDSStorageSavingsOpportunityAfterDiscounts, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.RDSStorageSavingsOpportunityAfterDiscounts{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "savingsOpportunityPercentage" {

			dv, err := deserializeCBOR_Float64(sv)
			if err != nil {
				return nil, err
			}
			ds.SavingsOpportunityPercentage = dv
		}

		if key == "estimatedMonthlySavings" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_RDSStorageEstimatedMonthlySavings(sv)
			if err != nil {
				return nil, err
			}
			ds.EstimatedMonthlySavings = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_ReasonCodeSummaries(v smithycbor.Value) ([]types.ReasonCodeSummary, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.ReasonCodeSummary
	for _, si := range av {

		di, err := deserializeCBOR_ReasonCodeSummary(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_ReasonCodeSummary(v smithycbor.Value) (*types.ReasonCodeSummary, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.ReasonCodeSummary{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "name" {

			dv, err := deserializeCBOR_FindingReasonCode(sv)
			if err != nil {
				return nil, err
			}
			ds.Name = dv
		}

		if key == "value" {

			dv, err := deserializeCBOR_Float64(sv)
			if err != nil {
				return nil, err
			}
			ds.Value = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_RecommendationExportJob(v smithycbor.Value) (*types.RecommendationExportJob, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.RecommendationExportJob{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "jobId" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.JobId = ptr.String(dv)
		}

		if key == "destination" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_ExportDestination(sv)
			if err != nil {
				return nil, err
			}
			ds.Destination = dv
		}

		if key == "resourceType" {

			dv, err := deserializeCBOR_ResourceType(sv)
			if err != nil {
				return nil, err
			}
			ds.ResourceType = dv
		}

		if key == "status" {

			dv, err := deserializeCBOR_JobStatus(sv)
			if err != nil {
				return nil, err
			}
			ds.Status = dv
		}

		if key == "creationTimestamp" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_Time(sv)
			if err != nil {
				return nil, err
			}
			ds.CreationTimestamp = ptr.Time(dv)
		}

		if key == "lastUpdatedTimestamp" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_Time(sv)
			if err != nil {
				return nil, err
			}
			ds.LastUpdatedTimestamp = ptr.Time(dv)
		}

		if key == "failureReason" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.FailureReason = ptr.String(dv)
		}
	}
	return ds, nil
}

func deserializeCBOR_RecommendationExportJobs(v smithycbor.Value) ([]types.RecommendationExportJob, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.RecommendationExportJob
	for _, si := range av {

		di, err := deserializeCBOR_RecommendationExportJob(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_RecommendationOptions(v smithycbor.Value) ([]types.InstanceRecommendationOption, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.InstanceRecommendationOption
	for _, si := range av {

		di, err := deserializeCBOR_InstanceRecommendationOption(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_RecommendationPreferencesDetail(v smithycbor.Value) (*types.RecommendationPreferencesDetail, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.RecommendationPreferencesDetail{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "scope" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_Scope(sv)
			if err != nil {
				return nil, err
			}
			ds.Scope = dv
		}

		if key == "resourceType" {

			dv, err := deserializeCBOR_ResourceType(sv)
			if err != nil {
				return nil, err
			}
			ds.ResourceType = dv
		}

		if key == "enhancedInfrastructureMetrics" {

			dv, err := deserializeCBOR_EnhancedInfrastructureMetrics(sv)
			if err != nil {
				return nil, err
			}
			ds.EnhancedInfrastructureMetrics = dv
		}

		if key == "inferredWorkloadTypes" {

			dv, err := deserializeCBOR_InferredWorkloadTypesPreference(sv)
			if err != nil {
				return nil, err
			}
			ds.InferredWorkloadTypes = dv
		}

		if key == "externalMetricsPreference" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_ExternalMetricsPreference(sv)
			if err != nil {
				return nil, err
			}
			ds.ExternalMetricsPreference = dv
		}

		if key == "lookBackPeriod" {

			dv, err := deserializeCBOR_LookBackPeriodPreference(sv)
			if err != nil {
				return nil, err
			}
			ds.LookBackPeriod = dv
		}

		if key == "utilizationPreferences" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_UtilizationPreferences(sv)
			if err != nil {
				return nil, err
			}
			ds.UtilizationPreferences = dv
		}

		if key == "preferredResources" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_EffectivePreferredResources(sv)
			if err != nil {
				return nil, err
			}
			ds.PreferredResources = dv
		}

		if key == "savingsEstimationMode" {

			dv, err := deserializeCBOR_SavingsEstimationMode(sv)
			if err != nil {
				return nil, err
			}
			ds.SavingsEstimationMode = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_RecommendationPreferencesDetails(v smithycbor.Value) ([]types.RecommendationPreferencesDetail, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.RecommendationPreferencesDetail
	for _, si := range av {

		di, err := deserializeCBOR_RecommendationPreferencesDetail(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_RecommendationSource(v smithycbor.Value) (*types.RecommendationSource, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.RecommendationSource{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "recommendationSourceArn" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.RecommendationSourceArn = ptr.String(dv)
		}

		if key == "recommendationSourceType" {

			dv, err := deserializeCBOR_RecommendationSourceType(sv)
			if err != nil {
				return nil, err
			}
			ds.RecommendationSourceType = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_RecommendationSources(v smithycbor.Value) ([]types.RecommendationSource, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.RecommendationSource
	for _, si := range av {

		di, err := deserializeCBOR_RecommendationSource(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_RecommendationSourceType(v smithycbor.Value) (types.RecommendationSourceType, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.RecommendationSourceType(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.RecommendationSourceType(av), nil
}

func deserializeCBOR_RecommendationSummaries(v smithycbor.Value) ([]types.RecommendationSummary, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.RecommendationSummary
	for _, si := range av {

		di, err := deserializeCBOR_RecommendationSummary(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_RecommendationSummary(v smithycbor.Value) (*types.RecommendationSummary, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.RecommendationSummary{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "summaries" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_Summaries(sv)
			if err != nil {
				return nil, err
			}
			ds.Summaries = dv
		}

		if key == "idleSummaries" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_IdleSummaries(sv)
			if err != nil {
				return nil, err
			}
			ds.IdleSummaries = dv
		}

		if key == "recommendationResourceType" {

			dv, err := deserializeCBOR_RecommendationSourceType(sv)
			if err != nil {
				return nil, err
			}
			ds.RecommendationResourceType = dv
		}

		if key == "accountId" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.AccountId = ptr.String(dv)
		}

		if key == "savingsOpportunity" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_SavingsOpportunity(sv)
			if err != nil {
				return nil, err
			}
			ds.SavingsOpportunity = dv
		}

		if key == "idleSavingsOpportunity" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_SavingsOpportunity(sv)
			if err != nil {
				return nil, err
			}
			ds.IdleSavingsOpportunity = dv
		}

		if key == "aggregatedSavingsOpportunity" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_SavingsOpportunity(sv)
			if err != nil {
				return nil, err
			}
			ds.AggregatedSavingsOpportunity = dv
		}

		if key == "currentPerformanceRiskRatings" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_CurrentPerformanceRiskRatings(sv)
			if err != nil {
				return nil, err
			}
			ds.CurrentPerformanceRiskRatings = dv
		}

		if key == "inferredWorkloadSavings" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_InferredWorkloadSavings(sv)
			if err != nil {
				return nil, err
			}
			ds.InferredWorkloadSavings = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_RecommendedOptionProjectedMetric(v smithycbor.Value) (*types.RecommendedOptionProjectedMetric, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.RecommendedOptionProjectedMetric{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "recommendedInstanceType" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.RecommendedInstanceType = ptr.String(dv)
		}

		if key == "rank" {

			dv, err := deserializeCBOR_Int32(sv)
			if err != nil {
				return nil, err
			}
			ds.Rank = dv
		}

		if key == "projectedMetrics" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_ProjectedMetrics(sv)
			if err != nil {
				return nil, err
			}
			ds.ProjectedMetrics = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_RecommendedOptionProjectedMetrics(v smithycbor.Value) ([]types.RecommendedOptionProjectedMetric, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.RecommendedOptionProjectedMetric
	for _, si := range av {

		di, err := deserializeCBOR_RecommendedOptionProjectedMetric(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_ResourceNotFoundException(v smithycbor.Value) (*types.ResourceNotFoundException, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.ResourceNotFoundException{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "message" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.Message = ptr.String(dv)
		}
	}
	return ds, nil
}

func deserializeCBOR_ResourceType(v smithycbor.Value) (types.ResourceType, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.ResourceType(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.ResourceType(av), nil
}

func deserializeCBOR_S3Destination(v smithycbor.Value) (*types.S3Destination, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.S3Destination{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "bucket" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.Bucket = ptr.String(dv)
		}

		if key == "key" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.Key = ptr.String(dv)
		}

		if key == "metadataKey" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.MetadataKey = ptr.String(dv)
		}
	}
	return ds, nil
}

func deserializeCBOR_SavingsEstimationMode(v smithycbor.Value) (types.SavingsEstimationMode, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.SavingsEstimationMode(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.SavingsEstimationMode(av), nil
}

func deserializeCBOR_SavingsOpportunity(v smithycbor.Value) (*types.SavingsOpportunity, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.SavingsOpportunity{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "savingsOpportunityPercentage" {

			dv, err := deserializeCBOR_Float64(sv)
			if err != nil {
				return nil, err
			}
			ds.SavingsOpportunityPercentage = dv
		}

		if key == "estimatedMonthlySavings" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_EstimatedMonthlySavings(sv)
			if err != nil {
				return nil, err
			}
			ds.EstimatedMonthlySavings = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_Scope(v smithycbor.Value) (*types.Scope, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.Scope{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "name" {

			dv, err := deserializeCBOR_ScopeName(sv)
			if err != nil {
				return nil, err
			}
			ds.Name = dv
		}

		if key == "value" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.Value = ptr.String(dv)
		}
	}
	return ds, nil
}

func deserializeCBOR_ScopeName(v smithycbor.Value) (types.ScopeName, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.ScopeName(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.ScopeName(av), nil
}

func deserializeCBOR_ServiceConfiguration(v smithycbor.Value) (*types.ServiceConfiguration, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.ServiceConfiguration{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "memory" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_Int32(sv)
			if err != nil {
				return nil, err
			}
			ds.Memory = ptr.Int32(dv)
		}

		if key == "cpu" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_Int32(sv)
			if err != nil {
				return nil, err
			}
			ds.Cpu = ptr.Int32(dv)
		}

		if key == "containerConfigurations" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_ContainerConfigurations(sv)
			if err != nil {
				return nil, err
			}
			ds.ContainerConfigurations = dv
		}

		if key == "autoScalingConfiguration" {

			dv, err := deserializeCBOR_AutoScalingConfiguration(sv)
			if err != nil {
				return nil, err
			}
			ds.AutoScalingConfiguration = dv
		}

		if key == "taskDefinitionArn" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.TaskDefinitionArn = ptr.String(dv)
		}
	}
	return ds, nil
}

func deserializeCBOR_ServiceUnavailableException(v smithycbor.Value) (*types.ServiceUnavailableException, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.ServiceUnavailableException{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "message" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.Message = ptr.String(dv)
		}
	}
	return ds, nil
}

func deserializeCBOR_Status(v smithycbor.Value) (types.Status, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return types.Status(""), fmt.Errorf("unexpected value type %T", v)
	}
	return types.Status(av), nil
}

func deserializeCBOR_Summaries(v smithycbor.Value) ([]types.Summary, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.Summary
	for _, si := range av {

		di, err := deserializeCBOR_Summary(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_Summary(v smithycbor.Value) (*types.Summary, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.Summary{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "name" {

			dv, err := deserializeCBOR_Finding(sv)
			if err != nil {
				return nil, err
			}
			ds.Name = dv
		}

		if key == "value" {

			dv, err := deserializeCBOR_Float64(sv)
			if err != nil {
				return nil, err
			}
			ds.Value = dv
		}

		if key == "reasonCodeSummaries" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_ReasonCodeSummaries(sv)
			if err != nil {
				return nil, err
			}
			ds.ReasonCodeSummaries = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_Tag(v smithycbor.Value) (*types.Tag, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.Tag{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "key" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.Key = ptr.String(dv)
		}

		if key == "value" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.Value = ptr.String(dv)
		}
	}
	return ds, nil
}

func deserializeCBOR_Tags(v smithycbor.Value) ([]types.Tag, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.Tag
	for _, si := range av {

		di, err := deserializeCBOR_Tag(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_ThrottlingException(v smithycbor.Value) (*types.ThrottlingException, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.ThrottlingException{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "message" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.Message = ptr.String(dv)
		}
	}
	return ds, nil
}

func deserializeCBOR_Timestamps(v smithycbor.Value) ([]time.Time, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []time.Time
	for _, si := range av {

		di, err := deserializeCBOR_Time(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, di)
	}
	return dl, nil
}

func deserializeCBOR_UtilizationMetric(v smithycbor.Value) (*types.UtilizationMetric, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.UtilizationMetric{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "name" {

			dv, err := deserializeCBOR_MetricName(sv)
			if err != nil {
				return nil, err
			}
			ds.Name = dv
		}

		if key == "statistic" {

			dv, err := deserializeCBOR_MetricStatistic(sv)
			if err != nil {
				return nil, err
			}
			ds.Statistic = dv
		}

		if key == "value" {

			dv, err := deserializeCBOR_Float64(sv)
			if err != nil {
				return nil, err
			}
			ds.Value = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_UtilizationMetrics(v smithycbor.Value) ([]types.UtilizationMetric, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.UtilizationMetric
	for _, si := range av {

		di, err := deserializeCBOR_UtilizationMetric(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_UtilizationPreference(v smithycbor.Value) (*types.UtilizationPreference, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.UtilizationPreference{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "metricName" {

			dv, err := deserializeCBOR_CustomizableMetricName(sv)
			if err != nil {
				return nil, err
			}
			ds.MetricName = dv
		}

		if key == "metricParameters" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_CustomizableMetricParameters(sv)
			if err != nil {
				return nil, err
			}
			ds.MetricParameters = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_UtilizationPreferences(v smithycbor.Value) ([]types.UtilizationPreference, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.UtilizationPreference
	for _, si := range av {

		di, err := deserializeCBOR_UtilizationPreference(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_VolumeConfiguration(v smithycbor.Value) (*types.VolumeConfiguration, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.VolumeConfiguration{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "volumeType" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.VolumeType = ptr.String(dv)
		}

		if key == "volumeSize" {

			dv, err := deserializeCBOR_Int32(sv)
			if err != nil {
				return nil, err
			}
			ds.VolumeSize = dv
		}

		if key == "volumeBaselineIOPS" {

			dv, err := deserializeCBOR_Int32(sv)
			if err != nil {
				return nil, err
			}
			ds.VolumeBaselineIOPS = dv
		}

		if key == "volumeBurstIOPS" {

			dv, err := deserializeCBOR_Int32(sv)
			if err != nil {
				return nil, err
			}
			ds.VolumeBurstIOPS = dv
		}

		if key == "volumeBaselineThroughput" {

			dv, err := deserializeCBOR_Int32(sv)
			if err != nil {
				return nil, err
			}
			ds.VolumeBaselineThroughput = dv
		}

		if key == "volumeBurstThroughput" {

			dv, err := deserializeCBOR_Int32(sv)
			if err != nil {
				return nil, err
			}
			ds.VolumeBurstThroughput = dv
		}

		if key == "rootVolume" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_Bool(sv)
			if err != nil {
				return nil, err
			}
			ds.RootVolume = ptr.Bool(dv)
		}
	}
	return ds, nil
}

func deserializeCBOR_VolumeRecommendation(v smithycbor.Value) (*types.VolumeRecommendation, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.VolumeRecommendation{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "volumeArn" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.VolumeArn = ptr.String(dv)
		}

		if key == "accountId" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.AccountId = ptr.String(dv)
		}

		if key == "currentConfiguration" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_VolumeConfiguration(sv)
			if err != nil {
				return nil, err
			}
			ds.CurrentConfiguration = dv
		}

		if key == "finding" {

			dv, err := deserializeCBOR_EBSFinding(sv)
			if err != nil {
				return nil, err
			}
			ds.Finding = dv
		}

		if key == "utilizationMetrics" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_EBSUtilizationMetrics(sv)
			if err != nil {
				return nil, err
			}
			ds.UtilizationMetrics = dv
		}

		if key == "lookBackPeriodInDays" {

			dv, err := deserializeCBOR_Float64(sv)
			if err != nil {
				return nil, err
			}
			ds.LookBackPeriodInDays = dv
		}

		if key == "volumeRecommendationOptions" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_VolumeRecommendationOptions(sv)
			if err != nil {
				return nil, err
			}
			ds.VolumeRecommendationOptions = dv
		}

		if key == "lastRefreshTimestamp" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_Time(sv)
			if err != nil {
				return nil, err
			}
			ds.LastRefreshTimestamp = ptr.Time(dv)
		}

		if key == "currentPerformanceRisk" {

			dv, err := deserializeCBOR_CurrentPerformanceRisk(sv)
			if err != nil {
				return nil, err
			}
			ds.CurrentPerformanceRisk = dv
		}

		if key == "effectiveRecommendationPreferences" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_EBSEffectiveRecommendationPreferences(sv)
			if err != nil {
				return nil, err
			}
			ds.EffectiveRecommendationPreferences = dv
		}

		if key == "tags" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_Tags(sv)
			if err != nil {
				return nil, err
			}
			ds.Tags = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_VolumeRecommendationOption(v smithycbor.Value) (*types.VolumeRecommendationOption, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &types.VolumeRecommendationOption{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "configuration" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_VolumeConfiguration(sv)
			if err != nil {
				return nil, err
			}
			ds.Configuration = dv
		}

		if key == "performanceRisk" {

			dv, err := deserializeCBOR_Float64(sv)
			if err != nil {
				return nil, err
			}
			ds.PerformanceRisk = dv
		}

		if key == "rank" {

			dv, err := deserializeCBOR_Int32(sv)
			if err != nil {
				return nil, err
			}
			ds.Rank = dv
		}

		if key == "savingsOpportunity" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_SavingsOpportunity(sv)
			if err != nil {
				return nil, err
			}
			ds.SavingsOpportunity = dv
		}

		if key == "savingsOpportunityAfterDiscounts" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_EBSSavingsOpportunityAfterDiscounts(sv)
			if err != nil {
				return nil, err
			}
			ds.SavingsOpportunityAfterDiscounts = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_VolumeRecommendationOptions(v smithycbor.Value) ([]types.VolumeRecommendationOption, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.VolumeRecommendationOption
	for _, si := range av {

		di, err := deserializeCBOR_VolumeRecommendationOption(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_VolumeRecommendations(v smithycbor.Value) ([]types.VolumeRecommendation, error) {
	av, ok := v.(smithycbor.List)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	var dl []types.VolumeRecommendation
	for _, si := range av {

		di, err := deserializeCBOR_VolumeRecommendation(si)
		if err != nil {
			return nil, err
		}
		dl = append(dl, *di)
	}
	return dl, nil
}

func deserializeCBOR_Bool(v smithycbor.Value) (bool, error) {
	av, ok := v.(smithycbor.Bool)
	if !ok {
		return false, fmt.Errorf("unexpected value type %T", v)
	}
	return bool(av), nil
}

func deserializeCBOR_Float64(v smithycbor.Value) (float64, error) {
	return smithycbor.AsFloat64(v)
}

func deserializeCBOR_Int32(v smithycbor.Value) (int32, error) {
	return smithycbor.AsInt32(v)
}

func deserializeCBOR_Int64(v smithycbor.Value) (int64, error) {
	return smithycbor.AsInt64(v)
}

func deserializeCBOR_String(v smithycbor.Value) (string, error) {
	av, ok := v.(smithycbor.String)
	if !ok {
		return "", fmt.Errorf("unexpected value type %T", v)
	}
	return string(av), nil
}

func deserializeCBOR_Time(v smithycbor.Value) (time.Time, error) {
	return smithycbor.AsTime(v)
}

func deserializeCBOR_DescribeRecommendationExportJobsOutput(v smithycbor.Value) (*DescribeRecommendationExportJobsOutput, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &DescribeRecommendationExportJobsOutput{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "recommendationExportJobs" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_RecommendationExportJobs(sv)
			if err != nil {
				return nil, err
			}
			ds.RecommendationExportJobs = dv
		}

		if key == "nextToken" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.NextToken = ptr.String(dv)
		}
	}
	return ds, nil
}

func deserializeCBOR_ExportAutoScalingGroupRecommendationsOutput(v smithycbor.Value) (*ExportAutoScalingGroupRecommendationsOutput, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &ExportAutoScalingGroupRecommendationsOutput{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "jobId" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.JobId = ptr.String(dv)
		}

		if key == "s3Destination" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_S3Destination(sv)
			if err != nil {
				return nil, err
			}
			ds.S3Destination = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_ExportEBSVolumeRecommendationsOutput(v smithycbor.Value) (*ExportEBSVolumeRecommendationsOutput, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &ExportEBSVolumeRecommendationsOutput{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "jobId" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.JobId = ptr.String(dv)
		}

		if key == "s3Destination" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_S3Destination(sv)
			if err != nil {
				return nil, err
			}
			ds.S3Destination = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_ExportEC2InstanceRecommendationsOutput(v smithycbor.Value) (*ExportEC2InstanceRecommendationsOutput, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &ExportEC2InstanceRecommendationsOutput{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "jobId" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.JobId = ptr.String(dv)
		}

		if key == "s3Destination" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_S3Destination(sv)
			if err != nil {
				return nil, err
			}
			ds.S3Destination = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_ExportECSServiceRecommendationsOutput(v smithycbor.Value) (*ExportECSServiceRecommendationsOutput, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &ExportECSServiceRecommendationsOutput{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "jobId" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.JobId = ptr.String(dv)
		}

		if key == "s3Destination" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_S3Destination(sv)
			if err != nil {
				return nil, err
			}
			ds.S3Destination = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_ExportIdleRecommendationsOutput(v smithycbor.Value) (*ExportIdleRecommendationsOutput, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &ExportIdleRecommendationsOutput{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "jobId" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.JobId = ptr.String(dv)
		}

		if key == "s3Destination" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_S3Destination(sv)
			if err != nil {
				return nil, err
			}
			ds.S3Destination = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_ExportLambdaFunctionRecommendationsOutput(v smithycbor.Value) (*ExportLambdaFunctionRecommendationsOutput, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &ExportLambdaFunctionRecommendationsOutput{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "jobId" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.JobId = ptr.String(dv)
		}

		if key == "s3Destination" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_S3Destination(sv)
			if err != nil {
				return nil, err
			}
			ds.S3Destination = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_ExportLicenseRecommendationsOutput(v smithycbor.Value) (*ExportLicenseRecommendationsOutput, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &ExportLicenseRecommendationsOutput{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "jobId" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.JobId = ptr.String(dv)
		}

		if key == "s3Destination" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_S3Destination(sv)
			if err != nil {
				return nil, err
			}
			ds.S3Destination = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_ExportRDSDatabaseRecommendationsOutput(v smithycbor.Value) (*ExportRDSDatabaseRecommendationsOutput, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &ExportRDSDatabaseRecommendationsOutput{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "jobId" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.JobId = ptr.String(dv)
		}

		if key == "s3Destination" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_S3Destination(sv)
			if err != nil {
				return nil, err
			}
			ds.S3Destination = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_GetAutoScalingGroupRecommendationsOutput(v smithycbor.Value) (*GetAutoScalingGroupRecommendationsOutput, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &GetAutoScalingGroupRecommendationsOutput{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "nextToken" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.NextToken = ptr.String(dv)
		}

		if key == "autoScalingGroupRecommendations" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_AutoScalingGroupRecommendations(sv)
			if err != nil {
				return nil, err
			}
			ds.AutoScalingGroupRecommendations = dv
		}

		if key == "errors" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_GetRecommendationErrors(sv)
			if err != nil {
				return nil, err
			}
			ds.Errors = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_GetEBSVolumeRecommendationsOutput(v smithycbor.Value) (*GetEBSVolumeRecommendationsOutput, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &GetEBSVolumeRecommendationsOutput{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "nextToken" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.NextToken = ptr.String(dv)
		}

		if key == "volumeRecommendations" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_VolumeRecommendations(sv)
			if err != nil {
				return nil, err
			}
			ds.VolumeRecommendations = dv
		}

		if key == "errors" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_GetRecommendationErrors(sv)
			if err != nil {
				return nil, err
			}
			ds.Errors = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_GetEC2InstanceRecommendationsOutput(v smithycbor.Value) (*GetEC2InstanceRecommendationsOutput, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &GetEC2InstanceRecommendationsOutput{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "nextToken" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.NextToken = ptr.String(dv)
		}

		if key == "instanceRecommendations" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_InstanceRecommendations(sv)
			if err != nil {
				return nil, err
			}
			ds.InstanceRecommendations = dv
		}

		if key == "errors" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_GetRecommendationErrors(sv)
			if err != nil {
				return nil, err
			}
			ds.Errors = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_GetEC2RecommendationProjectedMetricsOutput(v smithycbor.Value) (*GetEC2RecommendationProjectedMetricsOutput, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &GetEC2RecommendationProjectedMetricsOutput{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "recommendedOptionProjectedMetrics" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_RecommendedOptionProjectedMetrics(sv)
			if err != nil {
				return nil, err
			}
			ds.RecommendedOptionProjectedMetrics = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_GetECSServiceRecommendationProjectedMetricsOutput(v smithycbor.Value) (*GetECSServiceRecommendationProjectedMetricsOutput, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &GetECSServiceRecommendationProjectedMetricsOutput{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "recommendedOptionProjectedMetrics" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_ECSServiceRecommendedOptionProjectedMetrics(sv)
			if err != nil {
				return nil, err
			}
			ds.RecommendedOptionProjectedMetrics = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_GetECSServiceRecommendationsOutput(v smithycbor.Value) (*GetECSServiceRecommendationsOutput, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &GetECSServiceRecommendationsOutput{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "nextToken" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.NextToken = ptr.String(dv)
		}

		if key == "ecsServiceRecommendations" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_ECSServiceRecommendations(sv)
			if err != nil {
				return nil, err
			}
			ds.EcsServiceRecommendations = dv
		}

		if key == "errors" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_GetRecommendationErrors(sv)
			if err != nil {
				return nil, err
			}
			ds.Errors = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_GetEffectiveRecommendationPreferencesOutput(v smithycbor.Value) (*GetEffectiveRecommendationPreferencesOutput, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &GetEffectiveRecommendationPreferencesOutput{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "enhancedInfrastructureMetrics" {

			dv, err := deserializeCBOR_EnhancedInfrastructureMetrics(sv)
			if err != nil {
				return nil, err
			}
			ds.EnhancedInfrastructureMetrics = dv
		}

		if key == "externalMetricsPreference" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_ExternalMetricsPreference(sv)
			if err != nil {
				return nil, err
			}
			ds.ExternalMetricsPreference = dv
		}

		if key == "lookBackPeriod" {

			dv, err := deserializeCBOR_LookBackPeriodPreference(sv)
			if err != nil {
				return nil, err
			}
			ds.LookBackPeriod = dv
		}

		if key == "utilizationPreferences" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_UtilizationPreferences(sv)
			if err != nil {
				return nil, err
			}
			ds.UtilizationPreferences = dv
		}

		if key == "preferredResources" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_EffectivePreferredResources(sv)
			if err != nil {
				return nil, err
			}
			ds.PreferredResources = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_GetEnrollmentStatusesForOrganizationOutput(v smithycbor.Value) (*GetEnrollmentStatusesForOrganizationOutput, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &GetEnrollmentStatusesForOrganizationOutput{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "accountEnrollmentStatuses" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_AccountEnrollmentStatuses(sv)
			if err != nil {
				return nil, err
			}
			ds.AccountEnrollmentStatuses = dv
		}

		if key == "nextToken" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.NextToken = ptr.String(dv)
		}
	}
	return ds, nil
}

func deserializeCBOR_GetEnrollmentStatusOutput(v smithycbor.Value) (*GetEnrollmentStatusOutput, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &GetEnrollmentStatusOutput{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "status" {

			dv, err := deserializeCBOR_Status(sv)
			if err != nil {
				return nil, err
			}
			ds.Status = dv
		}

		if key == "statusReason" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.StatusReason = ptr.String(dv)
		}

		if key == "memberAccountsEnrolled" {

			dv, err := deserializeCBOR_Bool(sv)
			if err != nil {
				return nil, err
			}
			ds.MemberAccountsEnrolled = dv
		}

		if key == "lastUpdatedTimestamp" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_Time(sv)
			if err != nil {
				return nil, err
			}
			ds.LastUpdatedTimestamp = ptr.Time(dv)
		}

		if key == "numberOfMemberAccountsOptedIn" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_Int32(sv)
			if err != nil {
				return nil, err
			}
			ds.NumberOfMemberAccountsOptedIn = ptr.Int32(dv)
		}
	}
	return ds, nil
}

func deserializeCBOR_GetIdleRecommendationsOutput(v smithycbor.Value) (*GetIdleRecommendationsOutput, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &GetIdleRecommendationsOutput{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "nextToken" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.NextToken = ptr.String(dv)
		}

		if key == "idleRecommendations" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_IdleRecommendations(sv)
			if err != nil {
				return nil, err
			}
			ds.IdleRecommendations = dv
		}

		if key == "errors" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_IdleRecommendationErrors(sv)
			if err != nil {
				return nil, err
			}
			ds.Errors = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_GetLambdaFunctionRecommendationsOutput(v smithycbor.Value) (*GetLambdaFunctionRecommendationsOutput, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &GetLambdaFunctionRecommendationsOutput{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "nextToken" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.NextToken = ptr.String(dv)
		}

		if key == "lambdaFunctionRecommendations" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_LambdaFunctionRecommendations(sv)
			if err != nil {
				return nil, err
			}
			ds.LambdaFunctionRecommendations = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_GetLicenseRecommendationsOutput(v smithycbor.Value) (*GetLicenseRecommendationsOutput, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &GetLicenseRecommendationsOutput{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "nextToken" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.NextToken = ptr.String(dv)
		}

		if key == "licenseRecommendations" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_LicenseRecommendations(sv)
			if err != nil {
				return nil, err
			}
			ds.LicenseRecommendations = dv
		}

		if key == "errors" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_GetRecommendationErrors(sv)
			if err != nil {
				return nil, err
			}
			ds.Errors = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_GetRDSDatabaseRecommendationProjectedMetricsOutput(v smithycbor.Value) (*GetRDSDatabaseRecommendationProjectedMetricsOutput, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &GetRDSDatabaseRecommendationProjectedMetricsOutput{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "recommendedOptionProjectedMetrics" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_RDSDatabaseRecommendedOptionProjectedMetrics(sv)
			if err != nil {
				return nil, err
			}
			ds.RecommendedOptionProjectedMetrics = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_GetRDSDatabaseRecommendationsOutput(v smithycbor.Value) (*GetRDSDatabaseRecommendationsOutput, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &GetRDSDatabaseRecommendationsOutput{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "nextToken" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.NextToken = ptr.String(dv)
		}

		if key == "rdsDBRecommendations" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_RDSDBRecommendations(sv)
			if err != nil {
				return nil, err
			}
			ds.RdsDBRecommendations = dv
		}

		if key == "errors" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_GetRecommendationErrors(sv)
			if err != nil {
				return nil, err
			}
			ds.Errors = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_GetRecommendationPreferencesOutput(v smithycbor.Value) (*GetRecommendationPreferencesOutput, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &GetRecommendationPreferencesOutput{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "nextToken" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.NextToken = ptr.String(dv)
		}

		if key == "recommendationPreferencesDetails" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_RecommendationPreferencesDetails(sv)
			if err != nil {
				return nil, err
			}
			ds.RecommendationPreferencesDetails = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_GetRecommendationSummariesOutput(v smithycbor.Value) (*GetRecommendationSummariesOutput, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &GetRecommendationSummariesOutput{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "nextToken" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.NextToken = ptr.String(dv)
		}

		if key == "recommendationSummaries" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_RecommendationSummaries(sv)
			if err != nil {
				return nil, err
			}
			ds.RecommendationSummaries = dv
		}
	}
	return ds, nil
}

func deserializeCBOR_UpdateEnrollmentStatusOutput(v smithycbor.Value) (*UpdateEnrollmentStatusOutput, error) {
	av, ok := v.(smithycbor.Map)
	if !ok {
		return nil, fmt.Errorf("unexpected value type %T", v)
	}
	ds := &UpdateEnrollmentStatusOutput{}
	for key, sv := range av {
		_, _ = key, sv
		if key == "status" {

			dv, err := deserializeCBOR_Status(sv)
			if err != nil {
				return nil, err
			}
			ds.Status = dv
		}

		if key == "statusReason" {
			if _, ok := sv.(*smithycbor.Nil); ok {
				continue
			}
			dv, err := deserializeCBOR_String(sv)
			if err != nil {
				return nil, err
			}
			ds.StatusReason = ptr.String(dv)
		}
	}
	return ds, nil
}
func rpc2_deserializeOpErrorDeleteRecommendationPreferences(resp *smithyhttp.Response) error {
	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("read response body: %w", err)}
	}

	typ, msg, v, err := getProtocolErrorInfo(payload)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("get error info: %w", err)}
	}

	if len(typ) == 0 {
		typ = "UnknownError"
	}
	if len(msg) == 0 {
		msg = "UnknownError"
	}

	_ = v
	// namespace can be mangled by service, so matching by error shape name
	errorParts := strings.Split(typ, "#")
	errorName := errorParts[len(errorParts)-1]
	switch string(errorName) {
	case "AccessDeniedException":
		verr, err := deserializeCBOR_AccessDeniedException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#AccessDeniedException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InternalServerException":
		verr, err := deserializeCBOR_InternalServerException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InternalServerException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InvalidParameterValueException":
		verr, err := deserializeCBOR_InvalidParameterValueException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InvalidParameterValueException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "MissingAuthenticationToken":
		verr, err := deserializeCBOR_MissingAuthenticationToken(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#MissingAuthenticationToken: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "OptInRequiredException":
		verr, err := deserializeCBOR_OptInRequiredException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#OptInRequiredException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ResourceNotFoundException":
		verr, err := deserializeCBOR_ResourceNotFoundException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ResourceNotFoundException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ServiceUnavailableException":
		verr, err := deserializeCBOR_ServiceUnavailableException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ServiceUnavailableException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ThrottlingException":
		verr, err := deserializeCBOR_ThrottlingException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ThrottlingException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	default:

		return &smithy.GenericAPIError{Code: typ, Message: msg}
	}
}

func rpc2_deserializeOpErrorDescribeRecommendationExportJobs(resp *smithyhttp.Response) error {
	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("read response body: %w", err)}
	}

	typ, msg, v, err := getProtocolErrorInfo(payload)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("get error info: %w", err)}
	}

	if len(typ) == 0 {
		typ = "UnknownError"
	}
	if len(msg) == 0 {
		msg = "UnknownError"
	}

	_ = v
	// namespace can be mangled by service, so matching by error shape name
	errorParts := strings.Split(typ, "#")
	errorName := errorParts[len(errorParts)-1]
	switch string(errorName) {
	case "AccessDeniedException":
		verr, err := deserializeCBOR_AccessDeniedException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#AccessDeniedException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InternalServerException":
		verr, err := deserializeCBOR_InternalServerException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InternalServerException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InvalidParameterValueException":
		verr, err := deserializeCBOR_InvalidParameterValueException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InvalidParameterValueException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "MissingAuthenticationToken":
		verr, err := deserializeCBOR_MissingAuthenticationToken(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#MissingAuthenticationToken: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "OptInRequiredException":
		verr, err := deserializeCBOR_OptInRequiredException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#OptInRequiredException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ResourceNotFoundException":
		verr, err := deserializeCBOR_ResourceNotFoundException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ResourceNotFoundException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ServiceUnavailableException":
		verr, err := deserializeCBOR_ServiceUnavailableException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ServiceUnavailableException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ThrottlingException":
		verr, err := deserializeCBOR_ThrottlingException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ThrottlingException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	default:

		return &smithy.GenericAPIError{Code: typ, Message: msg}
	}
}

func rpc2_deserializeOpErrorExportAutoScalingGroupRecommendations(resp *smithyhttp.Response) error {
	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("read response body: %w", err)}
	}

	typ, msg, v, err := getProtocolErrorInfo(payload)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("get error info: %w", err)}
	}

	if len(typ) == 0 {
		typ = "UnknownError"
	}
	if len(msg) == 0 {
		msg = "UnknownError"
	}

	_ = v
	// namespace can be mangled by service, so matching by error shape name
	errorParts := strings.Split(typ, "#")
	errorName := errorParts[len(errorParts)-1]
	switch string(errorName) {
	case "AccessDeniedException":
		verr, err := deserializeCBOR_AccessDeniedException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#AccessDeniedException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InternalServerException":
		verr, err := deserializeCBOR_InternalServerException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InternalServerException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InvalidParameterValueException":
		verr, err := deserializeCBOR_InvalidParameterValueException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InvalidParameterValueException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "LimitExceededException":
		verr, err := deserializeCBOR_LimitExceededException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#LimitExceededException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "MissingAuthenticationToken":
		verr, err := deserializeCBOR_MissingAuthenticationToken(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#MissingAuthenticationToken: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "OptInRequiredException":
		verr, err := deserializeCBOR_OptInRequiredException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#OptInRequiredException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ServiceUnavailableException":
		verr, err := deserializeCBOR_ServiceUnavailableException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ServiceUnavailableException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ThrottlingException":
		verr, err := deserializeCBOR_ThrottlingException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ThrottlingException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	default:

		return &smithy.GenericAPIError{Code: typ, Message: msg}
	}
}

func rpc2_deserializeOpErrorExportEBSVolumeRecommendations(resp *smithyhttp.Response) error {
	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("read response body: %w", err)}
	}

	typ, msg, v, err := getProtocolErrorInfo(payload)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("get error info: %w", err)}
	}

	if len(typ) == 0 {
		typ = "UnknownError"
	}
	if len(msg) == 0 {
		msg = "UnknownError"
	}

	_ = v
	// namespace can be mangled by service, so matching by error shape name
	errorParts := strings.Split(typ, "#")
	errorName := errorParts[len(errorParts)-1]
	switch string(errorName) {
	case "AccessDeniedException":
		verr, err := deserializeCBOR_AccessDeniedException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#AccessDeniedException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InternalServerException":
		verr, err := deserializeCBOR_InternalServerException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InternalServerException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InvalidParameterValueException":
		verr, err := deserializeCBOR_InvalidParameterValueException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InvalidParameterValueException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "LimitExceededException":
		verr, err := deserializeCBOR_LimitExceededException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#LimitExceededException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "MissingAuthenticationToken":
		verr, err := deserializeCBOR_MissingAuthenticationToken(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#MissingAuthenticationToken: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "OptInRequiredException":
		verr, err := deserializeCBOR_OptInRequiredException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#OptInRequiredException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ServiceUnavailableException":
		verr, err := deserializeCBOR_ServiceUnavailableException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ServiceUnavailableException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ThrottlingException":
		verr, err := deserializeCBOR_ThrottlingException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ThrottlingException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	default:

		return &smithy.GenericAPIError{Code: typ, Message: msg}
	}
}

func rpc2_deserializeOpErrorExportEC2InstanceRecommendations(resp *smithyhttp.Response) error {
	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("read response body: %w", err)}
	}

	typ, msg, v, err := getProtocolErrorInfo(payload)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("get error info: %w", err)}
	}

	if len(typ) == 0 {
		typ = "UnknownError"
	}
	if len(msg) == 0 {
		msg = "UnknownError"
	}

	_ = v
	// namespace can be mangled by service, so matching by error shape name
	errorParts := strings.Split(typ, "#")
	errorName := errorParts[len(errorParts)-1]
	switch string(errorName) {
	case "AccessDeniedException":
		verr, err := deserializeCBOR_AccessDeniedException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#AccessDeniedException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InternalServerException":
		verr, err := deserializeCBOR_InternalServerException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InternalServerException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InvalidParameterValueException":
		verr, err := deserializeCBOR_InvalidParameterValueException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InvalidParameterValueException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "LimitExceededException":
		verr, err := deserializeCBOR_LimitExceededException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#LimitExceededException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "MissingAuthenticationToken":
		verr, err := deserializeCBOR_MissingAuthenticationToken(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#MissingAuthenticationToken: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "OptInRequiredException":
		verr, err := deserializeCBOR_OptInRequiredException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#OptInRequiredException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ServiceUnavailableException":
		verr, err := deserializeCBOR_ServiceUnavailableException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ServiceUnavailableException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ThrottlingException":
		verr, err := deserializeCBOR_ThrottlingException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ThrottlingException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	default:

		return &smithy.GenericAPIError{Code: typ, Message: msg}
	}
}

func rpc2_deserializeOpErrorExportECSServiceRecommendations(resp *smithyhttp.Response) error {
	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("read response body: %w", err)}
	}

	typ, msg, v, err := getProtocolErrorInfo(payload)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("get error info: %w", err)}
	}

	if len(typ) == 0 {
		typ = "UnknownError"
	}
	if len(msg) == 0 {
		msg = "UnknownError"
	}

	_ = v
	// namespace can be mangled by service, so matching by error shape name
	errorParts := strings.Split(typ, "#")
	errorName := errorParts[len(errorParts)-1]
	switch string(errorName) {
	case "AccessDeniedException":
		verr, err := deserializeCBOR_AccessDeniedException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#AccessDeniedException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InternalServerException":
		verr, err := deserializeCBOR_InternalServerException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InternalServerException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InvalidParameterValueException":
		verr, err := deserializeCBOR_InvalidParameterValueException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InvalidParameterValueException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "LimitExceededException":
		verr, err := deserializeCBOR_LimitExceededException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#LimitExceededException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "MissingAuthenticationToken":
		verr, err := deserializeCBOR_MissingAuthenticationToken(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#MissingAuthenticationToken: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "OptInRequiredException":
		verr, err := deserializeCBOR_OptInRequiredException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#OptInRequiredException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ServiceUnavailableException":
		verr, err := deserializeCBOR_ServiceUnavailableException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ServiceUnavailableException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ThrottlingException":
		verr, err := deserializeCBOR_ThrottlingException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ThrottlingException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	default:

		return &smithy.GenericAPIError{Code: typ, Message: msg}
	}
}

func rpc2_deserializeOpErrorExportIdleRecommendations(resp *smithyhttp.Response) error {
	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("read response body: %w", err)}
	}

	typ, msg, v, err := getProtocolErrorInfo(payload)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("get error info: %w", err)}
	}

	if len(typ) == 0 {
		typ = "UnknownError"
	}
	if len(msg) == 0 {
		msg = "UnknownError"
	}

	_ = v
	// namespace can be mangled by service, so matching by error shape name
	errorParts := strings.Split(typ, "#")
	errorName := errorParts[len(errorParts)-1]
	switch string(errorName) {
	case "AccessDeniedException":
		verr, err := deserializeCBOR_AccessDeniedException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#AccessDeniedException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InternalServerException":
		verr, err := deserializeCBOR_InternalServerException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InternalServerException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InvalidParameterValueException":
		verr, err := deserializeCBOR_InvalidParameterValueException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InvalidParameterValueException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "LimitExceededException":
		verr, err := deserializeCBOR_LimitExceededException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#LimitExceededException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "MissingAuthenticationToken":
		verr, err := deserializeCBOR_MissingAuthenticationToken(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#MissingAuthenticationToken: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "OptInRequiredException":
		verr, err := deserializeCBOR_OptInRequiredException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#OptInRequiredException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ServiceUnavailableException":
		verr, err := deserializeCBOR_ServiceUnavailableException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ServiceUnavailableException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ThrottlingException":
		verr, err := deserializeCBOR_ThrottlingException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ThrottlingException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	default:

		return &smithy.GenericAPIError{Code: typ, Message: msg}
	}
}

func rpc2_deserializeOpErrorExportLambdaFunctionRecommendations(resp *smithyhttp.Response) error {
	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("read response body: %w", err)}
	}

	typ, msg, v, err := getProtocolErrorInfo(payload)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("get error info: %w", err)}
	}

	if len(typ) == 0 {
		typ = "UnknownError"
	}
	if len(msg) == 0 {
		msg = "UnknownError"
	}

	_ = v
	// namespace can be mangled by service, so matching by error shape name
	errorParts := strings.Split(typ, "#")
	errorName := errorParts[len(errorParts)-1]
	switch string(errorName) {
	case "AccessDeniedException":
		verr, err := deserializeCBOR_AccessDeniedException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#AccessDeniedException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InternalServerException":
		verr, err := deserializeCBOR_InternalServerException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InternalServerException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InvalidParameterValueException":
		verr, err := deserializeCBOR_InvalidParameterValueException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InvalidParameterValueException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "LimitExceededException":
		verr, err := deserializeCBOR_LimitExceededException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#LimitExceededException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "MissingAuthenticationToken":
		verr, err := deserializeCBOR_MissingAuthenticationToken(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#MissingAuthenticationToken: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "OptInRequiredException":
		verr, err := deserializeCBOR_OptInRequiredException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#OptInRequiredException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ServiceUnavailableException":
		verr, err := deserializeCBOR_ServiceUnavailableException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ServiceUnavailableException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ThrottlingException":
		verr, err := deserializeCBOR_ThrottlingException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ThrottlingException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	default:

		return &smithy.GenericAPIError{Code: typ, Message: msg}
	}
}

func rpc2_deserializeOpErrorExportLicenseRecommendations(resp *smithyhttp.Response) error {
	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("read response body: %w", err)}
	}

	typ, msg, v, err := getProtocolErrorInfo(payload)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("get error info: %w", err)}
	}

	if len(typ) == 0 {
		typ = "UnknownError"
	}
	if len(msg) == 0 {
		msg = "UnknownError"
	}

	_ = v
	// namespace can be mangled by service, so matching by error shape name
	errorParts := strings.Split(typ, "#")
	errorName := errorParts[len(errorParts)-1]
	switch string(errorName) {
	case "AccessDeniedException":
		verr, err := deserializeCBOR_AccessDeniedException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#AccessDeniedException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InternalServerException":
		verr, err := deserializeCBOR_InternalServerException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InternalServerException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InvalidParameterValueException":
		verr, err := deserializeCBOR_InvalidParameterValueException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InvalidParameterValueException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "LimitExceededException":
		verr, err := deserializeCBOR_LimitExceededException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#LimitExceededException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "MissingAuthenticationToken":
		verr, err := deserializeCBOR_MissingAuthenticationToken(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#MissingAuthenticationToken: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "OptInRequiredException":
		verr, err := deserializeCBOR_OptInRequiredException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#OptInRequiredException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ServiceUnavailableException":
		verr, err := deserializeCBOR_ServiceUnavailableException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ServiceUnavailableException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ThrottlingException":
		verr, err := deserializeCBOR_ThrottlingException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ThrottlingException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	default:

		return &smithy.GenericAPIError{Code: typ, Message: msg}
	}
}

func rpc2_deserializeOpErrorExportRDSDatabaseRecommendations(resp *smithyhttp.Response) error {
	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("read response body: %w", err)}
	}

	typ, msg, v, err := getProtocolErrorInfo(payload)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("get error info: %w", err)}
	}

	if len(typ) == 0 {
		typ = "UnknownError"
	}
	if len(msg) == 0 {
		msg = "UnknownError"
	}

	_ = v
	// namespace can be mangled by service, so matching by error shape name
	errorParts := strings.Split(typ, "#")
	errorName := errorParts[len(errorParts)-1]
	switch string(errorName) {
	case "AccessDeniedException":
		verr, err := deserializeCBOR_AccessDeniedException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#AccessDeniedException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InternalServerException":
		verr, err := deserializeCBOR_InternalServerException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InternalServerException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InvalidParameterValueException":
		verr, err := deserializeCBOR_InvalidParameterValueException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InvalidParameterValueException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "LimitExceededException":
		verr, err := deserializeCBOR_LimitExceededException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#LimitExceededException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "MissingAuthenticationToken":
		verr, err := deserializeCBOR_MissingAuthenticationToken(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#MissingAuthenticationToken: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "OptInRequiredException":
		verr, err := deserializeCBOR_OptInRequiredException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#OptInRequiredException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ServiceUnavailableException":
		verr, err := deserializeCBOR_ServiceUnavailableException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ServiceUnavailableException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ThrottlingException":
		verr, err := deserializeCBOR_ThrottlingException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ThrottlingException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	default:

		return &smithy.GenericAPIError{Code: typ, Message: msg}
	}
}

func rpc2_deserializeOpErrorGetAutoScalingGroupRecommendations(resp *smithyhttp.Response) error {
	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("read response body: %w", err)}
	}

	typ, msg, v, err := getProtocolErrorInfo(payload)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("get error info: %w", err)}
	}

	if len(typ) == 0 {
		typ = "UnknownError"
	}
	if len(msg) == 0 {
		msg = "UnknownError"
	}

	_ = v
	// namespace can be mangled by service, so matching by error shape name
	errorParts := strings.Split(typ, "#")
	errorName := errorParts[len(errorParts)-1]
	switch string(errorName) {
	case "AccessDeniedException":
		verr, err := deserializeCBOR_AccessDeniedException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#AccessDeniedException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InternalServerException":
		verr, err := deserializeCBOR_InternalServerException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InternalServerException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InvalidParameterValueException":
		verr, err := deserializeCBOR_InvalidParameterValueException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InvalidParameterValueException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "MissingAuthenticationToken":
		verr, err := deserializeCBOR_MissingAuthenticationToken(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#MissingAuthenticationToken: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "OptInRequiredException":
		verr, err := deserializeCBOR_OptInRequiredException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#OptInRequiredException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ResourceNotFoundException":
		verr, err := deserializeCBOR_ResourceNotFoundException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ResourceNotFoundException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ServiceUnavailableException":
		verr, err := deserializeCBOR_ServiceUnavailableException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ServiceUnavailableException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ThrottlingException":
		verr, err := deserializeCBOR_ThrottlingException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ThrottlingException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	default:

		return &smithy.GenericAPIError{Code: typ, Message: msg}
	}
}

func rpc2_deserializeOpErrorGetEBSVolumeRecommendations(resp *smithyhttp.Response) error {
	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("read response body: %w", err)}
	}

	typ, msg, v, err := getProtocolErrorInfo(payload)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("get error info: %w", err)}
	}

	if len(typ) == 0 {
		typ = "UnknownError"
	}
	if len(msg) == 0 {
		msg = "UnknownError"
	}

	_ = v
	// namespace can be mangled by service, so matching by error shape name
	errorParts := strings.Split(typ, "#")
	errorName := errorParts[len(errorParts)-1]
	switch string(errorName) {
	case "AccessDeniedException":
		verr, err := deserializeCBOR_AccessDeniedException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#AccessDeniedException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InternalServerException":
		verr, err := deserializeCBOR_InternalServerException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InternalServerException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InvalidParameterValueException":
		verr, err := deserializeCBOR_InvalidParameterValueException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InvalidParameterValueException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "MissingAuthenticationToken":
		verr, err := deserializeCBOR_MissingAuthenticationToken(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#MissingAuthenticationToken: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "OptInRequiredException":
		verr, err := deserializeCBOR_OptInRequiredException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#OptInRequiredException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ResourceNotFoundException":
		verr, err := deserializeCBOR_ResourceNotFoundException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ResourceNotFoundException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ServiceUnavailableException":
		verr, err := deserializeCBOR_ServiceUnavailableException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ServiceUnavailableException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ThrottlingException":
		verr, err := deserializeCBOR_ThrottlingException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ThrottlingException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	default:

		return &smithy.GenericAPIError{Code: typ, Message: msg}
	}
}

func rpc2_deserializeOpErrorGetEC2InstanceRecommendations(resp *smithyhttp.Response) error {
	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("read response body: %w", err)}
	}

	typ, msg, v, err := getProtocolErrorInfo(payload)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("get error info: %w", err)}
	}

	if len(typ) == 0 {
		typ = "UnknownError"
	}
	if len(msg) == 0 {
		msg = "UnknownError"
	}

	_ = v
	// namespace can be mangled by service, so matching by error shape name
	errorParts := strings.Split(typ, "#")
	errorName := errorParts[len(errorParts)-1]
	switch string(errorName) {
	case "AccessDeniedException":
		verr, err := deserializeCBOR_AccessDeniedException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#AccessDeniedException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InternalServerException":
		verr, err := deserializeCBOR_InternalServerException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InternalServerException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InvalidParameterValueException":
		verr, err := deserializeCBOR_InvalidParameterValueException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InvalidParameterValueException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "MissingAuthenticationToken":
		verr, err := deserializeCBOR_MissingAuthenticationToken(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#MissingAuthenticationToken: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "OptInRequiredException":
		verr, err := deserializeCBOR_OptInRequiredException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#OptInRequiredException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ResourceNotFoundException":
		verr, err := deserializeCBOR_ResourceNotFoundException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ResourceNotFoundException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ServiceUnavailableException":
		verr, err := deserializeCBOR_ServiceUnavailableException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ServiceUnavailableException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ThrottlingException":
		verr, err := deserializeCBOR_ThrottlingException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ThrottlingException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	default:

		return &smithy.GenericAPIError{Code: typ, Message: msg}
	}
}

func rpc2_deserializeOpErrorGetEC2RecommendationProjectedMetrics(resp *smithyhttp.Response) error {
	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("read response body: %w", err)}
	}

	typ, msg, v, err := getProtocolErrorInfo(payload)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("get error info: %w", err)}
	}

	if len(typ) == 0 {
		typ = "UnknownError"
	}
	if len(msg) == 0 {
		msg = "UnknownError"
	}

	_ = v
	// namespace can be mangled by service, so matching by error shape name
	errorParts := strings.Split(typ, "#")
	errorName := errorParts[len(errorParts)-1]
	switch string(errorName) {
	case "AccessDeniedException":
		verr, err := deserializeCBOR_AccessDeniedException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#AccessDeniedException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InternalServerException":
		verr, err := deserializeCBOR_InternalServerException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InternalServerException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InvalidParameterValueException":
		verr, err := deserializeCBOR_InvalidParameterValueException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InvalidParameterValueException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "MissingAuthenticationToken":
		verr, err := deserializeCBOR_MissingAuthenticationToken(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#MissingAuthenticationToken: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "OptInRequiredException":
		verr, err := deserializeCBOR_OptInRequiredException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#OptInRequiredException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ResourceNotFoundException":
		verr, err := deserializeCBOR_ResourceNotFoundException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ResourceNotFoundException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ServiceUnavailableException":
		verr, err := deserializeCBOR_ServiceUnavailableException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ServiceUnavailableException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ThrottlingException":
		verr, err := deserializeCBOR_ThrottlingException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ThrottlingException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	default:

		return &smithy.GenericAPIError{Code: typ, Message: msg}
	}
}

func rpc2_deserializeOpErrorGetECSServiceRecommendationProjectedMetrics(resp *smithyhttp.Response) error {
	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("read response body: %w", err)}
	}

	typ, msg, v, err := getProtocolErrorInfo(payload)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("get error info: %w", err)}
	}

	if len(typ) == 0 {
		typ = "UnknownError"
	}
	if len(msg) == 0 {
		msg = "UnknownError"
	}

	_ = v
	// namespace can be mangled by service, so matching by error shape name
	errorParts := strings.Split(typ, "#")
	errorName := errorParts[len(errorParts)-1]
	switch string(errorName) {
	case "AccessDeniedException":
		verr, err := deserializeCBOR_AccessDeniedException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#AccessDeniedException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InternalServerException":
		verr, err := deserializeCBOR_InternalServerException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InternalServerException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InvalidParameterValueException":
		verr, err := deserializeCBOR_InvalidParameterValueException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InvalidParameterValueException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "MissingAuthenticationToken":
		verr, err := deserializeCBOR_MissingAuthenticationToken(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#MissingAuthenticationToken: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "OptInRequiredException":
		verr, err := deserializeCBOR_OptInRequiredException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#OptInRequiredException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ResourceNotFoundException":
		verr, err := deserializeCBOR_ResourceNotFoundException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ResourceNotFoundException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ServiceUnavailableException":
		verr, err := deserializeCBOR_ServiceUnavailableException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ServiceUnavailableException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ThrottlingException":
		verr, err := deserializeCBOR_ThrottlingException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ThrottlingException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	default:

		return &smithy.GenericAPIError{Code: typ, Message: msg}
	}
}

func rpc2_deserializeOpErrorGetECSServiceRecommendations(resp *smithyhttp.Response) error {
	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("read response body: %w", err)}
	}

	typ, msg, v, err := getProtocolErrorInfo(payload)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("get error info: %w", err)}
	}

	if len(typ) == 0 {
		typ = "UnknownError"
	}
	if len(msg) == 0 {
		msg = "UnknownError"
	}

	_ = v
	// namespace can be mangled by service, so matching by error shape name
	errorParts := strings.Split(typ, "#")
	errorName := errorParts[len(errorParts)-1]
	switch string(errorName) {
	case "AccessDeniedException":
		verr, err := deserializeCBOR_AccessDeniedException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#AccessDeniedException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InternalServerException":
		verr, err := deserializeCBOR_InternalServerException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InternalServerException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InvalidParameterValueException":
		verr, err := deserializeCBOR_InvalidParameterValueException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InvalidParameterValueException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "MissingAuthenticationToken":
		verr, err := deserializeCBOR_MissingAuthenticationToken(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#MissingAuthenticationToken: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "OptInRequiredException":
		verr, err := deserializeCBOR_OptInRequiredException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#OptInRequiredException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ResourceNotFoundException":
		verr, err := deserializeCBOR_ResourceNotFoundException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ResourceNotFoundException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ServiceUnavailableException":
		verr, err := deserializeCBOR_ServiceUnavailableException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ServiceUnavailableException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ThrottlingException":
		verr, err := deserializeCBOR_ThrottlingException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ThrottlingException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	default:

		return &smithy.GenericAPIError{Code: typ, Message: msg}
	}
}

func rpc2_deserializeOpErrorGetEffectiveRecommendationPreferences(resp *smithyhttp.Response) error {
	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("read response body: %w", err)}
	}

	typ, msg, v, err := getProtocolErrorInfo(payload)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("get error info: %w", err)}
	}

	if len(typ) == 0 {
		typ = "UnknownError"
	}
	if len(msg) == 0 {
		msg = "UnknownError"
	}

	_ = v
	// namespace can be mangled by service, so matching by error shape name
	errorParts := strings.Split(typ, "#")
	errorName := errorParts[len(errorParts)-1]
	switch string(errorName) {
	case "AccessDeniedException":
		verr, err := deserializeCBOR_AccessDeniedException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#AccessDeniedException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InternalServerException":
		verr, err := deserializeCBOR_InternalServerException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InternalServerException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InvalidParameterValueException":
		verr, err := deserializeCBOR_InvalidParameterValueException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InvalidParameterValueException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "MissingAuthenticationToken":
		verr, err := deserializeCBOR_MissingAuthenticationToken(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#MissingAuthenticationToken: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "OptInRequiredException":
		verr, err := deserializeCBOR_OptInRequiredException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#OptInRequiredException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ResourceNotFoundException":
		verr, err := deserializeCBOR_ResourceNotFoundException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ResourceNotFoundException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ServiceUnavailableException":
		verr, err := deserializeCBOR_ServiceUnavailableException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ServiceUnavailableException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ThrottlingException":
		verr, err := deserializeCBOR_ThrottlingException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ThrottlingException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	default:

		return &smithy.GenericAPIError{Code: typ, Message: msg}
	}
}

func rpc2_deserializeOpErrorGetEnrollmentStatus(resp *smithyhttp.Response) error {
	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("read response body: %w", err)}
	}

	typ, msg, v, err := getProtocolErrorInfo(payload)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("get error info: %w", err)}
	}

	if len(typ) == 0 {
		typ = "UnknownError"
	}
	if len(msg) == 0 {
		msg = "UnknownError"
	}

	_ = v
	// namespace can be mangled by service, so matching by error shape name
	errorParts := strings.Split(typ, "#")
	errorName := errorParts[len(errorParts)-1]
	switch string(errorName) {
	case "AccessDeniedException":
		verr, err := deserializeCBOR_AccessDeniedException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#AccessDeniedException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InternalServerException":
		verr, err := deserializeCBOR_InternalServerException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InternalServerException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InvalidParameterValueException":
		verr, err := deserializeCBOR_InvalidParameterValueException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InvalidParameterValueException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "MissingAuthenticationToken":
		verr, err := deserializeCBOR_MissingAuthenticationToken(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#MissingAuthenticationToken: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ServiceUnavailableException":
		verr, err := deserializeCBOR_ServiceUnavailableException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ServiceUnavailableException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ThrottlingException":
		verr, err := deserializeCBOR_ThrottlingException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ThrottlingException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	default:

		return &smithy.GenericAPIError{Code: typ, Message: msg}
	}
}

func rpc2_deserializeOpErrorGetEnrollmentStatusesForOrganization(resp *smithyhttp.Response) error {
	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("read response body: %w", err)}
	}

	typ, msg, v, err := getProtocolErrorInfo(payload)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("get error info: %w", err)}
	}

	if len(typ) == 0 {
		typ = "UnknownError"
	}
	if len(msg) == 0 {
		msg = "UnknownError"
	}

	_ = v
	// namespace can be mangled by service, so matching by error shape name
	errorParts := strings.Split(typ, "#")
	errorName := errorParts[len(errorParts)-1]
	switch string(errorName) {
	case "AccessDeniedException":
		verr, err := deserializeCBOR_AccessDeniedException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#AccessDeniedException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InternalServerException":
		verr, err := deserializeCBOR_InternalServerException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InternalServerException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InvalidParameterValueException":
		verr, err := deserializeCBOR_InvalidParameterValueException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InvalidParameterValueException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "MissingAuthenticationToken":
		verr, err := deserializeCBOR_MissingAuthenticationToken(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#MissingAuthenticationToken: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ServiceUnavailableException":
		verr, err := deserializeCBOR_ServiceUnavailableException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ServiceUnavailableException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ThrottlingException":
		verr, err := deserializeCBOR_ThrottlingException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ThrottlingException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	default:

		return &smithy.GenericAPIError{Code: typ, Message: msg}
	}
}

func rpc2_deserializeOpErrorGetIdleRecommendations(resp *smithyhttp.Response) error {
	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("read response body: %w", err)}
	}

	typ, msg, v, err := getProtocolErrorInfo(payload)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("get error info: %w", err)}
	}

	if len(typ) == 0 {
		typ = "UnknownError"
	}
	if len(msg) == 0 {
		msg = "UnknownError"
	}

	_ = v
	// namespace can be mangled by service, so matching by error shape name
	errorParts := strings.Split(typ, "#")
	errorName := errorParts[len(errorParts)-1]
	switch string(errorName) {
	case "AccessDeniedException":
		verr, err := deserializeCBOR_AccessDeniedException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#AccessDeniedException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InternalServerException":
		verr, err := deserializeCBOR_InternalServerException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InternalServerException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InvalidParameterValueException":
		verr, err := deserializeCBOR_InvalidParameterValueException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InvalidParameterValueException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "MissingAuthenticationToken":
		verr, err := deserializeCBOR_MissingAuthenticationToken(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#MissingAuthenticationToken: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "OptInRequiredException":
		verr, err := deserializeCBOR_OptInRequiredException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#OptInRequiredException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ResourceNotFoundException":
		verr, err := deserializeCBOR_ResourceNotFoundException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ResourceNotFoundException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ServiceUnavailableException":
		verr, err := deserializeCBOR_ServiceUnavailableException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ServiceUnavailableException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ThrottlingException":
		verr, err := deserializeCBOR_ThrottlingException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ThrottlingException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	default:

		return &smithy.GenericAPIError{Code: typ, Message: msg}
	}
}

func rpc2_deserializeOpErrorGetLambdaFunctionRecommendations(resp *smithyhttp.Response) error {
	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("read response body: %w", err)}
	}

	typ, msg, v, err := getProtocolErrorInfo(payload)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("get error info: %w", err)}
	}

	if len(typ) == 0 {
		typ = "UnknownError"
	}
	if len(msg) == 0 {
		msg = "UnknownError"
	}

	_ = v
	// namespace can be mangled by service, so matching by error shape name
	errorParts := strings.Split(typ, "#")
	errorName := errorParts[len(errorParts)-1]
	switch string(errorName) {
	case "AccessDeniedException":
		verr, err := deserializeCBOR_AccessDeniedException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#AccessDeniedException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InternalServerException":
		verr, err := deserializeCBOR_InternalServerException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InternalServerException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InvalidParameterValueException":
		verr, err := deserializeCBOR_InvalidParameterValueException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InvalidParameterValueException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "LimitExceededException":
		verr, err := deserializeCBOR_LimitExceededException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#LimitExceededException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "MissingAuthenticationToken":
		verr, err := deserializeCBOR_MissingAuthenticationToken(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#MissingAuthenticationToken: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "OptInRequiredException":
		verr, err := deserializeCBOR_OptInRequiredException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#OptInRequiredException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ServiceUnavailableException":
		verr, err := deserializeCBOR_ServiceUnavailableException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ServiceUnavailableException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ThrottlingException":
		verr, err := deserializeCBOR_ThrottlingException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ThrottlingException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	default:

		return &smithy.GenericAPIError{Code: typ, Message: msg}
	}
}

func rpc2_deserializeOpErrorGetLicenseRecommendations(resp *smithyhttp.Response) error {
	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("read response body: %w", err)}
	}

	typ, msg, v, err := getProtocolErrorInfo(payload)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("get error info: %w", err)}
	}

	if len(typ) == 0 {
		typ = "UnknownError"
	}
	if len(msg) == 0 {
		msg = "UnknownError"
	}

	_ = v
	// namespace can be mangled by service, so matching by error shape name
	errorParts := strings.Split(typ, "#")
	errorName := errorParts[len(errorParts)-1]
	switch string(errorName) {
	case "AccessDeniedException":
		verr, err := deserializeCBOR_AccessDeniedException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#AccessDeniedException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InternalServerException":
		verr, err := deserializeCBOR_InternalServerException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InternalServerException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InvalidParameterValueException":
		verr, err := deserializeCBOR_InvalidParameterValueException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InvalidParameterValueException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "MissingAuthenticationToken":
		verr, err := deserializeCBOR_MissingAuthenticationToken(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#MissingAuthenticationToken: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "OptInRequiredException":
		verr, err := deserializeCBOR_OptInRequiredException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#OptInRequiredException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ResourceNotFoundException":
		verr, err := deserializeCBOR_ResourceNotFoundException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ResourceNotFoundException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ServiceUnavailableException":
		verr, err := deserializeCBOR_ServiceUnavailableException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ServiceUnavailableException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ThrottlingException":
		verr, err := deserializeCBOR_ThrottlingException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ThrottlingException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	default:

		return &smithy.GenericAPIError{Code: typ, Message: msg}
	}
}

func rpc2_deserializeOpErrorGetRDSDatabaseRecommendationProjectedMetrics(resp *smithyhttp.Response) error {
	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("read response body: %w", err)}
	}

	typ, msg, v, err := getProtocolErrorInfo(payload)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("get error info: %w", err)}
	}

	if len(typ) == 0 {
		typ = "UnknownError"
	}
	if len(msg) == 0 {
		msg = "UnknownError"
	}

	_ = v
	// namespace can be mangled by service, so matching by error shape name
	errorParts := strings.Split(typ, "#")
	errorName := errorParts[len(errorParts)-1]
	switch string(errorName) {
	case "AccessDeniedException":
		verr, err := deserializeCBOR_AccessDeniedException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#AccessDeniedException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InternalServerException":
		verr, err := deserializeCBOR_InternalServerException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InternalServerException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InvalidParameterValueException":
		verr, err := deserializeCBOR_InvalidParameterValueException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InvalidParameterValueException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "MissingAuthenticationToken":
		verr, err := deserializeCBOR_MissingAuthenticationToken(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#MissingAuthenticationToken: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "OptInRequiredException":
		verr, err := deserializeCBOR_OptInRequiredException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#OptInRequiredException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ResourceNotFoundException":
		verr, err := deserializeCBOR_ResourceNotFoundException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ResourceNotFoundException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ServiceUnavailableException":
		verr, err := deserializeCBOR_ServiceUnavailableException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ServiceUnavailableException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ThrottlingException":
		verr, err := deserializeCBOR_ThrottlingException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ThrottlingException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	default:

		return &smithy.GenericAPIError{Code: typ, Message: msg}
	}
}

func rpc2_deserializeOpErrorGetRDSDatabaseRecommendations(resp *smithyhttp.Response) error {
	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("read response body: %w", err)}
	}

	typ, msg, v, err := getProtocolErrorInfo(payload)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("get error info: %w", err)}
	}

	if len(typ) == 0 {
		typ = "UnknownError"
	}
	if len(msg) == 0 {
		msg = "UnknownError"
	}

	_ = v
	// namespace can be mangled by service, so matching by error shape name
	errorParts := strings.Split(typ, "#")
	errorName := errorParts[len(errorParts)-1]
	switch string(errorName) {
	case "AccessDeniedException":
		verr, err := deserializeCBOR_AccessDeniedException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#AccessDeniedException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InternalServerException":
		verr, err := deserializeCBOR_InternalServerException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InternalServerException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InvalidParameterValueException":
		verr, err := deserializeCBOR_InvalidParameterValueException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InvalidParameterValueException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "MissingAuthenticationToken":
		verr, err := deserializeCBOR_MissingAuthenticationToken(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#MissingAuthenticationToken: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "OptInRequiredException":
		verr, err := deserializeCBOR_OptInRequiredException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#OptInRequiredException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ResourceNotFoundException":
		verr, err := deserializeCBOR_ResourceNotFoundException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ResourceNotFoundException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ServiceUnavailableException":
		verr, err := deserializeCBOR_ServiceUnavailableException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ServiceUnavailableException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ThrottlingException":
		verr, err := deserializeCBOR_ThrottlingException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ThrottlingException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	default:

		return &smithy.GenericAPIError{Code: typ, Message: msg}
	}
}

func rpc2_deserializeOpErrorGetRecommendationPreferences(resp *smithyhttp.Response) error {
	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("read response body: %w", err)}
	}

	typ, msg, v, err := getProtocolErrorInfo(payload)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("get error info: %w", err)}
	}

	if len(typ) == 0 {
		typ = "UnknownError"
	}
	if len(msg) == 0 {
		msg = "UnknownError"
	}

	_ = v
	// namespace can be mangled by service, so matching by error shape name
	errorParts := strings.Split(typ, "#")
	errorName := errorParts[len(errorParts)-1]
	switch string(errorName) {
	case "AccessDeniedException":
		verr, err := deserializeCBOR_AccessDeniedException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#AccessDeniedException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InternalServerException":
		verr, err := deserializeCBOR_InternalServerException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InternalServerException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InvalidParameterValueException":
		verr, err := deserializeCBOR_InvalidParameterValueException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InvalidParameterValueException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "MissingAuthenticationToken":
		verr, err := deserializeCBOR_MissingAuthenticationToken(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#MissingAuthenticationToken: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "OptInRequiredException":
		verr, err := deserializeCBOR_OptInRequiredException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#OptInRequiredException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ResourceNotFoundException":
		verr, err := deserializeCBOR_ResourceNotFoundException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ResourceNotFoundException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ServiceUnavailableException":
		verr, err := deserializeCBOR_ServiceUnavailableException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ServiceUnavailableException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ThrottlingException":
		verr, err := deserializeCBOR_ThrottlingException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ThrottlingException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	default:

		return &smithy.GenericAPIError{Code: typ, Message: msg}
	}
}

func rpc2_deserializeOpErrorGetRecommendationSummaries(resp *smithyhttp.Response) error {
	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("read response body: %w", err)}
	}

	typ, msg, v, err := getProtocolErrorInfo(payload)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("get error info: %w", err)}
	}

	if len(typ) == 0 {
		typ = "UnknownError"
	}
	if len(msg) == 0 {
		msg = "UnknownError"
	}

	_ = v
	// namespace can be mangled by service, so matching by error shape name
	errorParts := strings.Split(typ, "#")
	errorName := errorParts[len(errorParts)-1]
	switch string(errorName) {
	case "AccessDeniedException":
		verr, err := deserializeCBOR_AccessDeniedException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#AccessDeniedException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InternalServerException":
		verr, err := deserializeCBOR_InternalServerException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InternalServerException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InvalidParameterValueException":
		verr, err := deserializeCBOR_InvalidParameterValueException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InvalidParameterValueException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "MissingAuthenticationToken":
		verr, err := deserializeCBOR_MissingAuthenticationToken(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#MissingAuthenticationToken: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "OptInRequiredException":
		verr, err := deserializeCBOR_OptInRequiredException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#OptInRequiredException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ServiceUnavailableException":
		verr, err := deserializeCBOR_ServiceUnavailableException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ServiceUnavailableException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ThrottlingException":
		verr, err := deserializeCBOR_ThrottlingException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ThrottlingException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	default:

		return &smithy.GenericAPIError{Code: typ, Message: msg}
	}
}

func rpc2_deserializeOpErrorPutRecommendationPreferences(resp *smithyhttp.Response) error {
	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("read response body: %w", err)}
	}

	typ, msg, v, err := getProtocolErrorInfo(payload)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("get error info: %w", err)}
	}

	if len(typ) == 0 {
		typ = "UnknownError"
	}
	if len(msg) == 0 {
		msg = "UnknownError"
	}

	_ = v
	// namespace can be mangled by service, so matching by error shape name
	errorParts := strings.Split(typ, "#")
	errorName := errorParts[len(errorParts)-1]
	switch string(errorName) {
	case "AccessDeniedException":
		verr, err := deserializeCBOR_AccessDeniedException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#AccessDeniedException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InternalServerException":
		verr, err := deserializeCBOR_InternalServerException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InternalServerException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InvalidParameterValueException":
		verr, err := deserializeCBOR_InvalidParameterValueException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InvalidParameterValueException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "MissingAuthenticationToken":
		verr, err := deserializeCBOR_MissingAuthenticationToken(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#MissingAuthenticationToken: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "OptInRequiredException":
		verr, err := deserializeCBOR_OptInRequiredException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#OptInRequiredException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ResourceNotFoundException":
		verr, err := deserializeCBOR_ResourceNotFoundException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ResourceNotFoundException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ServiceUnavailableException":
		verr, err := deserializeCBOR_ServiceUnavailableException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ServiceUnavailableException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ThrottlingException":
		verr, err := deserializeCBOR_ThrottlingException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ThrottlingException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	default:

		return &smithy.GenericAPIError{Code: typ, Message: msg}
	}
}

func rpc2_deserializeOpErrorUpdateEnrollmentStatus(resp *smithyhttp.Response) error {
	payload, err := io.ReadAll(resp.Body)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("read response body: %w", err)}
	}

	typ, msg, v, err := getProtocolErrorInfo(payload)
	if err != nil {
		return &smithy.DeserializationError{Err: fmt.Errorf("get error info: %w", err)}
	}

	if len(typ) == 0 {
		typ = "UnknownError"
	}
	if len(msg) == 0 {
		msg = "UnknownError"
	}

	_ = v
	// namespace can be mangled by service, so matching by error shape name
	errorParts := strings.Split(typ, "#")
	errorName := errorParts[len(errorParts)-1]
	switch string(errorName) {
	case "AccessDeniedException":
		verr, err := deserializeCBOR_AccessDeniedException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#AccessDeniedException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InternalServerException":
		verr, err := deserializeCBOR_InternalServerException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InternalServerException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "InvalidParameterValueException":
		verr, err := deserializeCBOR_InvalidParameterValueException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#InvalidParameterValueException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "MissingAuthenticationToken":
		verr, err := deserializeCBOR_MissingAuthenticationToken(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#MissingAuthenticationToken: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ServiceUnavailableException":
		verr, err := deserializeCBOR_ServiceUnavailableException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ServiceUnavailableException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	case "ThrottlingException":
		verr, err := deserializeCBOR_ThrottlingException(v)
		if err != nil {
			return &smithy.DeserializationError{
				Err:      fmt.Errorf("deserialize com.amazonaws.computeoptimizer#ThrottlingException: %w", err),
				Snapshot: payload,
			}
		}

		return verr
	default:

		return &smithy.GenericAPIError{Code: typ, Message: msg}
	}
}
func getProtocolErrorInfo(payload []byte) (typ, msg string, v smithycbor.Value, err error) {
	v, err = smithycbor.Decode(payload)
	if err != nil {
		return "", "", nil, fmt.Errorf("decode: %w", err)
	}

	mv, ok := v.(smithycbor.Map)
	if !ok {
		return "", "", nil, fmt.Errorf("unexpected payload type %T", v)
	}

	if ctyp, ok := mv["__type"]; ok {
		if ttyp, ok := ctyp.(smithycbor.String); ok {
			typ = string(ttyp)
		}
	}

	if cmsg, ok := mv["message"]; ok {
		if tmsg, ok := cmsg.(smithycbor.String); ok {
			msg = string(tmsg)
		}
	}

	return typ, msg, mv, nil
}
func getAwsQueryErrorCode(resp *smithyhttp.Response) string {
	header := resp.Header.Get("x-amzn-query-error")
	if header == "" {
		return ""
	}

	parts := strings.Split(header, ";")
	if len(parts) != 2 {
		return ""
	}

	return parts[0]
}
