/* * Copyright 2010-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. */ package com.amazonaws.services.geo.model; import java.io.Serializable; import com.amazonaws.AmazonWebServiceRequest; /** *

* Calculates a route given the following required parameters: * DeparturePosition and DestinationPosition. Requires * that you first create a route calculator resource. *

*

* By default, a request that doesn't specify a departure time uses the best * time of day to travel with the best traffic conditions when calculating the * route. *

*

* Additional options include: *

* */ public class CalculateRouteRequest extends AmazonWebServiceRequest implements Serializable { /** *

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

*

* Constraints:
* Length: 1 - 100
* Pattern: ^[-._\w]+$
*/ private String calculatorName; /** *

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

*

* Requirements: TravelMode must be specified as * Car. *

*/ private CalculateRouteCarModeOptions carModeOptions; /** *

* Sets the time of departure as the current time. Uses the current time to * calculate a route. Otherwise, the best time of day to travel with the * best traffic conditions is used to calculate the route. *

*

* Default Value: false *

*

* Valid Values: false | true *

*/ private Boolean departNow; /** *

* The start position for the route. Defined in World Geodetic System (WGS 84) format: * [longitude, latitude]. *

* * *

* If you specify a departure that's not located on a road, Amazon Location * moves the position to the nearest road. If Esri is the provider for * your route calculator, specifying a route that is longer than 400 km * returns a 400 RoutesValidationException error. *

*
*

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

*/ private java.util.List departurePosition; /** *

* Specifies the desired time of departure. Uses the given time to calculate * the route. Otherwise, the best time of day to travel with the best * traffic conditions is used to calculate the route. *

* *

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

*
* */ private java.util.Date departureTime; /** *

* The finish position for the route. Defined in World Geodetic System (WGS 84) format: * [longitude, latitude]. *

* * *

* If you specify a destination that's not located on a road, Amazon * Location moves the position to the nearest road. *

*
*

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

*/ private java.util.List destinationPosition; /** *

* Set the unit system to specify the distance. *

*

* Default Value: Kilometers *

*

* Constraints:
* Allowed Values: Kilometers, Miles */ private String distanceUnit; /** *

* Set to include the geometry details in the result for each path between a * pair of positions. *

*

* Default Value: false *

*

* Valid Values: false | true *

*/ private Boolean includeLegGeometry; /** *

* Specifies the mode of transport when calculating a route. Used in * estimating the speed of travel and road compatibility. You can choose * Car, Truck, Walking, * Bicycle or Motorcycle as options for the * TravelMode. *

* *

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

*

* Truck is not available for Grab. *

*

* For more details on the using Grab for routing, including areas of * coverage, see GrabMaps in the Amazon Location Service Developer Guide. *

*
*

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

* *

* Default Value: Car *

*

* Constraints:
* Allowed Values: Car, Truck, Walking, Bicycle, Motorcycle */ private String travelMode; /** *

* 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. *

*/ private CalculateRouteTruckModeOptions truckModeOptions; /** *

* Specifies an ordered list of up to 23 intermediate positions to include * along a route between the departure position and destination position. *

* * *

* If you specify a waypoint position that's not located on a road, Amazon * Location moves the position to the nearest road. *

*

* Specifying more than 23 waypoints returns a * 400 ValidationException error. *

*

* If Esri is the provider for your route calculator, specifying a route * that is longer than 400 km returns a * 400 RoutesValidationException error. *

*
*

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

*/ private java.util.List> waypointPositions; /** *

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

*

* Constraints:
* Length: 1 - 100
* Pattern: ^[-._\w]+$
* * @return

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

*/ public String getCalculatorName() { return calculatorName; } /** *

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

*

* Constraints:
* Length: 1 - 100
* Pattern: ^[-._\w]+$
* * @param calculatorName

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

*/ public void setCalculatorName(String calculatorName) { this.calculatorName = calculatorName; } /** *

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

*

* Returns a reference to this object so that method calls can be chained * together. *

* Constraints:
* Length: 1 - 100
* Pattern: ^[-._\w]+$
* * @param calculatorName

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

* @return A reference to this updated object so that method calls can be * chained together. */ public CalculateRouteRequest withCalculatorName(String calculatorName) { this.calculatorName = calculatorName; 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. *

* * @return

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

*

* Requirements: TravelMode must be specified as * Car. *

*/ public CalculateRouteCarModeOptions getCarModeOptions() { return carModeOptions; } /** *

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

*

* Requirements: TravelMode must be specified as * Car. *

* * @param carModeOptions

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

*

* Requirements: TravelMode must be specified as * Car. *

*/ public void setCarModeOptions(CalculateRouteCarModeOptions carModeOptions) { this.carModeOptions = carModeOptions; } /** *

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

*

* Requirements: TravelMode must be specified as * Car. *

*

* Returns a reference to this object so that method calls can be chained * together. * * @param carModeOptions

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

*

* Requirements: TravelMode must be specified as * Car. *

* @return A reference to this updated object so that method calls can be * chained together. */ public CalculateRouteRequest withCarModeOptions(CalculateRouteCarModeOptions carModeOptions) { this.carModeOptions = carModeOptions; return this; } /** *

* Sets the time of departure as the current time. Uses the current time to * calculate a route. Otherwise, the best time of day to travel with the * best traffic conditions is used to calculate the route. *

*

* Default Value: false *

*

* Valid Values: false | true *

* * @return

* Sets the time of departure as the current time. Uses the current * time to calculate a route. Otherwise, the best time of day to * travel with the best traffic conditions is used to calculate the * route. *

*

* Default Value: false *

*

* Valid Values: false | true *

*/ public Boolean isDepartNow() { return departNow; } /** *

* Sets the time of departure as the current time. Uses the current time to * calculate a route. Otherwise, the best time of day to travel with the * best traffic conditions is used to calculate the route. *

*

* Default Value: false *

*

* Valid Values: false | true *

* * @return

* Sets the time of departure as the current time. Uses the current * time to calculate a route. Otherwise, the best time of day to * travel with the best traffic conditions is used to calculate the * route. *

*

* Default Value: false *

*

* Valid Values: false | true *

*/ public Boolean getDepartNow() { return departNow; } /** *

* Sets the time of departure as the current time. Uses the current time to * calculate a route. Otherwise, the best time of day to travel with the * best traffic conditions is used to calculate the route. *

*

* Default Value: false *

*

* Valid Values: false | true *

* * @param departNow

* Sets the time of departure as the current time. Uses the * current time to calculate a route. Otherwise, the best time of * day to travel with the best traffic conditions is used to * calculate the route. *

*

* Default Value: false *

*

* Valid Values: false | true *

*/ public void setDepartNow(Boolean departNow) { this.departNow = departNow; } /** *

* Sets the time of departure as the current time. Uses the current time to * calculate a route. Otherwise, the best time of day to travel with the * best traffic conditions is used to calculate the route. *

*

* Default Value: false *

*

* Valid Values: false | true *

*

* Returns a reference to this object so that method calls can be chained * together. * * @param departNow

* Sets the time of departure as the current time. Uses the * current time to calculate a route. Otherwise, the best time of * day to travel with the best traffic conditions is used to * calculate the route. *

*

* Default Value: false *

*

* Valid Values: false | true *

* @return A reference to this updated object so that method calls can be * chained together. */ public CalculateRouteRequest withDepartNow(Boolean departNow) { this.departNow = departNow; return this; } /** *

* The start position for the route. Defined in World Geodetic System (WGS 84) format: * [longitude, latitude]. *

*
    *
  • *

    * For example, [-123.115, 49.285] *

    *
  • *
* *

* If you specify a departure that's not located on a road, Amazon Location * moves the position to the nearest road. If Esri is the provider for * your route calculator, specifying a route that is longer than 400 km * returns a 400 RoutesValidationException error. *

*
*

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

* * @return

* The start position for the route. Defined in World Geodetic System (WGS 84) format: * [longitude, latitude]. *

*
    *
  • *

    * For example, [-123.115, 49.285] *

    *
  • *
* *

* If you specify a departure that's not located on a road, Amazon * Location moves the position to the nearest road. If Esri is the * provider for your route calculator, specifying a route that is * longer than 400 km returns a * 400 RoutesValidationException error. *

*
*

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

*/ public java.util.List getDeparturePosition() { return departurePosition; } /** *

* The start position for the route. Defined in World Geodetic System (WGS 84) format: * [longitude, latitude]. *

*
    *
  • *

    * For example, [-123.115, 49.285] *

    *
  • *
* *

* If you specify a departure that's not located on a road, Amazon Location * moves the position to the nearest road. If Esri is the provider for * your route calculator, specifying a route that is longer than 400 km * returns a 400 RoutesValidationException error. *

*
*

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

* * @param departurePosition

* The start position for the route. Defined in World Geodetic System (WGS 84) format: * [longitude, latitude]. *

*
    *
  • *

    * For example, [-123.115, 49.285] *

    *
  • *
* *

* If you specify a departure that's not located on a road, * Amazon Location moves the position to the nearest road. If Esri is the * provider for your route calculator, specifying a route that is * longer than 400 km returns a * 400 RoutesValidationException error. *

*
*

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

*/ public void setDeparturePosition(java.util.Collection departurePosition) { if (departurePosition == null) { this.departurePosition = null; return; } this.departurePosition = new java.util.ArrayList(departurePosition); } /** *

* The start position for the route. Defined in World Geodetic System (WGS 84) format: * [longitude, latitude]. *

*
    *
  • *

    * For example, [-123.115, 49.285] *

    *
  • *
* *

* If you specify a departure that's not located on a road, Amazon Location * moves the position to the nearest road. If Esri is the provider for * your route calculator, specifying a route that is longer than 400 km * returns a 400 RoutesValidationException error. *

*
*

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

*

* Returns a reference to this object so that method calls can be chained * together. * * @param departurePosition

* The start position for the route. Defined in World Geodetic System (WGS 84) format: * [longitude, latitude]. *

*
    *
  • *

    * For example, [-123.115, 49.285] *

    *
  • *
* *

* If you specify a departure that's not located on a road, * Amazon Location moves the position to the nearest road. If Esri is the * provider for your route calculator, specifying a route that is * longer than 400 km returns a * 400 RoutesValidationException error. *

*
*

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

* @return A reference to this updated object so that method calls can be * chained together. */ public CalculateRouteRequest withDeparturePosition(Double... departurePosition) { if (getDeparturePosition() == null) { this.departurePosition = new java.util.ArrayList(departurePosition.length); } for (Double value : departurePosition) { this.departurePosition.add(value); } return this; } /** *

* The start position for the route. Defined in World Geodetic System (WGS 84) format: * [longitude, latitude]. *

*
    *
  • *

    * For example, [-123.115, 49.285] *

    *
  • *
* *

* If you specify a departure that's not located on a road, Amazon Location * moves the position to the nearest road. If Esri is the provider for * your route calculator, specifying a route that is longer than 400 km * returns a 400 RoutesValidationException error. *

*
*

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

*

* Returns a reference to this object so that method calls can be chained * together. * * @param departurePosition

* The start position for the route. Defined in World Geodetic System (WGS 84) format: * [longitude, latitude]. *

*
    *
  • *

    * For example, [-123.115, 49.285] *

    *
  • *
* *

* If you specify a departure that's not located on a road, * Amazon Location moves the position to the nearest road. If Esri is the * provider for your route calculator, specifying a route that is * longer than 400 km returns a * 400 RoutesValidationException error. *

*
*

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

* @return A reference to this updated object so that method calls can be * chained together. */ public CalculateRouteRequest withDeparturePosition( java.util.Collection departurePosition) { setDeparturePosition(departurePosition); return this; } /** *

* Specifies the desired time of departure. Uses the given time to calculate * the route. Otherwise, the best time of day to travel with the best * traffic conditions is used to calculate the route. *

* *

* 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 *

    *
  • *
* * @return

* Specifies the desired time of departure. Uses the given time to * calculate the route. Otherwise, the best time of day to travel * with the best traffic conditions is used to calculate the route. *

* *

* 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 *

    *
  • *
*/ public java.util.Date getDepartureTime() { return departureTime; } /** *

* Specifies the desired time of departure. Uses the given time to calculate * the route. Otherwise, the best time of day to travel with the best * traffic conditions is used to calculate the route. *

* *

* 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 *

    *
  • *
* * @param departureTime

* Specifies the desired time of departure. Uses the given time * to calculate the route. Otherwise, the best time of day to * travel with the best traffic conditions is used to calculate * the route. *

* *

* 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 *

    *
  • *
*/ public void setDepartureTime(java.util.Date departureTime) { this.departureTime = departureTime; } /** *

* Specifies the desired time of departure. Uses the given time to calculate * the route. Otherwise, the best time of day to travel with the best * traffic conditions is used to calculate the route. *

* *

* 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 *

    *
  • *
*

* Returns a reference to this object so that method calls can be chained * together. * * @param departureTime

* Specifies the desired time of departure. Uses the given time * to calculate the route. Otherwise, the best time of day to * travel with the best traffic conditions is used to calculate * the route. *

* *

* 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 *

    *
  • *
* @return A reference to this updated object so that method calls can be * chained together. */ public CalculateRouteRequest withDepartureTime(java.util.Date departureTime) { this.departureTime = departureTime; return this; } /** *

* The finish position for the route. Defined in World Geodetic System (WGS 84) format: * [longitude, latitude]. *

*
    *
  • *

    * For example, [-122.339, 47.615] *

    *
  • *
* *

* If you specify a destination that's not located on a road, Amazon * Location moves the position to the nearest road. *

*
*

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

* * @return

* The finish position for the route. Defined in World Geodetic System (WGS 84) format: * [longitude, latitude]. *

*
    *
  • *

    * For example, [-122.339, 47.615] *

    *
  • *
* *

* If you specify a destination that's not located on a road, Amazon * Location moves the position to the nearest road. *

*
*

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

*/ public java.util.List getDestinationPosition() { return destinationPosition; } /** *

* The finish position for the route. Defined in World Geodetic System (WGS 84) format: * [longitude, latitude]. *

*
    *
  • *

    * For example, [-122.339, 47.615] *

    *
  • *
* *

* If you specify a destination that's not located on a road, Amazon * Location moves the position to the nearest road. *

*
*

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

* * @param destinationPosition

* The finish position for the route. Defined in World Geodetic System (WGS 84) format: * [longitude, latitude]. *

*
    *
  • *

    * For example, [-122.339, 47.615] *

    *
  • *
* *

* If you specify a destination that's not located on a road, * Amazon Location moves the position to the nearest road. *

*
*

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

*/ public void setDestinationPosition(java.util.Collection destinationPosition) { if (destinationPosition == null) { this.destinationPosition = null; return; } this.destinationPosition = new java.util.ArrayList(destinationPosition); } /** *

* The finish position for the route. Defined in World Geodetic System (WGS 84) format: * [longitude, latitude]. *

*
    *
  • *

    * For example, [-122.339, 47.615] *

    *
  • *
* *

* If you specify a destination that's not located on a road, Amazon * Location moves the position to the nearest road. *

*
*

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

*

* Returns a reference to this object so that method calls can be chained * together. * * @param destinationPosition

* The finish position for the route. Defined in World Geodetic System (WGS 84) format: * [longitude, latitude]. *

*
    *
  • *

    * For example, [-122.339, 47.615] *

    *
  • *
* *

* If you specify a destination that's not located on a road, * Amazon Location moves the position to the nearest road. *

*
*

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

* @return A reference to this updated object so that method calls can be * chained together. */ public CalculateRouteRequest withDestinationPosition(Double... destinationPosition) { if (getDestinationPosition() == null) { this.destinationPosition = new java.util.ArrayList(destinationPosition.length); } for (Double value : destinationPosition) { this.destinationPosition.add(value); } return this; } /** *

* The finish position for the route. Defined in World Geodetic System (WGS 84) format: * [longitude, latitude]. *

*
    *
  • *

    * For example, [-122.339, 47.615] *

    *
  • *
* *

* If you specify a destination that's not located on a road, Amazon * Location moves the position to the nearest road. *

*
*

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

*

* Returns a reference to this object so that method calls can be chained * together. * * @param destinationPosition

* The finish position for the route. Defined in World Geodetic System (WGS 84) format: * [longitude, latitude]. *

*
    *
  • *

    * For example, [-122.339, 47.615] *

    *
  • *
* *

* If you specify a destination that's not located on a road, * Amazon Location moves the position to the nearest road. *

*
*

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

* @return A reference to this updated object so that method calls can be * chained together. */ public CalculateRouteRequest withDestinationPosition( java.util.Collection destinationPosition) { setDestinationPosition(destinationPosition); return this; } /** *

* Set the unit system to specify the distance. *

*

* Default Value: Kilometers *

*

* Constraints:
* Allowed Values: Kilometers, Miles * * @return

* Set the unit system to specify the distance. *

*

* Default Value: Kilometers *

* @see DistanceUnit */ public String getDistanceUnit() { return distanceUnit; } /** *

* Set the unit system to specify the distance. *

*

* Default Value: Kilometers *

*

* Constraints:
* Allowed Values: Kilometers, Miles * * @param distanceUnit

* Set the unit system to specify the distance. *

*

* Default Value: Kilometers *

* @see DistanceUnit */ public void setDistanceUnit(String distanceUnit) { this.distanceUnit = distanceUnit; } /** *

* Set the unit system to specify the distance. *

*

* Default Value: Kilometers *

*

* Returns a reference to this object so that method calls can be chained * together. *

* Constraints:
* Allowed Values: Kilometers, Miles * * @param distanceUnit

* Set the unit system to specify the distance. *

*

* Default Value: Kilometers *

* @return A reference to this updated object so that method calls can be * chained together. * @see DistanceUnit */ public CalculateRouteRequest withDistanceUnit(String distanceUnit) { this.distanceUnit = distanceUnit; return this; } /** *

* Set the unit system to specify the distance. *

*

* Default Value: Kilometers *

*

* Constraints:
* Allowed Values: Kilometers, Miles * * @param distanceUnit

* Set the unit system to specify the distance. *

*

* Default Value: Kilometers *

* @see DistanceUnit */ public void setDistanceUnit(DistanceUnit distanceUnit) { this.distanceUnit = distanceUnit.toString(); } /** *

* Set the unit system to specify the distance. *

*

* Default Value: Kilometers *

*

* Returns a reference to this object so that method calls can be chained * together. *

* Constraints:
* Allowed Values: Kilometers, Miles * * @param distanceUnit

* Set the unit system to specify the distance. *

*

* Default Value: Kilometers *

* @return A reference to this updated object so that method calls can be * chained together. * @see DistanceUnit */ public CalculateRouteRequest withDistanceUnit(DistanceUnit distanceUnit) { this.distanceUnit = distanceUnit.toString(); return this; } /** *

* Set to include the geometry details in the result for each path between a * pair of positions. *

*

* Default Value: false *

*

* Valid Values: false | true *

* * @return

* Set to include the geometry details in the result for each path * between a pair of positions. *

*

* Default Value: false *

*

* Valid Values: false | true *

*/ public Boolean isIncludeLegGeometry() { return includeLegGeometry; } /** *

* Set to include the geometry details in the result for each path between a * pair of positions. *

*

* Default Value: false *

*

* Valid Values: false | true *

* * @return

* Set to include the geometry details in the result for each path * between a pair of positions. *

*

* Default Value: false *

*

* Valid Values: false | true *

*/ public Boolean getIncludeLegGeometry() { return includeLegGeometry; } /** *

* Set to include the geometry details in the result for each path between a * pair of positions. *

*

* Default Value: false *

*

* Valid Values: false | true *

* * @param includeLegGeometry

* Set to include the geometry details in the result for each * path between a pair of positions. *

*

* Default Value: false *

*

* Valid Values: false | true *

*/ public void setIncludeLegGeometry(Boolean includeLegGeometry) { this.includeLegGeometry = includeLegGeometry; } /** *

* Set to include the geometry details in the result for each path between a * pair of positions. *

*

* Default Value: false *

*

* Valid Values: false | true *

*

* Returns a reference to this object so that method calls can be chained * together. * * @param includeLegGeometry

* Set to include the geometry details in the result for each * path between a pair of positions. *

*

* Default Value: false *

*

* Valid Values: false | true *

* @return A reference to this updated object so that method calls can be * chained together. */ public CalculateRouteRequest withIncludeLegGeometry(Boolean includeLegGeometry) { this.includeLegGeometry = includeLegGeometry; return this; } /** *

* Specifies the mode of transport when calculating a route. Used in * estimating the speed of travel and road compatibility. You can choose * Car, Truck, Walking, * Bicycle or Motorcycle as options for the * TravelMode. *

* *

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

*

* Truck is not available for Grab. *

*

* For more details on the using Grab for routing, including areas of * coverage, see GrabMaps in the Amazon Location Service Developer Guide. *

*
*

* 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. *

    *
  • *
*

* Default Value: Car *

*

* Constraints:
* Allowed Values: Car, Truck, Walking, Bicycle, Motorcycle * * @return

* Specifies the mode of transport when calculating a route. Used in * estimating the speed of travel and road compatibility. You can * choose Car, Truck, Walking, Bicycle or Motorcycle as options for * the TravelMode. *

* *

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

*

* Truck is not available for Grab. *

*

* For more details on the using Grab for routing, including areas * of coverage, see GrabMaps in the Amazon Location Service Developer * Guide. *

*
*

* 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. *

    *
  • *
*

* Default Value: Car *

* @see TravelMode */ public String getTravelMode() { return travelMode; } /** *

* Specifies the mode of transport when calculating a route. Used in * estimating the speed of travel and road compatibility. You can choose * Car, Truck, Walking, * Bicycle or Motorcycle as options for the * TravelMode. *

* *

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

*

* Truck is not available for Grab. *

*

* For more details on the using Grab for routing, including areas of * coverage, see GrabMaps in the Amazon Location Service Developer Guide. *

*
*

* 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. *

    *
  • *
*

* Default Value: Car *

*

* Constraints:
* Allowed Values: Car, Truck, Walking, Bicycle, Motorcycle * * @param travelMode

* Specifies the mode of transport when calculating a route. Used * in estimating the speed of travel and road compatibility. You * can choose Car, Truck, * Walking, Bicycle or * Motorcycle as options for the * TravelMode. *

* *

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

*

* Truck is not available for Grab. *

*

* For more details on the using Grab for routing, including * areas of coverage, see GrabMaps in the Amazon Location Service Developer * Guide. *

*
*

* 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. *

    *
  • *
*

* Default Value: Car *

* @see TravelMode */ public void setTravelMode(String travelMode) { this.travelMode = travelMode; } /** *

* Specifies the mode of transport when calculating a route. Used in * estimating the speed of travel and road compatibility. You can choose * Car, Truck, Walking, * Bicycle or Motorcycle as options for the * TravelMode. *

* *

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

*

* Truck is not available for Grab. *

*

* For more details on the using Grab for routing, including areas of * coverage, see GrabMaps in the Amazon Location Service Developer Guide. *

*
*

* 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. *

    *
  • *
*

* Default Value: Car *

*

* Returns a reference to this object so that method calls can be chained * together. *

* Constraints:
* Allowed Values: Car, Truck, Walking, Bicycle, Motorcycle * * @param travelMode

* Specifies the mode of transport when calculating a route. Used * in estimating the speed of travel and road compatibility. You * can choose Car, Truck, * Walking, Bicycle or * Motorcycle as options for the * TravelMode. *

* *

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

*

* Truck is not available for Grab. *

*

* For more details on the using Grab for routing, including * areas of coverage, see GrabMaps in the Amazon Location Service Developer * Guide. *

*
*

* 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. *

    *
  • *
*

* Default Value: Car *

* @return A reference to this updated object so that method calls can be * chained together. * @see TravelMode */ public CalculateRouteRequest withTravelMode(String travelMode) { this.travelMode = travelMode; return this; } /** *

* Specifies the mode of transport when calculating a route. Used in * estimating the speed of travel and road compatibility. You can choose * Car, Truck, Walking, * Bicycle or Motorcycle as options for the * TravelMode. *

* *

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

*

* Truck is not available for Grab. *

*

* For more details on the using Grab for routing, including areas of * coverage, see GrabMaps in the Amazon Location Service Developer Guide. *

*
*

* 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. *

    *
  • *
*

* Default Value: Car *

*

* Constraints:
* Allowed Values: Car, Truck, Walking, Bicycle, Motorcycle * * @param travelMode

* Specifies the mode of transport when calculating a route. Used * in estimating the speed of travel and road compatibility. You * can choose Car, Truck, * Walking, Bicycle or * Motorcycle as options for the * TravelMode. *

* *

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

*

* Truck is not available for Grab. *

*

* For more details on the using Grab for routing, including * areas of coverage, see GrabMaps in the Amazon Location Service Developer * Guide. *

*
*

* 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. *

    *
  • *
*

* Default Value: Car *

* @see TravelMode */ public void setTravelMode(TravelMode travelMode) { this.travelMode = travelMode.toString(); } /** *

* Specifies the mode of transport when calculating a route. Used in * estimating the speed of travel and road compatibility. You can choose * Car, Truck, Walking, * Bicycle or Motorcycle as options for the * TravelMode. *

* *

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

*

* Truck is not available for Grab. *

*

* For more details on the using Grab for routing, including areas of * coverage, see GrabMaps in the Amazon Location Service Developer Guide. *

*
*

* 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. *

    *
  • *
*

* Default Value: Car *

*

* Returns a reference to this object so that method calls can be chained * together. *

* Constraints:
* Allowed Values: Car, Truck, Walking, Bicycle, Motorcycle * * @param travelMode

* Specifies the mode of transport when calculating a route. Used * in estimating the speed of travel and road compatibility. You * can choose Car, Truck, * Walking, Bicycle or * Motorcycle as options for the * TravelMode. *

* *

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

*

* Truck is not available for Grab. *

*

* For more details on the using Grab for routing, including * areas of coverage, see GrabMaps in the Amazon Location Service Developer * Guide. *

*
*

* 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. *

    *
  • *
*

* Default Value: Car *

* @return A reference to this updated object so that method calls can be * chained together. * @see TravelMode */ public CalculateRouteRequest withTravelMode(TravelMode travelMode) { this.travelMode = travelMode.toString(); 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. *

* * @return

* 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. *

*/ public CalculateRouteTruckModeOptions getTruckModeOptions() { return 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. *

* * @param 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. *

*/ public void setTruckModeOptions(CalculateRouteTruckModeOptions truckModeOptions) { this.truckModeOptions = 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. *

*

* Returns a reference to this object so that method calls can be chained * together. * * @param 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. *

* @return A reference to this updated object so that method calls can be * chained together. */ public CalculateRouteRequest withTruckModeOptions( CalculateRouteTruckModeOptions truckModeOptions) { this.truckModeOptions = truckModeOptions; return this; } /** *

* Specifies an ordered list of up to 23 intermediate positions to include * along a route between the departure position and destination position. *

*
    *
  • *

    * For example, from the DeparturePosition * [-123.115, 49.285], the route follows the order that the * waypoint positions are given * [[-122.757, 49.0021],[-122.349, 47.620]] *

    *
  • *
* *

* If you specify a waypoint position that's not located on a road, Amazon * Location moves the position to the nearest road. *

*

* Specifying more than 23 waypoints returns a * 400 ValidationException error. *

*

* If Esri is the provider for your route calculator, specifying a route * that is longer than 400 km returns a * 400 RoutesValidationException error. *

*
*

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

* * @return

* Specifies an ordered list of up to 23 intermediate positions to * include along a route between the departure position and * destination position. *

*
    *
  • *

    * For example, from the DeparturePosition * [-123.115, 49.285], the route follows the order that * the waypoint positions are given * [[-122.757, 49.0021],[-122.349, 47.620]] *

    *
  • *
* *

* If you specify a waypoint position that's not located on a road, * Amazon Location moves the position to the nearest road. *

*

* Specifying more than 23 waypoints returns a * 400 ValidationException error. *

*

* If Esri is the provider for your route calculator, specifying a * route that is longer than 400 km returns a * 400 RoutesValidationException error. *

*
*

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

*/ public java.util.List> getWaypointPositions() { return waypointPositions; } /** *

* Specifies an ordered list of up to 23 intermediate positions to include * along a route between the departure position and destination position. *

*
    *
  • *

    * For example, from the DeparturePosition * [-123.115, 49.285], the route follows the order that the * waypoint positions are given * [[-122.757, 49.0021],[-122.349, 47.620]] *

    *
  • *
* *

* If you specify a waypoint position that's not located on a road, Amazon * Location moves the position to the nearest road. *

*

* Specifying more than 23 waypoints returns a * 400 ValidationException error. *

*

* If Esri is the provider for your route calculator, specifying a route * that is longer than 400 km returns a * 400 RoutesValidationException error. *

*
*

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

* * @param waypointPositions

* Specifies an ordered list of up to 23 intermediate positions * to include along a route between the departure position and * destination position. *

*
    *
  • *

    * For example, from the DeparturePosition * [-123.115, 49.285], the route follows the order * that the waypoint positions are given * [[-122.757, 49.0021],[-122.349, 47.620]] *

    *
  • *
* *

* If you specify a waypoint position that's not located on a * road, Amazon Location moves the position to the nearest road. *

*

* Specifying more than 23 waypoints returns a * 400 ValidationException error. *

*

* If Esri is the provider for your route calculator, specifying * a route that is longer than 400 km returns a * 400 RoutesValidationException error. *

*
*

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

*/ public void setWaypointPositions(java.util.Collection> waypointPositions) { if (waypointPositions == null) { this.waypointPositions = null; return; } this.waypointPositions = new java.util.ArrayList>(waypointPositions); } /** *

* Specifies an ordered list of up to 23 intermediate positions to include * along a route between the departure position and destination position. *

*
    *
  • *

    * For example, from the DeparturePosition * [-123.115, 49.285], the route follows the order that the * waypoint positions are given * [[-122.757, 49.0021],[-122.349, 47.620]] *

    *
  • *
* *

* If you specify a waypoint position that's not located on a road, Amazon * Location moves the position to the nearest road. *

*

* Specifying more than 23 waypoints returns a * 400 ValidationException error. *

*

* If Esri is the provider for your route calculator, specifying a route * that is longer than 400 km returns a * 400 RoutesValidationException error. *

*
*

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

*

* Returns a reference to this object so that method calls can be chained * together. * * @param waypointPositions

* Specifies an ordered list of up to 23 intermediate positions * to include along a route between the departure position and * destination position. *

*
    *
  • *

    * For example, from the DeparturePosition * [-123.115, 49.285], the route follows the order * that the waypoint positions are given * [[-122.757, 49.0021],[-122.349, 47.620]] *

    *
  • *
* *

* If you specify a waypoint position that's not located on a * road, Amazon Location moves the position to the nearest road. *

*

* Specifying more than 23 waypoints returns a * 400 ValidationException error. *

*

* If Esri is the provider for your route calculator, specifying * a route that is longer than 400 km returns a * 400 RoutesValidationException error. *

*
*

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

* @return A reference to this updated object so that method calls can be * chained together. */ public CalculateRouteRequest withWaypointPositions(java.util.List... waypointPositions) { if (getWaypointPositions() == null) { this.waypointPositions = new java.util.ArrayList>( waypointPositions.length); } for (java.util.List value : waypointPositions) { this.waypointPositions.add(value); } return this; } /** *

* Specifies an ordered list of up to 23 intermediate positions to include * along a route between the departure position and destination position. *

*
    *
  • *

    * For example, from the DeparturePosition * [-123.115, 49.285], the route follows the order that the * waypoint positions are given * [[-122.757, 49.0021],[-122.349, 47.620]] *

    *
  • *
* *

* If you specify a waypoint position that's not located on a road, Amazon * Location moves the position to the nearest road. *

*

* Specifying more than 23 waypoints returns a * 400 ValidationException error. *

*

* If Esri is the provider for your route calculator, specifying a route * that is longer than 400 km returns a * 400 RoutesValidationException error. *

*
*

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

*

* Returns a reference to this object so that method calls can be chained * together. * * @param waypointPositions

* Specifies an ordered list of up to 23 intermediate positions * to include along a route between the departure position and * destination position. *

*
    *
  • *

    * For example, from the DeparturePosition * [-123.115, 49.285], the route follows the order * that the waypoint positions are given * [[-122.757, 49.0021],[-122.349, 47.620]] *

    *
  • *
* *

* If you specify a waypoint position that's not located on a * road, Amazon Location moves the position to the nearest road. *

*

* Specifying more than 23 waypoints returns a * 400 ValidationException error. *

*

* If Esri is the provider for your route calculator, specifying * a route that is longer than 400 km returns a * 400 RoutesValidationException error. *

*
*

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

* @return A reference to this updated object so that method calls can be * chained together. */ public CalculateRouteRequest withWaypointPositions( java.util.Collection> waypointPositions) { setWaypointPositions(waypointPositions); return this; } /** * Returns a string representation of this object; useful for testing and * debugging. * * @return A string representation of this object. * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getCalculatorName() != null) sb.append("CalculatorName: " + getCalculatorName() + ","); if (getCarModeOptions() != null) sb.append("CarModeOptions: " + getCarModeOptions() + ","); if (getDepartNow() != null) sb.append("DepartNow: " + getDepartNow() + ","); if (getDeparturePosition() != null) sb.append("DeparturePosition: " + getDeparturePosition() + ","); if (getDepartureTime() != null) sb.append("DepartureTime: " + getDepartureTime() + ","); if (getDestinationPosition() != null) sb.append("DestinationPosition: " + getDestinationPosition() + ","); if (getDistanceUnit() != null) sb.append("DistanceUnit: " + getDistanceUnit() + ","); if (getIncludeLegGeometry() != null) sb.append("IncludeLegGeometry: " + getIncludeLegGeometry() + ","); if (getTravelMode() != null) sb.append("TravelMode: " + getTravelMode() + ","); if (getTruckModeOptions() != null) sb.append("TruckModeOptions: " + getTruckModeOptions() + ","); if (getWaypointPositions() != null) sb.append("WaypointPositions: " + getWaypointPositions()); sb.append("}"); return sb.toString(); } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getCalculatorName() == null) ? 0 : getCalculatorName().hashCode()); hashCode = prime * hashCode + ((getCarModeOptions() == null) ? 0 : getCarModeOptions().hashCode()); hashCode = prime * hashCode + ((getDepartNow() == null) ? 0 : getDepartNow().hashCode()); hashCode = prime * hashCode + ((getDeparturePosition() == null) ? 0 : getDeparturePosition().hashCode()); hashCode = prime * hashCode + ((getDepartureTime() == null) ? 0 : getDepartureTime().hashCode()); hashCode = prime * hashCode + ((getDestinationPosition() == null) ? 0 : getDestinationPosition().hashCode()); hashCode = prime * hashCode + ((getDistanceUnit() == null) ? 0 : getDistanceUnit().hashCode()); hashCode = prime * hashCode + ((getIncludeLegGeometry() == null) ? 0 : getIncludeLegGeometry().hashCode()); hashCode = prime * hashCode + ((getTravelMode() == null) ? 0 : getTravelMode().hashCode()); hashCode = prime * hashCode + ((getTruckModeOptions() == null) ? 0 : getTruckModeOptions().hashCode()); hashCode = prime * hashCode + ((getWaypointPositions() == null) ? 0 : getWaypointPositions().hashCode()); return hashCode; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof CalculateRouteRequest == false) return false; CalculateRouteRequest other = (CalculateRouteRequest) obj; if (other.getCalculatorName() == null ^ this.getCalculatorName() == null) return false; if (other.getCalculatorName() != null && other.getCalculatorName().equals(this.getCalculatorName()) == false) return false; if (other.getCarModeOptions() == null ^ this.getCarModeOptions() == null) return false; if (other.getCarModeOptions() != null && other.getCarModeOptions().equals(this.getCarModeOptions()) == false) return false; if (other.getDepartNow() == null ^ this.getDepartNow() == null) return false; if (other.getDepartNow() != null && other.getDepartNow().equals(this.getDepartNow()) == false) return false; if (other.getDeparturePosition() == null ^ this.getDeparturePosition() == null) return false; if (other.getDeparturePosition() != null && other.getDeparturePosition().equals(this.getDeparturePosition()) == false) return false; if (other.getDepartureTime() == null ^ this.getDepartureTime() == null) return false; if (other.getDepartureTime() != null && other.getDepartureTime().equals(this.getDepartureTime()) == false) return false; if (other.getDestinationPosition() == null ^ this.getDestinationPosition() == null) return false; if (other.getDestinationPosition() != null && other.getDestinationPosition().equals(this.getDestinationPosition()) == false) return false; if (other.getDistanceUnit() == null ^ this.getDistanceUnit() == null) return false; if (other.getDistanceUnit() != null && other.getDistanceUnit().equals(this.getDistanceUnit()) == false) return false; if (other.getIncludeLegGeometry() == null ^ this.getIncludeLegGeometry() == null) return false; if (other.getIncludeLegGeometry() != null && other.getIncludeLegGeometry().equals(this.getIncludeLegGeometry()) == false) return false; if (other.getTravelMode() == null ^ this.getTravelMode() == null) return false; if (other.getTravelMode() != null && other.getTravelMode().equals(this.getTravelMode()) == false) return false; if (other.getTruckModeOptions() == null ^ this.getTruckModeOptions() == null) return false; if (other.getTruckModeOptions() != null && other.getTruckModeOptions().equals(this.getTruckModeOptions()) == false) return false; if (other.getWaypointPositions() == null ^ this.getWaypointPositions() == null) return false; if (other.getWaypointPositions() != null && other.getWaypointPositions().equals(this.getWaypointPositions()) == false) return false; return true; } }