/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace Http { class URI; } //namespace Http namespace LocationService { namespace Model { /** */ class CalculateRouteMatrixRequest : public LocationServiceRequest { public: AWS_LOCATIONSERVICE_API CalculateRouteMatrixRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "CalculateRouteMatrix"; } AWS_LOCATIONSERVICE_API Aws::String SerializePayload() const override; AWS_LOCATIONSERVICE_API void AddQueryStringParameters(Aws::Http::URI& uri) const override; /** *

The name of the route calculator resource that you want to use to calculate * the route matrix.

*/ inline const Aws::String& GetCalculatorName() const{ return m_calculatorName; } /** *

The name of the route calculator resource that you want to use to calculate * the route matrix.

*/ inline bool CalculatorNameHasBeenSet() const { return m_calculatorNameHasBeenSet; } /** *

The name of the route calculator resource that you want to use to calculate * the route matrix.

*/ inline void SetCalculatorName(const Aws::String& value) { m_calculatorNameHasBeenSet = true; m_calculatorName = value; } /** *

The name of the route calculator resource that you want to use to calculate * the route matrix.

*/ inline void SetCalculatorName(Aws::String&& value) { m_calculatorNameHasBeenSet = true; m_calculatorName = std::move(value); } /** *

The name of the route calculator resource that you want to use to calculate * the route matrix.

*/ inline void SetCalculatorName(const char* value) { m_calculatorNameHasBeenSet = true; m_calculatorName.assign(value); } /** *

The name of the route calculator resource that you want to use to calculate * the route matrix.

*/ inline CalculateRouteMatrixRequest& WithCalculatorName(const Aws::String& value) { SetCalculatorName(value); return *this;} /** *

The name of the route calculator resource that you want to use to calculate * the route matrix.

*/ inline CalculateRouteMatrixRequest& WithCalculatorName(Aws::String&& value) { SetCalculatorName(std::move(value)); return *this;} /** *

The name of the route calculator resource that you want to use to calculate * the route matrix.

*/ inline CalculateRouteMatrixRequest& WithCalculatorName(const char* value) { SetCalculatorName(value); return *this;} /** *

Specifies route preferences when traveling by Car, such as * avoiding routes that use ferries or tolls.

Requirements: * TravelMode must be specified as Car.

*/ inline const CalculateRouteCarModeOptions& GetCarModeOptions() const{ return m_carModeOptions; } /** *

Specifies route preferences when traveling by Car, such as * avoiding routes that use ferries or tolls.

Requirements: * TravelMode must be specified as Car.

*/ inline bool CarModeOptionsHasBeenSet() const { return m_carModeOptionsHasBeenSet; } /** *

Specifies route preferences when traveling by Car, such as * avoiding routes that use ferries or tolls.

Requirements: * TravelMode must be specified as Car.

*/ inline void SetCarModeOptions(const CalculateRouteCarModeOptions& value) { m_carModeOptionsHasBeenSet = true; m_carModeOptions = value; } /** *

Specifies route preferences when traveling by Car, such as * avoiding routes that use ferries or tolls.

Requirements: * TravelMode must be specified as Car.

*/ inline void SetCarModeOptions(CalculateRouteCarModeOptions&& value) { m_carModeOptionsHasBeenSet = true; m_carModeOptions = std::move(value); } /** *

Specifies route preferences when traveling by Car, such as * avoiding routes that use ferries or tolls.

Requirements: * TravelMode must be specified as Car.

*/ inline CalculateRouteMatrixRequest& WithCarModeOptions(const CalculateRouteCarModeOptions& value) { SetCarModeOptions(value); return *this;} /** *

Specifies route preferences when traveling by Car, such as * avoiding routes that use ferries or tolls.

Requirements: * TravelMode must be specified as Car.

*/ inline CalculateRouteMatrixRequest& WithCarModeOptions(CalculateRouteCarModeOptions&& value) { SetCarModeOptions(std::move(value)); return *this;} /** *

Sets the time of departure as the current time. Uses the current time to * calculate the route matrix. You can't set both DepartureTime and * DepartNow. If neither is set, the best time of day to travel with * the best traffic conditions is used to calculate the route matrix.

*

Default Value: false

Valid Values: false | * true

*/ inline bool GetDepartNow() const{ return m_departNow; } /** *

Sets the time of departure as the current time. Uses the current time to * calculate the route matrix. You can't set both DepartureTime and * DepartNow. If neither is set, the best time of day to travel with * the best traffic conditions is used to calculate the route matrix.

*

Default Value: false

Valid Values: false | * true

*/ inline bool DepartNowHasBeenSet() const { return m_departNowHasBeenSet; } /** *

Sets the time of departure as the current time. Uses the current time to * calculate the route matrix. You can't set both DepartureTime and * DepartNow. If neither is set, the best time of day to travel with * the best traffic conditions is used to calculate the route matrix.

*

Default Value: false

Valid Values: false | * true

*/ inline void SetDepartNow(bool value) { m_departNowHasBeenSet = true; m_departNow = value; } /** *

Sets the time of departure as the current time. Uses the current time to * calculate the route matrix. You can't set both DepartureTime and * DepartNow. If neither is set, the best time of day to travel with * the best traffic conditions is used to calculate the route matrix.

*

Default Value: false

Valid Values: false | * true

*/ inline CalculateRouteMatrixRequest& WithDepartNow(bool value) { SetDepartNow(value); return *this;} /** *

The list of departure (origin) positions for the route matrix. An array of * points, each of which is itself a 2-value array defined in WGS 84 format: * [longitude, latitude]. For example, [-123.115, * 49.285].

Depending on the data provider selected in * the route calculator resource there may be additional restrictions on the inputs * you can choose. See * Position restrictions in the Amazon Location Service Developer * Guide.

For route calculators that use Esri as the * data provider, if you specify a departure that's not located on a road, Amazon * Location * moves the position to the nearest road. The snapped value is available in * the result in SnappedDeparturePositions.

Valid * Values: [-180 to 180,-90 to 90]

*/ inline const Aws::Vector>& GetDeparturePositions() const{ return m_departurePositions; } /** *

The list of departure (origin) positions for the route matrix. An array of * points, each of which is itself a 2-value array defined in WGS 84 format: * [longitude, latitude]. For example, [-123.115, * 49.285].

Depending on the data provider selected in * the route calculator resource there may be additional restrictions on the inputs * you can choose. See * Position restrictions in the Amazon Location Service Developer * Guide.

For route calculators that use Esri as the * data provider, if you specify a departure that's not located on a road, Amazon * Location * moves the position to the nearest road. The snapped value is available in * the result in SnappedDeparturePositions.

Valid * Values: [-180 to 180,-90 to 90]

*/ inline bool DeparturePositionsHasBeenSet() const { return m_departurePositionsHasBeenSet; } /** *

The list of departure (origin) positions for the route matrix. An array of * points, each of which is itself a 2-value array defined in WGS 84 format: * [longitude, latitude]. For example, [-123.115, * 49.285].

Depending on the data provider selected in * the route calculator resource there may be additional restrictions on the inputs * you can choose. See * Position restrictions in the Amazon Location Service Developer * Guide.

For route calculators that use Esri as the * data provider, if you specify a departure that's not located on a road, Amazon * Location * moves the position to the nearest road. The snapped value is available in * the result in SnappedDeparturePositions.

Valid * Values: [-180 to 180,-90 to 90]

*/ inline void SetDeparturePositions(const Aws::Vector>& value) { m_departurePositionsHasBeenSet = true; m_departurePositions = value; } /** *

The list of departure (origin) positions for the route matrix. An array of * points, each of which is itself a 2-value array defined in WGS 84 format: * [longitude, latitude]. For example, [-123.115, * 49.285].

Depending on the data provider selected in * the route calculator resource there may be additional restrictions on the inputs * you can choose. See * Position restrictions in the Amazon Location Service Developer * Guide.

For route calculators that use Esri as the * data provider, if you specify a departure that's not located on a road, Amazon * Location * moves the position to the nearest road. The snapped value is available in * the result in SnappedDeparturePositions.

Valid * Values: [-180 to 180,-90 to 90]

*/ inline void SetDeparturePositions(Aws::Vector>&& value) { m_departurePositionsHasBeenSet = true; m_departurePositions = std::move(value); } /** *

The list of departure (origin) positions for the route matrix. An array of * points, each of which is itself a 2-value array defined in WGS 84 format: * [longitude, latitude]. For example, [-123.115, * 49.285].

Depending on the data provider selected in * the route calculator resource there may be additional restrictions on the inputs * you can choose. See * Position restrictions in the Amazon Location Service Developer * Guide.

For route calculators that use Esri as the * data provider, if you specify a departure that's not located on a road, Amazon * Location * moves the position to the nearest road. The snapped value is available in * the result in SnappedDeparturePositions.

Valid * Values: [-180 to 180,-90 to 90]

*/ inline CalculateRouteMatrixRequest& WithDeparturePositions(const Aws::Vector>& value) { SetDeparturePositions(value); return *this;} /** *

The list of departure (origin) positions for the route matrix. An array of * points, each of which is itself a 2-value array defined in WGS 84 format: * [longitude, latitude]. For example, [-123.115, * 49.285].

Depending on the data provider selected in * the route calculator resource there may be additional restrictions on the inputs * you can choose. See * Position restrictions in the Amazon Location Service Developer * Guide.

For route calculators that use Esri as the * data provider, if you specify a departure that's not located on a road, Amazon * Location * moves the position to the nearest road. The snapped value is available in * the result in SnappedDeparturePositions.

Valid * Values: [-180 to 180,-90 to 90]

*/ inline CalculateRouteMatrixRequest& WithDeparturePositions(Aws::Vector>&& value) { SetDeparturePositions(std::move(value)); return *this;} /** *

The list of departure (origin) positions for the route matrix. An array of * points, each of which is itself a 2-value array defined in WGS 84 format: * [longitude, latitude]. For example, [-123.115, * 49.285].

Depending on the data provider selected in * the route calculator resource there may be additional restrictions on the inputs * you can choose. See * Position restrictions in the Amazon Location Service Developer * Guide.

For route calculators that use Esri as the * data provider, if you specify a departure that's not located on a road, Amazon * Location * moves the position to the nearest road. The snapped value is available in * the result in SnappedDeparturePositions.

Valid * Values: [-180 to 180,-90 to 90]

*/ inline CalculateRouteMatrixRequest& AddDeparturePositions(const Aws::Vector& value) { m_departurePositionsHasBeenSet = true; m_departurePositions.push_back(value); return *this; } /** *

The list of departure (origin) positions for the route matrix. An array of * points, each of which is itself a 2-value array defined in WGS 84 format: * [longitude, latitude]. For example, [-123.115, * 49.285].

Depending on the data provider selected in * the route calculator resource there may be additional restrictions on the inputs * you can choose. See * Position restrictions in the Amazon Location Service Developer * Guide.

For route calculators that use Esri as the * data provider, if you specify a departure that's not located on a road, Amazon * Location * moves the position to the nearest road. The snapped value is available in * the result in SnappedDeparturePositions.

Valid * Values: [-180 to 180,-90 to 90]

*/ inline CalculateRouteMatrixRequest& AddDeparturePositions(Aws::Vector&& value) { m_departurePositionsHasBeenSet = true; m_departurePositions.push_back(std::move(value)); return *this; } /** *

Specifies the desired time of departure. Uses the given time to calculate the * route matrix. You can't set both DepartureTime and * DepartNow. If neither is set, the best time of day to travel with * the best traffic conditions is used to calculate the route matrix.

*

Setting a departure time in the past returns a 400 * ValidationException error.

  • In ISO 8601 * format: YYYY-MM-DDThh:mm:ss.sssZ. For example, * 2020–07-2T12:15:20.000Z+01:00

*/ inline const Aws::Utils::DateTime& GetDepartureTime() const{ return m_departureTime; } /** *

Specifies the desired time of departure. Uses the given time to calculate the * route matrix. You can't set both DepartureTime and * DepartNow. If neither is set, the best time of day to travel with * the best traffic conditions is used to calculate the route matrix.

*

Setting a departure time in the past returns a 400 * ValidationException error.

  • In ISO 8601 * format: YYYY-MM-DDThh:mm:ss.sssZ. For example, * 2020–07-2T12:15:20.000Z+01:00

*/ inline bool DepartureTimeHasBeenSet() const { return m_departureTimeHasBeenSet; } /** *

Specifies the desired time of departure. Uses the given time to calculate the * route matrix. You can't set both DepartureTime and * DepartNow. If neither is set, the best time of day to travel with * the best traffic conditions is used to calculate the route matrix.

*

Setting a departure time in the past returns a 400 * ValidationException error.

  • In ISO 8601 * format: YYYY-MM-DDThh:mm:ss.sssZ. For example, * 2020–07-2T12:15:20.000Z+01:00

*/ inline void SetDepartureTime(const Aws::Utils::DateTime& value) { m_departureTimeHasBeenSet = true; m_departureTime = value; } /** *

Specifies the desired time of departure. Uses the given time to calculate the * route matrix. You can't set both DepartureTime and * DepartNow. If neither is set, the best time of day to travel with * the best traffic conditions is used to calculate the route matrix.

*

Setting a departure time in the past returns a 400 * ValidationException error.

  • In ISO 8601 * format: YYYY-MM-DDThh:mm:ss.sssZ. For example, * 2020–07-2T12:15:20.000Z+01:00

*/ inline void SetDepartureTime(Aws::Utils::DateTime&& value) { m_departureTimeHasBeenSet = true; m_departureTime = std::move(value); } /** *

Specifies the desired time of departure. Uses the given time to calculate the * route matrix. You can't set both DepartureTime and * DepartNow. If neither is set, the best time of day to travel with * the best traffic conditions is used to calculate the route matrix.

*

Setting a departure time in the past returns a 400 * ValidationException error.

  • In ISO 8601 * format: YYYY-MM-DDThh:mm:ss.sssZ. For example, * 2020–07-2T12:15:20.000Z+01:00

*/ inline CalculateRouteMatrixRequest& WithDepartureTime(const Aws::Utils::DateTime& value) { SetDepartureTime(value); return *this;} /** *

Specifies the desired time of departure. Uses the given time to calculate the * route matrix. You can't set both DepartureTime and * DepartNow. If neither is set, the best time of day to travel with * the best traffic conditions is used to calculate the route matrix.

*

Setting a departure time in the past returns a 400 * ValidationException error.

  • In ISO 8601 * format: YYYY-MM-DDThh:mm:ss.sssZ. For example, * 2020–07-2T12:15:20.000Z+01:00

*/ inline CalculateRouteMatrixRequest& WithDepartureTime(Aws::Utils::DateTime&& value) { SetDepartureTime(std::move(value)); return *this;} /** *

The list of destination positions for the route matrix. An array of points, * each of which is itself a 2-value array defined in WGS 84 format: * [longitude, latitude]. For example, [-122.339, 47.615] *

Depending on the data provider selected in the route * calculator resource there may be additional restrictions on the inputs you can * choose. See * Position restrictions in the Amazon Location Service Developer * Guide.

For route calculators that use Esri as the * data provider, if you specify a destination that's not located on a road, Amazon * Location * moves the position to the nearest road. The snapped value is available in * the result in SnappedDestinationPositions.

Valid * Values: [-180 to 180,-90 to 90]

*/ inline const Aws::Vector>& GetDestinationPositions() const{ return m_destinationPositions; } /** *

The list of destination positions for the route matrix. An array of points, * each of which is itself a 2-value array defined in WGS 84 format: * [longitude, latitude]. For example, [-122.339, 47.615] *

Depending on the data provider selected in the route * calculator resource there may be additional restrictions on the inputs you can * choose. See * Position restrictions in the Amazon Location Service Developer * Guide.

For route calculators that use Esri as the * data provider, if you specify a destination that's not located on a road, Amazon * Location * moves the position to the nearest road. The snapped value is available in * the result in SnappedDestinationPositions.

Valid * Values: [-180 to 180,-90 to 90]

*/ inline bool DestinationPositionsHasBeenSet() const { return m_destinationPositionsHasBeenSet; } /** *

The list of destination positions for the route matrix. An array of points, * each of which is itself a 2-value array defined in WGS 84 format: * [longitude, latitude]. For example, [-122.339, 47.615] *

Depending on the data provider selected in the route * calculator resource there may be additional restrictions on the inputs you can * choose. See * Position restrictions in the Amazon Location Service Developer * Guide.

For route calculators that use Esri as the * data provider, if you specify a destination that's not located on a road, Amazon * Location * moves the position to the nearest road. The snapped value is available in * the result in SnappedDestinationPositions.

Valid * Values: [-180 to 180,-90 to 90]

*/ inline void SetDestinationPositions(const Aws::Vector>& value) { m_destinationPositionsHasBeenSet = true; m_destinationPositions = value; } /** *

The list of destination positions for the route matrix. An array of points, * each of which is itself a 2-value array defined in WGS 84 format: * [longitude, latitude]. For example, [-122.339, 47.615] *

Depending on the data provider selected in the route * calculator resource there may be additional restrictions on the inputs you can * choose. See * Position restrictions in the Amazon Location Service Developer * Guide.

For route calculators that use Esri as the * data provider, if you specify a destination that's not located on a road, Amazon * Location * moves the position to the nearest road. The snapped value is available in * the result in SnappedDestinationPositions.

Valid * Values: [-180 to 180,-90 to 90]

*/ inline void SetDestinationPositions(Aws::Vector>&& value) { m_destinationPositionsHasBeenSet = true; m_destinationPositions = std::move(value); } /** *

The list of destination positions for the route matrix. An array of points, * each of which is itself a 2-value array defined in WGS 84 format: * [longitude, latitude]. For example, [-122.339, 47.615] *

Depending on the data provider selected in the route * calculator resource there may be additional restrictions on the inputs you can * choose. See * Position restrictions in the Amazon Location Service Developer * Guide.

For route calculators that use Esri as the * data provider, if you specify a destination that's not located on a road, Amazon * Location * moves the position to the nearest road. The snapped value is available in * the result in SnappedDestinationPositions.

Valid * Values: [-180 to 180,-90 to 90]

*/ inline CalculateRouteMatrixRequest& WithDestinationPositions(const Aws::Vector>& value) { SetDestinationPositions(value); return *this;} /** *

The list of destination positions for the route matrix. An array of points, * each of which is itself a 2-value array defined in WGS 84 format: * [longitude, latitude]. For example, [-122.339, 47.615] *

Depending on the data provider selected in the route * calculator resource there may be additional restrictions on the inputs you can * choose. See * Position restrictions in the Amazon Location Service Developer * Guide.

For route calculators that use Esri as the * data provider, if you specify a destination that's not located on a road, Amazon * Location * moves the position to the nearest road. The snapped value is available in * the result in SnappedDestinationPositions.

Valid * Values: [-180 to 180,-90 to 90]

*/ inline CalculateRouteMatrixRequest& WithDestinationPositions(Aws::Vector>&& value) { SetDestinationPositions(std::move(value)); return *this;} /** *

The list of destination positions for the route matrix. An array of points, * each of which is itself a 2-value array defined in WGS 84 format: * [longitude, latitude]. For example, [-122.339, 47.615] *

Depending on the data provider selected in the route * calculator resource there may be additional restrictions on the inputs you can * choose. See * Position restrictions in the Amazon Location Service Developer * Guide.

For route calculators that use Esri as the * data provider, if you specify a destination that's not located on a road, Amazon * Location * moves the position to the nearest road. The snapped value is available in * the result in SnappedDestinationPositions.

Valid * Values: [-180 to 180,-90 to 90]

*/ inline CalculateRouteMatrixRequest& AddDestinationPositions(const Aws::Vector& value) { m_destinationPositionsHasBeenSet = true; m_destinationPositions.push_back(value); return *this; } /** *

The list of destination positions for the route matrix. An array of points, * each of which is itself a 2-value array defined in WGS 84 format: * [longitude, latitude]. For example, [-122.339, 47.615] *

Depending on the data provider selected in the route * calculator resource there may be additional restrictions on the inputs you can * choose. See * Position restrictions in the Amazon Location Service Developer * Guide.

For route calculators that use Esri as the * data provider, if you specify a destination that's not located on a road, Amazon * Location * moves the position to the nearest road. The snapped value is available in * the result in SnappedDestinationPositions.

Valid * Values: [-180 to 180,-90 to 90]

*/ inline CalculateRouteMatrixRequest& AddDestinationPositions(Aws::Vector&& value) { m_destinationPositionsHasBeenSet = true; m_destinationPositions.push_back(std::move(value)); return *this; } /** *

Set the unit system to specify the distance.

Default Value: * Kilometers

*/ inline const DistanceUnit& GetDistanceUnit() const{ return m_distanceUnit; } /** *

Set the unit system to specify the distance.

Default Value: * Kilometers

*/ inline bool DistanceUnitHasBeenSet() const { return m_distanceUnitHasBeenSet; } /** *

Set the unit system to specify the distance.

Default Value: * Kilometers

*/ inline void SetDistanceUnit(const DistanceUnit& value) { m_distanceUnitHasBeenSet = true; m_distanceUnit = value; } /** *

Set the unit system to specify the distance.

Default Value: * Kilometers

*/ inline void SetDistanceUnit(DistanceUnit&& value) { m_distanceUnitHasBeenSet = true; m_distanceUnit = std::move(value); } /** *

Set the unit system to specify the distance.

Default Value: * Kilometers

*/ inline CalculateRouteMatrixRequest& WithDistanceUnit(const DistanceUnit& value) { SetDistanceUnit(value); return *this;} /** *

Set the unit system to specify the distance.

Default Value: * Kilometers

*/ inline CalculateRouteMatrixRequest& WithDistanceUnit(DistanceUnit&& value) { SetDistanceUnit(std::move(value)); return *this;} /** *

The optional API * key to authorize the request.

*/ inline const Aws::String& GetKey() const{ return m_key; } /** *

The optional API * key to authorize the request.

*/ inline bool KeyHasBeenSet() const { return m_keyHasBeenSet; } /** *

The optional API * key to authorize the request.

*/ inline void SetKey(const Aws::String& value) { m_keyHasBeenSet = true; m_key = value; } /** *

The optional API * key to authorize the request.

*/ inline void SetKey(Aws::String&& value) { m_keyHasBeenSet = true; m_key = std::move(value); } /** *

The optional API * key to authorize the request.

*/ inline void SetKey(const char* value) { m_keyHasBeenSet = true; m_key.assign(value); } /** *

The optional API * key to authorize the request.

*/ inline CalculateRouteMatrixRequest& WithKey(const Aws::String& value) { SetKey(value); return *this;} /** *

The optional API * key to authorize the request.

*/ inline CalculateRouteMatrixRequest& WithKey(Aws::String&& value) { SetKey(std::move(value)); return *this;} /** *

The optional API * key to authorize the request.

*/ inline CalculateRouteMatrixRequest& WithKey(const char* value) { SetKey(value); return *this;} /** *

Specifies the mode of transport when calculating a route. Used in estimating * the speed of travel and road compatibility.

The TravelMode * you specify also determines how you specify route preferences:

  • *

    If traveling by Car use the CarModeOptions * parameter.

  • If traveling by Truck use the * TruckModeOptions parameter.

* Bicycle or Motorcycle are only valid when using * Grab as a data provider, and only within Southeast Asia.

* Truck is not available for Grab.

For more information about * using Grab as a data provider, see GrabMaps * in the Amazon Location Service Developer Guide.

Default * Value: Car

*/ inline const TravelMode& GetTravelMode() const{ return m_travelMode; } /** *

Specifies the mode of transport when calculating a route. Used in estimating * the speed of travel and road compatibility.

The TravelMode * you specify also determines how you specify route preferences:

  • *

    If traveling by Car use the CarModeOptions * parameter.

  • If traveling by Truck use the * TruckModeOptions parameter.

* Bicycle or Motorcycle are only valid when using * Grab as a data provider, and only within Southeast Asia.

* Truck is not available for Grab.

For more information about * using Grab as a data provider, see GrabMaps * in the Amazon Location Service Developer Guide.

Default * Value: Car

*/ inline bool TravelModeHasBeenSet() const { return m_travelModeHasBeenSet; } /** *

Specifies the mode of transport when calculating a route. Used in estimating * the speed of travel and road compatibility.

The TravelMode * you specify also determines how you specify route preferences:

  • *

    If traveling by Car use the CarModeOptions * parameter.

  • If traveling by Truck use the * TruckModeOptions parameter.

* Bicycle or Motorcycle are only valid when using * Grab as a data provider, and only within Southeast Asia.

* Truck is not available for Grab.

For more information about * using Grab as a data provider, see GrabMaps * in the Amazon Location Service Developer Guide.

Default * Value: Car

*/ inline void SetTravelMode(const TravelMode& value) { m_travelModeHasBeenSet = true; m_travelMode = value; } /** *

Specifies the mode of transport when calculating a route. Used in estimating * the speed of travel and road compatibility.

The TravelMode * you specify also determines how you specify route preferences:

  • *

    If traveling by Car use the CarModeOptions * parameter.

  • If traveling by Truck use the * TruckModeOptions parameter.

* Bicycle or Motorcycle are only valid when using * Grab as a data provider, and only within Southeast Asia.

* Truck is not available for Grab.

For more information about * using Grab as a data provider, see GrabMaps * in the Amazon Location Service Developer Guide.

Default * Value: Car

*/ inline void SetTravelMode(TravelMode&& value) { m_travelModeHasBeenSet = true; m_travelMode = std::move(value); } /** *

Specifies the mode of transport when calculating a route. Used in estimating * the speed of travel and road compatibility.

The TravelMode * you specify also determines how you specify route preferences:

  • *

    If traveling by Car use the CarModeOptions * parameter.

  • If traveling by Truck use the * TruckModeOptions parameter.

* Bicycle or Motorcycle are only valid when using * Grab as a data provider, and only within Southeast Asia.

* Truck is not available for Grab.

For more information about * using Grab as a data provider, see GrabMaps * in the Amazon Location Service Developer Guide.

Default * Value: Car

*/ inline CalculateRouteMatrixRequest& WithTravelMode(const TravelMode& value) { SetTravelMode(value); return *this;} /** *

Specifies the mode of transport when calculating a route. Used in estimating * the speed of travel and road compatibility.

The TravelMode * you specify also determines how you specify route preferences:

  • *

    If traveling by Car use the CarModeOptions * parameter.

  • If traveling by Truck use the * TruckModeOptions parameter.

* Bicycle or Motorcycle are only valid when using * Grab as a data provider, and only within Southeast Asia.

* Truck is not available for Grab.

For more information about * using Grab as a data provider, see GrabMaps * in the Amazon Location Service Developer Guide.

Default * Value: Car

*/ inline CalculateRouteMatrixRequest& WithTravelMode(TravelMode&& value) { SetTravelMode(std::move(value)); return *this;} /** *

Specifies route preferences when traveling by Truck, such as * avoiding routes that use ferries or tolls, and truck specifications to consider * when choosing an optimal road.

Requirements: TravelMode must * be specified as Truck.

*/ inline const CalculateRouteTruckModeOptions& GetTruckModeOptions() const{ return m_truckModeOptions; } /** *

Specifies route preferences when traveling by Truck, such as * avoiding routes that use ferries or tolls, and truck specifications to consider * when choosing an optimal road.

Requirements: TravelMode must * be specified as Truck.

*/ inline bool TruckModeOptionsHasBeenSet() const { return m_truckModeOptionsHasBeenSet; } /** *

Specifies route preferences when traveling by Truck, such as * avoiding routes that use ferries or tolls, and truck specifications to consider * when choosing an optimal road.

Requirements: TravelMode must * be specified as Truck.

*/ inline void SetTruckModeOptions(const CalculateRouteTruckModeOptions& value) { m_truckModeOptionsHasBeenSet = true; m_truckModeOptions = value; } /** *

Specifies route preferences when traveling by Truck, such as * avoiding routes that use ferries or tolls, and truck specifications to consider * when choosing an optimal road.

Requirements: TravelMode must * be specified as Truck.

*/ inline void SetTruckModeOptions(CalculateRouteTruckModeOptions&& value) { m_truckModeOptionsHasBeenSet = true; m_truckModeOptions = std::move(value); } /** *

Specifies route preferences when traveling by Truck, such as * avoiding routes that use ferries or tolls, and truck specifications to consider * when choosing an optimal road.

Requirements: TravelMode must * be specified as Truck.

*/ inline CalculateRouteMatrixRequest& WithTruckModeOptions(const CalculateRouteTruckModeOptions& value) { SetTruckModeOptions(value); return *this;} /** *

Specifies route preferences when traveling by Truck, such as * avoiding routes that use ferries or tolls, and truck specifications to consider * when choosing an optimal road.

Requirements: TravelMode must * be specified as Truck.

*/ inline CalculateRouteMatrixRequest& WithTruckModeOptions(CalculateRouteTruckModeOptions&& value) { SetTruckModeOptions(std::move(value)); return *this;} private: Aws::String m_calculatorName; bool m_calculatorNameHasBeenSet = false; CalculateRouteCarModeOptions m_carModeOptions; bool m_carModeOptionsHasBeenSet = false; bool m_departNow; bool m_departNowHasBeenSet = false; Aws::Vector> m_departurePositions; bool m_departurePositionsHasBeenSet = false; Aws::Utils::DateTime m_departureTime; bool m_departureTimeHasBeenSet = false; Aws::Vector> m_destinationPositions; bool m_destinationPositionsHasBeenSet = false; DistanceUnit m_distanceUnit; bool m_distanceUnitHasBeenSet = false; Aws::String m_key; bool m_keyHasBeenSet = false; TravelMode m_travelMode; bool m_travelModeHasBeenSet = false; CalculateRouteTruckModeOptions m_truckModeOptions; bool m_truckModeOptionsHasBeenSet = false; }; } // namespace Model } // namespace LocationService } // namespace Aws