service/georoutes/deserializers.go (8,374 lines of code) (raw):
// Code generated by smithy-go-codegen DO NOT EDIT.
package georoutes
import (
"bytes"
"context"
"encoding/json"
"fmt"
"github.com/aws/aws-sdk-go-v2/aws/protocol/restjson"
"github.com/aws/aws-sdk-go-v2/service/georoutes/types"
smithy "github.com/aws/smithy-go"
smithyio "github.com/aws/smithy-go/io"
"github.com/aws/smithy-go/middleware"
"github.com/aws/smithy-go/ptr"
smithytime "github.com/aws/smithy-go/time"
"github.com/aws/smithy-go/tracing"
smithyhttp "github.com/aws/smithy-go/transport/http"
"io"
"math"
"strings"
"time"
)
func deserializeS3Expires(v string) (*time.Time, error) {
t, err := smithytime.ParseHTTPDate(v)
if err != nil {
return nil, nil
}
return &t, nil
}
type awsRestjson1_deserializeOpCalculateIsolines struct {
}
func (*awsRestjson1_deserializeOpCalculateIsolines) ID() string {
return "OperationDeserializer"
}
func (m *awsRestjson1_deserializeOpCalculateIsolines) 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)
if err != nil {
return out, metadata, err
}
_, span := tracing.StartSpan(ctx, "OperationDeserializer")
endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
defer endTimer()
defer span.End()
response, ok := out.RawResponse.(*smithyhttp.Response)
if !ok {
return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
}
if response.StatusCode < 200 || response.StatusCode >= 300 {
return out, metadata, awsRestjson1_deserializeOpErrorCalculateIsolines(response, &metadata)
}
output := &CalculateIsolinesOutput{}
out.Result = output
err = awsRestjson1_deserializeOpHttpBindingsCalculateIsolinesOutput(output, response)
if err != nil {
return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)}
}
var buff [1024]byte
ringBuffer := smithyio.NewRingBuffer(buff[:])
body := io.TeeReader(response.Body, ringBuffer)
decoder := json.NewDecoder(body)
decoder.UseNumber()
var shape interface{}
if err := decoder.Decode(&shape); err != nil && err != io.EOF {
var snapshot bytes.Buffer
io.Copy(&snapshot, ringBuffer)
err = &smithy.DeserializationError{
Err: fmt.Errorf("failed to decode response body, %w", err),
Snapshot: snapshot.Bytes(),
}
return out, metadata, err
}
err = awsRestjson1_deserializeOpDocumentCalculateIsolinesOutput(&output, shape)
if err != nil {
var snapshot bytes.Buffer
io.Copy(&snapshot, ringBuffer)
return out, metadata, &smithy.DeserializationError{
Err: fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
Snapshot: snapshot.Bytes(),
}
}
span.End()
return out, metadata, err
}
func awsRestjson1_deserializeOpErrorCalculateIsolines(response *smithyhttp.Response, metadata *middleware.Metadata) error {
var errorBuffer bytes.Buffer
if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
}
errorBody := bytes.NewReader(errorBuffer.Bytes())
errorCode := "UnknownError"
errorMessage := errorCode
headerCode := response.Header.Get("X-Amzn-ErrorType")
if len(headerCode) != 0 {
errorCode = restjson.SanitizeErrorCode(headerCode)
}
var buff [1024]byte
ringBuffer := smithyio.NewRingBuffer(buff[:])
body := io.TeeReader(errorBody, ringBuffer)
decoder := json.NewDecoder(body)
decoder.UseNumber()
jsonCode, message, err := restjson.GetErrorInfo(decoder)
if err != nil {
var snapshot bytes.Buffer
io.Copy(&snapshot, ringBuffer)
err = &smithy.DeserializationError{
Err: fmt.Errorf("failed to decode response body, %w", err),
Snapshot: snapshot.Bytes(),
}
return err
}
errorBody.Seek(0, io.SeekStart)
if len(headerCode) == 0 && len(jsonCode) != 0 {
errorCode = restjson.SanitizeErrorCode(jsonCode)
}
if len(message) != 0 {
errorMessage = message
}
switch {
case strings.EqualFold("AccessDeniedException", errorCode):
return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody)
case strings.EqualFold("InternalServerException", errorCode):
return awsRestjson1_deserializeErrorInternalServerException(response, errorBody)
case strings.EqualFold("ThrottlingException", errorCode):
return awsRestjson1_deserializeErrorThrottlingException(response, errorBody)
case strings.EqualFold("ValidationException", errorCode):
return awsRestjson1_deserializeErrorValidationException(response, errorBody)
default:
genericError := &smithy.GenericAPIError{
Code: errorCode,
Message: errorMessage,
}
return genericError
}
}
func awsRestjson1_deserializeOpHttpBindingsCalculateIsolinesOutput(v *CalculateIsolinesOutput, response *smithyhttp.Response) error {
if v == nil {
return fmt.Errorf("unsupported deserialization for nil %T", v)
}
if headerValues := response.Header.Values("x-amz-geo-pricing-bucket"); len(headerValues) != 0 {
headerValues[0] = strings.TrimSpace(headerValues[0])
v.PricingBucket = ptr.String(headerValues[0])
}
return nil
}
func awsRestjson1_deserializeOpDocumentCalculateIsolinesOutput(v **CalculateIsolinesOutput, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *CalculateIsolinesOutput
if *v == nil {
sv = &CalculateIsolinesOutput{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "ArrivalTime":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected TimestampWithTimezoneOffset to be of type string, got %T instead", value)
}
sv.ArrivalTime = ptr.String(jtv)
}
case "DepartureTime":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected TimestampWithTimezoneOffset to be of type string, got %T instead", value)
}
sv.DepartureTime = ptr.String(jtv)
}
case "IsolineGeometryFormat":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected GeometryFormat to be of type string, got %T instead", value)
}
sv.IsolineGeometryFormat = types.GeometryFormat(jtv)
}
case "Isolines":
if err := awsRestjson1_deserializeDocumentIsolineList(&sv.Isolines, value); err != nil {
return err
}
case "SnappedDestination":
if err := awsRestjson1_deserializeDocumentPosition(&sv.SnappedDestination, value); err != nil {
return err
}
case "SnappedOrigin":
if err := awsRestjson1_deserializeDocumentPosition(&sv.SnappedOrigin, value); err != nil {
return err
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
type awsRestjson1_deserializeOpCalculateRouteMatrix struct {
}
func (*awsRestjson1_deserializeOpCalculateRouteMatrix) ID() string {
return "OperationDeserializer"
}
func (m *awsRestjson1_deserializeOpCalculateRouteMatrix) 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)
if err != nil {
return out, metadata, err
}
_, span := tracing.StartSpan(ctx, "OperationDeserializer")
endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
defer endTimer()
defer span.End()
response, ok := out.RawResponse.(*smithyhttp.Response)
if !ok {
return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
}
if response.StatusCode < 200 || response.StatusCode >= 300 {
return out, metadata, awsRestjson1_deserializeOpErrorCalculateRouteMatrix(response, &metadata)
}
output := &CalculateRouteMatrixOutput{}
out.Result = output
err = awsRestjson1_deserializeOpHttpBindingsCalculateRouteMatrixOutput(output, response)
if err != nil {
return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)}
}
var buff [1024]byte
ringBuffer := smithyio.NewRingBuffer(buff[:])
body := io.TeeReader(response.Body, ringBuffer)
decoder := json.NewDecoder(body)
decoder.UseNumber()
var shape interface{}
if err := decoder.Decode(&shape); err != nil && err != io.EOF {
var snapshot bytes.Buffer
io.Copy(&snapshot, ringBuffer)
err = &smithy.DeserializationError{
Err: fmt.Errorf("failed to decode response body, %w", err),
Snapshot: snapshot.Bytes(),
}
return out, metadata, err
}
err = awsRestjson1_deserializeOpDocumentCalculateRouteMatrixOutput(&output, shape)
if err != nil {
var snapshot bytes.Buffer
io.Copy(&snapshot, ringBuffer)
return out, metadata, &smithy.DeserializationError{
Err: fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
Snapshot: snapshot.Bytes(),
}
}
span.End()
return out, metadata, err
}
func awsRestjson1_deserializeOpErrorCalculateRouteMatrix(response *smithyhttp.Response, metadata *middleware.Metadata) error {
var errorBuffer bytes.Buffer
if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
}
errorBody := bytes.NewReader(errorBuffer.Bytes())
errorCode := "UnknownError"
errorMessage := errorCode
headerCode := response.Header.Get("X-Amzn-ErrorType")
if len(headerCode) != 0 {
errorCode = restjson.SanitizeErrorCode(headerCode)
}
var buff [1024]byte
ringBuffer := smithyio.NewRingBuffer(buff[:])
body := io.TeeReader(errorBody, ringBuffer)
decoder := json.NewDecoder(body)
decoder.UseNumber()
jsonCode, message, err := restjson.GetErrorInfo(decoder)
if err != nil {
var snapshot bytes.Buffer
io.Copy(&snapshot, ringBuffer)
err = &smithy.DeserializationError{
Err: fmt.Errorf("failed to decode response body, %w", err),
Snapshot: snapshot.Bytes(),
}
return err
}
errorBody.Seek(0, io.SeekStart)
if len(headerCode) == 0 && len(jsonCode) != 0 {
errorCode = restjson.SanitizeErrorCode(jsonCode)
}
if len(message) != 0 {
errorMessage = message
}
switch {
case strings.EqualFold("AccessDeniedException", errorCode):
return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody)
case strings.EqualFold("InternalServerException", errorCode):
return awsRestjson1_deserializeErrorInternalServerException(response, errorBody)
case strings.EqualFold("ThrottlingException", errorCode):
return awsRestjson1_deserializeErrorThrottlingException(response, errorBody)
case strings.EqualFold("ValidationException", errorCode):
return awsRestjson1_deserializeErrorValidationException(response, errorBody)
default:
genericError := &smithy.GenericAPIError{
Code: errorCode,
Message: errorMessage,
}
return genericError
}
}
func awsRestjson1_deserializeOpHttpBindingsCalculateRouteMatrixOutput(v *CalculateRouteMatrixOutput, response *smithyhttp.Response) error {
if v == nil {
return fmt.Errorf("unsupported deserialization for nil %T", v)
}
if headerValues := response.Header.Values("x-amz-geo-pricing-bucket"); len(headerValues) != 0 {
headerValues[0] = strings.TrimSpace(headerValues[0])
v.PricingBucket = ptr.String(headerValues[0])
}
return nil
}
func awsRestjson1_deserializeOpDocumentCalculateRouteMatrixOutput(v **CalculateRouteMatrixOutput, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *CalculateRouteMatrixOutput
if *v == nil {
sv = &CalculateRouteMatrixOutput{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "ErrorCount":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.ErrorCount = ptr.Int32(int32(i64))
}
case "RouteMatrix":
if err := awsRestjson1_deserializeDocumentRouteMatrix(&sv.RouteMatrix, value); err != nil {
return err
}
case "RoutingBoundary":
if err := awsRestjson1_deserializeDocumentRouteMatrixBoundary(&sv.RoutingBoundary, value); err != nil {
return err
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
type awsRestjson1_deserializeOpCalculateRoutes struct {
}
func (*awsRestjson1_deserializeOpCalculateRoutes) ID() string {
return "OperationDeserializer"
}
func (m *awsRestjson1_deserializeOpCalculateRoutes) 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)
if err != nil {
return out, metadata, err
}
_, span := tracing.StartSpan(ctx, "OperationDeserializer")
endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
defer endTimer()
defer span.End()
response, ok := out.RawResponse.(*smithyhttp.Response)
if !ok {
return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
}
if response.StatusCode < 200 || response.StatusCode >= 300 {
return out, metadata, awsRestjson1_deserializeOpErrorCalculateRoutes(response, &metadata)
}
output := &CalculateRoutesOutput{}
out.Result = output
err = awsRestjson1_deserializeOpHttpBindingsCalculateRoutesOutput(output, response)
if err != nil {
return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)}
}
var buff [1024]byte
ringBuffer := smithyio.NewRingBuffer(buff[:])
body := io.TeeReader(response.Body, ringBuffer)
decoder := json.NewDecoder(body)
decoder.UseNumber()
var shape interface{}
if err := decoder.Decode(&shape); err != nil && err != io.EOF {
var snapshot bytes.Buffer
io.Copy(&snapshot, ringBuffer)
err = &smithy.DeserializationError{
Err: fmt.Errorf("failed to decode response body, %w", err),
Snapshot: snapshot.Bytes(),
}
return out, metadata, err
}
err = awsRestjson1_deserializeOpDocumentCalculateRoutesOutput(&output, shape)
if err != nil {
var snapshot bytes.Buffer
io.Copy(&snapshot, ringBuffer)
return out, metadata, &smithy.DeserializationError{
Err: fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
Snapshot: snapshot.Bytes(),
}
}
span.End()
return out, metadata, err
}
func awsRestjson1_deserializeOpErrorCalculateRoutes(response *smithyhttp.Response, metadata *middleware.Metadata) error {
var errorBuffer bytes.Buffer
if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
}
errorBody := bytes.NewReader(errorBuffer.Bytes())
errorCode := "UnknownError"
errorMessage := errorCode
headerCode := response.Header.Get("X-Amzn-ErrorType")
if len(headerCode) != 0 {
errorCode = restjson.SanitizeErrorCode(headerCode)
}
var buff [1024]byte
ringBuffer := smithyio.NewRingBuffer(buff[:])
body := io.TeeReader(errorBody, ringBuffer)
decoder := json.NewDecoder(body)
decoder.UseNumber()
jsonCode, message, err := restjson.GetErrorInfo(decoder)
if err != nil {
var snapshot bytes.Buffer
io.Copy(&snapshot, ringBuffer)
err = &smithy.DeserializationError{
Err: fmt.Errorf("failed to decode response body, %w", err),
Snapshot: snapshot.Bytes(),
}
return err
}
errorBody.Seek(0, io.SeekStart)
if len(headerCode) == 0 && len(jsonCode) != 0 {
errorCode = restjson.SanitizeErrorCode(jsonCode)
}
if len(message) != 0 {
errorMessage = message
}
switch {
case strings.EqualFold("AccessDeniedException", errorCode):
return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody)
case strings.EqualFold("InternalServerException", errorCode):
return awsRestjson1_deserializeErrorInternalServerException(response, errorBody)
case strings.EqualFold("ThrottlingException", errorCode):
return awsRestjson1_deserializeErrorThrottlingException(response, errorBody)
case strings.EqualFold("ValidationException", errorCode):
return awsRestjson1_deserializeErrorValidationException(response, errorBody)
default:
genericError := &smithy.GenericAPIError{
Code: errorCode,
Message: errorMessage,
}
return genericError
}
}
func awsRestjson1_deserializeOpHttpBindingsCalculateRoutesOutput(v *CalculateRoutesOutput, response *smithyhttp.Response) error {
if v == nil {
return fmt.Errorf("unsupported deserialization for nil %T", v)
}
if headerValues := response.Header.Values("x-amz-geo-pricing-bucket"); len(headerValues) != 0 {
headerValues[0] = strings.TrimSpace(headerValues[0])
v.PricingBucket = ptr.String(headerValues[0])
}
return nil
}
func awsRestjson1_deserializeOpDocumentCalculateRoutesOutput(v **CalculateRoutesOutput, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *CalculateRoutesOutput
if *v == nil {
sv = &CalculateRoutesOutput{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "LegGeometryFormat":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected GeometryFormat to be of type string, got %T instead", value)
}
sv.LegGeometryFormat = types.GeometryFormat(jtv)
}
case "Notices":
if err := awsRestjson1_deserializeDocumentRouteResponseNoticeList(&sv.Notices, value); err != nil {
return err
}
case "Routes":
if err := awsRestjson1_deserializeDocumentRouteList(&sv.Routes, value); err != nil {
return err
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
type awsRestjson1_deserializeOpOptimizeWaypoints struct {
}
func (*awsRestjson1_deserializeOpOptimizeWaypoints) ID() string {
return "OperationDeserializer"
}
func (m *awsRestjson1_deserializeOpOptimizeWaypoints) 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)
if err != nil {
return out, metadata, err
}
_, span := tracing.StartSpan(ctx, "OperationDeserializer")
endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
defer endTimer()
defer span.End()
response, ok := out.RawResponse.(*smithyhttp.Response)
if !ok {
return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
}
if response.StatusCode < 200 || response.StatusCode >= 300 {
return out, metadata, awsRestjson1_deserializeOpErrorOptimizeWaypoints(response, &metadata)
}
output := &OptimizeWaypointsOutput{}
out.Result = output
err = awsRestjson1_deserializeOpHttpBindingsOptimizeWaypointsOutput(output, response)
if err != nil {
return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)}
}
var buff [1024]byte
ringBuffer := smithyio.NewRingBuffer(buff[:])
body := io.TeeReader(response.Body, ringBuffer)
decoder := json.NewDecoder(body)
decoder.UseNumber()
var shape interface{}
if err := decoder.Decode(&shape); err != nil && err != io.EOF {
var snapshot bytes.Buffer
io.Copy(&snapshot, ringBuffer)
err = &smithy.DeserializationError{
Err: fmt.Errorf("failed to decode response body, %w", err),
Snapshot: snapshot.Bytes(),
}
return out, metadata, err
}
err = awsRestjson1_deserializeOpDocumentOptimizeWaypointsOutput(&output, shape)
if err != nil {
var snapshot bytes.Buffer
io.Copy(&snapshot, ringBuffer)
return out, metadata, &smithy.DeserializationError{
Err: fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
Snapshot: snapshot.Bytes(),
}
}
span.End()
return out, metadata, err
}
func awsRestjson1_deserializeOpErrorOptimizeWaypoints(response *smithyhttp.Response, metadata *middleware.Metadata) error {
var errorBuffer bytes.Buffer
if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
}
errorBody := bytes.NewReader(errorBuffer.Bytes())
errorCode := "UnknownError"
errorMessage := errorCode
headerCode := response.Header.Get("X-Amzn-ErrorType")
if len(headerCode) != 0 {
errorCode = restjson.SanitizeErrorCode(headerCode)
}
var buff [1024]byte
ringBuffer := smithyio.NewRingBuffer(buff[:])
body := io.TeeReader(errorBody, ringBuffer)
decoder := json.NewDecoder(body)
decoder.UseNumber()
jsonCode, message, err := restjson.GetErrorInfo(decoder)
if err != nil {
var snapshot bytes.Buffer
io.Copy(&snapshot, ringBuffer)
err = &smithy.DeserializationError{
Err: fmt.Errorf("failed to decode response body, %w", err),
Snapshot: snapshot.Bytes(),
}
return err
}
errorBody.Seek(0, io.SeekStart)
if len(headerCode) == 0 && len(jsonCode) != 0 {
errorCode = restjson.SanitizeErrorCode(jsonCode)
}
if len(message) != 0 {
errorMessage = message
}
switch {
case strings.EqualFold("AccessDeniedException", errorCode):
return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody)
case strings.EqualFold("InternalServerException", errorCode):
return awsRestjson1_deserializeErrorInternalServerException(response, errorBody)
case strings.EqualFold("ThrottlingException", errorCode):
return awsRestjson1_deserializeErrorThrottlingException(response, errorBody)
case strings.EqualFold("ValidationException", errorCode):
return awsRestjson1_deserializeErrorValidationException(response, errorBody)
default:
genericError := &smithy.GenericAPIError{
Code: errorCode,
Message: errorMessage,
}
return genericError
}
}
func awsRestjson1_deserializeOpHttpBindingsOptimizeWaypointsOutput(v *OptimizeWaypointsOutput, response *smithyhttp.Response) error {
if v == nil {
return fmt.Errorf("unsupported deserialization for nil %T", v)
}
if headerValues := response.Header.Values("x-amz-geo-pricing-bucket"); len(headerValues) != 0 {
headerValues[0] = strings.TrimSpace(headerValues[0])
v.PricingBucket = ptr.String(headerValues[0])
}
return nil
}
func awsRestjson1_deserializeOpDocumentOptimizeWaypointsOutput(v **OptimizeWaypointsOutput, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *OptimizeWaypointsOutput
if *v == nil {
sv = &OptimizeWaypointsOutput{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Connections":
if err := awsRestjson1_deserializeDocumentWaypointOptimizationConnectionList(&sv.Connections, value); err != nil {
return err
}
case "Distance":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DistanceMeters to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.Distance = i64
}
case "Duration":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DurationSeconds to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.Duration = i64
}
case "ImpedingWaypoints":
if err := awsRestjson1_deserializeDocumentWaypointOptimizationImpedingWaypointList(&sv.ImpedingWaypoints, value); err != nil {
return err
}
case "OptimizedWaypoints":
if err := awsRestjson1_deserializeDocumentWaypointOptimizationOptimizedWaypointList(&sv.OptimizedWaypoints, value); err != nil {
return err
}
case "TimeBreakdown":
if err := awsRestjson1_deserializeDocumentWaypointOptimizationTimeBreakdown(&sv.TimeBreakdown, value); err != nil {
return err
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
type awsRestjson1_deserializeOpSnapToRoads struct {
}
func (*awsRestjson1_deserializeOpSnapToRoads) ID() string {
return "OperationDeserializer"
}
func (m *awsRestjson1_deserializeOpSnapToRoads) 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)
if err != nil {
return out, metadata, err
}
_, span := tracing.StartSpan(ctx, "OperationDeserializer")
endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
defer endTimer()
defer span.End()
response, ok := out.RawResponse.(*smithyhttp.Response)
if !ok {
return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
}
if response.StatusCode < 200 || response.StatusCode >= 300 {
return out, metadata, awsRestjson1_deserializeOpErrorSnapToRoads(response, &metadata)
}
output := &SnapToRoadsOutput{}
out.Result = output
err = awsRestjson1_deserializeOpHttpBindingsSnapToRoadsOutput(output, response)
if err != nil {
return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("failed to decode response with invalid Http bindings, %w", err)}
}
var buff [1024]byte
ringBuffer := smithyio.NewRingBuffer(buff[:])
body := io.TeeReader(response.Body, ringBuffer)
decoder := json.NewDecoder(body)
decoder.UseNumber()
var shape interface{}
if err := decoder.Decode(&shape); err != nil && err != io.EOF {
var snapshot bytes.Buffer
io.Copy(&snapshot, ringBuffer)
err = &smithy.DeserializationError{
Err: fmt.Errorf("failed to decode response body, %w", err),
Snapshot: snapshot.Bytes(),
}
return out, metadata, err
}
err = awsRestjson1_deserializeOpDocumentSnapToRoadsOutput(&output, shape)
if err != nil {
var snapshot bytes.Buffer
io.Copy(&snapshot, ringBuffer)
return out, metadata, &smithy.DeserializationError{
Err: fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
Snapshot: snapshot.Bytes(),
}
}
span.End()
return out, metadata, err
}
func awsRestjson1_deserializeOpErrorSnapToRoads(response *smithyhttp.Response, metadata *middleware.Metadata) error {
var errorBuffer bytes.Buffer
if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
}
errorBody := bytes.NewReader(errorBuffer.Bytes())
errorCode := "UnknownError"
errorMessage := errorCode
headerCode := response.Header.Get("X-Amzn-ErrorType")
if len(headerCode) != 0 {
errorCode = restjson.SanitizeErrorCode(headerCode)
}
var buff [1024]byte
ringBuffer := smithyio.NewRingBuffer(buff[:])
body := io.TeeReader(errorBody, ringBuffer)
decoder := json.NewDecoder(body)
decoder.UseNumber()
jsonCode, message, err := restjson.GetErrorInfo(decoder)
if err != nil {
var snapshot bytes.Buffer
io.Copy(&snapshot, ringBuffer)
err = &smithy.DeserializationError{
Err: fmt.Errorf("failed to decode response body, %w", err),
Snapshot: snapshot.Bytes(),
}
return err
}
errorBody.Seek(0, io.SeekStart)
if len(headerCode) == 0 && len(jsonCode) != 0 {
errorCode = restjson.SanitizeErrorCode(jsonCode)
}
if len(message) != 0 {
errorMessage = message
}
switch {
case strings.EqualFold("AccessDeniedException", errorCode):
return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody)
case strings.EqualFold("InternalServerException", errorCode):
return awsRestjson1_deserializeErrorInternalServerException(response, errorBody)
case strings.EqualFold("ThrottlingException", errorCode):
return awsRestjson1_deserializeErrorThrottlingException(response, errorBody)
case strings.EqualFold("ValidationException", errorCode):
return awsRestjson1_deserializeErrorValidationException(response, errorBody)
default:
genericError := &smithy.GenericAPIError{
Code: errorCode,
Message: errorMessage,
}
return genericError
}
}
func awsRestjson1_deserializeOpHttpBindingsSnapToRoadsOutput(v *SnapToRoadsOutput, response *smithyhttp.Response) error {
if v == nil {
return fmt.Errorf("unsupported deserialization for nil %T", v)
}
if headerValues := response.Header.Values("x-amz-geo-pricing-bucket"); len(headerValues) != 0 {
headerValues[0] = strings.TrimSpace(headerValues[0])
v.PricingBucket = ptr.String(headerValues[0])
}
return nil
}
func awsRestjson1_deserializeOpDocumentSnapToRoadsOutput(v **SnapToRoadsOutput, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *SnapToRoadsOutput
if *v == nil {
sv = &SnapToRoadsOutput{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Notices":
if err := awsRestjson1_deserializeDocumentRoadSnapNoticeList(&sv.Notices, value); err != nil {
return err
}
case "SnappedGeometry":
if err := awsRestjson1_deserializeDocumentRoadSnapSnappedGeometry(&sv.SnappedGeometry, value); err != nil {
return err
}
case "SnappedGeometryFormat":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected GeometryFormat to be of type string, got %T instead", value)
}
sv.SnappedGeometryFormat = types.GeometryFormat(jtv)
}
case "SnappedTracePoints":
if err := awsRestjson1_deserializeDocumentRoadSnapSnappedTracePointList(&sv.SnappedTracePoints, value); err != nil {
return err
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeErrorAccessDeniedException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
output := &types.AccessDeniedException{}
var buff [1024]byte
ringBuffer := smithyio.NewRingBuffer(buff[:])
body := io.TeeReader(errorBody, ringBuffer)
decoder := json.NewDecoder(body)
decoder.UseNumber()
var shape interface{}
if err := decoder.Decode(&shape); err != nil && err != io.EOF {
var snapshot bytes.Buffer
io.Copy(&snapshot, ringBuffer)
err = &smithy.DeserializationError{
Err: fmt.Errorf("failed to decode response body, %w", err),
Snapshot: snapshot.Bytes(),
}
return err
}
err := awsRestjson1_deserializeDocumentAccessDeniedException(&output, shape)
if err != nil {
var snapshot bytes.Buffer
io.Copy(&snapshot, ringBuffer)
err = &smithy.DeserializationError{
Err: fmt.Errorf("failed to decode response body, %w", err),
Snapshot: snapshot.Bytes(),
}
return err
}
errorBody.Seek(0, io.SeekStart)
return output
}
func awsRestjson1_deserializeErrorInternalServerException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
output := &types.InternalServerException{}
var buff [1024]byte
ringBuffer := smithyio.NewRingBuffer(buff[:])
body := io.TeeReader(errorBody, ringBuffer)
decoder := json.NewDecoder(body)
decoder.UseNumber()
var shape interface{}
if err := decoder.Decode(&shape); err != nil && err != io.EOF {
var snapshot bytes.Buffer
io.Copy(&snapshot, ringBuffer)
err = &smithy.DeserializationError{
Err: fmt.Errorf("failed to decode response body, %w", err),
Snapshot: snapshot.Bytes(),
}
return err
}
err := awsRestjson1_deserializeDocumentInternalServerException(&output, shape)
if err != nil {
var snapshot bytes.Buffer
io.Copy(&snapshot, ringBuffer)
err = &smithy.DeserializationError{
Err: fmt.Errorf("failed to decode response body, %w", err),
Snapshot: snapshot.Bytes(),
}
return err
}
errorBody.Seek(0, io.SeekStart)
return output
}
func awsRestjson1_deserializeErrorThrottlingException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
output := &types.ThrottlingException{}
var buff [1024]byte
ringBuffer := smithyio.NewRingBuffer(buff[:])
body := io.TeeReader(errorBody, ringBuffer)
decoder := json.NewDecoder(body)
decoder.UseNumber()
var shape interface{}
if err := decoder.Decode(&shape); err != nil && err != io.EOF {
var snapshot bytes.Buffer
io.Copy(&snapshot, ringBuffer)
err = &smithy.DeserializationError{
Err: fmt.Errorf("failed to decode response body, %w", err),
Snapshot: snapshot.Bytes(),
}
return err
}
err := awsRestjson1_deserializeDocumentThrottlingException(&output, shape)
if err != nil {
var snapshot bytes.Buffer
io.Copy(&snapshot, ringBuffer)
err = &smithy.DeserializationError{
Err: fmt.Errorf("failed to decode response body, %w", err),
Snapshot: snapshot.Bytes(),
}
return err
}
errorBody.Seek(0, io.SeekStart)
return output
}
func awsRestjson1_deserializeErrorValidationException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
output := &types.ValidationException{}
var buff [1024]byte
ringBuffer := smithyio.NewRingBuffer(buff[:])
body := io.TeeReader(errorBody, ringBuffer)
decoder := json.NewDecoder(body)
decoder.UseNumber()
var shape interface{}
if err := decoder.Decode(&shape); err != nil && err != io.EOF {
var snapshot bytes.Buffer
io.Copy(&snapshot, ringBuffer)
err = &smithy.DeserializationError{
Err: fmt.Errorf("failed to decode response body, %w", err),
Snapshot: snapshot.Bytes(),
}
return err
}
err := awsRestjson1_deserializeDocumentValidationException(&output, shape)
if err != nil {
var snapshot bytes.Buffer
io.Copy(&snapshot, ringBuffer)
err = &smithy.DeserializationError{
Err: fmt.Errorf("failed to decode response body, %w", err),
Snapshot: snapshot.Bytes(),
}
return err
}
errorBody.Seek(0, io.SeekStart)
return output
}
func awsRestjson1_deserializeDocumentAccessDeniedException(v **types.AccessDeniedException, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.AccessDeniedException
if *v == nil {
sv = &types.AccessDeniedException{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "message", "Message":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.Message = ptr.String(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentBoundingBox(v *[]float64, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []float64
if *v == nil {
cv = []float64{}
} else {
cv = *v
}
for _, value := range shape {
var col float64
if value != nil {
switch jtv := value.(type) {
case json.Number:
f64, err := jtv.Float64()
if err != nil {
return err
}
col = f64
case string:
var f64 float64
switch {
case strings.EqualFold(jtv, "NaN"):
f64 = math.NaN()
case strings.EqualFold(jtv, "Infinity"):
f64 = math.Inf(1)
case strings.EqualFold(jtv, "-Infinity"):
f64 = math.Inf(-1)
default:
return fmt.Errorf("unknown JSON number value: %s", jtv)
}
col = f64
default:
return fmt.Errorf("expected Double to be a JSON Number, got %T instead", value)
}
}
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentCircle(v **types.Circle, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.Circle
if *v == nil {
sv = &types.Circle{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Center":
if err := awsRestjson1_deserializeDocumentPosition(&sv.Center, value); err != nil {
return err
}
case "Radius":
if value != nil {
switch jtv := value.(type) {
case json.Number:
f64, err := jtv.Float64()
if err != nil {
return err
}
sv.Radius = ptr.Float64(f64)
case string:
var f64 float64
switch {
case strings.EqualFold(jtv, "NaN"):
f64 = math.NaN()
case strings.EqualFold(jtv, "Infinity"):
f64 = math.Inf(1)
case strings.EqualFold(jtv, "-Infinity"):
f64 = math.Inf(-1)
default:
return fmt.Errorf("unknown JSON number value: %s", jtv)
}
sv.Radius = ptr.Float64(f64)
default:
return fmt.Errorf("expected Double to be a JSON Number, got %T instead", value)
}
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentIndexList(v *[]int32, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []int32
if *v == nil {
cv = []int32{}
} else {
cv = *v
}
for _, value := range shape {
var col int32
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
col = int32(i64)
}
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentInternalServerException(v **types.InternalServerException, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.InternalServerException
if *v == nil {
sv = &types.InternalServerException{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "message", "Message":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.Message = ptr.String(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentIsoline(v **types.Isoline, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.Isoline
if *v == nil {
sv = &types.Isoline{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Connections":
if err := awsRestjson1_deserializeDocumentIsolineConnectionList(&sv.Connections, value); err != nil {
return err
}
case "DistanceThreshold":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DistanceMeters to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.DistanceThreshold = i64
}
case "Geometries":
if err := awsRestjson1_deserializeDocumentIsolineShapeGeometryList(&sv.Geometries, value); err != nil {
return err
}
case "TimeThreshold":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DurationSeconds to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.TimeThreshold = i64
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentIsolineConnection(v **types.IsolineConnection, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.IsolineConnection
if *v == nil {
sv = &types.IsolineConnection{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "FromPolygonIndex":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.FromPolygonIndex = ptr.Int32(int32(i64))
}
case "Geometry":
if err := awsRestjson1_deserializeDocumentIsolineConnectionGeometry(&sv.Geometry, value); err != nil {
return err
}
case "ToPolygonIndex":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.ToPolygonIndex = ptr.Int32(int32(i64))
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentIsolineConnectionGeometry(v **types.IsolineConnectionGeometry, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.IsolineConnectionGeometry
if *v == nil {
sv = &types.IsolineConnectionGeometry{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "LineString":
if err := awsRestjson1_deserializeDocumentLineString(&sv.LineString, value); err != nil {
return err
}
case "Polyline":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected Polyline to be of type string, got %T instead", value)
}
sv.Polyline = ptr.String(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentIsolineConnectionList(v *[]types.IsolineConnection, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []types.IsolineConnection
if *v == nil {
cv = []types.IsolineConnection{}
} else {
cv = *v
}
for _, value := range shape {
var col types.IsolineConnection
destAddr := &col
if err := awsRestjson1_deserializeDocumentIsolineConnection(&destAddr, value); err != nil {
return err
}
col = *destAddr
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentIsolineList(v *[]types.Isoline, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []types.Isoline
if *v == nil {
cv = []types.Isoline{}
} else {
cv = *v
}
for _, value := range shape {
var col types.Isoline
destAddr := &col
if err := awsRestjson1_deserializeDocumentIsoline(&destAddr, value); err != nil {
return err
}
col = *destAddr
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentIsolineShapeGeometry(v **types.IsolineShapeGeometry, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.IsolineShapeGeometry
if *v == nil {
sv = &types.IsolineShapeGeometry{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Polygon":
if err := awsRestjson1_deserializeDocumentLinearRings(&sv.Polygon, value); err != nil {
return err
}
case "PolylinePolygon":
if err := awsRestjson1_deserializeDocumentPolylineRingList(&sv.PolylinePolygon, value); err != nil {
return err
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentIsolineShapeGeometryList(v *[]types.IsolineShapeGeometry, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []types.IsolineShapeGeometry
if *v == nil {
cv = []types.IsolineShapeGeometry{}
} else {
cv = *v
}
for _, value := range shape {
var col types.IsolineShapeGeometry
destAddr := &col
if err := awsRestjson1_deserializeDocumentIsolineShapeGeometry(&destAddr, value); err != nil {
return err
}
col = *destAddr
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentLinearRing(v *[][]float64, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv [][]float64
if *v == nil {
cv = [][]float64{}
} else {
cv = *v
}
for _, value := range shape {
var col []float64
if err := awsRestjson1_deserializeDocumentPosition(&col, value); err != nil {
return err
}
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentLinearRings(v *[][][]float64, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv [][][]float64
if *v == nil {
cv = [][][]float64{}
} else {
cv = *v
}
for _, value := range shape {
var col [][]float64
if err := awsRestjson1_deserializeDocumentLinearRing(&col, value); err != nil {
return err
}
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentLineString(v *[][]float64, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv [][]float64
if *v == nil {
cv = [][]float64{}
} else {
cv = *v
}
for _, value := range shape {
var col []float64
if err := awsRestjson1_deserializeDocumentPosition(&col, value); err != nil {
return err
}
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentLocalizedString(v **types.LocalizedString, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.LocalizedString
if *v == nil {
sv = &types.LocalizedString{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Language":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected LanguageTag to be of type string, got %T instead", value)
}
sv.Language = ptr.String(jtv)
}
case "Value":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.Value = ptr.String(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentLocalizedStringList(v *[]types.LocalizedString, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []types.LocalizedString
if *v == nil {
cv = []types.LocalizedString{}
} else {
cv = *v
}
for _, value := range shape {
var col types.LocalizedString
destAddr := &col
if err := awsRestjson1_deserializeDocumentLocalizedString(&destAddr, value); err != nil {
return err
}
col = *destAddr
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentPolylineRingList(v *[]string, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []string
if *v == nil {
cv = []string{}
} else {
cv = *v
}
for _, value := range shape {
var col string
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected PolylineRing to be of type string, got %T instead", value)
}
col = jtv
}
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentPosition(v *[]float64, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []float64
if *v == nil {
cv = []float64{}
} else {
cv = *v
}
for _, value := range shape {
var col float64
if value != nil {
switch jtv := value.(type) {
case json.Number:
f64, err := jtv.Float64()
if err != nil {
return err
}
col = f64
case string:
var f64 float64
switch {
case strings.EqualFold(jtv, "NaN"):
f64 = math.NaN()
case strings.EqualFold(jtv, "Infinity"):
f64 = math.Inf(1)
case strings.EqualFold(jtv, "-Infinity"):
f64 = math.Inf(-1)
default:
return fmt.Errorf("unknown JSON number value: %s", jtv)
}
col = f64
default:
return fmt.Errorf("expected Double to be a JSON Number, got %T instead", value)
}
}
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentPosition23(v *[]float64, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []float64
if *v == nil {
cv = []float64{}
} else {
cv = *v
}
for _, value := range shape {
var col float64
if value != nil {
switch jtv := value.(type) {
case json.Number:
f64, err := jtv.Float64()
if err != nil {
return err
}
col = f64
case string:
var f64 float64
switch {
case strings.EqualFold(jtv, "NaN"):
f64 = math.NaN()
case strings.EqualFold(jtv, "Infinity"):
f64 = math.Inf(1)
case strings.EqualFold(jtv, "-Infinity"):
f64 = math.Inf(-1)
default:
return fmt.Errorf("unknown JSON number value: %s", jtv)
}
col = f64
default:
return fmt.Errorf("expected Double to be a JSON Number, got %T instead", value)
}
}
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentRoadSnapNotice(v **types.RoadSnapNotice, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RoadSnapNotice
if *v == nil {
sv = &types.RoadSnapNotice{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Code":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RoadSnapNoticeCode to be of type string, got %T instead", value)
}
sv.Code = types.RoadSnapNoticeCode(jtv)
}
case "Title":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.Title = ptr.String(jtv)
}
case "TracePointIndexes":
if err := awsRestjson1_deserializeDocumentRoadSnapTracePointIndexList(&sv.TracePointIndexes, value); err != nil {
return err
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRoadSnapNoticeList(v *[]types.RoadSnapNotice, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []types.RoadSnapNotice
if *v == nil {
cv = []types.RoadSnapNotice{}
} else {
cv = *v
}
for _, value := range shape {
var col types.RoadSnapNotice
destAddr := &col
if err := awsRestjson1_deserializeDocumentRoadSnapNotice(&destAddr, value); err != nil {
return err
}
col = *destAddr
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentRoadSnapSnappedGeometry(v **types.RoadSnapSnappedGeometry, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RoadSnapSnappedGeometry
if *v == nil {
sv = &types.RoadSnapSnappedGeometry{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "LineString":
if err := awsRestjson1_deserializeDocumentLineString(&sv.LineString, value); err != nil {
return err
}
case "Polyline":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected Polyline to be of type string, got %T instead", value)
}
sv.Polyline = ptr.String(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRoadSnapSnappedTracePoint(v **types.RoadSnapSnappedTracePoint, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RoadSnapSnappedTracePoint
if *v == nil {
sv = &types.RoadSnapSnappedTracePoint{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Confidence":
if value != nil {
switch jtv := value.(type) {
case json.Number:
f64, err := jtv.Float64()
if err != nil {
return err
}
sv.Confidence = ptr.Float64(f64)
case string:
var f64 float64
switch {
case strings.EqualFold(jtv, "NaN"):
f64 = math.NaN()
case strings.EqualFold(jtv, "Infinity"):
f64 = math.Inf(1)
case strings.EqualFold(jtv, "-Infinity"):
f64 = math.Inf(-1)
default:
return fmt.Errorf("unknown JSON number value: %s", jtv)
}
sv.Confidence = ptr.Float64(f64)
default:
return fmt.Errorf("expected Double to be a JSON Number, got %T instead", value)
}
}
case "OriginalPosition":
if err := awsRestjson1_deserializeDocumentPosition(&sv.OriginalPosition, value); err != nil {
return err
}
case "SnappedPosition":
if err := awsRestjson1_deserializeDocumentPosition(&sv.SnappedPosition, value); err != nil {
return err
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRoadSnapSnappedTracePointList(v *[]types.RoadSnapSnappedTracePoint, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []types.RoadSnapSnappedTracePoint
if *v == nil {
cv = []types.RoadSnapSnappedTracePoint{}
} else {
cv = *v
}
for _, value := range shape {
var col types.RoadSnapSnappedTracePoint
destAddr := &col
if err := awsRestjson1_deserializeDocumentRoadSnapSnappedTracePoint(&destAddr, value); err != nil {
return err
}
col = *destAddr
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentRoadSnapTracePointIndexList(v *[]int32, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []int32
if *v == nil {
cv = []int32{}
} else {
cv = *v
}
for _, value := range shape {
var col int32
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
col = int32(i64)
}
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentRoute(v **types.Route, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.Route
if *v == nil {
sv = &types.Route{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Legs":
if err := awsRestjson1_deserializeDocumentRouteLegList(&sv.Legs, value); err != nil {
return err
}
case "MajorRoadLabels":
if err := awsRestjson1_deserializeDocumentRouteMajorRoadLabelList(&sv.MajorRoadLabels, value); err != nil {
return err
}
case "Summary":
if err := awsRestjson1_deserializeDocumentRouteSummary(&sv.Summary, value); err != nil {
return err
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteContinueHighwayStepDetails(v **types.RouteContinueHighwayStepDetails, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteContinueHighwayStepDetails
if *v == nil {
sv = &types.RouteContinueHighwayStepDetails{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Intersection":
if err := awsRestjson1_deserializeDocumentLocalizedStringList(&sv.Intersection, value); err != nil {
return err
}
case "SteeringDirection":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteSteeringDirection to be of type string, got %T instead", value)
}
sv.SteeringDirection = types.RouteSteeringDirection(jtv)
}
case "TurnAngle":
if value != nil {
switch jtv := value.(type) {
case json.Number:
f64, err := jtv.Float64()
if err != nil {
return err
}
sv.TurnAngle = f64
case string:
var f64 float64
switch {
case strings.EqualFold(jtv, "NaN"):
f64 = math.NaN()
case strings.EqualFold(jtv, "Infinity"):
f64 = math.Inf(1)
case strings.EqualFold(jtv, "-Infinity"):
f64 = math.Inf(-1)
default:
return fmt.Errorf("unknown JSON number value: %s", jtv)
}
sv.TurnAngle = f64
default:
return fmt.Errorf("expected TurnAngle to be a JSON Number, got %T instead", value)
}
}
case "TurnIntensity":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteTurnIntensity to be of type string, got %T instead", value)
}
sv.TurnIntensity = types.RouteTurnIntensity(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteContinueStepDetails(v **types.RouteContinueStepDetails, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteContinueStepDetails
if *v == nil {
sv = &types.RouteContinueStepDetails{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Intersection":
if err := awsRestjson1_deserializeDocumentLocalizedStringList(&sv.Intersection, value); err != nil {
return err
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteEnterHighwayStepDetails(v **types.RouteEnterHighwayStepDetails, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteEnterHighwayStepDetails
if *v == nil {
sv = &types.RouteEnterHighwayStepDetails{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Intersection":
if err := awsRestjson1_deserializeDocumentLocalizedStringList(&sv.Intersection, value); err != nil {
return err
}
case "SteeringDirection":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteSteeringDirection to be of type string, got %T instead", value)
}
sv.SteeringDirection = types.RouteSteeringDirection(jtv)
}
case "TurnAngle":
if value != nil {
switch jtv := value.(type) {
case json.Number:
f64, err := jtv.Float64()
if err != nil {
return err
}
sv.TurnAngle = f64
case string:
var f64 float64
switch {
case strings.EqualFold(jtv, "NaN"):
f64 = math.NaN()
case strings.EqualFold(jtv, "Infinity"):
f64 = math.Inf(1)
case strings.EqualFold(jtv, "-Infinity"):
f64 = math.Inf(-1)
default:
return fmt.Errorf("unknown JSON number value: %s", jtv)
}
sv.TurnAngle = f64
default:
return fmt.Errorf("expected TurnAngle to be a JSON Number, got %T instead", value)
}
}
case "TurnIntensity":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteTurnIntensity to be of type string, got %T instead", value)
}
sv.TurnIntensity = types.RouteTurnIntensity(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteExitStepDetails(v **types.RouteExitStepDetails, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteExitStepDetails
if *v == nil {
sv = &types.RouteExitStepDetails{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Intersection":
if err := awsRestjson1_deserializeDocumentLocalizedStringList(&sv.Intersection, value); err != nil {
return err
}
case "RelativeExit":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.RelativeExit = ptr.Int32(int32(i64))
}
case "SteeringDirection":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteSteeringDirection to be of type string, got %T instead", value)
}
sv.SteeringDirection = types.RouteSteeringDirection(jtv)
}
case "TurnAngle":
if value != nil {
switch jtv := value.(type) {
case json.Number:
f64, err := jtv.Float64()
if err != nil {
return err
}
sv.TurnAngle = f64
case string:
var f64 float64
switch {
case strings.EqualFold(jtv, "NaN"):
f64 = math.NaN()
case strings.EqualFold(jtv, "Infinity"):
f64 = math.Inf(1)
case strings.EqualFold(jtv, "-Infinity"):
f64 = math.Inf(-1)
default:
return fmt.Errorf("unknown JSON number value: %s", jtv)
}
sv.TurnAngle = f64
default:
return fmt.Errorf("expected TurnAngle to be a JSON Number, got %T instead", value)
}
}
case "TurnIntensity":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteTurnIntensity to be of type string, got %T instead", value)
}
sv.TurnIntensity = types.RouteTurnIntensity(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteFerryAfterTravelStep(v **types.RouteFerryAfterTravelStep, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteFerryAfterTravelStep
if *v == nil {
sv = &types.RouteFerryAfterTravelStep{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Duration":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DurationSeconds to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.Duration = i64
}
case "Instruction":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.Instruction = ptr.String(jtv)
}
case "Type":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteFerryAfterTravelStepType to be of type string, got %T instead", value)
}
sv.Type = types.RouteFerryAfterTravelStepType(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteFerryAfterTravelStepList(v *[]types.RouteFerryAfterTravelStep, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []types.RouteFerryAfterTravelStep
if *v == nil {
cv = []types.RouteFerryAfterTravelStep{}
} else {
cv = *v
}
for _, value := range shape {
var col types.RouteFerryAfterTravelStep
destAddr := &col
if err := awsRestjson1_deserializeDocumentRouteFerryAfterTravelStep(&destAddr, value); err != nil {
return err
}
col = *destAddr
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentRouteFerryArrival(v **types.RouteFerryArrival, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteFerryArrival
if *v == nil {
sv = &types.RouteFerryArrival{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Place":
if err := awsRestjson1_deserializeDocumentRouteFerryPlace(&sv.Place, value); err != nil {
return err
}
case "Time":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected TimestampWithTimezoneOffset to be of type string, got %T instead", value)
}
sv.Time = ptr.String(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteFerryBeforeTravelStep(v **types.RouteFerryBeforeTravelStep, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteFerryBeforeTravelStep
if *v == nil {
sv = &types.RouteFerryBeforeTravelStep{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Duration":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DurationSeconds to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.Duration = i64
}
case "Instruction":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.Instruction = ptr.String(jtv)
}
case "Type":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteFerryBeforeTravelStepType to be of type string, got %T instead", value)
}
sv.Type = types.RouteFerryBeforeTravelStepType(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteFerryBeforeTravelStepList(v *[]types.RouteFerryBeforeTravelStep, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []types.RouteFerryBeforeTravelStep
if *v == nil {
cv = []types.RouteFerryBeforeTravelStep{}
} else {
cv = *v
}
for _, value := range shape {
var col types.RouteFerryBeforeTravelStep
destAddr := &col
if err := awsRestjson1_deserializeDocumentRouteFerryBeforeTravelStep(&destAddr, value); err != nil {
return err
}
col = *destAddr
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentRouteFerryDeparture(v **types.RouteFerryDeparture, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteFerryDeparture
if *v == nil {
sv = &types.RouteFerryDeparture{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Place":
if err := awsRestjson1_deserializeDocumentRouteFerryPlace(&sv.Place, value); err != nil {
return err
}
case "Time":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected TimestampWithTimezoneOffset to be of type string, got %T instead", value)
}
sv.Time = ptr.String(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteFerryLegDetails(v **types.RouteFerryLegDetails, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteFerryLegDetails
if *v == nil {
sv = &types.RouteFerryLegDetails{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "AfterTravelSteps":
if err := awsRestjson1_deserializeDocumentRouteFerryAfterTravelStepList(&sv.AfterTravelSteps, value); err != nil {
return err
}
case "Arrival":
if err := awsRestjson1_deserializeDocumentRouteFerryArrival(&sv.Arrival, value); err != nil {
return err
}
case "BeforeTravelSteps":
if err := awsRestjson1_deserializeDocumentRouteFerryBeforeTravelStepList(&sv.BeforeTravelSteps, value); err != nil {
return err
}
case "Departure":
if err := awsRestjson1_deserializeDocumentRouteFerryDeparture(&sv.Departure, value); err != nil {
return err
}
case "Notices":
if err := awsRestjson1_deserializeDocumentRouteFerryNoticeList(&sv.Notices, value); err != nil {
return err
}
case "PassThroughWaypoints":
if err := awsRestjson1_deserializeDocumentRoutePassThroughWaypointList(&sv.PassThroughWaypoints, value); err != nil {
return err
}
case "RouteName":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.RouteName = ptr.String(jtv)
}
case "Spans":
if err := awsRestjson1_deserializeDocumentRouteFerrySpanList(&sv.Spans, value); err != nil {
return err
}
case "Summary":
if err := awsRestjson1_deserializeDocumentRouteFerrySummary(&sv.Summary, value); err != nil {
return err
}
case "TravelSteps":
if err := awsRestjson1_deserializeDocumentRouteFerryTravelStepList(&sv.TravelSteps, value); err != nil {
return err
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteFerryNotice(v **types.RouteFerryNotice, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteFerryNotice
if *v == nil {
sv = &types.RouteFerryNotice{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Code":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteFerryNoticeCode to be of type string, got %T instead", value)
}
sv.Code = types.RouteFerryNoticeCode(jtv)
}
case "Impact":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteNoticeImpact to be of type string, got %T instead", value)
}
sv.Impact = types.RouteNoticeImpact(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteFerryNoticeList(v *[]types.RouteFerryNotice, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []types.RouteFerryNotice
if *v == nil {
cv = []types.RouteFerryNotice{}
} else {
cv = *v
}
for _, value := range shape {
var col types.RouteFerryNotice
destAddr := &col
if err := awsRestjson1_deserializeDocumentRouteFerryNotice(&destAddr, value); err != nil {
return err
}
col = *destAddr
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentRouteFerryOverviewSummary(v **types.RouteFerryOverviewSummary, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteFerryOverviewSummary
if *v == nil {
sv = &types.RouteFerryOverviewSummary{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Distance":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DistanceMeters to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.Distance = i64
}
case "Duration":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DurationSeconds to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.Duration = i64
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteFerryPlace(v **types.RouteFerryPlace, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteFerryPlace
if *v == nil {
sv = &types.RouteFerryPlace{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Name":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.Name = ptr.String(jtv)
}
case "OriginalPosition":
if err := awsRestjson1_deserializeDocumentPosition23(&sv.OriginalPosition, value); err != nil {
return err
}
case "Position":
if err := awsRestjson1_deserializeDocumentPosition23(&sv.Position, value); err != nil {
return err
}
case "WaypointIndex":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.WaypointIndex = ptr.Int32(int32(i64))
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteFerrySpan(v **types.RouteFerrySpan, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteFerrySpan
if *v == nil {
sv = &types.RouteFerrySpan{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Country":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected CountryCode3 to be of type string, got %T instead", value)
}
sv.Country = ptr.String(jtv)
}
case "Distance":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DistanceMeters to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.Distance = i64
}
case "Duration":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DurationSeconds to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.Duration = i64
}
case "GeometryOffset":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.GeometryOffset = ptr.Int32(int32(i64))
}
case "Names":
if err := awsRestjson1_deserializeDocumentLocalizedStringList(&sv.Names, value); err != nil {
return err
}
case "Region":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.Region = ptr.String(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteFerrySpanList(v *[]types.RouteFerrySpan, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []types.RouteFerrySpan
if *v == nil {
cv = []types.RouteFerrySpan{}
} else {
cv = *v
}
for _, value := range shape {
var col types.RouteFerrySpan
destAddr := &col
if err := awsRestjson1_deserializeDocumentRouteFerrySpan(&destAddr, value); err != nil {
return err
}
col = *destAddr
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentRouteFerrySummary(v **types.RouteFerrySummary, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteFerrySummary
if *v == nil {
sv = &types.RouteFerrySummary{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Overview":
if err := awsRestjson1_deserializeDocumentRouteFerryOverviewSummary(&sv.Overview, value); err != nil {
return err
}
case "TravelOnly":
if err := awsRestjson1_deserializeDocumentRouteFerryTravelOnlySummary(&sv.TravelOnly, value); err != nil {
return err
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteFerryTravelOnlySummary(v **types.RouteFerryTravelOnlySummary, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteFerryTravelOnlySummary
if *v == nil {
sv = &types.RouteFerryTravelOnlySummary{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Duration":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DurationSeconds to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.Duration = i64
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteFerryTravelStep(v **types.RouteFerryTravelStep, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteFerryTravelStep
if *v == nil {
sv = &types.RouteFerryTravelStep{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Distance":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DistanceMeters to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.Distance = i64
}
case "Duration":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DurationSeconds to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.Duration = i64
}
case "GeometryOffset":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.GeometryOffset = ptr.Int32(int32(i64))
}
case "Instruction":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.Instruction = ptr.String(jtv)
}
case "Type":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteFerryTravelStepType to be of type string, got %T instead", value)
}
sv.Type = types.RouteFerryTravelStepType(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteFerryTravelStepList(v *[]types.RouteFerryTravelStep, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []types.RouteFerryTravelStep
if *v == nil {
cv = []types.RouteFerryTravelStep{}
} else {
cv = *v
}
for _, value := range shape {
var col types.RouteFerryTravelStep
destAddr := &col
if err := awsRestjson1_deserializeDocumentRouteFerryTravelStep(&destAddr, value); err != nil {
return err
}
col = *destAddr
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentRouteHazardousCargoTypeList(v *[]types.RouteHazardousCargoType, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []types.RouteHazardousCargoType
if *v == nil {
cv = []types.RouteHazardousCargoType{}
} else {
cv = *v
}
for _, value := range shape {
var col types.RouteHazardousCargoType
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteHazardousCargoType to be of type string, got %T instead", value)
}
col = types.RouteHazardousCargoType(jtv)
}
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentRouteKeepStepDetails(v **types.RouteKeepStepDetails, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteKeepStepDetails
if *v == nil {
sv = &types.RouteKeepStepDetails{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Intersection":
if err := awsRestjson1_deserializeDocumentLocalizedStringList(&sv.Intersection, value); err != nil {
return err
}
case "SteeringDirection":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteSteeringDirection to be of type string, got %T instead", value)
}
sv.SteeringDirection = types.RouteSteeringDirection(jtv)
}
case "TurnAngle":
if value != nil {
switch jtv := value.(type) {
case json.Number:
f64, err := jtv.Float64()
if err != nil {
return err
}
sv.TurnAngle = f64
case string:
var f64 float64
switch {
case strings.EqualFold(jtv, "NaN"):
f64 = math.NaN()
case strings.EqualFold(jtv, "Infinity"):
f64 = math.Inf(1)
case strings.EqualFold(jtv, "-Infinity"):
f64 = math.Inf(-1)
default:
return fmt.Errorf("unknown JSON number value: %s", jtv)
}
sv.TurnAngle = f64
default:
return fmt.Errorf("expected TurnAngle to be a JSON Number, got %T instead", value)
}
}
case "TurnIntensity":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteTurnIntensity to be of type string, got %T instead", value)
}
sv.TurnIntensity = types.RouteTurnIntensity(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteLeg(v **types.RouteLeg, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteLeg
if *v == nil {
sv = &types.RouteLeg{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "FerryLegDetails":
if err := awsRestjson1_deserializeDocumentRouteFerryLegDetails(&sv.FerryLegDetails, value); err != nil {
return err
}
case "Geometry":
if err := awsRestjson1_deserializeDocumentRouteLegGeometry(&sv.Geometry, value); err != nil {
return err
}
case "Language":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected LanguageTag to be of type string, got %T instead", value)
}
sv.Language = ptr.String(jtv)
}
case "PedestrianLegDetails":
if err := awsRestjson1_deserializeDocumentRoutePedestrianLegDetails(&sv.PedestrianLegDetails, value); err != nil {
return err
}
case "TravelMode":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteLegTravelMode to be of type string, got %T instead", value)
}
sv.TravelMode = types.RouteLegTravelMode(jtv)
}
case "Type":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteLegType to be of type string, got %T instead", value)
}
sv.Type = types.RouteLegType(jtv)
}
case "VehicleLegDetails":
if err := awsRestjson1_deserializeDocumentRouteVehicleLegDetails(&sv.VehicleLegDetails, value); err != nil {
return err
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteLegGeometry(v **types.RouteLegGeometry, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteLegGeometry
if *v == nil {
sv = &types.RouteLegGeometry{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "LineString":
if err := awsRestjson1_deserializeDocumentLineString(&sv.LineString, value); err != nil {
return err
}
case "Polyline":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected Polyline to be of type string, got %T instead", value)
}
sv.Polyline = ptr.String(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteLegList(v *[]types.RouteLeg, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []types.RouteLeg
if *v == nil {
cv = []types.RouteLeg{}
} else {
cv = *v
}
for _, value := range shape {
var col types.RouteLeg
destAddr := &col
if err := awsRestjson1_deserializeDocumentRouteLeg(&destAddr, value); err != nil {
return err
}
col = *destAddr
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentRouteList(v *[]types.Route, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []types.Route
if *v == nil {
cv = []types.Route{}
} else {
cv = *v
}
for _, value := range shape {
var col types.Route
destAddr := &col
if err := awsRestjson1_deserializeDocumentRoute(&destAddr, value); err != nil {
return err
}
col = *destAddr
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentRouteMajorRoadLabel(v **types.RouteMajorRoadLabel, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteMajorRoadLabel
if *v == nil {
sv = &types.RouteMajorRoadLabel{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "RoadName":
if err := awsRestjson1_deserializeDocumentLocalizedString(&sv.RoadName, value); err != nil {
return err
}
case "RouteNumber":
if err := awsRestjson1_deserializeDocumentRouteNumber(&sv.RouteNumber, value); err != nil {
return err
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteMajorRoadLabelList(v *[]types.RouteMajorRoadLabel, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []types.RouteMajorRoadLabel
if *v == nil {
cv = []types.RouteMajorRoadLabel{}
} else {
cv = *v
}
for _, value := range shape {
var col types.RouteMajorRoadLabel
destAddr := &col
if err := awsRestjson1_deserializeDocumentRouteMajorRoadLabel(&destAddr, value); err != nil {
return err
}
col = *destAddr
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentRouteMatrix(v *[][]types.RouteMatrixEntry, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv [][]types.RouteMatrixEntry
if *v == nil {
cv = [][]types.RouteMatrixEntry{}
} else {
cv = *v
}
for _, value := range shape {
var col []types.RouteMatrixEntry
if err := awsRestjson1_deserializeDocumentRouteMatrixRow(&col, value); err != nil {
return err
}
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentRouteMatrixAutoCircle(v **types.RouteMatrixAutoCircle, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteMatrixAutoCircle
if *v == nil {
sv = &types.RouteMatrixAutoCircle{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Margin":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DistanceMeters to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.Margin = i64
}
case "MaxRadius":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DistanceMeters to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.MaxRadius = i64
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteMatrixBoundary(v **types.RouteMatrixBoundary, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteMatrixBoundary
if *v == nil {
sv = &types.RouteMatrixBoundary{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Geometry":
if err := awsRestjson1_deserializeDocumentRouteMatrixBoundaryGeometry(&sv.Geometry, value); err != nil {
return err
}
case "Unbounded":
if value != nil {
jtv, ok := value.(bool)
if !ok {
return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
}
sv.Unbounded = ptr.Bool(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteMatrixBoundaryGeometry(v **types.RouteMatrixBoundaryGeometry, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteMatrixBoundaryGeometry
if *v == nil {
sv = &types.RouteMatrixBoundaryGeometry{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "AutoCircle":
if err := awsRestjson1_deserializeDocumentRouteMatrixAutoCircle(&sv.AutoCircle, value); err != nil {
return err
}
case "BoundingBox":
if err := awsRestjson1_deserializeDocumentBoundingBox(&sv.BoundingBox, value); err != nil {
return err
}
case "Circle":
if err := awsRestjson1_deserializeDocumentCircle(&sv.Circle, value); err != nil {
return err
}
case "Polygon":
if err := awsRestjson1_deserializeDocumentLinearRings(&sv.Polygon, value); err != nil {
return err
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteMatrixEntry(v **types.RouteMatrixEntry, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteMatrixEntry
if *v == nil {
sv = &types.RouteMatrixEntry{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Distance":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DistanceMeters to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.Distance = i64
}
case "Duration":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DurationSeconds to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.Duration = i64
}
case "Error":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteMatrixErrorCode to be of type string, got %T instead", value)
}
sv.Error = types.RouteMatrixErrorCode(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteMatrixRow(v *[]types.RouteMatrixEntry, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []types.RouteMatrixEntry
if *v == nil {
cv = []types.RouteMatrixEntry{}
} else {
cv = *v
}
for _, value := range shape {
var col types.RouteMatrixEntry
destAddr := &col
if err := awsRestjson1_deserializeDocumentRouteMatrixEntry(&destAddr, value); err != nil {
return err
}
col = *destAddr
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentRouteNoticeDetailRange(v **types.RouteNoticeDetailRange, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteNoticeDetailRange
if *v == nil {
sv = &types.RouteNoticeDetailRange{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Max":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.Max = ptr.Int32(int32(i64))
}
case "Min":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.Min = ptr.Int32(int32(i64))
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteNumber(v **types.RouteNumber, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteNumber
if *v == nil {
sv = &types.RouteNumber{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Direction":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteDirection to be of type string, got %T instead", value)
}
sv.Direction = types.RouteDirection(jtv)
}
case "Language":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected LanguageTag to be of type string, got %T instead", value)
}
sv.Language = ptr.String(jtv)
}
case "Value":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.Value = ptr.String(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteNumberList(v *[]types.RouteNumber, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []types.RouteNumber
if *v == nil {
cv = []types.RouteNumber{}
} else {
cv = *v
}
for _, value := range shape {
var col types.RouteNumber
destAddr := &col
if err := awsRestjson1_deserializeDocumentRouteNumber(&destAddr, value); err != nil {
return err
}
col = *destAddr
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentRoutePassThroughPlace(v **types.RoutePassThroughPlace, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RoutePassThroughPlace
if *v == nil {
sv = &types.RoutePassThroughPlace{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "OriginalPosition":
if err := awsRestjson1_deserializeDocumentPosition23(&sv.OriginalPosition, value); err != nil {
return err
}
case "Position":
if err := awsRestjson1_deserializeDocumentPosition23(&sv.Position, value); err != nil {
return err
}
case "WaypointIndex":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.WaypointIndex = ptr.Int32(int32(i64))
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRoutePassThroughWaypoint(v **types.RoutePassThroughWaypoint, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RoutePassThroughWaypoint
if *v == nil {
sv = &types.RoutePassThroughWaypoint{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "GeometryOffset":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.GeometryOffset = ptr.Int32(int32(i64))
}
case "Place":
if err := awsRestjson1_deserializeDocumentRoutePassThroughPlace(&sv.Place, value); err != nil {
return err
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRoutePassThroughWaypointList(v *[]types.RoutePassThroughWaypoint, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []types.RoutePassThroughWaypoint
if *v == nil {
cv = []types.RoutePassThroughWaypoint{}
} else {
cv = *v
}
for _, value := range shape {
var col types.RoutePassThroughWaypoint
destAddr := &col
if err := awsRestjson1_deserializeDocumentRoutePassThroughWaypoint(&destAddr, value); err != nil {
return err
}
col = *destAddr
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentRoutePedestrianArrival(v **types.RoutePedestrianArrival, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RoutePedestrianArrival
if *v == nil {
sv = &types.RoutePedestrianArrival{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Place":
if err := awsRestjson1_deserializeDocumentRoutePedestrianPlace(&sv.Place, value); err != nil {
return err
}
case "Time":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected TimestampWithTimezoneOffset to be of type string, got %T instead", value)
}
sv.Time = ptr.String(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRoutePedestrianDeparture(v **types.RoutePedestrianDeparture, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RoutePedestrianDeparture
if *v == nil {
sv = &types.RoutePedestrianDeparture{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Place":
if err := awsRestjson1_deserializeDocumentRoutePedestrianPlace(&sv.Place, value); err != nil {
return err
}
case "Time":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected TimestampWithTimezoneOffset to be of type string, got %T instead", value)
}
sv.Time = ptr.String(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRoutePedestrianLegDetails(v **types.RoutePedestrianLegDetails, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RoutePedestrianLegDetails
if *v == nil {
sv = &types.RoutePedestrianLegDetails{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Arrival":
if err := awsRestjson1_deserializeDocumentRoutePedestrianArrival(&sv.Arrival, value); err != nil {
return err
}
case "Departure":
if err := awsRestjson1_deserializeDocumentRoutePedestrianDeparture(&sv.Departure, value); err != nil {
return err
}
case "Notices":
if err := awsRestjson1_deserializeDocumentRoutePedestrianNoticeList(&sv.Notices, value); err != nil {
return err
}
case "PassThroughWaypoints":
if err := awsRestjson1_deserializeDocumentRoutePassThroughWaypointList(&sv.PassThroughWaypoints, value); err != nil {
return err
}
case "Spans":
if err := awsRestjson1_deserializeDocumentRoutePedestrianSpanList(&sv.Spans, value); err != nil {
return err
}
case "Summary":
if err := awsRestjson1_deserializeDocumentRoutePedestrianSummary(&sv.Summary, value); err != nil {
return err
}
case "TravelSteps":
if err := awsRestjson1_deserializeDocumentRoutePedestrianTravelStepList(&sv.TravelSteps, value); err != nil {
return err
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRoutePedestrianNotice(v **types.RoutePedestrianNotice, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RoutePedestrianNotice
if *v == nil {
sv = &types.RoutePedestrianNotice{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Code":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RoutePedestrianNoticeCode to be of type string, got %T instead", value)
}
sv.Code = types.RoutePedestrianNoticeCode(jtv)
}
case "Impact":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteNoticeImpact to be of type string, got %T instead", value)
}
sv.Impact = types.RouteNoticeImpact(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRoutePedestrianNoticeList(v *[]types.RoutePedestrianNotice, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []types.RoutePedestrianNotice
if *v == nil {
cv = []types.RoutePedestrianNotice{}
} else {
cv = *v
}
for _, value := range shape {
var col types.RoutePedestrianNotice
destAddr := &col
if err := awsRestjson1_deserializeDocumentRoutePedestrianNotice(&destAddr, value); err != nil {
return err
}
col = *destAddr
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentRoutePedestrianOverviewSummary(v **types.RoutePedestrianOverviewSummary, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RoutePedestrianOverviewSummary
if *v == nil {
sv = &types.RoutePedestrianOverviewSummary{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Distance":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DistanceMeters to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.Distance = i64
}
case "Duration":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DurationSeconds to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.Duration = i64
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRoutePedestrianPlace(v **types.RoutePedestrianPlace, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RoutePedestrianPlace
if *v == nil {
sv = &types.RoutePedestrianPlace{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Name":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.Name = ptr.String(jtv)
}
case "OriginalPosition":
if err := awsRestjson1_deserializeDocumentPosition23(&sv.OriginalPosition, value); err != nil {
return err
}
case "Position":
if err := awsRestjson1_deserializeDocumentPosition23(&sv.Position, value); err != nil {
return err
}
case "SideOfStreet":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteSideOfStreet to be of type string, got %T instead", value)
}
sv.SideOfStreet = types.RouteSideOfStreet(jtv)
}
case "WaypointIndex":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.WaypointIndex = ptr.Int32(int32(i64))
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRoutePedestrianSpan(v **types.RoutePedestrianSpan, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RoutePedestrianSpan
if *v == nil {
sv = &types.RoutePedestrianSpan{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "BestCaseDuration":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DurationSeconds to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.BestCaseDuration = i64
}
case "Country":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected CountryCode3 to be of type string, got %T instead", value)
}
sv.Country = ptr.String(jtv)
}
case "Distance":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DistanceMeters to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.Distance = i64
}
case "Duration":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DurationSeconds to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.Duration = i64
}
case "DynamicSpeed":
if err := awsRestjson1_deserializeDocumentRouteSpanDynamicSpeedDetails(&sv.DynamicSpeed, value); err != nil {
return err
}
case "FunctionalClassification":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.FunctionalClassification = ptr.Int32(int32(i64))
}
case "GeometryOffset":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.GeometryOffset = ptr.Int32(int32(i64))
}
case "Incidents":
if err := awsRestjson1_deserializeDocumentIndexList(&sv.Incidents, value); err != nil {
return err
}
case "Names":
if err := awsRestjson1_deserializeDocumentLocalizedStringList(&sv.Names, value); err != nil {
return err
}
case "PedestrianAccess":
if err := awsRestjson1_deserializeDocumentRouteSpanPedestrianAccessAttributeList(&sv.PedestrianAccess, value); err != nil {
return err
}
case "Region":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.Region = ptr.String(jtv)
}
case "RoadAttributes":
if err := awsRestjson1_deserializeDocumentRouteSpanRoadAttributeList(&sv.RoadAttributes, value); err != nil {
return err
}
case "RouteNumbers":
if err := awsRestjson1_deserializeDocumentRouteNumberList(&sv.RouteNumbers, value); err != nil {
return err
}
case "SpeedLimit":
if err := awsRestjson1_deserializeDocumentRouteSpanSpeedLimitDetails(&sv.SpeedLimit, value); err != nil {
return err
}
case "TypicalDuration":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DurationSeconds to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.TypicalDuration = i64
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRoutePedestrianSpanList(v *[]types.RoutePedestrianSpan, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []types.RoutePedestrianSpan
if *v == nil {
cv = []types.RoutePedestrianSpan{}
} else {
cv = *v
}
for _, value := range shape {
var col types.RoutePedestrianSpan
destAddr := &col
if err := awsRestjson1_deserializeDocumentRoutePedestrianSpan(&destAddr, value); err != nil {
return err
}
col = *destAddr
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentRoutePedestrianSummary(v **types.RoutePedestrianSummary, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RoutePedestrianSummary
if *v == nil {
sv = &types.RoutePedestrianSummary{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Overview":
if err := awsRestjson1_deserializeDocumentRoutePedestrianOverviewSummary(&sv.Overview, value); err != nil {
return err
}
case "TravelOnly":
if err := awsRestjson1_deserializeDocumentRoutePedestrianTravelOnlySummary(&sv.TravelOnly, value); err != nil {
return err
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRoutePedestrianTravelOnlySummary(v **types.RoutePedestrianTravelOnlySummary, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RoutePedestrianTravelOnlySummary
if *v == nil {
sv = &types.RoutePedestrianTravelOnlySummary{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Duration":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DurationSeconds to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.Duration = i64
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRoutePedestrianTravelStep(v **types.RoutePedestrianTravelStep, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RoutePedestrianTravelStep
if *v == nil {
sv = &types.RoutePedestrianTravelStep{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "ContinueStepDetails":
if err := awsRestjson1_deserializeDocumentRouteContinueStepDetails(&sv.ContinueStepDetails, value); err != nil {
return err
}
case "CurrentRoad":
if err := awsRestjson1_deserializeDocumentRouteRoad(&sv.CurrentRoad, value); err != nil {
return err
}
case "Distance":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DistanceMeters to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.Distance = i64
}
case "Duration":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DurationSeconds to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.Duration = i64
}
case "ExitNumber":
if err := awsRestjson1_deserializeDocumentLocalizedStringList(&sv.ExitNumber, value); err != nil {
return err
}
case "GeometryOffset":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.GeometryOffset = ptr.Int32(int32(i64))
}
case "Instruction":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.Instruction = ptr.String(jtv)
}
case "KeepStepDetails":
if err := awsRestjson1_deserializeDocumentRouteKeepStepDetails(&sv.KeepStepDetails, value); err != nil {
return err
}
case "NextRoad":
if err := awsRestjson1_deserializeDocumentRouteRoad(&sv.NextRoad, value); err != nil {
return err
}
case "RoundaboutEnterStepDetails":
if err := awsRestjson1_deserializeDocumentRouteRoundaboutEnterStepDetails(&sv.RoundaboutEnterStepDetails, value); err != nil {
return err
}
case "RoundaboutExitStepDetails":
if err := awsRestjson1_deserializeDocumentRouteRoundaboutExitStepDetails(&sv.RoundaboutExitStepDetails, value); err != nil {
return err
}
case "RoundaboutPassStepDetails":
if err := awsRestjson1_deserializeDocumentRouteRoundaboutPassStepDetails(&sv.RoundaboutPassStepDetails, value); err != nil {
return err
}
case "Signpost":
if err := awsRestjson1_deserializeDocumentRouteSignpost(&sv.Signpost, value); err != nil {
return err
}
case "TurnStepDetails":
if err := awsRestjson1_deserializeDocumentRouteTurnStepDetails(&sv.TurnStepDetails, value); err != nil {
return err
}
case "Type":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RoutePedestrianTravelStepType to be of type string, got %T instead", value)
}
sv.Type = types.RoutePedestrianTravelStepType(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRoutePedestrianTravelStepList(v *[]types.RoutePedestrianTravelStep, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []types.RoutePedestrianTravelStep
if *v == nil {
cv = []types.RoutePedestrianTravelStep{}
} else {
cv = *v
}
for _, value := range shape {
var col types.RoutePedestrianTravelStep
destAddr := &col
if err := awsRestjson1_deserializeDocumentRoutePedestrianTravelStep(&destAddr, value); err != nil {
return err
}
col = *destAddr
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentRouteRampStepDetails(v **types.RouteRampStepDetails, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteRampStepDetails
if *v == nil {
sv = &types.RouteRampStepDetails{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Intersection":
if err := awsRestjson1_deserializeDocumentLocalizedStringList(&sv.Intersection, value); err != nil {
return err
}
case "SteeringDirection":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteSteeringDirection to be of type string, got %T instead", value)
}
sv.SteeringDirection = types.RouteSteeringDirection(jtv)
}
case "TurnAngle":
if value != nil {
switch jtv := value.(type) {
case json.Number:
f64, err := jtv.Float64()
if err != nil {
return err
}
sv.TurnAngle = f64
case string:
var f64 float64
switch {
case strings.EqualFold(jtv, "NaN"):
f64 = math.NaN()
case strings.EqualFold(jtv, "Infinity"):
f64 = math.Inf(1)
case strings.EqualFold(jtv, "-Infinity"):
f64 = math.Inf(-1)
default:
return fmt.Errorf("unknown JSON number value: %s", jtv)
}
sv.TurnAngle = f64
default:
return fmt.Errorf("expected TurnAngle to be a JSON Number, got %T instead", value)
}
}
case "TurnIntensity":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteTurnIntensity to be of type string, got %T instead", value)
}
sv.TurnIntensity = types.RouteTurnIntensity(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteResponseNotice(v **types.RouteResponseNotice, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteResponseNotice
if *v == nil {
sv = &types.RouteResponseNotice{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Code":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteResponseNoticeCode to be of type string, got %T instead", value)
}
sv.Code = types.RouteResponseNoticeCode(jtv)
}
case "Impact":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteNoticeImpact to be of type string, got %T instead", value)
}
sv.Impact = types.RouteNoticeImpact(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteResponseNoticeList(v *[]types.RouteResponseNotice, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []types.RouteResponseNotice
if *v == nil {
cv = []types.RouteResponseNotice{}
} else {
cv = *v
}
for _, value := range shape {
var col types.RouteResponseNotice
destAddr := &col
if err := awsRestjson1_deserializeDocumentRouteResponseNotice(&destAddr, value); err != nil {
return err
}
col = *destAddr
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentRouteRoad(v **types.RouteRoad, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteRoad
if *v == nil {
sv = &types.RouteRoad{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "RoadName":
if err := awsRestjson1_deserializeDocumentLocalizedStringList(&sv.RoadName, value); err != nil {
return err
}
case "RouteNumber":
if err := awsRestjson1_deserializeDocumentRouteNumberList(&sv.RouteNumber, value); err != nil {
return err
}
case "Towards":
if err := awsRestjson1_deserializeDocumentLocalizedStringList(&sv.Towards, value); err != nil {
return err
}
case "Type":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteRoadType to be of type string, got %T instead", value)
}
sv.Type = types.RouteRoadType(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteRoundaboutEnterStepDetails(v **types.RouteRoundaboutEnterStepDetails, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteRoundaboutEnterStepDetails
if *v == nil {
sv = &types.RouteRoundaboutEnterStepDetails{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Intersection":
if err := awsRestjson1_deserializeDocumentLocalizedStringList(&sv.Intersection, value); err != nil {
return err
}
case "SteeringDirection":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteSteeringDirection to be of type string, got %T instead", value)
}
sv.SteeringDirection = types.RouteSteeringDirection(jtv)
}
case "TurnAngle":
if value != nil {
switch jtv := value.(type) {
case json.Number:
f64, err := jtv.Float64()
if err != nil {
return err
}
sv.TurnAngle = f64
case string:
var f64 float64
switch {
case strings.EqualFold(jtv, "NaN"):
f64 = math.NaN()
case strings.EqualFold(jtv, "Infinity"):
f64 = math.Inf(1)
case strings.EqualFold(jtv, "-Infinity"):
f64 = math.Inf(-1)
default:
return fmt.Errorf("unknown JSON number value: %s", jtv)
}
sv.TurnAngle = f64
default:
return fmt.Errorf("expected TurnAngle to be a JSON Number, got %T instead", value)
}
}
case "TurnIntensity":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteTurnIntensity to be of type string, got %T instead", value)
}
sv.TurnIntensity = types.RouteTurnIntensity(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteRoundaboutExitStepDetails(v **types.RouteRoundaboutExitStepDetails, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteRoundaboutExitStepDetails
if *v == nil {
sv = &types.RouteRoundaboutExitStepDetails{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Intersection":
if err := awsRestjson1_deserializeDocumentLocalizedStringList(&sv.Intersection, value); err != nil {
return err
}
case "RelativeExit":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.RelativeExit = ptr.Int32(int32(i64))
}
case "RoundaboutAngle":
if value != nil {
switch jtv := value.(type) {
case json.Number:
f64, err := jtv.Float64()
if err != nil {
return err
}
sv.RoundaboutAngle = f64
case string:
var f64 float64
switch {
case strings.EqualFold(jtv, "NaN"):
f64 = math.NaN()
case strings.EqualFold(jtv, "Infinity"):
f64 = math.Inf(1)
case strings.EqualFold(jtv, "-Infinity"):
f64 = math.Inf(-1)
default:
return fmt.Errorf("unknown JSON number value: %s", jtv)
}
sv.RoundaboutAngle = f64
default:
return fmt.Errorf("expected RoundaboutAngle to be a JSON Number, got %T instead", value)
}
}
case "SteeringDirection":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteSteeringDirection to be of type string, got %T instead", value)
}
sv.SteeringDirection = types.RouteSteeringDirection(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteRoundaboutPassStepDetails(v **types.RouteRoundaboutPassStepDetails, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteRoundaboutPassStepDetails
if *v == nil {
sv = &types.RouteRoundaboutPassStepDetails{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Intersection":
if err := awsRestjson1_deserializeDocumentLocalizedStringList(&sv.Intersection, value); err != nil {
return err
}
case "SteeringDirection":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteSteeringDirection to be of type string, got %T instead", value)
}
sv.SteeringDirection = types.RouteSteeringDirection(jtv)
}
case "TurnAngle":
if value != nil {
switch jtv := value.(type) {
case json.Number:
f64, err := jtv.Float64()
if err != nil {
return err
}
sv.TurnAngle = f64
case string:
var f64 float64
switch {
case strings.EqualFold(jtv, "NaN"):
f64 = math.NaN()
case strings.EqualFold(jtv, "Infinity"):
f64 = math.Inf(1)
case strings.EqualFold(jtv, "-Infinity"):
f64 = math.Inf(-1)
default:
return fmt.Errorf("unknown JSON number value: %s", jtv)
}
sv.TurnAngle = f64
default:
return fmt.Errorf("expected TurnAngle to be a JSON Number, got %T instead", value)
}
}
case "TurnIntensity":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteTurnIntensity to be of type string, got %T instead", value)
}
sv.TurnIntensity = types.RouteTurnIntensity(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteSignpost(v **types.RouteSignpost, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteSignpost
if *v == nil {
sv = &types.RouteSignpost{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Labels":
if err := awsRestjson1_deserializeDocumentRouteSignpostLabelList(&sv.Labels, value); err != nil {
return err
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteSignpostLabel(v **types.RouteSignpostLabel, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteSignpostLabel
if *v == nil {
sv = &types.RouteSignpostLabel{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "RouteNumber":
if err := awsRestjson1_deserializeDocumentRouteNumber(&sv.RouteNumber, value); err != nil {
return err
}
case "Text":
if err := awsRestjson1_deserializeDocumentLocalizedString(&sv.Text, value); err != nil {
return err
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteSignpostLabelList(v *[]types.RouteSignpostLabel, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []types.RouteSignpostLabel
if *v == nil {
cv = []types.RouteSignpostLabel{}
} else {
cv = *v
}
for _, value := range shape {
var col types.RouteSignpostLabel
destAddr := &col
if err := awsRestjson1_deserializeDocumentRouteSignpostLabel(&destAddr, value); err != nil {
return err
}
col = *destAddr
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentRouteSpanCarAccessAttributeList(v *[]types.RouteSpanCarAccessAttribute, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []types.RouteSpanCarAccessAttribute
if *v == nil {
cv = []types.RouteSpanCarAccessAttribute{}
} else {
cv = *v
}
for _, value := range shape {
var col types.RouteSpanCarAccessAttribute
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteSpanCarAccessAttribute to be of type string, got %T instead", value)
}
col = types.RouteSpanCarAccessAttribute(jtv)
}
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentRouteSpanDynamicSpeedDetails(v **types.RouteSpanDynamicSpeedDetails, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteSpanDynamicSpeedDetails
if *v == nil {
sv = &types.RouteSpanDynamicSpeedDetails{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "BestCaseSpeed":
if value != nil {
switch jtv := value.(type) {
case json.Number:
f64, err := jtv.Float64()
if err != nil {
return err
}
sv.BestCaseSpeed = f64
case string:
var f64 float64
switch {
case strings.EqualFold(jtv, "NaN"):
f64 = math.NaN()
case strings.EqualFold(jtv, "Infinity"):
f64 = math.Inf(1)
case strings.EqualFold(jtv, "-Infinity"):
f64 = math.Inf(-1)
default:
return fmt.Errorf("unknown JSON number value: %s", jtv)
}
sv.BestCaseSpeed = f64
default:
return fmt.Errorf("expected SpeedKilometersPerHour to be a JSON Number, got %T instead", value)
}
}
case "TurnDuration":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DurationSeconds to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.TurnDuration = i64
}
case "TypicalSpeed":
if value != nil {
switch jtv := value.(type) {
case json.Number:
f64, err := jtv.Float64()
if err != nil {
return err
}
sv.TypicalSpeed = f64
case string:
var f64 float64
switch {
case strings.EqualFold(jtv, "NaN"):
f64 = math.NaN()
case strings.EqualFold(jtv, "Infinity"):
f64 = math.Inf(1)
case strings.EqualFold(jtv, "-Infinity"):
f64 = math.Inf(-1)
default:
return fmt.Errorf("unknown JSON number value: %s", jtv)
}
sv.TypicalSpeed = f64
default:
return fmt.Errorf("expected SpeedKilometersPerHour to be a JSON Number, got %T instead", value)
}
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteSpanPedestrianAccessAttributeList(v *[]types.RouteSpanPedestrianAccessAttribute, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []types.RouteSpanPedestrianAccessAttribute
if *v == nil {
cv = []types.RouteSpanPedestrianAccessAttribute{}
} else {
cv = *v
}
for _, value := range shape {
var col types.RouteSpanPedestrianAccessAttribute
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteSpanPedestrianAccessAttribute to be of type string, got %T instead", value)
}
col = types.RouteSpanPedestrianAccessAttribute(jtv)
}
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentRouteSpanRoadAttributeList(v *[]types.RouteSpanRoadAttribute, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []types.RouteSpanRoadAttribute
if *v == nil {
cv = []types.RouteSpanRoadAttribute{}
} else {
cv = *v
}
for _, value := range shape {
var col types.RouteSpanRoadAttribute
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteSpanRoadAttribute to be of type string, got %T instead", value)
}
col = types.RouteSpanRoadAttribute(jtv)
}
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentRouteSpanScooterAccessAttributeList(v *[]types.RouteSpanScooterAccessAttribute, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []types.RouteSpanScooterAccessAttribute
if *v == nil {
cv = []types.RouteSpanScooterAccessAttribute{}
} else {
cv = *v
}
for _, value := range shape {
var col types.RouteSpanScooterAccessAttribute
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteSpanScooterAccessAttribute to be of type string, got %T instead", value)
}
col = types.RouteSpanScooterAccessAttribute(jtv)
}
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentRouteSpanSpeedLimitDetails(v **types.RouteSpanSpeedLimitDetails, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteSpanSpeedLimitDetails
if *v == nil {
sv = &types.RouteSpanSpeedLimitDetails{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "MaxSpeed":
if value != nil {
switch jtv := value.(type) {
case json.Number:
f64, err := jtv.Float64()
if err != nil {
return err
}
sv.MaxSpeed = f64
case string:
var f64 float64
switch {
case strings.EqualFold(jtv, "NaN"):
f64 = math.NaN()
case strings.EqualFold(jtv, "Infinity"):
f64 = math.Inf(1)
case strings.EqualFold(jtv, "-Infinity"):
f64 = math.Inf(-1)
default:
return fmt.Errorf("unknown JSON number value: %s", jtv)
}
sv.MaxSpeed = f64
default:
return fmt.Errorf("expected SpeedKilometersPerHour to be a JSON Number, got %T instead", value)
}
}
case "Unlimited":
if value != nil {
jtv, ok := value.(bool)
if !ok {
return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
}
sv.Unlimited = ptr.Bool(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteSpanTruckAccessAttributeList(v *[]types.RouteSpanTruckAccessAttribute, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []types.RouteSpanTruckAccessAttribute
if *v == nil {
cv = []types.RouteSpanTruckAccessAttribute{}
} else {
cv = *v
}
for _, value := range shape {
var col types.RouteSpanTruckAccessAttribute
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteSpanTruckAccessAttribute to be of type string, got %T instead", value)
}
col = types.RouteSpanTruckAccessAttribute(jtv)
}
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentRouteSummary(v **types.RouteSummary, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteSummary
if *v == nil {
sv = &types.RouteSummary{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Distance":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DistanceMeters to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.Distance = i64
}
case "Duration":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DurationSeconds to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.Duration = i64
}
case "Tolls":
if err := awsRestjson1_deserializeDocumentRouteTollSummary(&sv.Tolls, value); err != nil {
return err
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteToll(v **types.RouteToll, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteToll
if *v == nil {
sv = &types.RouteToll{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Country":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected CountryCode3 to be of type string, got %T instead", value)
}
sv.Country = ptr.String(jtv)
}
case "PaymentSites":
if err := awsRestjson1_deserializeDocumentRouteTollPaymentSiteList(&sv.PaymentSites, value); err != nil {
return err
}
case "Rates":
if err := awsRestjson1_deserializeDocumentRouteTollRateList(&sv.Rates, value); err != nil {
return err
}
case "Systems":
if err := awsRestjson1_deserializeDocumentIndexList(&sv.Systems, value); err != nil {
return err
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteTollList(v *[]types.RouteToll, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []types.RouteToll
if *v == nil {
cv = []types.RouteToll{}
} else {
cv = *v
}
for _, value := range shape {
var col types.RouteToll
destAddr := &col
if err := awsRestjson1_deserializeDocumentRouteToll(&destAddr, value); err != nil {
return err
}
col = *destAddr
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentRouteTollPass(v **types.RouteTollPass, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteTollPass
if *v == nil {
sv = &types.RouteTollPass{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "IncludesReturnTrip":
if value != nil {
jtv, ok := value.(bool)
if !ok {
return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
}
sv.IncludesReturnTrip = ptr.Bool(jtv)
}
case "SeniorPass":
if value != nil {
jtv, ok := value.(bool)
if !ok {
return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
}
sv.SeniorPass = ptr.Bool(jtv)
}
case "TransferCount":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.TransferCount = ptr.Int32(int32(i64))
}
case "TripCount":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.TripCount = ptr.Int32(int32(i64))
}
case "ValidityPeriod":
if err := awsRestjson1_deserializeDocumentRouteTollPassValidityPeriod(&sv.ValidityPeriod, value); err != nil {
return err
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteTollPassValidityPeriod(v **types.RouteTollPassValidityPeriod, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteTollPassValidityPeriod
if *v == nil {
sv = &types.RouteTollPassValidityPeriod{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Period":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteTollPassValidityPeriodType to be of type string, got %T instead", value)
}
sv.Period = types.RouteTollPassValidityPeriodType(jtv)
}
case "PeriodCount":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.PeriodCount = ptr.Int32(int32(i64))
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteTollPaymentMethodList(v *[]types.RouteTollPaymentMethod, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []types.RouteTollPaymentMethod
if *v == nil {
cv = []types.RouteTollPaymentMethod{}
} else {
cv = *v
}
for _, value := range shape {
var col types.RouteTollPaymentMethod
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteTollPaymentMethod to be of type string, got %T instead", value)
}
col = types.RouteTollPaymentMethod(jtv)
}
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentRouteTollPaymentSite(v **types.RouteTollPaymentSite, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteTollPaymentSite
if *v == nil {
sv = &types.RouteTollPaymentSite{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Name":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.Name = ptr.String(jtv)
}
case "Position":
if err := awsRestjson1_deserializeDocumentPosition23(&sv.Position, value); err != nil {
return err
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteTollPaymentSiteList(v *[]types.RouteTollPaymentSite, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []types.RouteTollPaymentSite
if *v == nil {
cv = []types.RouteTollPaymentSite{}
} else {
cv = *v
}
for _, value := range shape {
var col types.RouteTollPaymentSite
destAddr := &col
if err := awsRestjson1_deserializeDocumentRouteTollPaymentSite(&destAddr, value); err != nil {
return err
}
col = *destAddr
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentRouteTollPrice(v **types.RouteTollPrice, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteTollPrice
if *v == nil {
sv = &types.RouteTollPrice{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Currency":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected CurrencyCode to be of type string, got %T instead", value)
}
sv.Currency = ptr.String(jtv)
}
case "Estimate":
if value != nil {
jtv, ok := value.(bool)
if !ok {
return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
}
sv.Estimate = ptr.Bool(jtv)
}
case "PerDuration":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DurationSeconds to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.PerDuration = i64
}
case "Range":
if value != nil {
jtv, ok := value.(bool)
if !ok {
return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
}
sv.Range = ptr.Bool(jtv)
}
case "RangeValue":
if err := awsRestjson1_deserializeDocumentRouteTollPriceValueRange(&sv.RangeValue, value); err != nil {
return err
}
case "Value":
if value != nil {
switch jtv := value.(type) {
case json.Number:
f64, err := jtv.Float64()
if err != nil {
return err
}
sv.Value = ptr.Float64(f64)
case string:
var f64 float64
switch {
case strings.EqualFold(jtv, "NaN"):
f64 = math.NaN()
case strings.EqualFold(jtv, "Infinity"):
f64 = math.Inf(1)
case strings.EqualFold(jtv, "-Infinity"):
f64 = math.Inf(-1)
default:
return fmt.Errorf("unknown JSON number value: %s", jtv)
}
sv.Value = ptr.Float64(f64)
default:
return fmt.Errorf("expected Double to be a JSON Number, got %T instead", value)
}
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteTollPriceSummary(v **types.RouteTollPriceSummary, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteTollPriceSummary
if *v == nil {
sv = &types.RouteTollPriceSummary{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Currency":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected CurrencyCode to be of type string, got %T instead", value)
}
sv.Currency = ptr.String(jtv)
}
case "Estimate":
if value != nil {
jtv, ok := value.(bool)
if !ok {
return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
}
sv.Estimate = ptr.Bool(jtv)
}
case "Range":
if value != nil {
jtv, ok := value.(bool)
if !ok {
return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
}
sv.Range = ptr.Bool(jtv)
}
case "RangeValue":
if err := awsRestjson1_deserializeDocumentRouteTollPriceValueRange(&sv.RangeValue, value); err != nil {
return err
}
case "Value":
if value != nil {
switch jtv := value.(type) {
case json.Number:
f64, err := jtv.Float64()
if err != nil {
return err
}
sv.Value = ptr.Float64(f64)
case string:
var f64 float64
switch {
case strings.EqualFold(jtv, "NaN"):
f64 = math.NaN()
case strings.EqualFold(jtv, "Infinity"):
f64 = math.Inf(1)
case strings.EqualFold(jtv, "-Infinity"):
f64 = math.Inf(-1)
default:
return fmt.Errorf("unknown JSON number value: %s", jtv)
}
sv.Value = ptr.Float64(f64)
default:
return fmt.Errorf("expected Double to be a JSON Number, got %T instead", value)
}
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteTollPriceValueRange(v **types.RouteTollPriceValueRange, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteTollPriceValueRange
if *v == nil {
sv = &types.RouteTollPriceValueRange{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Max":
if value != nil {
switch jtv := value.(type) {
case json.Number:
f64, err := jtv.Float64()
if err != nil {
return err
}
sv.Max = ptr.Float64(f64)
case string:
var f64 float64
switch {
case strings.EqualFold(jtv, "NaN"):
f64 = math.NaN()
case strings.EqualFold(jtv, "Infinity"):
f64 = math.Inf(1)
case strings.EqualFold(jtv, "-Infinity"):
f64 = math.Inf(-1)
default:
return fmt.Errorf("unknown JSON number value: %s", jtv)
}
sv.Max = ptr.Float64(f64)
default:
return fmt.Errorf("expected Double to be a JSON Number, got %T instead", value)
}
}
case "Min":
if value != nil {
switch jtv := value.(type) {
case json.Number:
f64, err := jtv.Float64()
if err != nil {
return err
}
sv.Min = ptr.Float64(f64)
case string:
var f64 float64
switch {
case strings.EqualFold(jtv, "NaN"):
f64 = math.NaN()
case strings.EqualFold(jtv, "Infinity"):
f64 = math.Inf(1)
case strings.EqualFold(jtv, "-Infinity"):
f64 = math.Inf(-1)
default:
return fmt.Errorf("unknown JSON number value: %s", jtv)
}
sv.Min = ptr.Float64(f64)
default:
return fmt.Errorf("expected Double to be a JSON Number, got %T instead", value)
}
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteTollRate(v **types.RouteTollRate, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteTollRate
if *v == nil {
sv = &types.RouteTollRate{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "ApplicableTimes":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.ApplicableTimes = ptr.String(jtv)
}
case "ConvertedPrice":
if err := awsRestjson1_deserializeDocumentRouteTollPrice(&sv.ConvertedPrice, value); err != nil {
return err
}
case "Id":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.Id = ptr.String(jtv)
}
case "LocalPrice":
if err := awsRestjson1_deserializeDocumentRouteTollPrice(&sv.LocalPrice, value); err != nil {
return err
}
case "Name":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.Name = ptr.String(jtv)
}
case "Pass":
if err := awsRestjson1_deserializeDocumentRouteTollPass(&sv.Pass, value); err != nil {
return err
}
case "PaymentMethods":
if err := awsRestjson1_deserializeDocumentRouteTollPaymentMethodList(&sv.PaymentMethods, value); err != nil {
return err
}
case "Transponders":
if err := awsRestjson1_deserializeDocumentRouteTransponderList(&sv.Transponders, value); err != nil {
return err
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteTollRateList(v *[]types.RouteTollRate, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []types.RouteTollRate
if *v == nil {
cv = []types.RouteTollRate{}
} else {
cv = *v
}
for _, value := range shape {
var col types.RouteTollRate
destAddr := &col
if err := awsRestjson1_deserializeDocumentRouteTollRate(&destAddr, value); err != nil {
return err
}
col = *destAddr
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentRouteTollSummary(v **types.RouteTollSummary, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteTollSummary
if *v == nil {
sv = &types.RouteTollSummary{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Total":
if err := awsRestjson1_deserializeDocumentRouteTollPriceSummary(&sv.Total, value); err != nil {
return err
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteTollSystem(v **types.RouteTollSystem, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteTollSystem
if *v == nil {
sv = &types.RouteTollSystem{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Name":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.Name = ptr.String(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteTollSystemList(v *[]types.RouteTollSystem, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []types.RouteTollSystem
if *v == nil {
cv = []types.RouteTollSystem{}
} else {
cv = *v
}
for _, value := range shape {
var col types.RouteTollSystem
destAddr := &col
if err := awsRestjson1_deserializeDocumentRouteTollSystem(&destAddr, value); err != nil {
return err
}
col = *destAddr
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentRouteTransponder(v **types.RouteTransponder, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteTransponder
if *v == nil {
sv = &types.RouteTransponder{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "SystemName":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.SystemName = ptr.String(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteTransponderList(v *[]types.RouteTransponder, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []types.RouteTransponder
if *v == nil {
cv = []types.RouteTransponder{}
} else {
cv = *v
}
for _, value := range shape {
var col types.RouteTransponder
destAddr := &col
if err := awsRestjson1_deserializeDocumentRouteTransponder(&destAddr, value); err != nil {
return err
}
col = *destAddr
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentRouteTurnStepDetails(v **types.RouteTurnStepDetails, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteTurnStepDetails
if *v == nil {
sv = &types.RouteTurnStepDetails{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Intersection":
if err := awsRestjson1_deserializeDocumentLocalizedStringList(&sv.Intersection, value); err != nil {
return err
}
case "SteeringDirection":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteSteeringDirection to be of type string, got %T instead", value)
}
sv.SteeringDirection = types.RouteSteeringDirection(jtv)
}
case "TurnAngle":
if value != nil {
switch jtv := value.(type) {
case json.Number:
f64, err := jtv.Float64()
if err != nil {
return err
}
sv.TurnAngle = f64
case string:
var f64 float64
switch {
case strings.EqualFold(jtv, "NaN"):
f64 = math.NaN()
case strings.EqualFold(jtv, "Infinity"):
f64 = math.Inf(1)
case strings.EqualFold(jtv, "-Infinity"):
f64 = math.Inf(-1)
default:
return fmt.Errorf("unknown JSON number value: %s", jtv)
}
sv.TurnAngle = f64
default:
return fmt.Errorf("expected TurnAngle to be a JSON Number, got %T instead", value)
}
}
case "TurnIntensity":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteTurnIntensity to be of type string, got %T instead", value)
}
sv.TurnIntensity = types.RouteTurnIntensity(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteUTurnStepDetails(v **types.RouteUTurnStepDetails, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteUTurnStepDetails
if *v == nil {
sv = &types.RouteUTurnStepDetails{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Intersection":
if err := awsRestjson1_deserializeDocumentLocalizedStringList(&sv.Intersection, value); err != nil {
return err
}
case "SteeringDirection":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteSteeringDirection to be of type string, got %T instead", value)
}
sv.SteeringDirection = types.RouteSteeringDirection(jtv)
}
case "TurnAngle":
if value != nil {
switch jtv := value.(type) {
case json.Number:
f64, err := jtv.Float64()
if err != nil {
return err
}
sv.TurnAngle = f64
case string:
var f64 float64
switch {
case strings.EqualFold(jtv, "NaN"):
f64 = math.NaN()
case strings.EqualFold(jtv, "Infinity"):
f64 = math.Inf(1)
case strings.EqualFold(jtv, "-Infinity"):
f64 = math.Inf(-1)
default:
return fmt.Errorf("unknown JSON number value: %s", jtv)
}
sv.TurnAngle = f64
default:
return fmt.Errorf("expected TurnAngle to be a JSON Number, got %T instead", value)
}
}
case "TurnIntensity":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteTurnIntensity to be of type string, got %T instead", value)
}
sv.TurnIntensity = types.RouteTurnIntensity(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteVehicleArrival(v **types.RouteVehicleArrival, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteVehicleArrival
if *v == nil {
sv = &types.RouteVehicleArrival{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Place":
if err := awsRestjson1_deserializeDocumentRouteVehiclePlace(&sv.Place, value); err != nil {
return err
}
case "Time":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected TimestampWithTimezoneOffset to be of type string, got %T instead", value)
}
sv.Time = ptr.String(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteVehicleDeparture(v **types.RouteVehicleDeparture, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteVehicleDeparture
if *v == nil {
sv = &types.RouteVehicleDeparture{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Place":
if err := awsRestjson1_deserializeDocumentRouteVehiclePlace(&sv.Place, value); err != nil {
return err
}
case "Time":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected TimestampWithTimezoneOffset to be of type string, got %T instead", value)
}
sv.Time = ptr.String(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteVehicleIncident(v **types.RouteVehicleIncident, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteVehicleIncident
if *v == nil {
sv = &types.RouteVehicleIncident{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Description":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.Description = ptr.String(jtv)
}
case "EndTime":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected TimestampWithTimezoneOffset to be of type string, got %T instead", value)
}
sv.EndTime = ptr.String(jtv)
}
case "Severity":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteVehicleIncidentSeverity to be of type string, got %T instead", value)
}
sv.Severity = types.RouteVehicleIncidentSeverity(jtv)
}
case "StartTime":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected TimestampWithTimezoneOffset to be of type string, got %T instead", value)
}
sv.StartTime = ptr.String(jtv)
}
case "Type":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteVehicleIncidentType to be of type string, got %T instead", value)
}
sv.Type = types.RouteVehicleIncidentType(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteVehicleIncidentList(v *[]types.RouteVehicleIncident, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []types.RouteVehicleIncident
if *v == nil {
cv = []types.RouteVehicleIncident{}
} else {
cv = *v
}
for _, value := range shape {
var col types.RouteVehicleIncident
destAddr := &col
if err := awsRestjson1_deserializeDocumentRouteVehicleIncident(&destAddr, value); err != nil {
return err
}
col = *destAddr
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentRouteVehicleLegDetails(v **types.RouteVehicleLegDetails, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteVehicleLegDetails
if *v == nil {
sv = &types.RouteVehicleLegDetails{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Arrival":
if err := awsRestjson1_deserializeDocumentRouteVehicleArrival(&sv.Arrival, value); err != nil {
return err
}
case "Departure":
if err := awsRestjson1_deserializeDocumentRouteVehicleDeparture(&sv.Departure, value); err != nil {
return err
}
case "Incidents":
if err := awsRestjson1_deserializeDocumentRouteVehicleIncidentList(&sv.Incidents, value); err != nil {
return err
}
case "Notices":
if err := awsRestjson1_deserializeDocumentRouteVehicleNoticeList(&sv.Notices, value); err != nil {
return err
}
case "PassThroughWaypoints":
if err := awsRestjson1_deserializeDocumentRoutePassThroughWaypointList(&sv.PassThroughWaypoints, value); err != nil {
return err
}
case "Spans":
if err := awsRestjson1_deserializeDocumentRouteVehicleSpanList(&sv.Spans, value); err != nil {
return err
}
case "Summary":
if err := awsRestjson1_deserializeDocumentRouteVehicleSummary(&sv.Summary, value); err != nil {
return err
}
case "Tolls":
if err := awsRestjson1_deserializeDocumentRouteTollList(&sv.Tolls, value); err != nil {
return err
}
case "TollSystems":
if err := awsRestjson1_deserializeDocumentRouteTollSystemList(&sv.TollSystems, value); err != nil {
return err
}
case "TravelSteps":
if err := awsRestjson1_deserializeDocumentRouteVehicleTravelStepList(&sv.TravelSteps, value); err != nil {
return err
}
case "TruckRoadTypes":
if err := awsRestjson1_deserializeDocumentTruckRoadTypeList(&sv.TruckRoadTypes, value); err != nil {
return err
}
case "Zones":
if err := awsRestjson1_deserializeDocumentRouteZoneList(&sv.Zones, value); err != nil {
return err
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteVehicleNotice(v **types.RouteVehicleNotice, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteVehicleNotice
if *v == nil {
sv = &types.RouteVehicleNotice{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Code":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteVehicleNoticeCode to be of type string, got %T instead", value)
}
sv.Code = types.RouteVehicleNoticeCode(jtv)
}
case "Details":
if err := awsRestjson1_deserializeDocumentRouteVehicleNoticeDetailList(&sv.Details, value); err != nil {
return err
}
case "Impact":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteNoticeImpact to be of type string, got %T instead", value)
}
sv.Impact = types.RouteNoticeImpact(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteVehicleNoticeDetail(v **types.RouteVehicleNoticeDetail, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteVehicleNoticeDetail
if *v == nil {
sv = &types.RouteVehicleNoticeDetail{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Title":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.Title = ptr.String(jtv)
}
case "ViolatedConstraints":
if err := awsRestjson1_deserializeDocumentRouteViolatedConstraints(&sv.ViolatedConstraints, value); err != nil {
return err
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteVehicleNoticeDetailList(v *[]types.RouteVehicleNoticeDetail, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []types.RouteVehicleNoticeDetail
if *v == nil {
cv = []types.RouteVehicleNoticeDetail{}
} else {
cv = *v
}
for _, value := range shape {
var col types.RouteVehicleNoticeDetail
destAddr := &col
if err := awsRestjson1_deserializeDocumentRouteVehicleNoticeDetail(&destAddr, value); err != nil {
return err
}
col = *destAddr
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentRouteVehicleNoticeList(v *[]types.RouteVehicleNotice, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []types.RouteVehicleNotice
if *v == nil {
cv = []types.RouteVehicleNotice{}
} else {
cv = *v
}
for _, value := range shape {
var col types.RouteVehicleNotice
destAddr := &col
if err := awsRestjson1_deserializeDocumentRouteVehicleNotice(&destAddr, value); err != nil {
return err
}
col = *destAddr
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentRouteVehicleOverviewSummary(v **types.RouteVehicleOverviewSummary, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteVehicleOverviewSummary
if *v == nil {
sv = &types.RouteVehicleOverviewSummary{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "BestCaseDuration":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DurationSeconds to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.BestCaseDuration = i64
}
case "Distance":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DistanceMeters to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.Distance = i64
}
case "Duration":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DurationSeconds to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.Duration = i64
}
case "TypicalDuration":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DurationSeconds to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.TypicalDuration = i64
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteVehiclePlace(v **types.RouteVehiclePlace, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteVehiclePlace
if *v == nil {
sv = &types.RouteVehiclePlace{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Name":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.Name = ptr.String(jtv)
}
case "OriginalPosition":
if err := awsRestjson1_deserializeDocumentPosition23(&sv.OriginalPosition, value); err != nil {
return err
}
case "Position":
if err := awsRestjson1_deserializeDocumentPosition23(&sv.Position, value); err != nil {
return err
}
case "SideOfStreet":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteSideOfStreet to be of type string, got %T instead", value)
}
sv.SideOfStreet = types.RouteSideOfStreet(jtv)
}
case "WaypointIndex":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.WaypointIndex = ptr.Int32(int32(i64))
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteVehicleSpan(v **types.RouteVehicleSpan, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteVehicleSpan
if *v == nil {
sv = &types.RouteVehicleSpan{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "BestCaseDuration":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DurationSeconds to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.BestCaseDuration = i64
}
case "CarAccess":
if err := awsRestjson1_deserializeDocumentRouteSpanCarAccessAttributeList(&sv.CarAccess, value); err != nil {
return err
}
case "Country":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected CountryCode3 to be of type string, got %T instead", value)
}
sv.Country = ptr.String(jtv)
}
case "Distance":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DistanceMeters to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.Distance = i64
}
case "Duration":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DurationSeconds to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.Duration = i64
}
case "DynamicSpeed":
if err := awsRestjson1_deserializeDocumentRouteSpanDynamicSpeedDetails(&sv.DynamicSpeed, value); err != nil {
return err
}
case "FunctionalClassification":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.FunctionalClassification = ptr.Int32(int32(i64))
}
case "Gate":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteSpanGateAttribute to be of type string, got %T instead", value)
}
sv.Gate = types.RouteSpanGateAttribute(jtv)
}
case "GeometryOffset":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.GeometryOffset = ptr.Int32(int32(i64))
}
case "Incidents":
if err := awsRestjson1_deserializeDocumentIndexList(&sv.Incidents, value); err != nil {
return err
}
case "Names":
if err := awsRestjson1_deserializeDocumentLocalizedStringList(&sv.Names, value); err != nil {
return err
}
case "Notices":
if err := awsRestjson1_deserializeDocumentIndexList(&sv.Notices, value); err != nil {
return err
}
case "RailwayCrossing":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteSpanRailwayCrossingAttribute to be of type string, got %T instead", value)
}
sv.RailwayCrossing = types.RouteSpanRailwayCrossingAttribute(jtv)
}
case "Region":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.Region = ptr.String(jtv)
}
case "RoadAttributes":
if err := awsRestjson1_deserializeDocumentRouteSpanRoadAttributeList(&sv.RoadAttributes, value); err != nil {
return err
}
case "RouteNumbers":
if err := awsRestjson1_deserializeDocumentRouteNumberList(&sv.RouteNumbers, value); err != nil {
return err
}
case "ScooterAccess":
if err := awsRestjson1_deserializeDocumentRouteSpanScooterAccessAttributeList(&sv.ScooterAccess, value); err != nil {
return err
}
case "SpeedLimit":
if err := awsRestjson1_deserializeDocumentRouteSpanSpeedLimitDetails(&sv.SpeedLimit, value); err != nil {
return err
}
case "TollSystems":
if err := awsRestjson1_deserializeDocumentIndexList(&sv.TollSystems, value); err != nil {
return err
}
case "TruckAccess":
if err := awsRestjson1_deserializeDocumentRouteSpanTruckAccessAttributeList(&sv.TruckAccess, value); err != nil {
return err
}
case "TruckRoadTypes":
if err := awsRestjson1_deserializeDocumentIndexList(&sv.TruckRoadTypes, value); err != nil {
return err
}
case "TypicalDuration":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DurationSeconds to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.TypicalDuration = i64
}
case "Zones":
if err := awsRestjson1_deserializeDocumentIndexList(&sv.Zones, value); err != nil {
return err
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteVehicleSpanList(v *[]types.RouteVehicleSpan, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []types.RouteVehicleSpan
if *v == nil {
cv = []types.RouteVehicleSpan{}
} else {
cv = *v
}
for _, value := range shape {
var col types.RouteVehicleSpan
destAddr := &col
if err := awsRestjson1_deserializeDocumentRouteVehicleSpan(&destAddr, value); err != nil {
return err
}
col = *destAddr
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentRouteVehicleSummary(v **types.RouteVehicleSummary, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteVehicleSummary
if *v == nil {
sv = &types.RouteVehicleSummary{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Overview":
if err := awsRestjson1_deserializeDocumentRouteVehicleOverviewSummary(&sv.Overview, value); err != nil {
return err
}
case "TravelOnly":
if err := awsRestjson1_deserializeDocumentRouteVehicleTravelOnlySummary(&sv.TravelOnly, value); err != nil {
return err
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteVehicleTravelOnlySummary(v **types.RouteVehicleTravelOnlySummary, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteVehicleTravelOnlySummary
if *v == nil {
sv = &types.RouteVehicleTravelOnlySummary{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "BestCaseDuration":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DurationSeconds to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.BestCaseDuration = i64
}
case "Duration":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DurationSeconds to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.Duration = i64
}
case "TypicalDuration":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DurationSeconds to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.TypicalDuration = i64
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteVehicleTravelStep(v **types.RouteVehicleTravelStep, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteVehicleTravelStep
if *v == nil {
sv = &types.RouteVehicleTravelStep{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "ContinueHighwayStepDetails":
if err := awsRestjson1_deserializeDocumentRouteContinueHighwayStepDetails(&sv.ContinueHighwayStepDetails, value); err != nil {
return err
}
case "ContinueStepDetails":
if err := awsRestjson1_deserializeDocumentRouteContinueStepDetails(&sv.ContinueStepDetails, value); err != nil {
return err
}
case "CurrentRoad":
if err := awsRestjson1_deserializeDocumentRouteRoad(&sv.CurrentRoad, value); err != nil {
return err
}
case "Distance":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DistanceMeters to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.Distance = i64
}
case "Duration":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DurationSeconds to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.Duration = i64
}
case "EnterHighwayStepDetails":
if err := awsRestjson1_deserializeDocumentRouteEnterHighwayStepDetails(&sv.EnterHighwayStepDetails, value); err != nil {
return err
}
case "ExitNumber":
if err := awsRestjson1_deserializeDocumentLocalizedStringList(&sv.ExitNumber, value); err != nil {
return err
}
case "ExitStepDetails":
if err := awsRestjson1_deserializeDocumentRouteExitStepDetails(&sv.ExitStepDetails, value); err != nil {
return err
}
case "GeometryOffset":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.GeometryOffset = ptr.Int32(int32(i64))
}
case "Instruction":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.Instruction = ptr.String(jtv)
}
case "KeepStepDetails":
if err := awsRestjson1_deserializeDocumentRouteKeepStepDetails(&sv.KeepStepDetails, value); err != nil {
return err
}
case "NextRoad":
if err := awsRestjson1_deserializeDocumentRouteRoad(&sv.NextRoad, value); err != nil {
return err
}
case "RampStepDetails":
if err := awsRestjson1_deserializeDocumentRouteRampStepDetails(&sv.RampStepDetails, value); err != nil {
return err
}
case "RoundaboutEnterStepDetails":
if err := awsRestjson1_deserializeDocumentRouteRoundaboutEnterStepDetails(&sv.RoundaboutEnterStepDetails, value); err != nil {
return err
}
case "RoundaboutExitStepDetails":
if err := awsRestjson1_deserializeDocumentRouteRoundaboutExitStepDetails(&sv.RoundaboutExitStepDetails, value); err != nil {
return err
}
case "RoundaboutPassStepDetails":
if err := awsRestjson1_deserializeDocumentRouteRoundaboutPassStepDetails(&sv.RoundaboutPassStepDetails, value); err != nil {
return err
}
case "Signpost":
if err := awsRestjson1_deserializeDocumentRouteSignpost(&sv.Signpost, value); err != nil {
return err
}
case "TurnStepDetails":
if err := awsRestjson1_deserializeDocumentRouteTurnStepDetails(&sv.TurnStepDetails, value); err != nil {
return err
}
case "Type":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteVehicleTravelStepType to be of type string, got %T instead", value)
}
sv.Type = types.RouteVehicleTravelStepType(jtv)
}
case "UTurnStepDetails":
if err := awsRestjson1_deserializeDocumentRouteUTurnStepDetails(&sv.UTurnStepDetails, value); err != nil {
return err
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteVehicleTravelStepList(v *[]types.RouteVehicleTravelStep, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []types.RouteVehicleTravelStep
if *v == nil {
cv = []types.RouteVehicleTravelStep{}
} else {
cv = *v
}
for _, value := range shape {
var col types.RouteVehicleTravelStep
destAddr := &col
if err := awsRestjson1_deserializeDocumentRouteVehicleTravelStep(&destAddr, value); err != nil {
return err
}
col = *destAddr
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentRouteViolatedConstraints(v **types.RouteViolatedConstraints, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteViolatedConstraints
if *v == nil {
sv = &types.RouteViolatedConstraints{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "AllHazardsRestricted":
if value != nil {
jtv, ok := value.(bool)
if !ok {
return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
}
sv.AllHazardsRestricted = ptr.Bool(jtv)
}
case "AxleCount":
if err := awsRestjson1_deserializeDocumentRouteNoticeDetailRange(&sv.AxleCount, value); err != nil {
return err
}
case "HazardousCargos":
if err := awsRestjson1_deserializeDocumentRouteHazardousCargoTypeList(&sv.HazardousCargos, value); err != nil {
return err
}
case "MaxHeight":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DimensionCentimeters to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.MaxHeight = i64
}
case "MaxKpraLength":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DimensionCentimeters to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.MaxKpraLength = i64
}
case "MaxLength":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DimensionCentimeters to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.MaxLength = i64
}
case "MaxPayloadCapacity":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected WeightKilograms to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.MaxPayloadCapacity = i64
}
case "MaxWeight":
if err := awsRestjson1_deserializeDocumentRouteWeightConstraint(&sv.MaxWeight, value); err != nil {
return err
}
case "MaxWeightPerAxle":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected WeightKilograms to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.MaxWeightPerAxle = i64
}
case "MaxWeightPerAxleGroup":
if err := awsRestjson1_deserializeDocumentWeightPerAxleGroup(&sv.MaxWeightPerAxleGroup, value); err != nil {
return err
}
case "MaxWidth":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DimensionCentimeters to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.MaxWidth = i64
}
case "Occupancy":
if err := awsRestjson1_deserializeDocumentRouteNoticeDetailRange(&sv.Occupancy, value); err != nil {
return err
}
case "RestrictedTimes":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.RestrictedTimes = ptr.String(jtv)
}
case "TimeDependent":
if value != nil {
jtv, ok := value.(bool)
if !ok {
return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
}
sv.TimeDependent = ptr.Bool(jtv)
}
case "TrailerCount":
if err := awsRestjson1_deserializeDocumentRouteNoticeDetailRange(&sv.TrailerCount, value); err != nil {
return err
}
case "TravelMode":
if value != nil {
jtv, ok := value.(bool)
if !ok {
return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
}
sv.TravelMode = ptr.Bool(jtv)
}
case "TruckRoadType":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.TruckRoadType = ptr.String(jtv)
}
case "TruckType":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteTruckType to be of type string, got %T instead", value)
}
sv.TruckType = types.RouteTruckType(jtv)
}
case "TunnelRestrictionCode":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected TunnelRestrictionCode to be of type string, got %T instead", value)
}
sv.TunnelRestrictionCode = ptr.String(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteWeightConstraint(v **types.RouteWeightConstraint, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteWeightConstraint
if *v == nil {
sv = &types.RouteWeightConstraint{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Type":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteWeightConstraintType to be of type string, got %T instead", value)
}
sv.Type = types.RouteWeightConstraintType(jtv)
}
case "Value":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected WeightKilograms to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.Value = i64
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteZone(v **types.RouteZone, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.RouteZone
if *v == nil {
sv = &types.RouteZone{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Category":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RouteZoneCategory to be of type string, got %T instead", value)
}
sv.Category = types.RouteZoneCategory(jtv)
}
case "Name":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.Name = ptr.String(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentRouteZoneList(v *[]types.RouteZone, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []types.RouteZone
if *v == nil {
cv = []types.RouteZone{}
} else {
cv = *v
}
for _, value := range shape {
var col types.RouteZone
destAddr := &col
if err := awsRestjson1_deserializeDocumentRouteZone(&destAddr, value); err != nil {
return err
}
col = *destAddr
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentThrottlingException(v **types.ThrottlingException, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.ThrottlingException
if *v == nil {
sv = &types.ThrottlingException{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "message", "Message":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.Message = ptr.String(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentTruckRoadTypeList(v *[]string, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []string
if *v == nil {
cv = []string{}
} else {
cv = *v
}
for _, value := range shape {
var col string
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected TruckRoadType to be of type string, got %T instead", value)
}
col = jtv
}
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentValidationException(v **types.ValidationException, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.ValidationException
if *v == nil {
sv = &types.ValidationException{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "fieldList":
if err := awsRestjson1_deserializeDocumentValidationExceptionFieldList(&sv.FieldList, value); err != nil {
return err
}
case "message", "Message":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.Message = ptr.String(jtv)
}
case "reason":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected ValidationExceptionReason to be of type string, got %T instead", value)
}
sv.Reason = types.ValidationExceptionReason(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentValidationExceptionField(v **types.ValidationExceptionField, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.ValidationExceptionField
if *v == nil {
sv = &types.ValidationExceptionField{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "message":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.Message = ptr.String(jtv)
}
case "name":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.Name = ptr.String(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentValidationExceptionFieldList(v *[]types.ValidationExceptionField, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []types.ValidationExceptionField
if *v == nil {
cv = []types.ValidationExceptionField{}
} else {
cv = *v
}
for _, value := range shape {
var col types.ValidationExceptionField
destAddr := &col
if err := awsRestjson1_deserializeDocumentValidationExceptionField(&destAddr, value); err != nil {
return err
}
col = *destAddr
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentWaypointOptimizationConnection(v **types.WaypointOptimizationConnection, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.WaypointOptimizationConnection
if *v == nil {
sv = &types.WaypointOptimizationConnection{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Distance":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DistanceMeters to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.Distance = i64
}
case "From":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected WaypointId to be of type string, got %T instead", value)
}
sv.From = ptr.String(jtv)
}
case "RestDuration":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DurationSeconds to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.RestDuration = i64
}
case "To":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected WaypointId to be of type string, got %T instead", value)
}
sv.To = ptr.String(jtv)
}
case "TravelDuration":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DurationSeconds to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.TravelDuration = i64
}
case "WaitDuration":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DurationSeconds to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.WaitDuration = i64
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentWaypointOptimizationConnectionList(v *[]types.WaypointOptimizationConnection, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []types.WaypointOptimizationConnection
if *v == nil {
cv = []types.WaypointOptimizationConnection{}
} else {
cv = *v
}
for _, value := range shape {
var col types.WaypointOptimizationConnection
destAddr := &col
if err := awsRestjson1_deserializeDocumentWaypointOptimizationConnection(&destAddr, value); err != nil {
return err
}
col = *destAddr
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentWaypointOptimizationFailedConstraint(v **types.WaypointOptimizationFailedConstraint, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.WaypointOptimizationFailedConstraint
if *v == nil {
sv = &types.WaypointOptimizationFailedConstraint{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Constraint":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected WaypointOptimizationConstraint to be of type string, got %T instead", value)
}
sv.Constraint = types.WaypointOptimizationConstraint(jtv)
}
case "Reason":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.Reason = ptr.String(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentWaypointOptimizationFailedConstraintList(v *[]types.WaypointOptimizationFailedConstraint, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []types.WaypointOptimizationFailedConstraint
if *v == nil {
cv = []types.WaypointOptimizationFailedConstraint{}
} else {
cv = *v
}
for _, value := range shape {
var col types.WaypointOptimizationFailedConstraint
destAddr := &col
if err := awsRestjson1_deserializeDocumentWaypointOptimizationFailedConstraint(&destAddr, value); err != nil {
return err
}
col = *destAddr
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentWaypointOptimizationImpedingWaypoint(v **types.WaypointOptimizationImpedingWaypoint, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.WaypointOptimizationImpedingWaypoint
if *v == nil {
sv = &types.WaypointOptimizationImpedingWaypoint{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "FailedConstraints":
if err := awsRestjson1_deserializeDocumentWaypointOptimizationFailedConstraintList(&sv.FailedConstraints, value); err != nil {
return err
}
case "Id":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected WaypointId to be of type string, got %T instead", value)
}
sv.Id = ptr.String(jtv)
}
case "Position":
if err := awsRestjson1_deserializeDocumentPosition(&sv.Position, value); err != nil {
return err
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentWaypointOptimizationImpedingWaypointList(v *[]types.WaypointOptimizationImpedingWaypoint, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []types.WaypointOptimizationImpedingWaypoint
if *v == nil {
cv = []types.WaypointOptimizationImpedingWaypoint{}
} else {
cv = *v
}
for _, value := range shape {
var col types.WaypointOptimizationImpedingWaypoint
destAddr := &col
if err := awsRestjson1_deserializeDocumentWaypointOptimizationImpedingWaypoint(&destAddr, value); err != nil {
return err
}
col = *destAddr
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentWaypointOptimizationOptimizedWaypoint(v **types.WaypointOptimizationOptimizedWaypoint, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.WaypointOptimizationOptimizedWaypoint
if *v == nil {
sv = &types.WaypointOptimizationOptimizedWaypoint{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "ArrivalTime":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected TimestampWithTimezoneOffset to be of type string, got %T instead", value)
}
sv.ArrivalTime = ptr.String(jtv)
}
case "ClusterIndex":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected ClusterIndex to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.ClusterIndex = ptr.Int32(int32(i64))
}
case "DepartureTime":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected TimestampWithTimezoneOffset to be of type string, got %T instead", value)
}
sv.DepartureTime = ptr.String(jtv)
}
case "Id":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected WaypointId to be of type string, got %T instead", value)
}
sv.Id = ptr.String(jtv)
}
case "Position":
if err := awsRestjson1_deserializeDocumentPosition(&sv.Position, value); err != nil {
return err
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentWaypointOptimizationOptimizedWaypointList(v *[]types.WaypointOptimizationOptimizedWaypoint, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.([]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var cv []types.WaypointOptimizationOptimizedWaypoint
if *v == nil {
cv = []types.WaypointOptimizationOptimizedWaypoint{}
} else {
cv = *v
}
for _, value := range shape {
var col types.WaypointOptimizationOptimizedWaypoint
destAddr := &col
if err := awsRestjson1_deserializeDocumentWaypointOptimizationOptimizedWaypoint(&destAddr, value); err != nil {
return err
}
col = *destAddr
cv = append(cv, col)
}
*v = cv
return nil
}
func awsRestjson1_deserializeDocumentWaypointOptimizationTimeBreakdown(v **types.WaypointOptimizationTimeBreakdown, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.WaypointOptimizationTimeBreakdown
if *v == nil {
sv = &types.WaypointOptimizationTimeBreakdown{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "RestDuration":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DurationSeconds to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.RestDuration = i64
}
case "ServiceDuration":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DurationSeconds to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.ServiceDuration = i64
}
case "TravelDuration":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DurationSeconds to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.TravelDuration = i64
}
case "WaitDuration":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected DurationSeconds to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.WaitDuration = i64
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}
func awsRestjson1_deserializeDocumentWeightPerAxleGroup(v **types.WeightPerAxleGroup, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.WeightPerAxleGroup
if *v == nil {
sv = &types.WeightPerAxleGroup{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "Quad":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected WeightKilograms to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.Quad = i64
}
case "Quint":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected WeightKilograms to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.Quint = i64
}
case "Single":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected WeightKilograms to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.Single = i64
}
case "Tandem":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected WeightKilograms to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.Tandem = i64
}
case "Triple":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected WeightKilograms to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.Triple = i64
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}