service/georoutes/serializers.go (3,302 lines of code) (raw):
// Code generated by smithy-go-codegen DO NOT EDIT.
package georoutes
import (
"bytes"
"context"
"fmt"
"github.com/aws/aws-sdk-go-v2/service/georoutes/types"
smithy "github.com/aws/smithy-go"
"github.com/aws/smithy-go/encoding/httpbinding"
smithyjson "github.com/aws/smithy-go/encoding/json"
"github.com/aws/smithy-go/middleware"
"github.com/aws/smithy-go/tracing"
smithyhttp "github.com/aws/smithy-go/transport/http"
"math"
)
type awsRestjson1_serializeOpCalculateIsolines struct {
}
func (*awsRestjson1_serializeOpCalculateIsolines) ID() string {
return "OperationSerializer"
}
func (m *awsRestjson1_serializeOpCalculateIsolines) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
out middleware.SerializeOutput, metadata middleware.Metadata, err error,
) {
_, span := tracing.StartSpan(ctx, "OperationSerializer")
endTimer := startMetricTimer(ctx, "client.call.serialization_duration")
defer endTimer()
defer span.End()
request, ok := in.Request.(*smithyhttp.Request)
if !ok {
return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
}
input, ok := in.Parameters.(*CalculateIsolinesInput)
_ = input
if !ok {
return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
}
opPath, opQuery := httpbinding.SplitURI("/isolines")
request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
request.Method = "POST"
var restEncoder *httpbinding.Encoder
if request.URL.RawPath == "" {
restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
} else {
request.URL.RawPath = smithyhttp.JoinPath(request.URL.RawPath, opPath)
restEncoder, err = httpbinding.NewEncoderWithRawPath(request.URL.Path, request.URL.RawPath, request.URL.RawQuery, request.Header)
}
if err != nil {
return out, metadata, &smithy.SerializationError{Err: err}
}
if err := awsRestjson1_serializeOpHttpBindingsCalculateIsolinesInput(input, restEncoder); err != nil {
return out, metadata, &smithy.SerializationError{Err: err}
}
restEncoder.SetHeader("Content-Type").String("application/json")
jsonEncoder := smithyjson.NewEncoder()
if err := awsRestjson1_serializeOpDocumentCalculateIsolinesInput(input, jsonEncoder.Value); err != nil {
return out, metadata, &smithy.SerializationError{Err: err}
}
if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
return out, metadata, &smithy.SerializationError{Err: err}
}
if request.Request, err = restEncoder.Encode(request.Request); err != nil {
return out, metadata, &smithy.SerializationError{Err: err}
}
in.Request = request
endTimer()
span.End()
return next.HandleSerialize(ctx, in)
}
func awsRestjson1_serializeOpHttpBindingsCalculateIsolinesInput(v *CalculateIsolinesInput, encoder *httpbinding.Encoder) error {
if v == nil {
return fmt.Errorf("unsupported serialization of nil %T", v)
}
if v.Key != nil {
encoder.SetQuery("key").String(*v.Key)
}
return nil
}
func awsRestjson1_serializeOpDocumentCalculateIsolinesInput(v *CalculateIsolinesInput, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.Allow != nil {
ok := object.Key("Allow")
if err := awsRestjson1_serializeDocumentIsolineAllowOptions(v.Allow, ok); err != nil {
return err
}
}
if v.ArrivalTime != nil {
ok := object.Key("ArrivalTime")
ok.String(*v.ArrivalTime)
}
if v.Avoid != nil {
ok := object.Key("Avoid")
if err := awsRestjson1_serializeDocumentIsolineAvoidanceOptions(v.Avoid, ok); err != nil {
return err
}
}
if v.DepartNow != nil {
ok := object.Key("DepartNow")
ok.Boolean(*v.DepartNow)
}
if v.DepartureTime != nil {
ok := object.Key("DepartureTime")
ok.String(*v.DepartureTime)
}
if v.Destination != nil {
ok := object.Key("Destination")
if err := awsRestjson1_serializeDocumentPosition(v.Destination, ok); err != nil {
return err
}
}
if v.DestinationOptions != nil {
ok := object.Key("DestinationOptions")
if err := awsRestjson1_serializeDocumentIsolineDestinationOptions(v.DestinationOptions, ok); err != nil {
return err
}
}
if len(v.IsolineGeometryFormat) > 0 {
ok := object.Key("IsolineGeometryFormat")
ok.String(string(v.IsolineGeometryFormat))
}
if v.IsolineGranularity != nil {
ok := object.Key("IsolineGranularity")
if err := awsRestjson1_serializeDocumentIsolineGranularityOptions(v.IsolineGranularity, ok); err != nil {
return err
}
}
if len(v.OptimizeIsolineFor) > 0 {
ok := object.Key("OptimizeIsolineFor")
ok.String(string(v.OptimizeIsolineFor))
}
if len(v.OptimizeRoutingFor) > 0 {
ok := object.Key("OptimizeRoutingFor")
ok.String(string(v.OptimizeRoutingFor))
}
if v.Origin != nil {
ok := object.Key("Origin")
if err := awsRestjson1_serializeDocumentPosition(v.Origin, ok); err != nil {
return err
}
}
if v.OriginOptions != nil {
ok := object.Key("OriginOptions")
if err := awsRestjson1_serializeDocumentIsolineOriginOptions(v.OriginOptions, ok); err != nil {
return err
}
}
if v.Thresholds != nil {
ok := object.Key("Thresholds")
if err := awsRestjson1_serializeDocumentIsolineThresholds(v.Thresholds, ok); err != nil {
return err
}
}
if v.Traffic != nil {
ok := object.Key("Traffic")
if err := awsRestjson1_serializeDocumentIsolineTrafficOptions(v.Traffic, ok); err != nil {
return err
}
}
if len(v.TravelMode) > 0 {
ok := object.Key("TravelMode")
ok.String(string(v.TravelMode))
}
if v.TravelModeOptions != nil {
ok := object.Key("TravelModeOptions")
if err := awsRestjson1_serializeDocumentIsolineTravelModeOptions(v.TravelModeOptions, ok); err != nil {
return err
}
}
return nil
}
type awsRestjson1_serializeOpCalculateRouteMatrix struct {
}
func (*awsRestjson1_serializeOpCalculateRouteMatrix) ID() string {
return "OperationSerializer"
}
func (m *awsRestjson1_serializeOpCalculateRouteMatrix) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
out middleware.SerializeOutput, metadata middleware.Metadata, err error,
) {
_, span := tracing.StartSpan(ctx, "OperationSerializer")
endTimer := startMetricTimer(ctx, "client.call.serialization_duration")
defer endTimer()
defer span.End()
request, ok := in.Request.(*smithyhttp.Request)
if !ok {
return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
}
input, ok := in.Parameters.(*CalculateRouteMatrixInput)
_ = input
if !ok {
return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
}
opPath, opQuery := httpbinding.SplitURI("/route-matrix")
request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
request.Method = "POST"
var restEncoder *httpbinding.Encoder
if request.URL.RawPath == "" {
restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
} else {
request.URL.RawPath = smithyhttp.JoinPath(request.URL.RawPath, opPath)
restEncoder, err = httpbinding.NewEncoderWithRawPath(request.URL.Path, request.URL.RawPath, request.URL.RawQuery, request.Header)
}
if err != nil {
return out, metadata, &smithy.SerializationError{Err: err}
}
if err := awsRestjson1_serializeOpHttpBindingsCalculateRouteMatrixInput(input, restEncoder); err != nil {
return out, metadata, &smithy.SerializationError{Err: err}
}
restEncoder.SetHeader("Content-Type").String("application/json")
jsonEncoder := smithyjson.NewEncoder()
if err := awsRestjson1_serializeOpDocumentCalculateRouteMatrixInput(input, jsonEncoder.Value); err != nil {
return out, metadata, &smithy.SerializationError{Err: err}
}
if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
return out, metadata, &smithy.SerializationError{Err: err}
}
if request.Request, err = restEncoder.Encode(request.Request); err != nil {
return out, metadata, &smithy.SerializationError{Err: err}
}
in.Request = request
endTimer()
span.End()
return next.HandleSerialize(ctx, in)
}
func awsRestjson1_serializeOpHttpBindingsCalculateRouteMatrixInput(v *CalculateRouteMatrixInput, encoder *httpbinding.Encoder) error {
if v == nil {
return fmt.Errorf("unsupported serialization of nil %T", v)
}
if v.Key != nil {
encoder.SetQuery("key").String(*v.Key)
}
return nil
}
func awsRestjson1_serializeOpDocumentCalculateRouteMatrixInput(v *CalculateRouteMatrixInput, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.Allow != nil {
ok := object.Key("Allow")
if err := awsRestjson1_serializeDocumentRouteMatrixAllowOptions(v.Allow, ok); err != nil {
return err
}
}
if v.Avoid != nil {
ok := object.Key("Avoid")
if err := awsRestjson1_serializeDocumentRouteMatrixAvoidanceOptions(v.Avoid, ok); err != nil {
return err
}
}
if v.DepartNow != nil {
ok := object.Key("DepartNow")
ok.Boolean(*v.DepartNow)
}
if v.DepartureTime != nil {
ok := object.Key("DepartureTime")
ok.String(*v.DepartureTime)
}
if v.Destinations != nil {
ok := object.Key("Destinations")
if err := awsRestjson1_serializeDocumentRouteMatrixDestinationList(v.Destinations, ok); err != nil {
return err
}
}
if v.Exclude != nil {
ok := object.Key("Exclude")
if err := awsRestjson1_serializeDocumentRouteMatrixExclusionOptions(v.Exclude, ok); err != nil {
return err
}
}
if len(v.OptimizeRoutingFor) > 0 {
ok := object.Key("OptimizeRoutingFor")
ok.String(string(v.OptimizeRoutingFor))
}
if v.Origins != nil {
ok := object.Key("Origins")
if err := awsRestjson1_serializeDocumentRouteMatrixOriginList(v.Origins, ok); err != nil {
return err
}
}
if v.RoutingBoundary != nil {
ok := object.Key("RoutingBoundary")
if err := awsRestjson1_serializeDocumentRouteMatrixBoundary(v.RoutingBoundary, ok); err != nil {
return err
}
}
if v.Traffic != nil {
ok := object.Key("Traffic")
if err := awsRestjson1_serializeDocumentRouteMatrixTrafficOptions(v.Traffic, ok); err != nil {
return err
}
}
if len(v.TravelMode) > 0 {
ok := object.Key("TravelMode")
ok.String(string(v.TravelMode))
}
if v.TravelModeOptions != nil {
ok := object.Key("TravelModeOptions")
if err := awsRestjson1_serializeDocumentRouteMatrixTravelModeOptions(v.TravelModeOptions, ok); err != nil {
return err
}
}
return nil
}
type awsRestjson1_serializeOpCalculateRoutes struct {
}
func (*awsRestjson1_serializeOpCalculateRoutes) ID() string {
return "OperationSerializer"
}
func (m *awsRestjson1_serializeOpCalculateRoutes) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
out middleware.SerializeOutput, metadata middleware.Metadata, err error,
) {
_, span := tracing.StartSpan(ctx, "OperationSerializer")
endTimer := startMetricTimer(ctx, "client.call.serialization_duration")
defer endTimer()
defer span.End()
request, ok := in.Request.(*smithyhttp.Request)
if !ok {
return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
}
input, ok := in.Parameters.(*CalculateRoutesInput)
_ = input
if !ok {
return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
}
opPath, opQuery := httpbinding.SplitURI("/routes")
request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
request.Method = "POST"
var restEncoder *httpbinding.Encoder
if request.URL.RawPath == "" {
restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
} else {
request.URL.RawPath = smithyhttp.JoinPath(request.URL.RawPath, opPath)
restEncoder, err = httpbinding.NewEncoderWithRawPath(request.URL.Path, request.URL.RawPath, request.URL.RawQuery, request.Header)
}
if err != nil {
return out, metadata, &smithy.SerializationError{Err: err}
}
if err := awsRestjson1_serializeOpHttpBindingsCalculateRoutesInput(input, restEncoder); err != nil {
return out, metadata, &smithy.SerializationError{Err: err}
}
restEncoder.SetHeader("Content-Type").String("application/json")
jsonEncoder := smithyjson.NewEncoder()
if err := awsRestjson1_serializeOpDocumentCalculateRoutesInput(input, jsonEncoder.Value); err != nil {
return out, metadata, &smithy.SerializationError{Err: err}
}
if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
return out, metadata, &smithy.SerializationError{Err: err}
}
if request.Request, err = restEncoder.Encode(request.Request); err != nil {
return out, metadata, &smithy.SerializationError{Err: err}
}
in.Request = request
endTimer()
span.End()
return next.HandleSerialize(ctx, in)
}
func awsRestjson1_serializeOpHttpBindingsCalculateRoutesInput(v *CalculateRoutesInput, encoder *httpbinding.Encoder) error {
if v == nil {
return fmt.Errorf("unsupported serialization of nil %T", v)
}
if v.Key != nil {
encoder.SetQuery("key").String(*v.Key)
}
return nil
}
func awsRestjson1_serializeOpDocumentCalculateRoutesInput(v *CalculateRoutesInput, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.Allow != nil {
ok := object.Key("Allow")
if err := awsRestjson1_serializeDocumentRouteAllowOptions(v.Allow, ok); err != nil {
return err
}
}
if v.ArrivalTime != nil {
ok := object.Key("ArrivalTime")
ok.String(*v.ArrivalTime)
}
if v.Avoid != nil {
ok := object.Key("Avoid")
if err := awsRestjson1_serializeDocumentRouteAvoidanceOptions(v.Avoid, ok); err != nil {
return err
}
}
if v.DepartNow != nil {
ok := object.Key("DepartNow")
ok.Boolean(*v.DepartNow)
}
if v.DepartureTime != nil {
ok := object.Key("DepartureTime")
ok.String(*v.DepartureTime)
}
if v.Destination != nil {
ok := object.Key("Destination")
if err := awsRestjson1_serializeDocumentPosition(v.Destination, ok); err != nil {
return err
}
}
if v.DestinationOptions != nil {
ok := object.Key("DestinationOptions")
if err := awsRestjson1_serializeDocumentRouteDestinationOptions(v.DestinationOptions, ok); err != nil {
return err
}
}
if v.Driver != nil {
ok := object.Key("Driver")
if err := awsRestjson1_serializeDocumentRouteDriverOptions(v.Driver, ok); err != nil {
return err
}
}
if v.Exclude != nil {
ok := object.Key("Exclude")
if err := awsRestjson1_serializeDocumentRouteExclusionOptions(v.Exclude, ok); err != nil {
return err
}
}
if len(v.InstructionsMeasurementSystem) > 0 {
ok := object.Key("InstructionsMeasurementSystem")
ok.String(string(v.InstructionsMeasurementSystem))
}
if v.Languages != nil {
ok := object.Key("Languages")
if err := awsRestjson1_serializeDocumentLanguageTagList(v.Languages, ok); err != nil {
return err
}
}
if v.LegAdditionalFeatures != nil {
ok := object.Key("LegAdditionalFeatures")
if err := awsRestjson1_serializeDocumentRouteLegAdditionalFeatureList(v.LegAdditionalFeatures, ok); err != nil {
return err
}
}
if len(v.LegGeometryFormat) > 0 {
ok := object.Key("LegGeometryFormat")
ok.String(string(v.LegGeometryFormat))
}
if v.MaxAlternatives != nil {
ok := object.Key("MaxAlternatives")
ok.Integer(*v.MaxAlternatives)
}
if len(v.OptimizeRoutingFor) > 0 {
ok := object.Key("OptimizeRoutingFor")
ok.String(string(v.OptimizeRoutingFor))
}
if v.Origin != nil {
ok := object.Key("Origin")
if err := awsRestjson1_serializeDocumentPosition(v.Origin, ok); err != nil {
return err
}
}
if v.OriginOptions != nil {
ok := object.Key("OriginOptions")
if err := awsRestjson1_serializeDocumentRouteOriginOptions(v.OriginOptions, ok); err != nil {
return err
}
}
if v.SpanAdditionalFeatures != nil {
ok := object.Key("SpanAdditionalFeatures")
if err := awsRestjson1_serializeDocumentRouteSpanAdditionalFeatureList(v.SpanAdditionalFeatures, ok); err != nil {
return err
}
}
if v.Tolls != nil {
ok := object.Key("Tolls")
if err := awsRestjson1_serializeDocumentRouteTollOptions(v.Tolls, ok); err != nil {
return err
}
}
if v.Traffic != nil {
ok := object.Key("Traffic")
if err := awsRestjson1_serializeDocumentRouteTrafficOptions(v.Traffic, ok); err != nil {
return err
}
}
if len(v.TravelMode) > 0 {
ok := object.Key("TravelMode")
ok.String(string(v.TravelMode))
}
if v.TravelModeOptions != nil {
ok := object.Key("TravelModeOptions")
if err := awsRestjson1_serializeDocumentRouteTravelModeOptions(v.TravelModeOptions, ok); err != nil {
return err
}
}
if len(v.TravelStepType) > 0 {
ok := object.Key("TravelStepType")
ok.String(string(v.TravelStepType))
}
if v.Waypoints != nil {
ok := object.Key("Waypoints")
if err := awsRestjson1_serializeDocumentRouteWaypointList(v.Waypoints, ok); err != nil {
return err
}
}
return nil
}
type awsRestjson1_serializeOpOptimizeWaypoints struct {
}
func (*awsRestjson1_serializeOpOptimizeWaypoints) ID() string {
return "OperationSerializer"
}
func (m *awsRestjson1_serializeOpOptimizeWaypoints) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
out middleware.SerializeOutput, metadata middleware.Metadata, err error,
) {
_, span := tracing.StartSpan(ctx, "OperationSerializer")
endTimer := startMetricTimer(ctx, "client.call.serialization_duration")
defer endTimer()
defer span.End()
request, ok := in.Request.(*smithyhttp.Request)
if !ok {
return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
}
input, ok := in.Parameters.(*OptimizeWaypointsInput)
_ = input
if !ok {
return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
}
opPath, opQuery := httpbinding.SplitURI("/optimize-waypoints")
request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
request.Method = "POST"
var restEncoder *httpbinding.Encoder
if request.URL.RawPath == "" {
restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
} else {
request.URL.RawPath = smithyhttp.JoinPath(request.URL.RawPath, opPath)
restEncoder, err = httpbinding.NewEncoderWithRawPath(request.URL.Path, request.URL.RawPath, request.URL.RawQuery, request.Header)
}
if err != nil {
return out, metadata, &smithy.SerializationError{Err: err}
}
if err := awsRestjson1_serializeOpHttpBindingsOptimizeWaypointsInput(input, restEncoder); err != nil {
return out, metadata, &smithy.SerializationError{Err: err}
}
restEncoder.SetHeader("Content-Type").String("application/json")
jsonEncoder := smithyjson.NewEncoder()
if err := awsRestjson1_serializeOpDocumentOptimizeWaypointsInput(input, jsonEncoder.Value); err != nil {
return out, metadata, &smithy.SerializationError{Err: err}
}
if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
return out, metadata, &smithy.SerializationError{Err: err}
}
if request.Request, err = restEncoder.Encode(request.Request); err != nil {
return out, metadata, &smithy.SerializationError{Err: err}
}
in.Request = request
endTimer()
span.End()
return next.HandleSerialize(ctx, in)
}
func awsRestjson1_serializeOpHttpBindingsOptimizeWaypointsInput(v *OptimizeWaypointsInput, encoder *httpbinding.Encoder) error {
if v == nil {
return fmt.Errorf("unsupported serialization of nil %T", v)
}
if v.Key != nil {
encoder.SetQuery("key").String(*v.Key)
}
return nil
}
func awsRestjson1_serializeOpDocumentOptimizeWaypointsInput(v *OptimizeWaypointsInput, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.Avoid != nil {
ok := object.Key("Avoid")
if err := awsRestjson1_serializeDocumentWaypointOptimizationAvoidanceOptions(v.Avoid, ok); err != nil {
return err
}
}
if v.Clustering != nil {
ok := object.Key("Clustering")
if err := awsRestjson1_serializeDocumentWaypointOptimizationClusteringOptions(v.Clustering, ok); err != nil {
return err
}
}
if v.DepartureTime != nil {
ok := object.Key("DepartureTime")
ok.String(*v.DepartureTime)
}
if v.Destination != nil {
ok := object.Key("Destination")
if err := awsRestjson1_serializeDocumentPosition(v.Destination, ok); err != nil {
return err
}
}
if v.DestinationOptions != nil {
ok := object.Key("DestinationOptions")
if err := awsRestjson1_serializeDocumentWaypointOptimizationDestinationOptions(v.DestinationOptions, ok); err != nil {
return err
}
}
if v.Driver != nil {
ok := object.Key("Driver")
if err := awsRestjson1_serializeDocumentWaypointOptimizationDriverOptions(v.Driver, ok); err != nil {
return err
}
}
if v.Exclude != nil {
ok := object.Key("Exclude")
if err := awsRestjson1_serializeDocumentWaypointOptimizationExclusionOptions(v.Exclude, ok); err != nil {
return err
}
}
if len(v.OptimizeSequencingFor) > 0 {
ok := object.Key("OptimizeSequencingFor")
ok.String(string(v.OptimizeSequencingFor))
}
if v.Origin != nil {
ok := object.Key("Origin")
if err := awsRestjson1_serializeDocumentPosition(v.Origin, ok); err != nil {
return err
}
}
if v.OriginOptions != nil {
ok := object.Key("OriginOptions")
if err := awsRestjson1_serializeDocumentWaypointOptimizationOriginOptions(v.OriginOptions, ok); err != nil {
return err
}
}
if v.Traffic != nil {
ok := object.Key("Traffic")
if err := awsRestjson1_serializeDocumentWaypointOptimizationTrafficOptions(v.Traffic, ok); err != nil {
return err
}
}
if len(v.TravelMode) > 0 {
ok := object.Key("TravelMode")
ok.String(string(v.TravelMode))
}
if v.TravelModeOptions != nil {
ok := object.Key("TravelModeOptions")
if err := awsRestjson1_serializeDocumentWaypointOptimizationTravelModeOptions(v.TravelModeOptions, ok); err != nil {
return err
}
}
if v.Waypoints != nil {
ok := object.Key("Waypoints")
if err := awsRestjson1_serializeDocumentWaypointOptimizationWaypointList(v.Waypoints, ok); err != nil {
return err
}
}
return nil
}
type awsRestjson1_serializeOpSnapToRoads struct {
}
func (*awsRestjson1_serializeOpSnapToRoads) ID() string {
return "OperationSerializer"
}
func (m *awsRestjson1_serializeOpSnapToRoads) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
out middleware.SerializeOutput, metadata middleware.Metadata, err error,
) {
_, span := tracing.StartSpan(ctx, "OperationSerializer")
endTimer := startMetricTimer(ctx, "client.call.serialization_duration")
defer endTimer()
defer span.End()
request, ok := in.Request.(*smithyhttp.Request)
if !ok {
return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
}
input, ok := in.Parameters.(*SnapToRoadsInput)
_ = input
if !ok {
return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
}
opPath, opQuery := httpbinding.SplitURI("/snap-to-roads")
request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath)
request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery)
request.Method = "POST"
var restEncoder *httpbinding.Encoder
if request.URL.RawPath == "" {
restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
} else {
request.URL.RawPath = smithyhttp.JoinPath(request.URL.RawPath, opPath)
restEncoder, err = httpbinding.NewEncoderWithRawPath(request.URL.Path, request.URL.RawPath, request.URL.RawQuery, request.Header)
}
if err != nil {
return out, metadata, &smithy.SerializationError{Err: err}
}
if err := awsRestjson1_serializeOpHttpBindingsSnapToRoadsInput(input, restEncoder); err != nil {
return out, metadata, &smithy.SerializationError{Err: err}
}
restEncoder.SetHeader("Content-Type").String("application/json")
jsonEncoder := smithyjson.NewEncoder()
if err := awsRestjson1_serializeOpDocumentSnapToRoadsInput(input, jsonEncoder.Value); err != nil {
return out, metadata, &smithy.SerializationError{Err: err}
}
if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil {
return out, metadata, &smithy.SerializationError{Err: err}
}
if request.Request, err = restEncoder.Encode(request.Request); err != nil {
return out, metadata, &smithy.SerializationError{Err: err}
}
in.Request = request
endTimer()
span.End()
return next.HandleSerialize(ctx, in)
}
func awsRestjson1_serializeOpHttpBindingsSnapToRoadsInput(v *SnapToRoadsInput, encoder *httpbinding.Encoder) error {
if v == nil {
return fmt.Errorf("unsupported serialization of nil %T", v)
}
if v.Key != nil {
encoder.SetQuery("key").String(*v.Key)
}
return nil
}
func awsRestjson1_serializeOpDocumentSnapToRoadsInput(v *SnapToRoadsInput, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if len(v.SnappedGeometryFormat) > 0 {
ok := object.Key("SnappedGeometryFormat")
ok.String(string(v.SnappedGeometryFormat))
}
if v.SnapRadius != 0 {
ok := object.Key("SnapRadius")
ok.Long(v.SnapRadius)
}
if v.TracePoints != nil {
ok := object.Key("TracePoints")
if err := awsRestjson1_serializeDocumentRoadSnapTracePointList(v.TracePoints, ok); err != nil {
return err
}
}
if len(v.TravelMode) > 0 {
ok := object.Key("TravelMode")
ok.String(string(v.TravelMode))
}
if v.TravelModeOptions != nil {
ok := object.Key("TravelModeOptions")
if err := awsRestjson1_serializeDocumentRoadSnapTravelModeOptions(v.TravelModeOptions, ok); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentBeforeWaypointsList(v []int32, value smithyjson.Value) error {
array := value.Array()
defer array.Close()
for i := range v {
av := array.Value()
av.Integer(v[i])
}
return nil
}
func awsRestjson1_serializeDocumentBoundingBox(v []float64, value smithyjson.Value) error {
array := value.Array()
defer array.Close()
for i := range v {
av := array.Value()
switch {
case math.IsNaN(v[i]):
av.String("NaN")
case math.IsInf(v[i], 1):
av.String("Infinity")
case math.IsInf(v[i], -1):
av.String("-Infinity")
default:
av.Double(v[i])
}
}
return nil
}
func awsRestjson1_serializeDocumentCircle(v *types.Circle, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.Center != nil {
ok := object.Key("Center")
if err := awsRestjson1_serializeDocumentPosition(v.Center, ok); err != nil {
return err
}
}
if v.Radius != nil {
ok := object.Key("Radius")
switch {
case math.IsNaN(*v.Radius):
ok.String("NaN")
case math.IsInf(*v.Radius, 1):
ok.String("Infinity")
case math.IsInf(*v.Radius, -1):
ok.String("-Infinity")
default:
ok.Double(*v.Radius)
}
}
return nil
}
func awsRestjson1_serializeDocumentCorridor(v *types.Corridor, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.LineString != nil {
ok := object.Key("LineString")
if err := awsRestjson1_serializeDocumentLineString(v.LineString, ok); err != nil {
return err
}
}
if v.Radius != nil {
ok := object.Key("Radius")
ok.Integer(*v.Radius)
}
return nil
}
func awsRestjson1_serializeDocumentCountryCodeList(v []string, value smithyjson.Value) error {
array := value.Array()
defer array.Close()
for i := range v {
av := array.Value()
av.String(v[i])
}
return nil
}
func awsRestjson1_serializeDocumentDistanceThresholdList(v []int64, value smithyjson.Value) error {
array := value.Array()
defer array.Close()
for i := range v {
av := array.Value()
av.Long(v[i])
}
return nil
}
func awsRestjson1_serializeDocumentIsolineAllowOptions(v *types.IsolineAllowOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.Hot != nil {
ok := object.Key("Hot")
ok.Boolean(*v.Hot)
}
if v.Hov != nil {
ok := object.Key("Hov")
ok.Boolean(*v.Hov)
}
return nil
}
func awsRestjson1_serializeDocumentIsolineAvoidanceArea(v *types.IsolineAvoidanceArea, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.Except != nil {
ok := object.Key("Except")
if err := awsRestjson1_serializeDocumentIsolineAvoidanceAreaGeometryList(v.Except, ok); err != nil {
return err
}
}
if v.Geometry != nil {
ok := object.Key("Geometry")
if err := awsRestjson1_serializeDocumentIsolineAvoidanceAreaGeometry(v.Geometry, ok); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentIsolineAvoidanceAreaGeometry(v *types.IsolineAvoidanceAreaGeometry, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.BoundingBox != nil {
ok := object.Key("BoundingBox")
if err := awsRestjson1_serializeDocumentBoundingBox(v.BoundingBox, ok); err != nil {
return err
}
}
if v.Corridor != nil {
ok := object.Key("Corridor")
if err := awsRestjson1_serializeDocumentCorridor(v.Corridor, ok); err != nil {
return err
}
}
if v.Polygon != nil {
ok := object.Key("Polygon")
if err := awsRestjson1_serializeDocumentLinearRings(v.Polygon, ok); err != nil {
return err
}
}
if v.PolylineCorridor != nil {
ok := object.Key("PolylineCorridor")
if err := awsRestjson1_serializeDocumentPolylineCorridor(v.PolylineCorridor, ok); err != nil {
return err
}
}
if v.PolylinePolygon != nil {
ok := object.Key("PolylinePolygon")
if err := awsRestjson1_serializeDocumentPolylineRingList(v.PolylinePolygon, ok); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentIsolineAvoidanceAreaGeometryList(v []types.IsolineAvoidanceAreaGeometry, value smithyjson.Value) error {
array := value.Array()
defer array.Close()
for i := range v {
av := array.Value()
if err := awsRestjson1_serializeDocumentIsolineAvoidanceAreaGeometry(&v[i], av); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentIsolineAvoidanceAreaList(v []types.IsolineAvoidanceArea, value smithyjson.Value) error {
array := value.Array()
defer array.Close()
for i := range v {
av := array.Value()
if err := awsRestjson1_serializeDocumentIsolineAvoidanceArea(&v[i], av); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentIsolineAvoidanceOptions(v *types.IsolineAvoidanceOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.Areas != nil {
ok := object.Key("Areas")
if err := awsRestjson1_serializeDocumentIsolineAvoidanceAreaList(v.Areas, ok); err != nil {
return err
}
}
if v.CarShuttleTrains != nil {
ok := object.Key("CarShuttleTrains")
ok.Boolean(*v.CarShuttleTrains)
}
if v.ControlledAccessHighways != nil {
ok := object.Key("ControlledAccessHighways")
ok.Boolean(*v.ControlledAccessHighways)
}
if v.DirtRoads != nil {
ok := object.Key("DirtRoads")
ok.Boolean(*v.DirtRoads)
}
if v.Ferries != nil {
ok := object.Key("Ferries")
ok.Boolean(*v.Ferries)
}
if v.SeasonalClosure != nil {
ok := object.Key("SeasonalClosure")
ok.Boolean(*v.SeasonalClosure)
}
if v.TollRoads != nil {
ok := object.Key("TollRoads")
ok.Boolean(*v.TollRoads)
}
if v.TollTransponders != nil {
ok := object.Key("TollTransponders")
ok.Boolean(*v.TollTransponders)
}
if v.TruckRoadTypes != nil {
ok := object.Key("TruckRoadTypes")
if err := awsRestjson1_serializeDocumentTruckRoadTypeList(v.TruckRoadTypes, ok); err != nil {
return err
}
}
if v.Tunnels != nil {
ok := object.Key("Tunnels")
ok.Boolean(*v.Tunnels)
}
if v.UTurns != nil {
ok := object.Key("UTurns")
ok.Boolean(*v.UTurns)
}
if v.ZoneCategories != nil {
ok := object.Key("ZoneCategories")
if err := awsRestjson1_serializeDocumentIsolineAvoidanceZoneCategoryList(v.ZoneCategories, ok); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentIsolineAvoidanceZoneCategory(v *types.IsolineAvoidanceZoneCategory, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if len(v.Category) > 0 {
ok := object.Key("Category")
ok.String(string(v.Category))
}
return nil
}
func awsRestjson1_serializeDocumentIsolineAvoidanceZoneCategoryList(v []types.IsolineAvoidanceZoneCategory, value smithyjson.Value) error {
array := value.Array()
defer array.Close()
for i := range v {
av := array.Value()
if err := awsRestjson1_serializeDocumentIsolineAvoidanceZoneCategory(&v[i], av); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentIsolineCarOptions(v *types.IsolineCarOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if len(v.EngineType) > 0 {
ok := object.Key("EngineType")
ok.String(string(v.EngineType))
}
if v.LicensePlate != nil {
ok := object.Key("LicensePlate")
if err := awsRestjson1_serializeDocumentIsolineVehicleLicensePlate(v.LicensePlate, ok); err != nil {
return err
}
}
if v.MaxSpeed != nil {
ok := object.Key("MaxSpeed")
switch {
case math.IsNaN(*v.MaxSpeed):
ok.String("NaN")
case math.IsInf(*v.MaxSpeed, 1):
ok.String("Infinity")
case math.IsInf(*v.MaxSpeed, -1):
ok.String("-Infinity")
default:
ok.Double(*v.MaxSpeed)
}
}
if v.Occupancy != nil {
ok := object.Key("Occupancy")
ok.Integer(*v.Occupancy)
}
return nil
}
func awsRestjson1_serializeDocumentIsolineDestinationOptions(v *types.IsolineDestinationOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.AvoidActionsForDistance != 0 {
ok := object.Key("AvoidActionsForDistance")
ok.Long(v.AvoidActionsForDistance)
}
if v.Heading != 0 {
ok := object.Key("Heading")
switch {
case math.IsNaN(v.Heading):
ok.String("NaN")
case math.IsInf(v.Heading, 1):
ok.String("Infinity")
case math.IsInf(v.Heading, -1):
ok.String("-Infinity")
default:
ok.Double(v.Heading)
}
}
if v.Matching != nil {
ok := object.Key("Matching")
if err := awsRestjson1_serializeDocumentIsolineMatchingOptions(v.Matching, ok); err != nil {
return err
}
}
if v.SideOfStreet != nil {
ok := object.Key("SideOfStreet")
if err := awsRestjson1_serializeDocumentIsolineSideOfStreetOptions(v.SideOfStreet, ok); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentIsolineGranularityOptions(v *types.IsolineGranularityOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.MaxPoints != nil {
ok := object.Key("MaxPoints")
ok.Integer(*v.MaxPoints)
}
if v.MaxResolution != 0 {
ok := object.Key("MaxResolution")
ok.Long(v.MaxResolution)
}
return nil
}
func awsRestjson1_serializeDocumentIsolineHazardousCargoTypeList(v []types.IsolineHazardousCargoType, value smithyjson.Value) error {
array := value.Array()
defer array.Close()
for i := range v {
av := array.Value()
av.String(string(v[i]))
}
return nil
}
func awsRestjson1_serializeDocumentIsolineMatchingOptions(v *types.IsolineMatchingOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.NameHint != nil {
ok := object.Key("NameHint")
ok.String(*v.NameHint)
}
if v.OnRoadThreshold != 0 {
ok := object.Key("OnRoadThreshold")
ok.Long(v.OnRoadThreshold)
}
if v.Radius != 0 {
ok := object.Key("Radius")
ok.Long(v.Radius)
}
if len(v.Strategy) > 0 {
ok := object.Key("Strategy")
ok.String(string(v.Strategy))
}
return nil
}
func awsRestjson1_serializeDocumentIsolineOriginOptions(v *types.IsolineOriginOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.AvoidActionsForDistance != 0 {
ok := object.Key("AvoidActionsForDistance")
ok.Long(v.AvoidActionsForDistance)
}
if v.Heading != 0 {
ok := object.Key("Heading")
switch {
case math.IsNaN(v.Heading):
ok.String("NaN")
case math.IsInf(v.Heading, 1):
ok.String("Infinity")
case math.IsInf(v.Heading, -1):
ok.String("-Infinity")
default:
ok.Double(v.Heading)
}
}
if v.Matching != nil {
ok := object.Key("Matching")
if err := awsRestjson1_serializeDocumentIsolineMatchingOptions(v.Matching, ok); err != nil {
return err
}
}
if v.SideOfStreet != nil {
ok := object.Key("SideOfStreet")
if err := awsRestjson1_serializeDocumentIsolineSideOfStreetOptions(v.SideOfStreet, ok); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentIsolineScooterOptions(v *types.IsolineScooterOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if len(v.EngineType) > 0 {
ok := object.Key("EngineType")
ok.String(string(v.EngineType))
}
if v.LicensePlate != nil {
ok := object.Key("LicensePlate")
if err := awsRestjson1_serializeDocumentIsolineVehicleLicensePlate(v.LicensePlate, ok); err != nil {
return err
}
}
if v.MaxSpeed != nil {
ok := object.Key("MaxSpeed")
switch {
case math.IsNaN(*v.MaxSpeed):
ok.String("NaN")
case math.IsInf(*v.MaxSpeed, 1):
ok.String("Infinity")
case math.IsInf(*v.MaxSpeed, -1):
ok.String("-Infinity")
default:
ok.Double(*v.MaxSpeed)
}
}
if v.Occupancy != nil {
ok := object.Key("Occupancy")
ok.Integer(*v.Occupancy)
}
return nil
}
func awsRestjson1_serializeDocumentIsolineSideOfStreetOptions(v *types.IsolineSideOfStreetOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.Position != nil {
ok := object.Key("Position")
if err := awsRestjson1_serializeDocumentPosition(v.Position, ok); err != nil {
return err
}
}
if len(v.UseWith) > 0 {
ok := object.Key("UseWith")
ok.String(string(v.UseWith))
}
return nil
}
func awsRestjson1_serializeDocumentIsolineThresholds(v *types.IsolineThresholds, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.Distance != nil {
ok := object.Key("Distance")
if err := awsRestjson1_serializeDocumentDistanceThresholdList(v.Distance, ok); err != nil {
return err
}
}
if v.Time != nil {
ok := object.Key("Time")
if err := awsRestjson1_serializeDocumentTimeThresholdList(v.Time, ok); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentIsolineTrafficOptions(v *types.IsolineTrafficOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.FlowEventThresholdOverride != 0 {
ok := object.Key("FlowEventThresholdOverride")
ok.Long(v.FlowEventThresholdOverride)
}
if len(v.Usage) > 0 {
ok := object.Key("Usage")
ok.String(string(v.Usage))
}
return nil
}
func awsRestjson1_serializeDocumentIsolineTrailerOptions(v *types.IsolineTrailerOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.AxleCount != nil {
ok := object.Key("AxleCount")
ok.Integer(*v.AxleCount)
}
if v.TrailerCount != nil {
ok := object.Key("TrailerCount")
ok.Integer(*v.TrailerCount)
}
return nil
}
func awsRestjson1_serializeDocumentIsolineTravelModeOptions(v *types.IsolineTravelModeOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.Car != nil {
ok := object.Key("Car")
if err := awsRestjson1_serializeDocumentIsolineCarOptions(v.Car, ok); err != nil {
return err
}
}
if v.Scooter != nil {
ok := object.Key("Scooter")
if err := awsRestjson1_serializeDocumentIsolineScooterOptions(v.Scooter, ok); err != nil {
return err
}
}
if v.Truck != nil {
ok := object.Key("Truck")
if err := awsRestjson1_serializeDocumentIsolineTruckOptions(v.Truck, ok); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentIsolineTruckOptions(v *types.IsolineTruckOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.AxleCount != nil {
ok := object.Key("AxleCount")
ok.Integer(*v.AxleCount)
}
if len(v.EngineType) > 0 {
ok := object.Key("EngineType")
ok.String(string(v.EngineType))
}
if v.GrossWeight != 0 {
ok := object.Key("GrossWeight")
ok.Long(v.GrossWeight)
}
if v.HazardousCargos != nil {
ok := object.Key("HazardousCargos")
if err := awsRestjson1_serializeDocumentIsolineHazardousCargoTypeList(v.HazardousCargos, ok); err != nil {
return err
}
}
if v.Height != 0 {
ok := object.Key("Height")
ok.Long(v.Height)
}
if v.HeightAboveFirstAxle != 0 {
ok := object.Key("HeightAboveFirstAxle")
ok.Long(v.HeightAboveFirstAxle)
}
if v.KpraLength != 0 {
ok := object.Key("KpraLength")
ok.Long(v.KpraLength)
}
if v.Length != 0 {
ok := object.Key("Length")
ok.Long(v.Length)
}
if v.LicensePlate != nil {
ok := object.Key("LicensePlate")
if err := awsRestjson1_serializeDocumentIsolineVehicleLicensePlate(v.LicensePlate, ok); err != nil {
return err
}
}
if v.MaxSpeed != nil {
ok := object.Key("MaxSpeed")
switch {
case math.IsNaN(*v.MaxSpeed):
ok.String("NaN")
case math.IsInf(*v.MaxSpeed, 1):
ok.String("Infinity")
case math.IsInf(*v.MaxSpeed, -1):
ok.String("-Infinity")
default:
ok.Double(*v.MaxSpeed)
}
}
if v.Occupancy != nil {
ok := object.Key("Occupancy")
ok.Integer(*v.Occupancy)
}
if v.PayloadCapacity != 0 {
ok := object.Key("PayloadCapacity")
ok.Long(v.PayloadCapacity)
}
if v.TireCount != nil {
ok := object.Key("TireCount")
ok.Integer(*v.TireCount)
}
if v.Trailer != nil {
ok := object.Key("Trailer")
if err := awsRestjson1_serializeDocumentIsolineTrailerOptions(v.Trailer, ok); err != nil {
return err
}
}
if len(v.TruckType) > 0 {
ok := object.Key("TruckType")
ok.String(string(v.TruckType))
}
if v.TunnelRestrictionCode != nil {
ok := object.Key("TunnelRestrictionCode")
ok.String(*v.TunnelRestrictionCode)
}
if v.WeightPerAxle != 0 {
ok := object.Key("WeightPerAxle")
ok.Long(v.WeightPerAxle)
}
if v.WeightPerAxleGroup != nil {
ok := object.Key("WeightPerAxleGroup")
if err := awsRestjson1_serializeDocumentWeightPerAxleGroup(v.WeightPerAxleGroup, ok); err != nil {
return err
}
}
if v.Width != 0 {
ok := object.Key("Width")
ok.Long(v.Width)
}
return nil
}
func awsRestjson1_serializeDocumentIsolineVehicleLicensePlate(v *types.IsolineVehicleLicensePlate, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.LastCharacter != nil {
ok := object.Key("LastCharacter")
ok.String(*v.LastCharacter)
}
return nil
}
func awsRestjson1_serializeDocumentLanguageTagList(v []string, value smithyjson.Value) error {
array := value.Array()
defer array.Close()
for i := range v {
av := array.Value()
av.String(v[i])
}
return nil
}
func awsRestjson1_serializeDocumentLinearRing(v [][]float64, value smithyjson.Value) error {
array := value.Array()
defer array.Close()
for i := range v {
av := array.Value()
if vv := v[i]; vv == nil {
continue
}
if err := awsRestjson1_serializeDocumentPosition(v[i], av); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentLinearRings(v [][][]float64, value smithyjson.Value) error {
array := value.Array()
defer array.Close()
for i := range v {
av := array.Value()
if vv := v[i]; vv == nil {
continue
}
if err := awsRestjson1_serializeDocumentLinearRing(v[i], av); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentLineString(v [][]float64, value smithyjson.Value) error {
array := value.Array()
defer array.Close()
for i := range v {
av := array.Value()
if vv := v[i]; vv == nil {
continue
}
if err := awsRestjson1_serializeDocumentPosition(v[i], av); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentPolylineCorridor(v *types.PolylineCorridor, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.Polyline != nil {
ok := object.Key("Polyline")
ok.String(*v.Polyline)
}
if v.Radius != nil {
ok := object.Key("Radius")
ok.Integer(*v.Radius)
}
return nil
}
func awsRestjson1_serializeDocumentPolylineRingList(v []string, value smithyjson.Value) error {
array := value.Array()
defer array.Close()
for i := range v {
av := array.Value()
av.String(v[i])
}
return nil
}
func awsRestjson1_serializeDocumentPosition(v []float64, value smithyjson.Value) error {
array := value.Array()
defer array.Close()
for i := range v {
av := array.Value()
switch {
case math.IsNaN(v[i]):
av.String("NaN")
case math.IsInf(v[i], 1):
av.String("Infinity")
case math.IsInf(v[i], -1):
av.String("-Infinity")
default:
av.Double(v[i])
}
}
return nil
}
func awsRestjson1_serializeDocumentRoadSnapHazardousCargoTypeList(v []types.RoadSnapHazardousCargoType, value smithyjson.Value) error {
array := value.Array()
defer array.Close()
for i := range v {
av := array.Value()
av.String(string(v[i]))
}
return nil
}
func awsRestjson1_serializeDocumentRoadSnapTracePoint(v *types.RoadSnapTracePoint, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.Heading != 0 {
ok := object.Key("Heading")
switch {
case math.IsNaN(v.Heading):
ok.String("NaN")
case math.IsInf(v.Heading, 1):
ok.String("Infinity")
case math.IsInf(v.Heading, -1):
ok.String("-Infinity")
default:
ok.Double(v.Heading)
}
}
if v.Position != nil {
ok := object.Key("Position")
if err := awsRestjson1_serializeDocumentPosition(v.Position, ok); err != nil {
return err
}
}
if v.Speed != 0 {
ok := object.Key("Speed")
switch {
case math.IsNaN(v.Speed):
ok.String("NaN")
case math.IsInf(v.Speed, 1):
ok.String("Infinity")
case math.IsInf(v.Speed, -1):
ok.String("-Infinity")
default:
ok.Double(v.Speed)
}
}
if v.Timestamp != nil {
ok := object.Key("Timestamp")
ok.String(*v.Timestamp)
}
return nil
}
func awsRestjson1_serializeDocumentRoadSnapTracePointList(v []types.RoadSnapTracePoint, value smithyjson.Value) error {
array := value.Array()
defer array.Close()
for i := range v {
av := array.Value()
if err := awsRestjson1_serializeDocumentRoadSnapTracePoint(&v[i], av); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentRoadSnapTrailerOptions(v *types.RoadSnapTrailerOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.TrailerCount != nil {
ok := object.Key("TrailerCount")
ok.Integer(*v.TrailerCount)
}
return nil
}
func awsRestjson1_serializeDocumentRoadSnapTravelModeOptions(v *types.RoadSnapTravelModeOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.Truck != nil {
ok := object.Key("Truck")
if err := awsRestjson1_serializeDocumentRoadSnapTruckOptions(v.Truck, ok); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentRoadSnapTruckOptions(v *types.RoadSnapTruckOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.GrossWeight != 0 {
ok := object.Key("GrossWeight")
ok.Long(v.GrossWeight)
}
if v.HazardousCargos != nil {
ok := object.Key("HazardousCargos")
if err := awsRestjson1_serializeDocumentRoadSnapHazardousCargoTypeList(v.HazardousCargos, ok); err != nil {
return err
}
}
if v.Height != 0 {
ok := object.Key("Height")
ok.Long(v.Height)
}
if v.Length != 0 {
ok := object.Key("Length")
ok.Long(v.Length)
}
if v.Trailer != nil {
ok := object.Key("Trailer")
if err := awsRestjson1_serializeDocumentRoadSnapTrailerOptions(v.Trailer, ok); err != nil {
return err
}
}
if v.TunnelRestrictionCode != nil {
ok := object.Key("TunnelRestrictionCode")
ok.String(*v.TunnelRestrictionCode)
}
if v.Width != 0 {
ok := object.Key("Width")
ok.Long(v.Width)
}
return nil
}
func awsRestjson1_serializeDocumentRouteAllowOptions(v *types.RouteAllowOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.Hot != nil {
ok := object.Key("Hot")
ok.Boolean(*v.Hot)
}
if v.Hov != nil {
ok := object.Key("Hov")
ok.Boolean(*v.Hov)
}
return nil
}
func awsRestjson1_serializeDocumentRouteAvoidanceArea(v *types.RouteAvoidanceArea, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.Except != nil {
ok := object.Key("Except")
if err := awsRestjson1_serializeDocumentRouteAvoidanceAreaGeometryList(v.Except, ok); err != nil {
return err
}
}
if v.Geometry != nil {
ok := object.Key("Geometry")
if err := awsRestjson1_serializeDocumentRouteAvoidanceAreaGeometry(v.Geometry, ok); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentRouteAvoidanceAreaGeometry(v *types.RouteAvoidanceAreaGeometry, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.BoundingBox != nil {
ok := object.Key("BoundingBox")
if err := awsRestjson1_serializeDocumentBoundingBox(v.BoundingBox, ok); err != nil {
return err
}
}
if v.Corridor != nil {
ok := object.Key("Corridor")
if err := awsRestjson1_serializeDocumentCorridor(v.Corridor, ok); err != nil {
return err
}
}
if v.Polygon != nil {
ok := object.Key("Polygon")
if err := awsRestjson1_serializeDocumentLinearRings(v.Polygon, ok); err != nil {
return err
}
}
if v.PolylineCorridor != nil {
ok := object.Key("PolylineCorridor")
if err := awsRestjson1_serializeDocumentPolylineCorridor(v.PolylineCorridor, ok); err != nil {
return err
}
}
if v.PolylinePolygon != nil {
ok := object.Key("PolylinePolygon")
if err := awsRestjson1_serializeDocumentPolylineRingList(v.PolylinePolygon, ok); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentRouteAvoidanceAreaGeometryList(v []types.RouteAvoidanceAreaGeometry, value smithyjson.Value) error {
array := value.Array()
defer array.Close()
for i := range v {
av := array.Value()
if err := awsRestjson1_serializeDocumentRouteAvoidanceAreaGeometry(&v[i], av); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentRouteAvoidanceAreaList(v []types.RouteAvoidanceArea, value smithyjson.Value) error {
array := value.Array()
defer array.Close()
for i := range v {
av := array.Value()
if err := awsRestjson1_serializeDocumentRouteAvoidanceArea(&v[i], av); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentRouteAvoidanceOptions(v *types.RouteAvoidanceOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.Areas != nil {
ok := object.Key("Areas")
if err := awsRestjson1_serializeDocumentRouteAvoidanceAreaList(v.Areas, ok); err != nil {
return err
}
}
if v.CarShuttleTrains != nil {
ok := object.Key("CarShuttleTrains")
ok.Boolean(*v.CarShuttleTrains)
}
if v.ControlledAccessHighways != nil {
ok := object.Key("ControlledAccessHighways")
ok.Boolean(*v.ControlledAccessHighways)
}
if v.DirtRoads != nil {
ok := object.Key("DirtRoads")
ok.Boolean(*v.DirtRoads)
}
if v.Ferries != nil {
ok := object.Key("Ferries")
ok.Boolean(*v.Ferries)
}
if v.SeasonalClosure != nil {
ok := object.Key("SeasonalClosure")
ok.Boolean(*v.SeasonalClosure)
}
if v.TollRoads != nil {
ok := object.Key("TollRoads")
ok.Boolean(*v.TollRoads)
}
if v.TollTransponders != nil {
ok := object.Key("TollTransponders")
ok.Boolean(*v.TollTransponders)
}
if v.TruckRoadTypes != nil {
ok := object.Key("TruckRoadTypes")
if err := awsRestjson1_serializeDocumentTruckRoadTypeList(v.TruckRoadTypes, ok); err != nil {
return err
}
}
if v.Tunnels != nil {
ok := object.Key("Tunnels")
ok.Boolean(*v.Tunnels)
}
if v.UTurns != nil {
ok := object.Key("UTurns")
ok.Boolean(*v.UTurns)
}
if v.ZoneCategories != nil {
ok := object.Key("ZoneCategories")
if err := awsRestjson1_serializeDocumentRouteAvoidanceZoneCategoryList(v.ZoneCategories, ok); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentRouteAvoidanceZoneCategory(v *types.RouteAvoidanceZoneCategory, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if len(v.Category) > 0 {
ok := object.Key("Category")
ok.String(string(v.Category))
}
return nil
}
func awsRestjson1_serializeDocumentRouteAvoidanceZoneCategoryList(v []types.RouteAvoidanceZoneCategory, value smithyjson.Value) error {
array := value.Array()
defer array.Close()
for i := range v {
av := array.Value()
if err := awsRestjson1_serializeDocumentRouteAvoidanceZoneCategory(&v[i], av); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentRouteCarOptions(v *types.RouteCarOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if len(v.EngineType) > 0 {
ok := object.Key("EngineType")
ok.String(string(v.EngineType))
}
if v.LicensePlate != nil {
ok := object.Key("LicensePlate")
if err := awsRestjson1_serializeDocumentRouteVehicleLicensePlate(v.LicensePlate, ok); err != nil {
return err
}
}
if v.MaxSpeed != nil {
ok := object.Key("MaxSpeed")
switch {
case math.IsNaN(*v.MaxSpeed):
ok.String("NaN")
case math.IsInf(*v.MaxSpeed, 1):
ok.String("Infinity")
case math.IsInf(*v.MaxSpeed, -1):
ok.String("-Infinity")
default:
ok.Double(*v.MaxSpeed)
}
}
if v.Occupancy != nil {
ok := object.Key("Occupancy")
ok.Integer(*v.Occupancy)
}
return nil
}
func awsRestjson1_serializeDocumentRouteDestinationOptions(v *types.RouteDestinationOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.AvoidActionsForDistance != 0 {
ok := object.Key("AvoidActionsForDistance")
ok.Long(v.AvoidActionsForDistance)
}
if v.AvoidUTurns != nil {
ok := object.Key("AvoidUTurns")
ok.Boolean(*v.AvoidUTurns)
}
if v.Heading != 0 {
ok := object.Key("Heading")
switch {
case math.IsNaN(v.Heading):
ok.String("NaN")
case math.IsInf(v.Heading, 1):
ok.String("Infinity")
case math.IsInf(v.Heading, -1):
ok.String("-Infinity")
default:
ok.Double(v.Heading)
}
}
if v.Matching != nil {
ok := object.Key("Matching")
if err := awsRestjson1_serializeDocumentRouteMatchingOptions(v.Matching, ok); err != nil {
return err
}
}
if v.SideOfStreet != nil {
ok := object.Key("SideOfStreet")
if err := awsRestjson1_serializeDocumentRouteSideOfStreetOptions(v.SideOfStreet, ok); err != nil {
return err
}
}
if v.StopDuration != 0 {
ok := object.Key("StopDuration")
ok.Long(v.StopDuration)
}
return nil
}
func awsRestjson1_serializeDocumentRouteDriverOptions(v *types.RouteDriverOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.Schedule != nil {
ok := object.Key("Schedule")
if err := awsRestjson1_serializeDocumentRouteDriverScheduleIntervalList(v.Schedule, ok); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentRouteDriverScheduleInterval(v *types.RouteDriverScheduleInterval, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
{
ok := object.Key("DriveDuration")
ok.Long(v.DriveDuration)
}
{
ok := object.Key("RestDuration")
ok.Long(v.RestDuration)
}
return nil
}
func awsRestjson1_serializeDocumentRouteDriverScheduleIntervalList(v []types.RouteDriverScheduleInterval, value smithyjson.Value) error {
array := value.Array()
defer array.Close()
for i := range v {
av := array.Value()
if err := awsRestjson1_serializeDocumentRouteDriverScheduleInterval(&v[i], av); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentRouteEmissionType(v *types.RouteEmissionType, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.Co2EmissionClass != nil {
ok := object.Key("Co2EmissionClass")
ok.String(*v.Co2EmissionClass)
}
if v.Type != nil {
ok := object.Key("Type")
ok.String(*v.Type)
}
return nil
}
func awsRestjson1_serializeDocumentRouteExclusionOptions(v *types.RouteExclusionOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.Countries != nil {
ok := object.Key("Countries")
if err := awsRestjson1_serializeDocumentCountryCodeList(v.Countries, ok); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentRouteHazardousCargoTypeList(v []types.RouteHazardousCargoType, value smithyjson.Value) error {
array := value.Array()
defer array.Close()
for i := range v {
av := array.Value()
av.String(string(v[i]))
}
return nil
}
func awsRestjson1_serializeDocumentRouteLegAdditionalFeatureList(v []types.RouteLegAdditionalFeature, value smithyjson.Value) error {
array := value.Array()
defer array.Close()
for i := range v {
av := array.Value()
av.String(string(v[i]))
}
return nil
}
func awsRestjson1_serializeDocumentRouteMatchingOptions(v *types.RouteMatchingOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.NameHint != nil {
ok := object.Key("NameHint")
ok.String(*v.NameHint)
}
if v.OnRoadThreshold != 0 {
ok := object.Key("OnRoadThreshold")
ok.Long(v.OnRoadThreshold)
}
if v.Radius != 0 {
ok := object.Key("Radius")
ok.Long(v.Radius)
}
if len(v.Strategy) > 0 {
ok := object.Key("Strategy")
ok.String(string(v.Strategy))
}
return nil
}
func awsRestjson1_serializeDocumentRouteMatrixAllowOptions(v *types.RouteMatrixAllowOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.Hot != nil {
ok := object.Key("Hot")
ok.Boolean(*v.Hot)
}
if v.Hov != nil {
ok := object.Key("Hov")
ok.Boolean(*v.Hov)
}
return nil
}
func awsRestjson1_serializeDocumentRouteMatrixAutoCircle(v *types.RouteMatrixAutoCircle, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.Margin != 0 {
ok := object.Key("Margin")
ok.Long(v.Margin)
}
if v.MaxRadius != 0 {
ok := object.Key("MaxRadius")
ok.Long(v.MaxRadius)
}
return nil
}
func awsRestjson1_serializeDocumentRouteMatrixAvoidanceArea(v *types.RouteMatrixAvoidanceArea, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.Geometry != nil {
ok := object.Key("Geometry")
if err := awsRestjson1_serializeDocumentRouteMatrixAvoidanceAreaGeometry(v.Geometry, ok); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentRouteMatrixAvoidanceAreaGeometry(v *types.RouteMatrixAvoidanceAreaGeometry, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.BoundingBox != nil {
ok := object.Key("BoundingBox")
if err := awsRestjson1_serializeDocumentBoundingBox(v.BoundingBox, ok); err != nil {
return err
}
}
if v.Polygon != nil {
ok := object.Key("Polygon")
if err := awsRestjson1_serializeDocumentLinearRings(v.Polygon, ok); err != nil {
return err
}
}
if v.PolylinePolygon != nil {
ok := object.Key("PolylinePolygon")
if err := awsRestjson1_serializeDocumentPolylineRingList(v.PolylinePolygon, ok); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentRouteMatrixAvoidanceAreaList(v []types.RouteMatrixAvoidanceArea, value smithyjson.Value) error {
array := value.Array()
defer array.Close()
for i := range v {
av := array.Value()
if err := awsRestjson1_serializeDocumentRouteMatrixAvoidanceArea(&v[i], av); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentRouteMatrixAvoidanceOptions(v *types.RouteMatrixAvoidanceOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.Areas != nil {
ok := object.Key("Areas")
if err := awsRestjson1_serializeDocumentRouteMatrixAvoidanceAreaList(v.Areas, ok); err != nil {
return err
}
}
if v.CarShuttleTrains != nil {
ok := object.Key("CarShuttleTrains")
ok.Boolean(*v.CarShuttleTrains)
}
if v.ControlledAccessHighways != nil {
ok := object.Key("ControlledAccessHighways")
ok.Boolean(*v.ControlledAccessHighways)
}
if v.DirtRoads != nil {
ok := object.Key("DirtRoads")
ok.Boolean(*v.DirtRoads)
}
if v.Ferries != nil {
ok := object.Key("Ferries")
ok.Boolean(*v.Ferries)
}
if v.TollRoads != nil {
ok := object.Key("TollRoads")
ok.Boolean(*v.TollRoads)
}
if v.TollTransponders != nil {
ok := object.Key("TollTransponders")
ok.Boolean(*v.TollTransponders)
}
if v.TruckRoadTypes != nil {
ok := object.Key("TruckRoadTypes")
if err := awsRestjson1_serializeDocumentTruckRoadTypeList(v.TruckRoadTypes, ok); err != nil {
return err
}
}
if v.Tunnels != nil {
ok := object.Key("Tunnels")
ok.Boolean(*v.Tunnels)
}
if v.UTurns != nil {
ok := object.Key("UTurns")
ok.Boolean(*v.UTurns)
}
if v.ZoneCategories != nil {
ok := object.Key("ZoneCategories")
if err := awsRestjson1_serializeDocumentRouteMatrixAvoidanceZoneCategoryList(v.ZoneCategories, ok); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentRouteMatrixAvoidanceZoneCategory(v *types.RouteMatrixAvoidanceZoneCategory, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if len(v.Category) > 0 {
ok := object.Key("Category")
ok.String(string(v.Category))
}
return nil
}
func awsRestjson1_serializeDocumentRouteMatrixAvoidanceZoneCategoryList(v []types.RouteMatrixAvoidanceZoneCategory, value smithyjson.Value) error {
array := value.Array()
defer array.Close()
for i := range v {
av := array.Value()
if err := awsRestjson1_serializeDocumentRouteMatrixAvoidanceZoneCategory(&v[i], av); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentRouteMatrixBoundary(v *types.RouteMatrixBoundary, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.Geometry != nil {
ok := object.Key("Geometry")
if err := awsRestjson1_serializeDocumentRouteMatrixBoundaryGeometry(v.Geometry, ok); err != nil {
return err
}
}
if v.Unbounded != nil {
ok := object.Key("Unbounded")
ok.Boolean(*v.Unbounded)
}
return nil
}
func awsRestjson1_serializeDocumentRouteMatrixBoundaryGeometry(v *types.RouteMatrixBoundaryGeometry, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.AutoCircle != nil {
ok := object.Key("AutoCircle")
if err := awsRestjson1_serializeDocumentRouteMatrixAutoCircle(v.AutoCircle, ok); err != nil {
return err
}
}
if v.BoundingBox != nil {
ok := object.Key("BoundingBox")
if err := awsRestjson1_serializeDocumentBoundingBox(v.BoundingBox, ok); err != nil {
return err
}
}
if v.Circle != nil {
ok := object.Key("Circle")
if err := awsRestjson1_serializeDocumentCircle(v.Circle, ok); err != nil {
return err
}
}
if v.Polygon != nil {
ok := object.Key("Polygon")
if err := awsRestjson1_serializeDocumentLinearRings(v.Polygon, ok); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentRouteMatrixCarOptions(v *types.RouteMatrixCarOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.LicensePlate != nil {
ok := object.Key("LicensePlate")
if err := awsRestjson1_serializeDocumentRouteMatrixVehicleLicensePlate(v.LicensePlate, ok); err != nil {
return err
}
}
if v.MaxSpeed != nil {
ok := object.Key("MaxSpeed")
switch {
case math.IsNaN(*v.MaxSpeed):
ok.String("NaN")
case math.IsInf(*v.MaxSpeed, 1):
ok.String("Infinity")
case math.IsInf(*v.MaxSpeed, -1):
ok.String("-Infinity")
default:
ok.Double(*v.MaxSpeed)
}
}
if v.Occupancy != nil {
ok := object.Key("Occupancy")
ok.Integer(*v.Occupancy)
}
return nil
}
func awsRestjson1_serializeDocumentRouteMatrixDestination(v *types.RouteMatrixDestination, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.Options != nil {
ok := object.Key("Options")
if err := awsRestjson1_serializeDocumentRouteMatrixDestinationOptions(v.Options, ok); err != nil {
return err
}
}
if v.Position != nil {
ok := object.Key("Position")
if err := awsRestjson1_serializeDocumentPosition(v.Position, ok); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentRouteMatrixDestinationList(v []types.RouteMatrixDestination, value smithyjson.Value) error {
array := value.Array()
defer array.Close()
for i := range v {
av := array.Value()
if err := awsRestjson1_serializeDocumentRouteMatrixDestination(&v[i], av); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentRouteMatrixDestinationOptions(v *types.RouteMatrixDestinationOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.AvoidActionsForDistance != 0 {
ok := object.Key("AvoidActionsForDistance")
ok.Long(v.AvoidActionsForDistance)
}
if v.Heading != 0 {
ok := object.Key("Heading")
switch {
case math.IsNaN(v.Heading):
ok.String("NaN")
case math.IsInf(v.Heading, 1):
ok.String("Infinity")
case math.IsInf(v.Heading, -1):
ok.String("-Infinity")
default:
ok.Double(v.Heading)
}
}
if v.Matching != nil {
ok := object.Key("Matching")
if err := awsRestjson1_serializeDocumentRouteMatrixMatchingOptions(v.Matching, ok); err != nil {
return err
}
}
if v.SideOfStreet != nil {
ok := object.Key("SideOfStreet")
if err := awsRestjson1_serializeDocumentRouteMatrixSideOfStreetOptions(v.SideOfStreet, ok); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentRouteMatrixExclusionOptions(v *types.RouteMatrixExclusionOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.Countries != nil {
ok := object.Key("Countries")
if err := awsRestjson1_serializeDocumentCountryCodeList(v.Countries, ok); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentRouteMatrixHazardousCargoTypeList(v []types.RouteMatrixHazardousCargoType, value smithyjson.Value) error {
array := value.Array()
defer array.Close()
for i := range v {
av := array.Value()
av.String(string(v[i]))
}
return nil
}
func awsRestjson1_serializeDocumentRouteMatrixMatchingOptions(v *types.RouteMatrixMatchingOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.NameHint != nil {
ok := object.Key("NameHint")
ok.String(*v.NameHint)
}
if v.OnRoadThreshold != 0 {
ok := object.Key("OnRoadThreshold")
ok.Long(v.OnRoadThreshold)
}
if v.Radius != 0 {
ok := object.Key("Radius")
ok.Long(v.Radius)
}
if len(v.Strategy) > 0 {
ok := object.Key("Strategy")
ok.String(string(v.Strategy))
}
return nil
}
func awsRestjson1_serializeDocumentRouteMatrixOrigin(v *types.RouteMatrixOrigin, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.Options != nil {
ok := object.Key("Options")
if err := awsRestjson1_serializeDocumentRouteMatrixOriginOptions(v.Options, ok); err != nil {
return err
}
}
if v.Position != nil {
ok := object.Key("Position")
if err := awsRestjson1_serializeDocumentPosition(v.Position, ok); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentRouteMatrixOriginList(v []types.RouteMatrixOrigin, value smithyjson.Value) error {
array := value.Array()
defer array.Close()
for i := range v {
av := array.Value()
if err := awsRestjson1_serializeDocumentRouteMatrixOrigin(&v[i], av); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentRouteMatrixOriginOptions(v *types.RouteMatrixOriginOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.AvoidActionsForDistance != 0 {
ok := object.Key("AvoidActionsForDistance")
ok.Long(v.AvoidActionsForDistance)
}
if v.Heading != 0 {
ok := object.Key("Heading")
switch {
case math.IsNaN(v.Heading):
ok.String("NaN")
case math.IsInf(v.Heading, 1):
ok.String("Infinity")
case math.IsInf(v.Heading, -1):
ok.String("-Infinity")
default:
ok.Double(v.Heading)
}
}
if v.Matching != nil {
ok := object.Key("Matching")
if err := awsRestjson1_serializeDocumentRouteMatrixMatchingOptions(v.Matching, ok); err != nil {
return err
}
}
if v.SideOfStreet != nil {
ok := object.Key("SideOfStreet")
if err := awsRestjson1_serializeDocumentRouteMatrixSideOfStreetOptions(v.SideOfStreet, ok); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentRouteMatrixScooterOptions(v *types.RouteMatrixScooterOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.LicensePlate != nil {
ok := object.Key("LicensePlate")
if err := awsRestjson1_serializeDocumentRouteMatrixVehicleLicensePlate(v.LicensePlate, ok); err != nil {
return err
}
}
if v.MaxSpeed != nil {
ok := object.Key("MaxSpeed")
switch {
case math.IsNaN(*v.MaxSpeed):
ok.String("NaN")
case math.IsInf(*v.MaxSpeed, 1):
ok.String("Infinity")
case math.IsInf(*v.MaxSpeed, -1):
ok.String("-Infinity")
default:
ok.Double(*v.MaxSpeed)
}
}
if v.Occupancy != nil {
ok := object.Key("Occupancy")
ok.Integer(*v.Occupancy)
}
return nil
}
func awsRestjson1_serializeDocumentRouteMatrixSideOfStreetOptions(v *types.RouteMatrixSideOfStreetOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.Position != nil {
ok := object.Key("Position")
if err := awsRestjson1_serializeDocumentPosition(v.Position, ok); err != nil {
return err
}
}
if len(v.UseWith) > 0 {
ok := object.Key("UseWith")
ok.String(string(v.UseWith))
}
return nil
}
func awsRestjson1_serializeDocumentRouteMatrixTrafficOptions(v *types.RouteMatrixTrafficOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.FlowEventThresholdOverride != 0 {
ok := object.Key("FlowEventThresholdOverride")
ok.Long(v.FlowEventThresholdOverride)
}
if len(v.Usage) > 0 {
ok := object.Key("Usage")
ok.String(string(v.Usage))
}
return nil
}
func awsRestjson1_serializeDocumentRouteMatrixTrailerOptions(v *types.RouteMatrixTrailerOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.TrailerCount != nil {
ok := object.Key("TrailerCount")
ok.Integer(*v.TrailerCount)
}
return nil
}
func awsRestjson1_serializeDocumentRouteMatrixTravelModeOptions(v *types.RouteMatrixTravelModeOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.Car != nil {
ok := object.Key("Car")
if err := awsRestjson1_serializeDocumentRouteMatrixCarOptions(v.Car, ok); err != nil {
return err
}
}
if v.Scooter != nil {
ok := object.Key("Scooter")
if err := awsRestjson1_serializeDocumentRouteMatrixScooterOptions(v.Scooter, ok); err != nil {
return err
}
}
if v.Truck != nil {
ok := object.Key("Truck")
if err := awsRestjson1_serializeDocumentRouteMatrixTruckOptions(v.Truck, ok); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentRouteMatrixTruckOptions(v *types.RouteMatrixTruckOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.AxleCount != nil {
ok := object.Key("AxleCount")
ok.Integer(*v.AxleCount)
}
if v.GrossWeight != 0 {
ok := object.Key("GrossWeight")
ok.Long(v.GrossWeight)
}
if v.HazardousCargos != nil {
ok := object.Key("HazardousCargos")
if err := awsRestjson1_serializeDocumentRouteMatrixHazardousCargoTypeList(v.HazardousCargos, ok); err != nil {
return err
}
}
if v.Height != 0 {
ok := object.Key("Height")
ok.Long(v.Height)
}
if v.KpraLength != 0 {
ok := object.Key("KpraLength")
ok.Long(v.KpraLength)
}
if v.Length != 0 {
ok := object.Key("Length")
ok.Long(v.Length)
}
if v.LicensePlate != nil {
ok := object.Key("LicensePlate")
if err := awsRestjson1_serializeDocumentRouteMatrixVehicleLicensePlate(v.LicensePlate, ok); err != nil {
return err
}
}
if v.MaxSpeed != nil {
ok := object.Key("MaxSpeed")
switch {
case math.IsNaN(*v.MaxSpeed):
ok.String("NaN")
case math.IsInf(*v.MaxSpeed, 1):
ok.String("Infinity")
case math.IsInf(*v.MaxSpeed, -1):
ok.String("-Infinity")
default:
ok.Double(*v.MaxSpeed)
}
}
if v.Occupancy != nil {
ok := object.Key("Occupancy")
ok.Integer(*v.Occupancy)
}
if v.PayloadCapacity != 0 {
ok := object.Key("PayloadCapacity")
ok.Long(v.PayloadCapacity)
}
if v.Trailer != nil {
ok := object.Key("Trailer")
if err := awsRestjson1_serializeDocumentRouteMatrixTrailerOptions(v.Trailer, ok); err != nil {
return err
}
}
if len(v.TruckType) > 0 {
ok := object.Key("TruckType")
ok.String(string(v.TruckType))
}
if v.TunnelRestrictionCode != nil {
ok := object.Key("TunnelRestrictionCode")
ok.String(*v.TunnelRestrictionCode)
}
if v.WeightPerAxle != 0 {
ok := object.Key("WeightPerAxle")
ok.Long(v.WeightPerAxle)
}
if v.WeightPerAxleGroup != nil {
ok := object.Key("WeightPerAxleGroup")
if err := awsRestjson1_serializeDocumentWeightPerAxleGroup(v.WeightPerAxleGroup, ok); err != nil {
return err
}
}
if v.Width != 0 {
ok := object.Key("Width")
ok.Long(v.Width)
}
return nil
}
func awsRestjson1_serializeDocumentRouteMatrixVehicleLicensePlate(v *types.RouteMatrixVehicleLicensePlate, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.LastCharacter != nil {
ok := object.Key("LastCharacter")
ok.String(*v.LastCharacter)
}
return nil
}
func awsRestjson1_serializeDocumentRouteOriginOptions(v *types.RouteOriginOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.AvoidActionsForDistance != 0 {
ok := object.Key("AvoidActionsForDistance")
ok.Long(v.AvoidActionsForDistance)
}
if v.AvoidUTurns != nil {
ok := object.Key("AvoidUTurns")
ok.Boolean(*v.AvoidUTurns)
}
if v.Heading != 0 {
ok := object.Key("Heading")
switch {
case math.IsNaN(v.Heading):
ok.String("NaN")
case math.IsInf(v.Heading, 1):
ok.String("Infinity")
case math.IsInf(v.Heading, -1):
ok.String("-Infinity")
default:
ok.Double(v.Heading)
}
}
if v.Matching != nil {
ok := object.Key("Matching")
if err := awsRestjson1_serializeDocumentRouteMatchingOptions(v.Matching, ok); err != nil {
return err
}
}
if v.SideOfStreet != nil {
ok := object.Key("SideOfStreet")
if err := awsRestjson1_serializeDocumentRouteSideOfStreetOptions(v.SideOfStreet, ok); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentRoutePedestrianOptions(v *types.RoutePedestrianOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.Speed != nil {
ok := object.Key("Speed")
switch {
case math.IsNaN(*v.Speed):
ok.String("NaN")
case math.IsInf(*v.Speed, 1):
ok.String("Infinity")
case math.IsInf(*v.Speed, -1):
ok.String("-Infinity")
default:
ok.Double(*v.Speed)
}
}
return nil
}
func awsRestjson1_serializeDocumentRouteScooterOptions(v *types.RouteScooterOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if len(v.EngineType) > 0 {
ok := object.Key("EngineType")
ok.String(string(v.EngineType))
}
if v.LicensePlate != nil {
ok := object.Key("LicensePlate")
if err := awsRestjson1_serializeDocumentRouteVehicleLicensePlate(v.LicensePlate, ok); err != nil {
return err
}
}
if v.MaxSpeed != nil {
ok := object.Key("MaxSpeed")
switch {
case math.IsNaN(*v.MaxSpeed):
ok.String("NaN")
case math.IsInf(*v.MaxSpeed, 1):
ok.String("Infinity")
case math.IsInf(*v.MaxSpeed, -1):
ok.String("-Infinity")
default:
ok.Double(*v.MaxSpeed)
}
}
if v.Occupancy != nil {
ok := object.Key("Occupancy")
ok.Integer(*v.Occupancy)
}
return nil
}
func awsRestjson1_serializeDocumentRouteSideOfStreetOptions(v *types.RouteSideOfStreetOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.Position != nil {
ok := object.Key("Position")
if err := awsRestjson1_serializeDocumentPosition(v.Position, ok); err != nil {
return err
}
}
if len(v.UseWith) > 0 {
ok := object.Key("UseWith")
ok.String(string(v.UseWith))
}
return nil
}
func awsRestjson1_serializeDocumentRouteSpanAdditionalFeatureList(v []types.RouteSpanAdditionalFeature, value smithyjson.Value) error {
array := value.Array()
defer array.Close()
for i := range v {
av := array.Value()
av.String(string(v[i]))
}
return nil
}
func awsRestjson1_serializeDocumentRouteTollOptions(v *types.RouteTollOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.AllTransponders != nil {
ok := object.Key("AllTransponders")
ok.Boolean(*v.AllTransponders)
}
if v.AllVignettes != nil {
ok := object.Key("AllVignettes")
ok.Boolean(*v.AllVignettes)
}
if v.Currency != nil {
ok := object.Key("Currency")
ok.String(*v.Currency)
}
if v.EmissionType != nil {
ok := object.Key("EmissionType")
if err := awsRestjson1_serializeDocumentRouteEmissionType(v.EmissionType, ok); err != nil {
return err
}
}
if len(v.VehicleCategory) > 0 {
ok := object.Key("VehicleCategory")
ok.String(string(v.VehicleCategory))
}
return nil
}
func awsRestjson1_serializeDocumentRouteTrafficOptions(v *types.RouteTrafficOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.FlowEventThresholdOverride != 0 {
ok := object.Key("FlowEventThresholdOverride")
ok.Long(v.FlowEventThresholdOverride)
}
if len(v.Usage) > 0 {
ok := object.Key("Usage")
ok.String(string(v.Usage))
}
return nil
}
func awsRestjson1_serializeDocumentRouteTrailerOptions(v *types.RouteTrailerOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.AxleCount != nil {
ok := object.Key("AxleCount")
ok.Integer(*v.AxleCount)
}
if v.TrailerCount != nil {
ok := object.Key("TrailerCount")
ok.Integer(*v.TrailerCount)
}
return nil
}
func awsRestjson1_serializeDocumentRouteTravelModeOptions(v *types.RouteTravelModeOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.Car != nil {
ok := object.Key("Car")
if err := awsRestjson1_serializeDocumentRouteCarOptions(v.Car, ok); err != nil {
return err
}
}
if v.Pedestrian != nil {
ok := object.Key("Pedestrian")
if err := awsRestjson1_serializeDocumentRoutePedestrianOptions(v.Pedestrian, ok); err != nil {
return err
}
}
if v.Scooter != nil {
ok := object.Key("Scooter")
if err := awsRestjson1_serializeDocumentRouteScooterOptions(v.Scooter, ok); err != nil {
return err
}
}
if v.Truck != nil {
ok := object.Key("Truck")
if err := awsRestjson1_serializeDocumentRouteTruckOptions(v.Truck, ok); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentRouteTruckOptions(v *types.RouteTruckOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.AxleCount != nil {
ok := object.Key("AxleCount")
ok.Integer(*v.AxleCount)
}
if len(v.EngineType) > 0 {
ok := object.Key("EngineType")
ok.String(string(v.EngineType))
}
if v.GrossWeight != 0 {
ok := object.Key("GrossWeight")
ok.Long(v.GrossWeight)
}
if v.HazardousCargos != nil {
ok := object.Key("HazardousCargos")
if err := awsRestjson1_serializeDocumentRouteHazardousCargoTypeList(v.HazardousCargos, ok); err != nil {
return err
}
}
if v.Height != 0 {
ok := object.Key("Height")
ok.Long(v.Height)
}
if v.HeightAboveFirstAxle != 0 {
ok := object.Key("HeightAboveFirstAxle")
ok.Long(v.HeightAboveFirstAxle)
}
if v.KpraLength != 0 {
ok := object.Key("KpraLength")
ok.Long(v.KpraLength)
}
if v.Length != 0 {
ok := object.Key("Length")
ok.Long(v.Length)
}
if v.LicensePlate != nil {
ok := object.Key("LicensePlate")
if err := awsRestjson1_serializeDocumentRouteVehicleLicensePlate(v.LicensePlate, ok); err != nil {
return err
}
}
if v.MaxSpeed != nil {
ok := object.Key("MaxSpeed")
switch {
case math.IsNaN(*v.MaxSpeed):
ok.String("NaN")
case math.IsInf(*v.MaxSpeed, 1):
ok.String("Infinity")
case math.IsInf(*v.MaxSpeed, -1):
ok.String("-Infinity")
default:
ok.Double(*v.MaxSpeed)
}
}
if v.Occupancy != nil {
ok := object.Key("Occupancy")
ok.Integer(*v.Occupancy)
}
if v.PayloadCapacity != 0 {
ok := object.Key("PayloadCapacity")
ok.Long(v.PayloadCapacity)
}
if v.TireCount != nil {
ok := object.Key("TireCount")
ok.Integer(*v.TireCount)
}
if v.Trailer != nil {
ok := object.Key("Trailer")
if err := awsRestjson1_serializeDocumentRouteTrailerOptions(v.Trailer, ok); err != nil {
return err
}
}
if len(v.TruckType) > 0 {
ok := object.Key("TruckType")
ok.String(string(v.TruckType))
}
if v.TunnelRestrictionCode != nil {
ok := object.Key("TunnelRestrictionCode")
ok.String(*v.TunnelRestrictionCode)
}
if v.WeightPerAxle != 0 {
ok := object.Key("WeightPerAxle")
ok.Long(v.WeightPerAxle)
}
if v.WeightPerAxleGroup != nil {
ok := object.Key("WeightPerAxleGroup")
if err := awsRestjson1_serializeDocumentWeightPerAxleGroup(v.WeightPerAxleGroup, ok); err != nil {
return err
}
}
if v.Width != 0 {
ok := object.Key("Width")
ok.Long(v.Width)
}
return nil
}
func awsRestjson1_serializeDocumentRouteVehicleLicensePlate(v *types.RouteVehicleLicensePlate, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.LastCharacter != nil {
ok := object.Key("LastCharacter")
ok.String(*v.LastCharacter)
}
return nil
}
func awsRestjson1_serializeDocumentRouteWaypoint(v *types.RouteWaypoint, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.AvoidActionsForDistance != 0 {
ok := object.Key("AvoidActionsForDistance")
ok.Long(v.AvoidActionsForDistance)
}
if v.AvoidUTurns != nil {
ok := object.Key("AvoidUTurns")
ok.Boolean(*v.AvoidUTurns)
}
if v.Heading != 0 {
ok := object.Key("Heading")
switch {
case math.IsNaN(v.Heading):
ok.String("NaN")
case math.IsInf(v.Heading, 1):
ok.String("Infinity")
case math.IsInf(v.Heading, -1):
ok.String("-Infinity")
default:
ok.Double(v.Heading)
}
}
if v.Matching != nil {
ok := object.Key("Matching")
if err := awsRestjson1_serializeDocumentRouteMatchingOptions(v.Matching, ok); err != nil {
return err
}
}
if v.PassThrough != nil {
ok := object.Key("PassThrough")
ok.Boolean(*v.PassThrough)
}
if v.Position != nil {
ok := object.Key("Position")
if err := awsRestjson1_serializeDocumentPosition(v.Position, ok); err != nil {
return err
}
}
if v.SideOfStreet != nil {
ok := object.Key("SideOfStreet")
if err := awsRestjson1_serializeDocumentRouteSideOfStreetOptions(v.SideOfStreet, ok); err != nil {
return err
}
}
if v.StopDuration != 0 {
ok := object.Key("StopDuration")
ok.Long(v.StopDuration)
}
return nil
}
func awsRestjson1_serializeDocumentRouteWaypointList(v []types.RouteWaypoint, value smithyjson.Value) error {
array := value.Array()
defer array.Close()
for i := range v {
av := array.Value()
if err := awsRestjson1_serializeDocumentRouteWaypoint(&v[i], av); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentTimeThresholdList(v []int64, value smithyjson.Value) error {
array := value.Array()
defer array.Close()
for i := range v {
av := array.Value()
av.Long(v[i])
}
return nil
}
func awsRestjson1_serializeDocumentTruckRoadTypeList(v []string, value smithyjson.Value) error {
array := value.Array()
defer array.Close()
for i := range v {
av := array.Value()
av.String(v[i])
}
return nil
}
func awsRestjson1_serializeDocumentWaypointOptimizationAccessHours(v *types.WaypointOptimizationAccessHours, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.From != nil {
ok := object.Key("From")
if err := awsRestjson1_serializeDocumentWaypointOptimizationAccessHoursEntry(v.From, ok); err != nil {
return err
}
}
if v.To != nil {
ok := object.Key("To")
if err := awsRestjson1_serializeDocumentWaypointOptimizationAccessHoursEntry(v.To, ok); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentWaypointOptimizationAccessHoursEntry(v *types.WaypointOptimizationAccessHoursEntry, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if len(v.DayOfWeek) > 0 {
ok := object.Key("DayOfWeek")
ok.String(string(v.DayOfWeek))
}
if v.TimeOfDay != nil {
ok := object.Key("TimeOfDay")
ok.String(*v.TimeOfDay)
}
return nil
}
func awsRestjson1_serializeDocumentWaypointOptimizationAvoidanceArea(v *types.WaypointOptimizationAvoidanceArea, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.Geometry != nil {
ok := object.Key("Geometry")
if err := awsRestjson1_serializeDocumentWaypointOptimizationAvoidanceAreaGeometry(v.Geometry, ok); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentWaypointOptimizationAvoidanceAreaGeometry(v *types.WaypointOptimizationAvoidanceAreaGeometry, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.BoundingBox != nil {
ok := object.Key("BoundingBox")
if err := awsRestjson1_serializeDocumentBoundingBox(v.BoundingBox, ok); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentWaypointOptimizationAvoidanceAreaList(v []types.WaypointOptimizationAvoidanceArea, value smithyjson.Value) error {
array := value.Array()
defer array.Close()
for i := range v {
av := array.Value()
if err := awsRestjson1_serializeDocumentWaypointOptimizationAvoidanceArea(&v[i], av); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentWaypointOptimizationAvoidanceOptions(v *types.WaypointOptimizationAvoidanceOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.Areas != nil {
ok := object.Key("Areas")
if err := awsRestjson1_serializeDocumentWaypointOptimizationAvoidanceAreaList(v.Areas, ok); err != nil {
return err
}
}
if v.CarShuttleTrains != nil {
ok := object.Key("CarShuttleTrains")
ok.Boolean(*v.CarShuttleTrains)
}
if v.ControlledAccessHighways != nil {
ok := object.Key("ControlledAccessHighways")
ok.Boolean(*v.ControlledAccessHighways)
}
if v.DirtRoads != nil {
ok := object.Key("DirtRoads")
ok.Boolean(*v.DirtRoads)
}
if v.Ferries != nil {
ok := object.Key("Ferries")
ok.Boolean(*v.Ferries)
}
if v.TollRoads != nil {
ok := object.Key("TollRoads")
ok.Boolean(*v.TollRoads)
}
if v.Tunnels != nil {
ok := object.Key("Tunnels")
ok.Boolean(*v.Tunnels)
}
if v.UTurns != nil {
ok := object.Key("UTurns")
ok.Boolean(*v.UTurns)
}
return nil
}
func awsRestjson1_serializeDocumentWaypointOptimizationClusteringOptions(v *types.WaypointOptimizationClusteringOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if len(v.Algorithm) > 0 {
ok := object.Key("Algorithm")
ok.String(string(v.Algorithm))
}
if v.DrivingDistanceOptions != nil {
ok := object.Key("DrivingDistanceOptions")
if err := awsRestjson1_serializeDocumentWaypointOptimizationDrivingDistanceOptions(v.DrivingDistanceOptions, ok); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentWaypointOptimizationDestinationOptions(v *types.WaypointOptimizationDestinationOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.AccessHours != nil {
ok := object.Key("AccessHours")
if err := awsRestjson1_serializeDocumentWaypointOptimizationAccessHours(v.AccessHours, ok); err != nil {
return err
}
}
if v.AppointmentTime != nil {
ok := object.Key("AppointmentTime")
ok.String(*v.AppointmentTime)
}
if v.Heading != 0 {
ok := object.Key("Heading")
switch {
case math.IsNaN(v.Heading):
ok.String("NaN")
case math.IsInf(v.Heading, 1):
ok.String("Infinity")
case math.IsInf(v.Heading, -1):
ok.String("-Infinity")
default:
ok.Double(v.Heading)
}
}
if v.Id != nil {
ok := object.Key("Id")
ok.String(*v.Id)
}
if v.ServiceDuration != 0 {
ok := object.Key("ServiceDuration")
ok.Long(v.ServiceDuration)
}
if v.SideOfStreet != nil {
ok := object.Key("SideOfStreet")
if err := awsRestjson1_serializeDocumentWaypointOptimizationSideOfStreetOptions(v.SideOfStreet, ok); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentWaypointOptimizationDriverOptions(v *types.WaypointOptimizationDriverOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.RestCycles != nil {
ok := object.Key("RestCycles")
if err := awsRestjson1_serializeDocumentWaypointOptimizationRestCycles(v.RestCycles, ok); err != nil {
return err
}
}
if v.RestProfile != nil {
ok := object.Key("RestProfile")
if err := awsRestjson1_serializeDocumentWaypointOptimizationRestProfile(v.RestProfile, ok); err != nil {
return err
}
}
if len(v.TreatServiceTimeAs) > 0 {
ok := object.Key("TreatServiceTimeAs")
ok.String(string(v.TreatServiceTimeAs))
}
return nil
}
func awsRestjson1_serializeDocumentWaypointOptimizationDrivingDistanceOptions(v *types.WaypointOptimizationDrivingDistanceOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
{
ok := object.Key("DrivingDistance")
ok.Long(v.DrivingDistance)
}
return nil
}
func awsRestjson1_serializeDocumentWaypointOptimizationExclusionOptions(v *types.WaypointOptimizationExclusionOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.Countries != nil {
ok := object.Key("Countries")
if err := awsRestjson1_serializeDocumentCountryCodeList(v.Countries, ok); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentWaypointOptimizationHazardousCargoTypeList(v []types.WaypointOptimizationHazardousCargoType, value smithyjson.Value) error {
array := value.Array()
defer array.Close()
for i := range v {
av := array.Value()
av.String(string(v[i]))
}
return nil
}
func awsRestjson1_serializeDocumentWaypointOptimizationOriginOptions(v *types.WaypointOptimizationOriginOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.Id != nil {
ok := object.Key("Id")
ok.String(*v.Id)
}
return nil
}
func awsRestjson1_serializeDocumentWaypointOptimizationPedestrianOptions(v *types.WaypointOptimizationPedestrianOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.Speed != nil {
ok := object.Key("Speed")
switch {
case math.IsNaN(*v.Speed):
ok.String("NaN")
case math.IsInf(*v.Speed, 1):
ok.String("Infinity")
case math.IsInf(*v.Speed, -1):
ok.String("-Infinity")
default:
ok.Double(*v.Speed)
}
}
return nil
}
func awsRestjson1_serializeDocumentWaypointOptimizationRestCycleDurations(v *types.WaypointOptimizationRestCycleDurations, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
{
ok := object.Key("RestDuration")
ok.Long(v.RestDuration)
}
{
ok := object.Key("WorkDuration")
ok.Long(v.WorkDuration)
}
return nil
}
func awsRestjson1_serializeDocumentWaypointOptimizationRestCycles(v *types.WaypointOptimizationRestCycles, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.LongCycle != nil {
ok := object.Key("LongCycle")
if err := awsRestjson1_serializeDocumentWaypointOptimizationRestCycleDurations(v.LongCycle, ok); err != nil {
return err
}
}
if v.ShortCycle != nil {
ok := object.Key("ShortCycle")
if err := awsRestjson1_serializeDocumentWaypointOptimizationRestCycleDurations(v.ShortCycle, ok); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentWaypointOptimizationRestProfile(v *types.WaypointOptimizationRestProfile, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.Profile != nil {
ok := object.Key("Profile")
ok.String(*v.Profile)
}
return nil
}
func awsRestjson1_serializeDocumentWaypointOptimizationSideOfStreetOptions(v *types.WaypointOptimizationSideOfStreetOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.Position != nil {
ok := object.Key("Position")
if err := awsRestjson1_serializeDocumentPosition(v.Position, ok); err != nil {
return err
}
}
if len(v.UseWith) > 0 {
ok := object.Key("UseWith")
ok.String(string(v.UseWith))
}
return nil
}
func awsRestjson1_serializeDocumentWaypointOptimizationTrafficOptions(v *types.WaypointOptimizationTrafficOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if len(v.Usage) > 0 {
ok := object.Key("Usage")
ok.String(string(v.Usage))
}
return nil
}
func awsRestjson1_serializeDocumentWaypointOptimizationTrailerOptions(v *types.WaypointOptimizationTrailerOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.TrailerCount != nil {
ok := object.Key("TrailerCount")
ok.Integer(*v.TrailerCount)
}
return nil
}
func awsRestjson1_serializeDocumentWaypointOptimizationTravelModeOptions(v *types.WaypointOptimizationTravelModeOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.Pedestrian != nil {
ok := object.Key("Pedestrian")
if err := awsRestjson1_serializeDocumentWaypointOptimizationPedestrianOptions(v.Pedestrian, ok); err != nil {
return err
}
}
if v.Truck != nil {
ok := object.Key("Truck")
if err := awsRestjson1_serializeDocumentWaypointOptimizationTruckOptions(v.Truck, ok); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentWaypointOptimizationTruckOptions(v *types.WaypointOptimizationTruckOptions, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.GrossWeight != 0 {
ok := object.Key("GrossWeight")
ok.Long(v.GrossWeight)
}
if v.HazardousCargos != nil {
ok := object.Key("HazardousCargos")
if err := awsRestjson1_serializeDocumentWaypointOptimizationHazardousCargoTypeList(v.HazardousCargos, ok); err != nil {
return err
}
}
if v.Height != 0 {
ok := object.Key("Height")
ok.Long(v.Height)
}
if v.Length != 0 {
ok := object.Key("Length")
ok.Long(v.Length)
}
if v.Trailer != nil {
ok := object.Key("Trailer")
if err := awsRestjson1_serializeDocumentWaypointOptimizationTrailerOptions(v.Trailer, ok); err != nil {
return err
}
}
if len(v.TruckType) > 0 {
ok := object.Key("TruckType")
ok.String(string(v.TruckType))
}
if v.TunnelRestrictionCode != nil {
ok := object.Key("TunnelRestrictionCode")
ok.String(*v.TunnelRestrictionCode)
}
if v.WeightPerAxle != 0 {
ok := object.Key("WeightPerAxle")
ok.Long(v.WeightPerAxle)
}
if v.Width != 0 {
ok := object.Key("Width")
ok.Long(v.Width)
}
return nil
}
func awsRestjson1_serializeDocumentWaypointOptimizationWaypoint(v *types.WaypointOptimizationWaypoint, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.AccessHours != nil {
ok := object.Key("AccessHours")
if err := awsRestjson1_serializeDocumentWaypointOptimizationAccessHours(v.AccessHours, ok); err != nil {
return err
}
}
if v.AppointmentTime != nil {
ok := object.Key("AppointmentTime")
ok.String(*v.AppointmentTime)
}
if v.Before != nil {
ok := object.Key("Before")
if err := awsRestjson1_serializeDocumentBeforeWaypointsList(v.Before, ok); err != nil {
return err
}
}
if v.Heading != 0 {
ok := object.Key("Heading")
switch {
case math.IsNaN(v.Heading):
ok.String("NaN")
case math.IsInf(v.Heading, 1):
ok.String("Infinity")
case math.IsInf(v.Heading, -1):
ok.String("-Infinity")
default:
ok.Double(v.Heading)
}
}
if v.Id != nil {
ok := object.Key("Id")
ok.String(*v.Id)
}
if v.Position != nil {
ok := object.Key("Position")
if err := awsRestjson1_serializeDocumentPosition(v.Position, ok); err != nil {
return err
}
}
if v.ServiceDuration != 0 {
ok := object.Key("ServiceDuration")
ok.Long(v.ServiceDuration)
}
if v.SideOfStreet != nil {
ok := object.Key("SideOfStreet")
if err := awsRestjson1_serializeDocumentWaypointOptimizationSideOfStreetOptions(v.SideOfStreet, ok); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentWaypointOptimizationWaypointList(v []types.WaypointOptimizationWaypoint, value smithyjson.Value) error {
array := value.Array()
defer array.Close()
for i := range v {
av := array.Value()
if err := awsRestjson1_serializeDocumentWaypointOptimizationWaypoint(&v[i], av); err != nil {
return err
}
}
return nil
}
func awsRestjson1_serializeDocumentWeightPerAxleGroup(v *types.WeightPerAxleGroup, value smithyjson.Value) error {
object := value.Object()
defer object.Close()
if v.Quad != 0 {
ok := object.Key("Quad")
ok.Long(v.Quad)
}
if v.Quint != 0 {
ok := object.Key("Quint")
ok.Long(v.Quint)
}
if v.Single != 0 {
ok := object.Key("Single")
ok.Long(v.Single)
}
if v.Tandem != 0 {
ok := object.Key("Tandem")
ok.Long(v.Tandem)
}
if v.Triple != 0 {
ok := object.Key("Triple")
ok.Long(v.Triple)
}
return nil
}