diff --git a/clients/client-geo-routes/.gitignore b/clients/client-geo-routes/.gitignore new file mode 100644 index 0000000000000..54f14c9aef253 --- /dev/null +++ b/clients/client-geo-routes/.gitignore @@ -0,0 +1,9 @@ +/node_modules/ +/build/ +/coverage/ +/docs/ +/dist-* +*.tsbuildinfo +*.tgz +*.log +package-lock.json diff --git a/clients/client-geo-routes/LICENSE b/clients/client-geo-routes/LICENSE new file mode 100644 index 0000000000000..1349aa7c99232 --- /dev/null +++ b/clients/client-geo-routes/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2018-2024 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. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License 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. diff --git a/clients/client-geo-routes/README.md b/clients/client-geo-routes/README.md new file mode 100644 index 0000000000000..f73efd3676cc8 --- /dev/null +++ b/clients/client-geo-routes/README.md @@ -0,0 +1,265 @@ + + +# @aws-sdk/client-geo-routes + +## Description + +AWS SDK for JavaScript GeoRoutes Client for Node.js, Browser and React Native. + +

With the Amazon Location Routes API you can calculate +routes and estimate travel time based on up-to-date road network and live +traffic information.

+

Calculate optimal travel routes and estimate travel times using up-to-date road network and traffic data. Key features include:

+ + +## Installing + +To install this package, simply type add or install @aws-sdk/client-geo-routes +using your favorite package manager: + +- `npm install @aws-sdk/client-geo-routes` +- `yarn add @aws-sdk/client-geo-routes` +- `pnpm add @aws-sdk/client-geo-routes` + +## Getting Started + +### Import + +The AWS SDK is modulized by clients and commands. +To send a request, you only need to import the `GeoRoutesClient` and +the commands you need, for example `SnapToRoadsCommand`: + +```js +// ES5 example +const { GeoRoutesClient, SnapToRoadsCommand } = require("@aws-sdk/client-geo-routes"); +``` + +```ts +// ES6+ example +import { GeoRoutesClient, SnapToRoadsCommand } from "@aws-sdk/client-geo-routes"; +``` + +### Usage + +To send a request, you: + +- Initiate client with configuration (e.g. credentials, region). +- Initiate command with input parameters. +- Call `send` operation on client with command object as input. +- If you are using a custom http handler, you may call `destroy()` to close open connections. + +```js +// a client can be shared by different commands. +const client = new GeoRoutesClient({ region: "REGION" }); + +const params = { + /** input parameters */ +}; +const command = new SnapToRoadsCommand(params); +``` + +#### Async/await + +We recommend using [await](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/await) +operator to wait for the promise returned by send operation as follows: + +```js +// async/await. +try { + const data = await client.send(command); + // process data. +} catch (error) { + // error handling. +} finally { + // finally. +} +``` + +Async-await is clean, concise, intuitive, easy to debug and has better error handling +as compared to using Promise chains or callbacks. + +#### Promises + +You can also use [Promise chaining](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises#chaining) +to execute send operation. + +```js +client.send(command).then( + (data) => { + // process data. + }, + (error) => { + // error handling. + } +); +``` + +Promises can also be called using `.catch()` and `.finally()` as follows: + +```js +client + .send(command) + .then((data) => { + // process data. + }) + .catch((error) => { + // error handling. + }) + .finally(() => { + // finally. + }); +``` + +#### Callbacks + +We do not recommend using callbacks because of [callback hell](http://callbackhell.com/), +but they are supported by the send operation. + +```js +// callbacks. +client.send(command, (err, data) => { + // process err and data. +}); +``` + +#### v2 compatible style + +The client can also send requests using v2 compatible style. +However, it results in a bigger bundle size and may be dropped in next major version. More details in the blog post +on [modular packages in AWS SDK for JavaScript](https://aws.amazon.com/blogs/developer/modular-packages-in-aws-sdk-for-javascript/) + +```ts +import * as AWS from "@aws-sdk/client-geo-routes"; +const client = new AWS.GeoRoutes({ region: "REGION" }); + +// async/await. +try { + const data = await client.snapToRoads(params); + // process data. +} catch (error) { + // error handling. +} + +// Promises. +client + .snapToRoads(params) + .then((data) => { + // process data. + }) + .catch((error) => { + // error handling. + }); + +// callbacks. +client.snapToRoads(params, (err, data) => { + // process err and data. +}); +``` + +### Troubleshooting + +When the service returns an exception, the error will include the exception information, +as well as response metadata (e.g. request id). + +```js +try { + const data = await client.send(command); + // process data. +} catch (error) { + const { requestId, cfId, extendedRequestId } = error.$metadata; + console.log({ requestId, cfId, extendedRequestId }); + /** + * The keys within exceptions are also parsed. + * You can access them by specifying exception names: + * if (error.name === 'SomeServiceException') { + * const value = error.specialKeyInException; + * } + */ +} +``` + +## Getting Help + +Please use these community resources for getting help. +We use the GitHub issues for tracking bugs and feature requests, but have limited bandwidth to address them. + +- Visit [Developer Guide](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/welcome.html) + or [API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/index.html). +- Check out the blog posts tagged with [`aws-sdk-js`](https://aws.amazon.com/blogs/developer/tag/aws-sdk-js/) + on AWS Developer Blog. +- Ask a question on [StackOverflow](https://stackoverflow.com/questions/tagged/aws-sdk-js) and tag it with `aws-sdk-js`. +- Join the AWS JavaScript community on [gitter](https://gitter.im/aws/aws-sdk-js-v3). +- If it turns out that you may have found a bug, please [open an issue](https://github.com/aws/aws-sdk-js-v3/issues/new/choose). + +To test your universal JavaScript code in Node.js, browser and react-native environments, +visit our [code samples repo](https://github.com/aws-samples/aws-sdk-js-tests). + +## Contributing + +This client code is generated automatically. Any modifications will be overwritten the next time the `@aws-sdk/client-geo-routes` package is updated. +To contribute to client you can check our [generate clients scripts](https://github.com/aws/aws-sdk-js-v3/tree/main/scripts/generate-clients). + +## License + +This SDK is distributed under the +[Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0), +see LICENSE for more information. + +## Client Commands (Operations List) + +
+ +CalculateIsolines + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/geo-routes/command/CalculateIsolinesCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-geo-routes/Interface/CalculateIsolinesCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-geo-routes/Interface/CalculateIsolinesCommandOutput/) + +
+
+ +CalculateRouteMatrix + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/geo-routes/command/CalculateRouteMatrixCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-geo-routes/Interface/CalculateRouteMatrixCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-geo-routes/Interface/CalculateRouteMatrixCommandOutput/) + +
+
+ +CalculateRoutes + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/geo-routes/command/CalculateRoutesCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-geo-routes/Interface/CalculateRoutesCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-geo-routes/Interface/CalculateRoutesCommandOutput/) + +
+
+ +OptimizeWaypoints + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/geo-routes/command/OptimizeWaypointsCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-geo-routes/Interface/OptimizeWaypointsCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-geo-routes/Interface/OptimizeWaypointsCommandOutput/) + +
+
+ +SnapToRoads + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/geo-routes/command/SnapToRoadsCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-geo-routes/Interface/SnapToRoadsCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-geo-routes/Interface/SnapToRoadsCommandOutput/) + +
diff --git a/clients/client-geo-routes/api-extractor.json b/clients/client-geo-routes/api-extractor.json new file mode 100644 index 0000000000000..d5bf5ffeee851 --- /dev/null +++ b/clients/client-geo-routes/api-extractor.json @@ -0,0 +1,4 @@ +{ + "extends": "../../api-extractor.json", + "mainEntryPointFilePath": "/dist-types/index.d.ts" +} diff --git a/clients/client-geo-routes/package.json b/clients/client-geo-routes/package.json new file mode 100644 index 0000000000000..8531cf4aae9de --- /dev/null +++ b/clients/client-geo-routes/package.json @@ -0,0 +1,101 @@ +{ + "name": "@aws-sdk/client-geo-routes", + "description": "AWS SDK for JavaScript Geo Routes Client for Node.js, Browser and React Native", + "version": "3.0.0", + "scripts": { + "build": "concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'", + "build:cjs": "tsc -p tsconfig.cjs.json", + "build:es": "tsc -p tsconfig.es.json", + "build:include:deps": "lerna run --scope $npm_package_name --include-dependencies build", + "build:types": "tsc -p tsconfig.types.json", + "build:types:downlevel": "downlevel-dts dist-types dist-types/ts3.4", + "clean": "rimraf ./dist-* && rimraf *.tsbuildinfo || exit 0", + "extract:docs": "api-extractor run --local", + "generate:client": "node ../../scripts/generate-clients/single-service --solo geo-routes" + }, + "main": "./dist-cjs/index.js", + "types": "./dist-types/index.d.ts", + "module": "./dist-es/index.js", + "sideEffects": false, + "dependencies": { + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/client-sso-oidc": "*", + "@aws-sdk/client-sts": "*", + "@aws-sdk/core": "*", + "@aws-sdk/credential-provider-node": "*", + "@aws-sdk/middleware-host-header": "*", + "@aws-sdk/middleware-logger": "*", + "@aws-sdk/middleware-recursion-detection": "*", + "@aws-sdk/middleware-user-agent": "*", + "@aws-sdk/region-config-resolver": "*", + "@aws-sdk/types": "*", + "@aws-sdk/util-endpoints": "*", + "@aws-sdk/util-user-agent-browser": "*", + "@aws-sdk/util-user-agent-node": "*", + "@smithy/config-resolver": "^3.0.9", + "@smithy/core": "^2.4.8", + "@smithy/fetch-http-handler": "^3.2.9", + "@smithy/hash-node": "^3.0.7", + "@smithy/invalid-dependency": "^3.0.7", + "@smithy/middleware-content-length": "^3.0.9", + "@smithy/middleware-endpoint": "^3.1.4", + "@smithy/middleware-retry": "^3.0.23", + "@smithy/middleware-serde": "^3.0.7", + "@smithy/middleware-stack": "^3.0.7", + "@smithy/node-config-provider": "^3.1.8", + "@smithy/node-http-handler": "^3.2.4", + "@smithy/protocol-http": "^4.1.4", + "@smithy/smithy-client": "^3.4.0", + "@smithy/types": "^3.5.0", + "@smithy/url-parser": "^3.0.7", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.23", + "@smithy/util-defaults-mode-node": "^3.0.23", + "@smithy/util-endpoints": "^2.1.3", + "@smithy/util-middleware": "^3.0.7", + "@smithy/util-retry": "^3.0.7", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "devDependencies": { + "@tsconfig/node16": "16.1.3", + "@types/node": "^16.18.96", + "concurrently": "7.0.0", + "downlevel-dts": "0.10.1", + "rimraf": "3.0.2", + "typescript": "~4.9.5" + }, + "engines": { + "node": ">=16.0.0" + }, + "typesVersions": { + "<4.0": { + "dist-types/*": [ + "dist-types/ts3.4/*" + ] + } + }, + "files": [ + "dist-*/**" + ], + "author": { + "name": "AWS SDK for JavaScript Team", + "url": "https://aws.amazon.com/javascript/" + }, + "license": "Apache-2.0", + "browser": { + "./dist-es/runtimeConfig": "./dist-es/runtimeConfig.browser" + }, + "react-native": { + "./dist-es/runtimeConfig": "./dist-es/runtimeConfig.native" + }, + "homepage": "https://github.com/aws/aws-sdk-js-v3/tree/main/clients/client-geo-routes", + "repository": { + "type": "git", + "url": "https://github.com/aws/aws-sdk-js-v3.git", + "directory": "clients/client-geo-routes" + } +} diff --git a/clients/client-geo-routes/src/GeoRoutes.ts b/clients/client-geo-routes/src/GeoRoutes.ts new file mode 100644 index 0000000000000..8079f9399fa44 --- /dev/null +++ b/clients/client-geo-routes/src/GeoRoutes.ts @@ -0,0 +1,139 @@ +// smithy-typescript generated code +import { createAggregatedClient } from "@smithy/smithy-client"; +import { HttpHandlerOptions as __HttpHandlerOptions } from "@smithy/types"; + +import { + CalculateIsolinesCommand, + CalculateIsolinesCommandInput, + CalculateIsolinesCommandOutput, +} from "./commands/CalculateIsolinesCommand"; +import { + CalculateRouteMatrixCommand, + CalculateRouteMatrixCommandInput, + CalculateRouteMatrixCommandOutput, +} from "./commands/CalculateRouteMatrixCommand"; +import { + CalculateRoutesCommand, + CalculateRoutesCommandInput, + CalculateRoutesCommandOutput, +} from "./commands/CalculateRoutesCommand"; +import { + OptimizeWaypointsCommand, + OptimizeWaypointsCommandInput, + OptimizeWaypointsCommandOutput, +} from "./commands/OptimizeWaypointsCommand"; +import { SnapToRoadsCommand, SnapToRoadsCommandInput, SnapToRoadsCommandOutput } from "./commands/SnapToRoadsCommand"; +import { GeoRoutesClient, GeoRoutesClientConfig } from "./GeoRoutesClient"; + +const commands = { + CalculateIsolinesCommand, + CalculateRouteMatrixCommand, + CalculateRoutesCommand, + OptimizeWaypointsCommand, + SnapToRoadsCommand, +}; + +export interface GeoRoutes { + /** + * @see {@link CalculateIsolinesCommand} + */ + calculateIsolines( + args: CalculateIsolinesCommandInput, + options?: __HttpHandlerOptions + ): Promise; + calculateIsolines( + args: CalculateIsolinesCommandInput, + cb: (err: any, data?: CalculateIsolinesCommandOutput) => void + ): void; + calculateIsolines( + args: CalculateIsolinesCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CalculateIsolinesCommandOutput) => void + ): void; + + /** + * @see {@link CalculateRouteMatrixCommand} + */ + calculateRouteMatrix( + args: CalculateRouteMatrixCommandInput, + options?: __HttpHandlerOptions + ): Promise; + calculateRouteMatrix( + args: CalculateRouteMatrixCommandInput, + cb: (err: any, data?: CalculateRouteMatrixCommandOutput) => void + ): void; + calculateRouteMatrix( + args: CalculateRouteMatrixCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CalculateRouteMatrixCommandOutput) => void + ): void; + + /** + * @see {@link CalculateRoutesCommand} + */ + calculateRoutes( + args: CalculateRoutesCommandInput, + options?: __HttpHandlerOptions + ): Promise; + calculateRoutes(args: CalculateRoutesCommandInput, cb: (err: any, data?: CalculateRoutesCommandOutput) => void): void; + calculateRoutes( + args: CalculateRoutesCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CalculateRoutesCommandOutput) => void + ): void; + + /** + * @see {@link OptimizeWaypointsCommand} + */ + optimizeWaypoints( + args: OptimizeWaypointsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + optimizeWaypoints( + args: OptimizeWaypointsCommandInput, + cb: (err: any, data?: OptimizeWaypointsCommandOutput) => void + ): void; + optimizeWaypoints( + args: OptimizeWaypointsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: OptimizeWaypointsCommandOutput) => void + ): void; + + /** + * @see {@link SnapToRoadsCommand} + */ + snapToRoads(args: SnapToRoadsCommandInput, options?: __HttpHandlerOptions): Promise; + snapToRoads(args: SnapToRoadsCommandInput, cb: (err: any, data?: SnapToRoadsCommandOutput) => void): void; + snapToRoads( + args: SnapToRoadsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: SnapToRoadsCommandOutput) => void + ): void; +} + +/** + *

With the Amazon Location Routes API you can calculate + * routes and estimate travel time based on up-to-date road network and live + * traffic information.

+ *

Calculate optimal travel routes and estimate travel times using up-to-date road network and traffic data. Key features include:

+ *
    + *
  • + *

    Point-to-point routing with estimated travel time, distance, and turn-by-turn directions

    + *
  • + *
  • + *

    Multi-point route optimization to minimize travel time or distance

    + *
  • + *
  • + *

    Route matrices for efficient multi-destination planning

    + *
  • + *
  • + *

    Isoline calculations to determine reachable areas within specified time or distance thresholds

    + *
  • + *
  • + *

    Map-matching to align GPS traces with the road network

    + *
  • + *
+ * @public + */ +export class GeoRoutes extends GeoRoutesClient implements GeoRoutes {} +createAggregatedClient(commands, GeoRoutes); diff --git a/clients/client-geo-routes/src/GeoRoutesClient.ts b/clients/client-geo-routes/src/GeoRoutesClient.ts new file mode 100644 index 0000000000000..3144e509d212e --- /dev/null +++ b/clients/client-geo-routes/src/GeoRoutesClient.ts @@ -0,0 +1,339 @@ +// smithy-typescript generated code +import { + getHostHeaderPlugin, + HostHeaderInputConfig, + HostHeaderResolvedConfig, + resolveHostHeaderConfig, +} from "@aws-sdk/middleware-host-header"; +import { getLoggerPlugin } from "@aws-sdk/middleware-logger"; +import { getRecursionDetectionPlugin } from "@aws-sdk/middleware-recursion-detection"; +import { + getUserAgentPlugin, + resolveUserAgentConfig, + UserAgentInputConfig, + UserAgentResolvedConfig, +} from "@aws-sdk/middleware-user-agent"; +import { RegionInputConfig, RegionResolvedConfig, resolveRegionConfig } from "@smithy/config-resolver"; +import { + DefaultIdentityProviderConfig, + getHttpAuthSchemeEndpointRuleSetPlugin, + getHttpSigningPlugin, +} from "@smithy/core"; +import { getContentLengthPlugin } from "@smithy/middleware-content-length"; +import { EndpointInputConfig, EndpointResolvedConfig, resolveEndpointConfig } from "@smithy/middleware-endpoint"; +import { getRetryPlugin, resolveRetryConfig, RetryInputConfig, RetryResolvedConfig } from "@smithy/middleware-retry"; +import { HttpHandlerUserInput as __HttpHandlerUserInput } from "@smithy/protocol-http"; +import { + Client as __Client, + DefaultsMode as __DefaultsMode, + SmithyConfiguration as __SmithyConfiguration, + SmithyResolvedConfiguration as __SmithyResolvedConfiguration, +} from "@smithy/smithy-client"; +import { + AwsCredentialIdentityProvider, + BodyLengthCalculator as __BodyLengthCalculator, + CheckOptionalClientConfig as __CheckOptionalClientConfig, + ChecksumConstructor as __ChecksumConstructor, + Decoder as __Decoder, + Encoder as __Encoder, + EndpointV2 as __EndpointV2, + HashConstructor as __HashConstructor, + HttpHandlerOptions as __HttpHandlerOptions, + Logger as __Logger, + Provider as __Provider, + Provider, + StreamCollector as __StreamCollector, + UrlParser as __UrlParser, + UserAgent as __UserAgent, +} from "@smithy/types"; + +import { + defaultGeoRoutesHttpAuthSchemeParametersProvider, + HttpAuthSchemeInputConfig, + HttpAuthSchemeResolvedConfig, + resolveHttpAuthSchemeConfig, +} from "./auth/httpAuthSchemeProvider"; +import { CalculateIsolinesCommandInput, CalculateIsolinesCommandOutput } from "./commands/CalculateIsolinesCommand"; +import { + CalculateRouteMatrixCommandInput, + CalculateRouteMatrixCommandOutput, +} from "./commands/CalculateRouteMatrixCommand"; +import { CalculateRoutesCommandInput, CalculateRoutesCommandOutput } from "./commands/CalculateRoutesCommand"; +import { OptimizeWaypointsCommandInput, OptimizeWaypointsCommandOutput } from "./commands/OptimizeWaypointsCommand"; +import { SnapToRoadsCommandInput, SnapToRoadsCommandOutput } from "./commands/SnapToRoadsCommand"; +import { + ClientInputEndpointParameters, + ClientResolvedEndpointParameters, + EndpointParameters, + resolveClientEndpointParameters, +} from "./endpoint/EndpointParameters"; +import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; + +export { __Client }; + +/** + * @public + */ +export type ServiceInputTypes = + | CalculateIsolinesCommandInput + | CalculateRouteMatrixCommandInput + | CalculateRoutesCommandInput + | OptimizeWaypointsCommandInput + | SnapToRoadsCommandInput; + +/** + * @public + */ +export type ServiceOutputTypes = + | CalculateIsolinesCommandOutput + | CalculateRouteMatrixCommandOutput + | CalculateRoutesCommandOutput + | OptimizeWaypointsCommandOutput + | SnapToRoadsCommandOutput; + +/** + * @public + */ +export interface ClientDefaults extends Partial<__SmithyConfiguration<__HttpHandlerOptions>> { + /** + * The HTTP handler to use or its constructor options. Fetch in browser and Https in Nodejs. + */ + requestHandler?: __HttpHandlerUserInput; + + /** + * A constructor for a class implementing the {@link @smithy/types#ChecksumConstructor} interface + * that computes the SHA-256 HMAC or checksum of a string or binary buffer. + * @internal + */ + sha256?: __ChecksumConstructor | __HashConstructor; + + /** + * The function that will be used to convert strings into HTTP endpoints. + * @internal + */ + urlParser?: __UrlParser; + + /** + * A function that can calculate the length of a request body. + * @internal + */ + bodyLengthChecker?: __BodyLengthCalculator; + + /** + * A function that converts a stream into an array of bytes. + * @internal + */ + streamCollector?: __StreamCollector; + + /** + * The function that will be used to convert a base64-encoded string to a byte array. + * @internal + */ + base64Decoder?: __Decoder; + + /** + * The function that will be used to convert binary data to a base64-encoded string. + * @internal + */ + base64Encoder?: __Encoder; + + /** + * The function that will be used to convert a UTF8-encoded string to a byte array. + * @internal + */ + utf8Decoder?: __Decoder; + + /** + * The function that will be used to convert binary data to a UTF-8 encoded string. + * @internal + */ + utf8Encoder?: __Encoder; + + /** + * The runtime environment. + * @internal + */ + runtime?: string; + + /** + * Disable dynamically changing the endpoint of the client based on the hostPrefix + * trait of an operation. + */ + disableHostPrefix?: boolean; + + /** + * Unique service identifier. + * @internal + */ + serviceId?: string; + + /** + * Enables IPv6/IPv4 dualstack endpoint. + */ + useDualstackEndpoint?: boolean | __Provider; + + /** + * Enables FIPS compatible endpoints. + */ + useFipsEndpoint?: boolean | __Provider; + + /** + * The AWS region to which this client will send requests + */ + region?: string | __Provider; + + /** + * The provider populating default tracking information to be sent with `user-agent`, `x-amz-user-agent` header + * @internal + */ + defaultUserAgentProvider?: Provider<__UserAgent>; + + /** + * Default credentials provider; Not available in browser runtime. + * @deprecated + * @internal + */ + credentialDefaultProvider?: (input: any) => AwsCredentialIdentityProvider; + + /** + * Value for how many times a request will be made at most in case of retry. + */ + maxAttempts?: number | __Provider; + + /** + * Specifies which retry algorithm to use. + * @see https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-smithy-util-retry/Enum/RETRY_MODES/ + * + */ + retryMode?: string | __Provider; + + /** + * Optional logger for logging debug/info/warn/error. + */ + logger?: __Logger; + + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + + /** + * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. + */ + defaultsMode?: __DefaultsMode | __Provider<__DefaultsMode>; +} + +/** + * @public + */ +export type GeoRoutesClientConfigType = Partial<__SmithyConfiguration<__HttpHandlerOptions>> & + ClientDefaults & + UserAgentInputConfig & + RetryInputConfig & + RegionInputConfig & + HostHeaderInputConfig & + EndpointInputConfig & + HttpAuthSchemeInputConfig & + ClientInputEndpointParameters; +/** + * @public + * + * The configuration interface of GeoRoutesClient class constructor that set the region, credentials and other options. + */ +export interface GeoRoutesClientConfig extends GeoRoutesClientConfigType {} + +/** + * @public + */ +export type GeoRoutesClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & + Required & + RuntimeExtensionsConfig & + UserAgentResolvedConfig & + RetryResolvedConfig & + RegionResolvedConfig & + HostHeaderResolvedConfig & + EndpointResolvedConfig & + HttpAuthSchemeResolvedConfig & + ClientResolvedEndpointParameters; +/** + * @public + * + * The resolved configuration interface of GeoRoutesClient class. This is resolved and normalized from the {@link GeoRoutesClientConfig | constructor configuration interface}. + */ +export interface GeoRoutesClientResolvedConfig extends GeoRoutesClientResolvedConfigType {} + +/** + *

With the Amazon Location Routes API you can calculate + * routes and estimate travel time based on up-to-date road network and live + * traffic information.

+ *

Calculate optimal travel routes and estimate travel times using up-to-date road network and traffic data. Key features include:

+ *
    + *
  • + *

    Point-to-point routing with estimated travel time, distance, and turn-by-turn directions

    + *
  • + *
  • + *

    Multi-point route optimization to minimize travel time or distance

    + *
  • + *
  • + *

    Route matrices for efficient multi-destination planning

    + *
  • + *
  • + *

    Isoline calculations to determine reachable areas within specified time or distance thresholds

    + *
  • + *
  • + *

    Map-matching to align GPS traces with the road network

    + *
  • + *
+ * @public + */ +export class GeoRoutesClient extends __Client< + __HttpHandlerOptions, + ServiceInputTypes, + ServiceOutputTypes, + GeoRoutesClientResolvedConfig +> { + /** + * The resolved configuration of GeoRoutesClient class. This is resolved and normalized from the {@link GeoRoutesClientConfig | constructor configuration interface}. + */ + readonly config: GeoRoutesClientResolvedConfig; + + constructor(...[configuration]: __CheckOptionalClientConfig) { + const _config_0 = __getRuntimeConfig(configuration || {}); + const _config_1 = resolveClientEndpointParameters(_config_0); + const _config_2 = resolveUserAgentConfig(_config_1); + const _config_3 = resolveRetryConfig(_config_2); + const _config_4 = resolveRegionConfig(_config_3); + const _config_5 = resolveHostHeaderConfig(_config_4); + const _config_6 = resolveEndpointConfig(_config_5); + const _config_7 = resolveHttpAuthSchemeConfig(_config_6); + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; + this.middlewareStack.use(getUserAgentPlugin(this.config)); + this.middlewareStack.use(getRetryPlugin(this.config)); + this.middlewareStack.use(getContentLengthPlugin(this.config)); + this.middlewareStack.use(getHostHeaderPlugin(this.config)); + this.middlewareStack.use(getLoggerPlugin(this.config)); + this.middlewareStack.use(getRecursionDetectionPlugin(this.config)); + this.middlewareStack.use( + getHttpAuthSchemeEndpointRuleSetPlugin(this.config, { + httpAuthSchemeParametersProvider: defaultGeoRoutesHttpAuthSchemeParametersProvider, + identityProviderConfigProvider: async (config: GeoRoutesClientResolvedConfig) => + new DefaultIdentityProviderConfig({ + "aws.auth#sigv4": config.credentials, + }), + }) + ); + this.middlewareStack.use(getHttpSigningPlugin(this.config)); + } + + /** + * Destroy underlying resources, like sockets. It's usually not necessary to do this. + * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed. + * Otherwise, sockets might stay open for quite a long time before the server terminates them. + */ + destroy(): void { + super.destroy(); + } +} diff --git a/clients/client-geo-routes/src/auth/httpAuthExtensionConfiguration.ts b/clients/client-geo-routes/src/auth/httpAuthExtensionConfiguration.ts new file mode 100644 index 0000000000000..3c4cbd475759e --- /dev/null +++ b/clients/client-geo-routes/src/auth/httpAuthExtensionConfiguration.ts @@ -0,0 +1,72 @@ +// smithy-typescript generated code +import { AwsCredentialIdentity, AwsCredentialIdentityProvider, HttpAuthScheme } from "@smithy/types"; + +import { GeoRoutesHttpAuthSchemeProvider } from "./httpAuthSchemeProvider"; + +/** + * @internal + */ +export interface HttpAuthExtensionConfiguration { + setHttpAuthScheme(httpAuthScheme: HttpAuthScheme): void; + httpAuthSchemes(): HttpAuthScheme[]; + setHttpAuthSchemeProvider(httpAuthSchemeProvider: GeoRoutesHttpAuthSchemeProvider): void; + httpAuthSchemeProvider(): GeoRoutesHttpAuthSchemeProvider; + setCredentials(credentials: AwsCredentialIdentity | AwsCredentialIdentityProvider): void; + credentials(): AwsCredentialIdentity | AwsCredentialIdentityProvider | undefined; +} + +/** + * @internal + */ +export type HttpAuthRuntimeConfig = Partial<{ + httpAuthSchemes: HttpAuthScheme[]; + httpAuthSchemeProvider: GeoRoutesHttpAuthSchemeProvider; + credentials: AwsCredentialIdentity | AwsCredentialIdentityProvider; +}>; + +/** + * @internal + */ +export const getHttpAuthExtensionConfiguration = ( + runtimeConfig: HttpAuthRuntimeConfig +): HttpAuthExtensionConfiguration => { + const _httpAuthSchemes = runtimeConfig.httpAuthSchemes!; + let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider!; + let _credentials = runtimeConfig.credentials; + return { + setHttpAuthScheme(httpAuthScheme: HttpAuthScheme): void { + const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId); + if (index === -1) { + _httpAuthSchemes.push(httpAuthScheme); + } else { + _httpAuthSchemes.splice(index, 1, httpAuthScheme); + } + }, + httpAuthSchemes(): HttpAuthScheme[] { + return _httpAuthSchemes; + }, + setHttpAuthSchemeProvider(httpAuthSchemeProvider: GeoRoutesHttpAuthSchemeProvider): void { + _httpAuthSchemeProvider = httpAuthSchemeProvider; + }, + httpAuthSchemeProvider(): GeoRoutesHttpAuthSchemeProvider { + return _httpAuthSchemeProvider; + }, + setCredentials(credentials: AwsCredentialIdentity | AwsCredentialIdentityProvider): void { + _credentials = credentials; + }, + credentials(): AwsCredentialIdentity | AwsCredentialIdentityProvider | undefined { + return _credentials; + }, + }; +}; + +/** + * @internal + */ +export const resolveHttpAuthRuntimeConfig = (config: HttpAuthExtensionConfiguration): HttpAuthRuntimeConfig => { + return { + httpAuthSchemes: config.httpAuthSchemes(), + httpAuthSchemeProvider: config.httpAuthSchemeProvider(), + credentials: config.credentials(), + }; +}; diff --git a/clients/client-geo-routes/src/auth/httpAuthSchemeProvider.ts b/clients/client-geo-routes/src/auth/httpAuthSchemeProvider.ts new file mode 100644 index 0000000000000..d354632bbec53 --- /dev/null +++ b/clients/client-geo-routes/src/auth/httpAuthSchemeProvider.ts @@ -0,0 +1,137 @@ +// smithy-typescript generated code +import { + AwsSdkSigV4AuthInputConfig, + AwsSdkSigV4AuthResolvedConfig, + AwsSdkSigV4PreviouslyResolved, + resolveAwsSdkSigV4Config, +} from "@aws-sdk/core"; +import { + HandlerExecutionContext, + HttpAuthOption, + HttpAuthScheme, + HttpAuthSchemeParameters, + HttpAuthSchemeParametersProvider, + HttpAuthSchemeProvider, +} from "@smithy/types"; +import { getSmithyContext, normalizeProvider } from "@smithy/util-middleware"; + +import { GeoRoutesClientConfig, GeoRoutesClientResolvedConfig } from "../GeoRoutesClient"; + +/** + * @internal + */ +export interface GeoRoutesHttpAuthSchemeParameters extends HttpAuthSchemeParameters { + region?: string; +} + +/** + * @internal + */ +export interface GeoRoutesHttpAuthSchemeParametersProvider + extends HttpAuthSchemeParametersProvider< + GeoRoutesClientResolvedConfig, + HandlerExecutionContext, + GeoRoutesHttpAuthSchemeParameters, + object + > {} + +/** + * @internal + */ +export const defaultGeoRoutesHttpAuthSchemeParametersProvider = async ( + config: GeoRoutesClientResolvedConfig, + context: HandlerExecutionContext, + input: object +): Promise => { + return { + operation: getSmithyContext(context).operation as string, + region: + (await normalizeProvider(config.region)()) || + (() => { + throw new Error("expected `region` to be configured for `aws.auth#sigv4`"); + })(), + }; +}; + +function createAwsAuthSigv4HttpAuthOption(authParameters: GeoRoutesHttpAuthSchemeParameters): HttpAuthOption { + return { + schemeId: "aws.auth#sigv4", + signingProperties: { + name: "geo-routes", + region: authParameters.region, + }, + propertiesExtractor: (config: Partial, context) => ({ + /** + * @internal + */ + signingProperties: { + config, + context, + }, + }), + }; +} + +/** + * @internal + */ +export interface GeoRoutesHttpAuthSchemeProvider extends HttpAuthSchemeProvider {} + +/** + * @internal + */ +export const defaultGeoRoutesHttpAuthSchemeProvider: GeoRoutesHttpAuthSchemeProvider = (authParameters) => { + const options: HttpAuthOption[] = []; + switch (authParameters.operation) { + default: { + options.push(createAwsAuthSigv4HttpAuthOption(authParameters)); + } + } + return options; +}; + +/** + * @internal + */ +export interface HttpAuthSchemeInputConfig extends AwsSdkSigV4AuthInputConfig { + /** + * Configuration of HttpAuthSchemes for a client which provides default identity providers and signers per auth scheme. + * @internal + */ + httpAuthSchemes?: HttpAuthScheme[]; + + /** + * Configuration of an HttpAuthSchemeProvider for a client which resolves which HttpAuthScheme to use. + * @internal + */ + httpAuthSchemeProvider?: GeoRoutesHttpAuthSchemeProvider; +} + +/** + * @internal + */ +export interface HttpAuthSchemeResolvedConfig extends AwsSdkSigV4AuthResolvedConfig { + /** + * Configuration of HttpAuthSchemes for a client which provides default identity providers and signers per auth scheme. + * @internal + */ + readonly httpAuthSchemes: HttpAuthScheme[]; + + /** + * Configuration of an HttpAuthSchemeProvider for a client which resolves which HttpAuthScheme to use. + * @internal + */ + readonly httpAuthSchemeProvider: GeoRoutesHttpAuthSchemeProvider; +} + +/** + * @internal + */ +export const resolveHttpAuthSchemeConfig = ( + config: T & HttpAuthSchemeInputConfig & AwsSdkSigV4PreviouslyResolved +): T & HttpAuthSchemeResolvedConfig => { + const config_0 = resolveAwsSdkSigV4Config(config); + return { + ...config_0, + } as T & HttpAuthSchemeResolvedConfig; +}; diff --git a/clients/client-geo-routes/src/commands/CalculateIsolinesCommand.ts b/clients/client-geo-routes/src/commands/CalculateIsolinesCommand.ts new file mode 100644 index 0000000000000..4b1e4fe4c9294 --- /dev/null +++ b/clients/client-geo-routes/src/commands/CalculateIsolinesCommand.ts @@ -0,0 +1,341 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { commonParams } from "../endpoint/EndpointParameters"; +import { GeoRoutesClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../GeoRoutesClient"; +import { + CalculateIsolinesRequest, + CalculateIsolinesRequestFilterSensitiveLog, + CalculateIsolinesResponse, + CalculateIsolinesResponseFilterSensitiveLog, +} from "../models/models_0"; +import { de_CalculateIsolinesCommand, se_CalculateIsolinesCommand } from "../protocols/Aws_restJson1"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link CalculateIsolinesCommand}. + */ +export interface CalculateIsolinesCommandInput extends CalculateIsolinesRequest {} +/** + * @public + * + * The output of {@link CalculateIsolinesCommand}. + */ +export interface CalculateIsolinesCommandOutput extends CalculateIsolinesResponse, __MetadataBearer {} + +/** + *

Use the CalculateIsolines action to find service areas that can be reached + * in a given threshold of time, distance.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { GeoRoutesClient, CalculateIsolinesCommand } from "@aws-sdk/client-geo-routes"; // ES Modules import + * // const { GeoRoutesClient, CalculateIsolinesCommand } = require("@aws-sdk/client-geo-routes"); // CommonJS import + * const client = new GeoRoutesClient(config); + * const input = { // CalculateIsolinesRequest + * Allow: { // IsolineAllowOptions + * Hot: true || false, + * Hov: true || false, + * }, + * ArrivalTime: "STRING_VALUE", + * Avoid: { // IsolineAvoidanceOptions + * Areas: [ // IsolineAvoidanceAreaList + * { // IsolineAvoidanceArea + * Except: [ // IsolineAvoidanceAreaGeometryList + * { // IsolineAvoidanceAreaGeometry + * BoundingBox: [ // BoundingBox + * Number("double"), + * ], + * Corridor: { // Corridor + * LineString: [ // LineString // required + * [ // Position + * Number("double"), + * ], + * ], + * Radius: Number("int"), // required + * }, + * Polygon: [ // LinearRings + * [ // LinearRing + * [ + * Number("double"), + * ], + * ], + * ], + * PolylineCorridor: { // PolylineCorridor + * Polyline: "STRING_VALUE", // required + * Radius: Number("int"), // required + * }, + * PolylinePolygon: [ // PolylineRingList + * "STRING_VALUE", + * ], + * }, + * ], + * Geometry: { + * BoundingBox: [ + * Number("double"), + * ], + * Corridor: { + * LineString: [ // required + * [ + * Number("double"), + * ], + * ], + * Radius: Number("int"), // required + * }, + * Polygon: [ + * [ + * [ + * Number("double"), + * ], + * ], + * ], + * PolylineCorridor: { + * Polyline: "STRING_VALUE", // required + * Radius: Number("int"), // required + * }, + * PolylinePolygon: [ + * "STRING_VALUE", + * ], + * }, + * }, + * ], + * CarShuttleTrains: true || false, + * ControlledAccessHighways: true || false, + * DirtRoads: true || false, + * Ferries: true || false, + * SeasonalClosure: true || false, + * TollRoads: true || false, + * TollTransponders: true || false, + * TruckRoadTypes: [ // TruckRoadTypeList + * "STRING_VALUE", + * ], + * Tunnels: true || false, + * UTurns: true || false, + * ZoneCategories: [ // IsolineAvoidanceZoneCategoryList + * { // IsolineAvoidanceZoneCategory + * Category: "STRING_VALUE", + * }, + * ], + * }, + * DepartNow: true || false, + * DepartureTime: "STRING_VALUE", + * Destination: "", + * DestinationOptions: { // IsolineDestinationOptions + * AvoidActionsForDistance: Number("long"), + * Heading: Number("double"), + * Matching: { // IsolineMatchingOptions + * NameHint: "STRING_VALUE", + * OnRoadThreshold: Number("long"), + * Radius: Number("long"), + * Strategy: "STRING_VALUE", + * }, + * SideOfStreet: { // IsolineSideOfStreetOptions + * Position: "", // required + * UseWith: "STRING_VALUE", + * }, + * }, + * IsolineGeometryFormat: "STRING_VALUE", + * IsolineGranularity: { // IsolineGranularityOptions + * MaxPoints: Number("int"), + * MaxResolution: Number("long"), + * }, + * Key: "STRING_VALUE", + * OptimizeIsolineFor: "STRING_VALUE", + * OptimizeRoutingFor: "STRING_VALUE", + * Origin: "", + * OriginOptions: { // IsolineOriginOptions + * AvoidActionsForDistance: Number("long"), + * Heading: Number("double"), + * Matching: { + * NameHint: "STRING_VALUE", + * OnRoadThreshold: Number("long"), + * Radius: Number("long"), + * Strategy: "STRING_VALUE", + * }, + * SideOfStreet: { + * Position: "", // required + * UseWith: "STRING_VALUE", + * }, + * }, + * Thresholds: { // IsolineThresholds + * Distance: [ // DistanceThresholdList + * Number("long"), + * ], + * Time: [ // TimeThresholdList + * Number("long"), + * ], + * }, + * Traffic: { // IsolineTrafficOptions + * FlowEventThresholdOverride: Number("long"), + * Usage: "STRING_VALUE", + * }, + * TravelMode: "STRING_VALUE", + * TravelModeOptions: { // IsolineTravelModeOptions + * Car: { // IsolineCarOptions + * EngineType: "STRING_VALUE", + * LicensePlate: { // IsolineVehicleLicensePlate + * LastCharacter: "STRING_VALUE", + * }, + * MaxSpeed: Number("double"), + * Occupancy: Number("int"), + * }, + * Scooter: { // IsolineScooterOptions + * EngineType: "STRING_VALUE", + * LicensePlate: { + * LastCharacter: "STRING_VALUE", + * }, + * MaxSpeed: Number("double"), + * Occupancy: Number("int"), + * }, + * Truck: { // IsolineTruckOptions + * AxleCount: Number("int"), + * EngineType: "STRING_VALUE", + * GrossWeight: Number("long"), + * HazardousCargos: [ // IsolineHazardousCargoTypeList + * "STRING_VALUE", + * ], + * Height: Number("long"), + * HeightAboveFirstAxle: Number("long"), + * KpraLength: Number("long"), + * Length: Number("long"), + * LicensePlate: { + * LastCharacter: "STRING_VALUE", + * }, + * MaxSpeed: Number("double"), + * Occupancy: Number("int"), + * PayloadCapacity: Number("long"), + * TireCount: Number("int"), + * Trailer: { // IsolineTrailerOptions + * AxleCount: Number("int"), + * TrailerCount: Number("int"), + * }, + * TruckType: "STRING_VALUE", + * TunnelRestrictionCode: "STRING_VALUE", + * WeightPerAxle: Number("long"), + * WeightPerAxleGroup: { // WeightPerAxleGroup + * Single: Number("long"), + * Tandem: Number("long"), + * Triple: Number("long"), + * Quad: Number("long"), + * Quint: Number("long"), + * }, + * Width: Number("long"), + * }, + * }, + * }; + * const command = new CalculateIsolinesCommand(input); + * const response = await client.send(command); + * // { // CalculateIsolinesResponse + * // ArrivalTime: "STRING_VALUE", + * // DepartureTime: "STRING_VALUE", + * // IsolineGeometryFormat: "STRING_VALUE", // required + * // Isolines: [ // IsolineList // required + * // { // Isoline + * // Connections: [ // IsolineConnectionList // required + * // { // IsolineConnection + * // FromPolygonIndex: Number("int"), // required + * // Geometry: { // IsolineConnectionGeometry + * // LineString: [ // LineString + * // [ // Position + * // Number("double"), + * // ], + * // ], + * // Polyline: "STRING_VALUE", + * // }, + * // ToPolygonIndex: Number("int"), // required + * // }, + * // ], + * // DistanceThreshold: Number("long"), + * // Geometries: [ // IsolineShapeGeometryList // required + * // { // IsolineShapeGeometry + * // Polygon: [ // LinearRings + * // [ // LinearRing + * // [ + * // Number("double"), + * // ], + * // ], + * // ], + * // PolylinePolygon: [ // PolylineRingList + * // "STRING_VALUE", + * // ], + * // }, + * // ], + * // TimeThreshold: Number("long"), + * // }, + * // ], + * // PricingBucket: "STRING_VALUE", // required + * // SnappedDestination: [ + * // Number("double"), + * // ], + * // SnappedOrigin: [ + * // Number("double"), + * // ], + * // }; + * + * ``` + * + * @param CalculateIsolinesCommandInput - {@link CalculateIsolinesCommandInput} + * @returns {@link CalculateIsolinesCommandOutput} + * @see {@link CalculateIsolinesCommandInput} for command's `input` shape. + * @see {@link CalculateIsolinesCommandOutput} for command's `response` shape. + * @see {@link GeoRoutesClientResolvedConfig | config} for GeoRoutesClient's `config` shape. + * + * @throws {@link AccessDeniedException} (client fault) + *

You don't have sufficient access to perform this action.

+ * + * @throws {@link InternalServerException} (server fault) + *

The request processing has failed because of an unknown error, exception or failure.

+ * + * @throws {@link ThrottlingException} (client fault) + *

The request was denied due to request throttling.

+ * + * @throws {@link ValidationException} (client fault) + *

The input fails to satisfy the constraints specified by an AWS service.

+ * + * @throws {@link GeoRoutesServiceException} + *

Base exception class for all service exceptions from GeoRoutes service.

+ * + * @public + */ +export class CalculateIsolinesCommand extends $Command + .classBuilder< + CalculateIsolinesCommandInput, + CalculateIsolinesCommandOutput, + GeoRoutesClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: GeoRoutesClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("RoutesService", "CalculateIsolines", {}) + .n("GeoRoutesClient", "CalculateIsolinesCommand") + .f(CalculateIsolinesRequestFilterSensitiveLog, CalculateIsolinesResponseFilterSensitiveLog) + .ser(se_CalculateIsolinesCommand) + .de(de_CalculateIsolinesCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: CalculateIsolinesRequest; + output: CalculateIsolinesResponse; + }; + sdk: { + input: CalculateIsolinesCommandInput; + output: CalculateIsolinesCommandOutput; + }; + }; +} diff --git a/clients/client-geo-routes/src/commands/CalculateRouteMatrixCommand.ts b/clients/client-geo-routes/src/commands/CalculateRouteMatrixCommand.ts new file mode 100644 index 0000000000000..84b3548c7f1b7 --- /dev/null +++ b/clients/client-geo-routes/src/commands/CalculateRouteMatrixCommand.ts @@ -0,0 +1,307 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { commonParams } from "../endpoint/EndpointParameters"; +import { GeoRoutesClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../GeoRoutesClient"; +import { + CalculateRouteMatrixRequest, + CalculateRouteMatrixRequestFilterSensitiveLog, + CalculateRouteMatrixResponse, + CalculateRouteMatrixResponseFilterSensitiveLog, +} from "../models/models_0"; +import { de_CalculateRouteMatrixCommand, se_CalculateRouteMatrixCommand } from "../protocols/Aws_restJson1"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link CalculateRouteMatrixCommand}. + */ +export interface CalculateRouteMatrixCommandInput extends CalculateRouteMatrixRequest {} +/** + * @public + * + * The output of {@link CalculateRouteMatrixCommand}. + */ +export interface CalculateRouteMatrixCommandOutput extends CalculateRouteMatrixResponse, __MetadataBearer {} + +/** + *

Calculates route matrix containing the results for all pairs of + * Origins to Destinations. Each row corresponds to one entry in Origins. + * Each entry in the row corresponds to the route from that entry in Origins to an entry in Destinations positions.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { GeoRoutesClient, CalculateRouteMatrixCommand } from "@aws-sdk/client-geo-routes"; // ES Modules import + * // const { GeoRoutesClient, CalculateRouteMatrixCommand } = require("@aws-sdk/client-geo-routes"); // CommonJS import + * const client = new GeoRoutesClient(config); + * const input = { // CalculateRouteMatrixRequest + * Allow: { // RouteMatrixAllowOptions + * Hot: true || false, + * Hov: true || false, + * }, + * Avoid: { // RouteMatrixAvoidanceOptions + * Areas: [ // RouteMatrixAvoidanceAreaList + * { // RouteMatrixAvoidanceArea + * Geometry: { // RouteMatrixAvoidanceAreaGeometry + * BoundingBox: [ // BoundingBox + * Number("double"), + * ], + * Polygon: [ // LinearRings + * [ // LinearRing + * [ // Position + * Number("double"), + * ], + * ], + * ], + * PolylinePolygon: [ // PolylineRingList + * "STRING_VALUE", + * ], + * }, + * }, + * ], + * CarShuttleTrains: true || false, + * ControlledAccessHighways: true || false, + * DirtRoads: true || false, + * Ferries: true || false, + * TollRoads: true || false, + * TollTransponders: true || false, + * TruckRoadTypes: [ // TruckRoadTypeList + * "STRING_VALUE", + * ], + * Tunnels: true || false, + * UTurns: true || false, + * ZoneCategories: [ // RouteMatrixAvoidanceZoneCategoryList + * { // RouteMatrixAvoidanceZoneCategory + * Category: "STRING_VALUE", + * }, + * ], + * }, + * DepartNow: true || false, + * DepartureTime: "STRING_VALUE", + * Destinations: [ // RouteMatrixDestinationList // required + * { // RouteMatrixDestination + * Options: { // RouteMatrixDestinationOptions + * AvoidActionsForDistance: Number("long"), + * Heading: Number("double"), + * Matching: { // RouteMatrixMatchingOptions + * NameHint: "STRING_VALUE", + * OnRoadThreshold: Number("long"), + * Radius: Number("long"), + * Strategy: "STRING_VALUE", + * }, + * SideOfStreet: { // RouteMatrixSideOfStreetOptions + * Position: [ // required + * Number("double"), + * ], + * UseWith: "STRING_VALUE", + * }, + * }, + * Position: "", // required + * }, + * ], + * Exclude: { // RouteMatrixExclusionOptions + * Countries: [ // CountryCodeList // required + * "STRING_VALUE", + * ], + * }, + * Key: "STRING_VALUE", + * OptimizeRoutingFor: "STRING_VALUE", + * Origins: [ // RouteMatrixOriginList // required + * { // RouteMatrixOrigin + * Options: { // RouteMatrixOriginOptions + * AvoidActionsForDistance: Number("long"), + * Heading: Number("double"), + * Matching: { + * NameHint: "STRING_VALUE", + * OnRoadThreshold: Number("long"), + * Radius: Number("long"), + * Strategy: "STRING_VALUE", + * }, + * SideOfStreet: { + * Position: "", // required + * UseWith: "STRING_VALUE", + * }, + * }, + * Position: "", // required + * }, + * ], + * RoutingBoundary: { // RouteMatrixBoundary + * Geometry: { // RouteMatrixBoundaryGeometry + * AutoCircle: { // RouteMatrixAutoCircle + * Margin: Number("long"), + * MaxRadius: Number("long"), + * }, + * Circle: { // Circle + * Center: "", // required + * Radius: Number("double"), // required + * }, + * BoundingBox: [ + * Number("double"), + * ], + * Polygon: [ + * [ + * "", + * ], + * ], + * }, + * Unbounded: true || false, + * }, + * Traffic: { // RouteMatrixTrafficOptions + * FlowEventThresholdOverride: Number("long"), + * Usage: "STRING_VALUE", + * }, + * TravelMode: "STRING_VALUE", + * TravelModeOptions: { // RouteMatrixTravelModeOptions + * Car: { // RouteMatrixCarOptions + * LicensePlate: { // RouteMatrixVehicleLicensePlate + * LastCharacter: "STRING_VALUE", + * }, + * MaxSpeed: Number("double"), + * Occupancy: Number("int"), + * }, + * Scooter: { // RouteMatrixScooterOptions + * LicensePlate: { + * LastCharacter: "STRING_VALUE", + * }, + * MaxSpeed: Number("double"), + * Occupancy: Number("int"), + * }, + * Truck: { // RouteMatrixTruckOptions + * AxleCount: Number("int"), + * GrossWeight: Number("long"), + * HazardousCargos: [ // RouteMatrixHazardousCargoTypeList + * "STRING_VALUE", + * ], + * Height: Number("long"), + * KpraLength: Number("long"), + * Length: Number("long"), + * LicensePlate: { + * LastCharacter: "STRING_VALUE", + * }, + * MaxSpeed: Number("double"), + * Occupancy: Number("int"), + * PayloadCapacity: Number("long"), + * Trailer: { // RouteMatrixTrailerOptions + * TrailerCount: Number("int"), + * }, + * TruckType: "STRING_VALUE", + * TunnelRestrictionCode: "STRING_VALUE", + * WeightPerAxle: Number("long"), + * WeightPerAxleGroup: { // WeightPerAxleGroup + * Single: Number("long"), + * Tandem: Number("long"), + * Triple: Number("long"), + * Quad: Number("long"), + * Quint: Number("long"), + * }, + * Width: Number("long"), + * }, + * }, + * }; + * const command = new CalculateRouteMatrixCommand(input); + * const response = await client.send(command); + * // { // CalculateRouteMatrixResponse + * // ErrorCount: Number("int"), // required + * // PricingBucket: "STRING_VALUE", // required + * // RouteMatrix: [ // RouteMatrix // required + * // [ // RouteMatrixRow + * // { // RouteMatrixEntry + * // Distance: Number("long"), // required + * // Duration: Number("long"), // required + * // Error: "STRING_VALUE", + * // }, + * // ], + * // ], + * // RoutingBoundary: { // RouteMatrixBoundary + * // Geometry: { // RouteMatrixBoundaryGeometry + * // AutoCircle: { // RouteMatrixAutoCircle + * // Margin: Number("long"), + * // MaxRadius: Number("long"), + * // }, + * // Circle: { // Circle + * // Center: [ // Position // required + * // Number("double"), + * // ], + * // Radius: Number("double"), // required + * // }, + * // BoundingBox: [ // BoundingBox + * // Number("double"), + * // ], + * // Polygon: [ // LinearRings + * // [ // LinearRing + * // [ + * // Number("double"), + * // ], + * // ], + * // ], + * // }, + * // Unbounded: true || false, + * // }, + * // }; + * + * ``` + * + * @param CalculateRouteMatrixCommandInput - {@link CalculateRouteMatrixCommandInput} + * @returns {@link CalculateRouteMatrixCommandOutput} + * @see {@link CalculateRouteMatrixCommandInput} for command's `input` shape. + * @see {@link CalculateRouteMatrixCommandOutput} for command's `response` shape. + * @see {@link GeoRoutesClientResolvedConfig | config} for GeoRoutesClient's `config` shape. + * + * @throws {@link AccessDeniedException} (client fault) + *

You don't have sufficient access to perform this action.

+ * + * @throws {@link InternalServerException} (server fault) + *

The request processing has failed because of an unknown error, exception or failure.

+ * + * @throws {@link ThrottlingException} (client fault) + *

The request was denied due to request throttling.

+ * + * @throws {@link ValidationException} (client fault) + *

The input fails to satisfy the constraints specified by an AWS service.

+ * + * @throws {@link GeoRoutesServiceException} + *

Base exception class for all service exceptions from GeoRoutes service.

+ * + * @public + */ +export class CalculateRouteMatrixCommand extends $Command + .classBuilder< + CalculateRouteMatrixCommandInput, + CalculateRouteMatrixCommandOutput, + GeoRoutesClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: GeoRoutesClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("RoutesService", "CalculateRouteMatrix", {}) + .n("GeoRoutesClient", "CalculateRouteMatrixCommand") + .f(CalculateRouteMatrixRequestFilterSensitiveLog, CalculateRouteMatrixResponseFilterSensitiveLog) + .ser(se_CalculateRouteMatrixCommand) + .de(de_CalculateRouteMatrixCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: CalculateRouteMatrixRequest; + output: CalculateRouteMatrixResponse; + }; + sdk: { + input: CalculateRouteMatrixCommandInput; + output: CalculateRouteMatrixCommandOutput; + }; + }; +} diff --git a/clients/client-geo-routes/src/commands/CalculateRoutesCommand.ts b/clients/client-geo-routes/src/commands/CalculateRoutesCommand.ts new file mode 100644 index 0000000000000..a721414e9379c --- /dev/null +++ b/clients/client-geo-routes/src/commands/CalculateRoutesCommand.ts @@ -0,0 +1,995 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { commonParams } from "../endpoint/EndpointParameters"; +import { GeoRoutesClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../GeoRoutesClient"; +import { + CalculateRoutesRequest, + CalculateRoutesRequestFilterSensitiveLog, + CalculateRoutesResponse, + CalculateRoutesResponseFilterSensitiveLog, +} from "../models/models_0"; +import { de_CalculateRoutesCommand, se_CalculateRoutesCommand } from "../protocols/Aws_restJson1"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link CalculateRoutesCommand}. + */ +export interface CalculateRoutesCommandInput extends CalculateRoutesRequest {} +/** + * @public + * + * The output of {@link CalculateRoutesCommand}. + */ +export interface CalculateRoutesCommandOutput extends CalculateRoutesResponse, __MetadataBearer {} + +/** + *

Calculates a route given the following required parameters: + * Origin and Destination.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { GeoRoutesClient, CalculateRoutesCommand } from "@aws-sdk/client-geo-routes"; // ES Modules import + * // const { GeoRoutesClient, CalculateRoutesCommand } = require("@aws-sdk/client-geo-routes"); // CommonJS import + * const client = new GeoRoutesClient(config); + * const input = { // CalculateRoutesRequest + * Allow: { // RouteAllowOptions + * Hot: true || false, + * Hov: true || false, + * }, + * ArrivalTime: "STRING_VALUE", + * Avoid: { // RouteAvoidanceOptions + * Areas: [ // RouteAvoidanceAreaList + * { // RouteAvoidanceArea + * Except: [ // RouteAvoidanceAreaGeometryList + * { // RouteAvoidanceAreaGeometry + * Corridor: { // Corridor + * LineString: [ // LineString // required + * [ // Position + * Number("double"), + * ], + * ], + * Radius: Number("int"), // required + * }, + * BoundingBox: [ // BoundingBox + * Number("double"), + * ], + * Polygon: [ // LinearRings + * [ // LinearRing + * [ + * Number("double"), + * ], + * ], + * ], + * PolylineCorridor: { // PolylineCorridor + * Polyline: "STRING_VALUE", // required + * Radius: Number("int"), // required + * }, + * PolylinePolygon: [ // PolylineRingList + * "STRING_VALUE", + * ], + * }, + * ], + * Geometry: { + * Corridor: { + * LineString: [ // required + * [ + * Number("double"), + * ], + * ], + * Radius: Number("int"), // required + * }, + * BoundingBox: [ + * Number("double"), + * ], + * Polygon: [ + * [ + * [ + * Number("double"), + * ], + * ], + * ], + * PolylineCorridor: { + * Polyline: "STRING_VALUE", // required + * Radius: Number("int"), // required + * }, + * PolylinePolygon: [ + * "STRING_VALUE", + * ], + * }, + * }, + * ], + * CarShuttleTrains: true || false, + * ControlledAccessHighways: true || false, + * DirtRoads: true || false, + * Ferries: true || false, + * SeasonalClosure: true || false, + * TollRoads: true || false, + * TollTransponders: true || false, + * TruckRoadTypes: [ // TruckRoadTypeList + * "STRING_VALUE", + * ], + * Tunnels: true || false, + * UTurns: true || false, + * ZoneCategories: [ // RouteAvoidanceZoneCategoryList + * { // RouteAvoidanceZoneCategory + * Category: "STRING_VALUE", // required + * }, + * ], + * }, + * DepartNow: true || false, + * DepartureTime: "STRING_VALUE", + * Destination: "", // required + * DestinationOptions: { // RouteDestinationOptions + * AvoidActionsForDistance: Number("long"), + * AvoidUTurns: true || false, + * Heading: Number("double"), + * Matching: { // RouteMatchingOptions + * NameHint: "STRING_VALUE", + * OnRoadThreshold: Number("long"), + * Radius: Number("long"), + * Strategy: "STRING_VALUE", + * }, + * SideOfStreet: { // RouteSideOfStreetOptions + * Position: "", // required + * UseWith: "STRING_VALUE", + * }, + * StopDuration: Number("long"), + * }, + * Driver: { // RouteDriverOptions + * Schedule: [ // RouteDriverScheduleIntervalList + * { // RouteDriverScheduleInterval + * DriveDuration: Number("long"), // required + * RestDuration: Number("long"), // required + * }, + * ], + * }, + * Exclude: { // RouteExclusionOptions + * Countries: [ // CountryCodeList // required + * "STRING_VALUE", + * ], + * }, + * InstructionsMeasurementSystem: "STRING_VALUE", + * Key: "STRING_VALUE", + * Languages: [ // LanguageTagList + * "STRING_VALUE", + * ], + * LegAdditionalFeatures: [ // RouteLegAdditionalFeatureList + * "STRING_VALUE", + * ], + * LegGeometryFormat: "STRING_VALUE", + * MaxAlternatives: Number("int"), + * OptimizeRoutingFor: "STRING_VALUE", + * Origin: "", // required + * OriginOptions: { // RouteOriginOptions + * AvoidActionsForDistance: Number("long"), + * AvoidUTurns: true || false, + * Heading: Number("double"), + * Matching: { + * NameHint: "STRING_VALUE", + * OnRoadThreshold: Number("long"), + * Radius: Number("long"), + * Strategy: "STRING_VALUE", + * }, + * SideOfStreet: { + * Position: "", // required + * UseWith: "STRING_VALUE", + * }, + * }, + * SpanAdditionalFeatures: [ // RouteSpanAdditionalFeatureList + * "STRING_VALUE", + * ], + * Tolls: { // RouteTollOptions + * AllTransponders: true || false, + * AllVignettes: true || false, + * Currency: "STRING_VALUE", + * EmissionType: { // RouteEmissionType + * Co2EmissionClass: "STRING_VALUE", + * Type: "STRING_VALUE", // required + * }, + * VehicleCategory: "STRING_VALUE", + * }, + * Traffic: { // RouteTrafficOptions + * FlowEventThresholdOverride: Number("long"), + * Usage: "STRING_VALUE", + * }, + * TravelMode: "STRING_VALUE", + * TravelModeOptions: { // RouteTravelModeOptions + * Car: { // RouteCarOptions + * EngineType: "STRING_VALUE", + * LicensePlate: { // RouteVehicleLicensePlate + * LastCharacter: "STRING_VALUE", + * }, + * MaxSpeed: Number("double"), + * Occupancy: Number("int"), + * }, + * Pedestrian: { // RoutePedestrianOptions + * Speed: Number("double"), + * }, + * Scooter: { // RouteScooterOptions + * EngineType: "STRING_VALUE", + * LicensePlate: { + * LastCharacter: "STRING_VALUE", + * }, + * MaxSpeed: Number("double"), + * Occupancy: Number("int"), + * }, + * Truck: { // RouteTruckOptions + * AxleCount: Number("int"), + * EngineType: "STRING_VALUE", + * GrossWeight: Number("long"), + * HazardousCargos: [ // RouteHazardousCargoTypeList + * "STRING_VALUE", + * ], + * Height: Number("long"), + * HeightAboveFirstAxle: Number("long"), + * KpraLength: Number("long"), + * Length: Number("long"), + * LicensePlate: { + * LastCharacter: "STRING_VALUE", + * }, + * MaxSpeed: Number("double"), + * Occupancy: Number("int"), + * PayloadCapacity: Number("long"), + * TireCount: Number("int"), + * Trailer: { // RouteTrailerOptions + * AxleCount: Number("int"), + * TrailerCount: Number("int"), + * }, + * TruckType: "STRING_VALUE", + * TunnelRestrictionCode: "STRING_VALUE", + * WeightPerAxle: Number("long"), + * WeightPerAxleGroup: { // WeightPerAxleGroup + * Single: Number("long"), + * Tandem: Number("long"), + * Triple: Number("long"), + * Quad: Number("long"), + * Quint: Number("long"), + * }, + * Width: Number("long"), + * }, + * }, + * TravelStepType: "STRING_VALUE", + * Waypoints: [ // RouteWaypointList + * { // RouteWaypoint + * AvoidActionsForDistance: Number("long"), + * AvoidUTurns: true || false, + * Heading: Number("double"), + * Matching: { + * NameHint: "STRING_VALUE", + * OnRoadThreshold: Number("long"), + * Radius: Number("long"), + * Strategy: "STRING_VALUE", + * }, + * PassThrough: true || false, + * Position: "", // required + * SideOfStreet: { + * Position: "", // required + * UseWith: "STRING_VALUE", + * }, + * StopDuration: Number("long"), + * }, + * ], + * }; + * const command = new CalculateRoutesCommand(input); + * const response = await client.send(command); + * // { // CalculateRoutesResponse + * // LegGeometryFormat: "STRING_VALUE", // required + * // Notices: [ // RouteResponseNoticeList // required + * // { // RouteResponseNotice + * // Code: "STRING_VALUE", // required + * // Impact: "STRING_VALUE", + * // }, + * // ], + * // PricingBucket: "STRING_VALUE", // required + * // Routes: [ // RouteList // required + * // { // Route + * // Legs: [ // RouteLegList // required + * // { // RouteLeg + * // FerryLegDetails: { // RouteFerryLegDetails + * // AfterTravelSteps: [ // RouteFerryAfterTravelStepList // required + * // { // RouteFerryAfterTravelStep + * // Duration: Number("long"), // required + * // Instruction: "STRING_VALUE", + * // Type: "STRING_VALUE", // required + * // }, + * // ], + * // Arrival: { // RouteFerryArrival + * // Place: { // RouteFerryPlace + * // Name: "STRING_VALUE", + * // OriginalPosition: [ // Position23 + * // Number("double"), + * // ], + * // Position: [ // required + * // Number("double"), + * // ], + * // WaypointIndex: Number("int"), + * // }, + * // Time: "STRING_VALUE", + * // }, + * // BeforeTravelSteps: [ // RouteFerryBeforeTravelStepList // required + * // { // RouteFerryBeforeTravelStep + * // Duration: Number("long"), // required + * // Instruction: "STRING_VALUE", + * // Type: "STRING_VALUE", // required + * // }, + * // ], + * // Departure: { // RouteFerryDeparture + * // Place: { + * // Name: "STRING_VALUE", + * // OriginalPosition: [ + * // Number("double"), + * // ], + * // Position: [ // required + * // Number("double"), + * // ], + * // WaypointIndex: Number("int"), + * // }, + * // Time: "STRING_VALUE", + * // }, + * // Notices: [ // RouteFerryNoticeList // required + * // { // RouteFerryNotice + * // Code: "STRING_VALUE", // required + * // Impact: "STRING_VALUE", + * // }, + * // ], + * // PassThroughWaypoints: [ // RoutePassThroughWaypointList // required + * // { // RoutePassThroughWaypoint + * // GeometryOffset: Number("int"), + * // Place: { // RoutePassThroughPlace + * // OriginalPosition: [ + * // Number("double"), + * // ], + * // Position: "", // required + * // WaypointIndex: Number("int"), + * // }, + * // }, + * // ], + * // RouteName: "STRING_VALUE", + * // Spans: [ // RouteFerrySpanList // required + * // { // RouteFerrySpan + * // Country: "STRING_VALUE", + * // Distance: Number("long"), + * // Duration: Number("long"), + * // GeometryOffset: Number("int"), + * // Names: [ // LocalizedStringList + * // { // LocalizedString + * // Language: "STRING_VALUE", + * // Value: "STRING_VALUE", // required + * // }, + * // ], + * // Region: "STRING_VALUE", + * // }, + * // ], + * // Summary: { // RouteFerrySummary + * // Overview: { // RouteFerryOverviewSummary + * // Distance: Number("long"), // required + * // Duration: Number("long"), // required + * // }, + * // TravelOnly: { // RouteFerryTravelOnlySummary + * // Duration: Number("long"), // required + * // }, + * // }, + * // TravelSteps: [ // RouteFerryTravelStepList // required + * // { // RouteFerryTravelStep + * // Distance: Number("long"), + * // Duration: Number("long"), // required + * // GeometryOffset: Number("int"), + * // Instruction: "STRING_VALUE", + * // Type: "STRING_VALUE", // required + * // }, + * // ], + * // }, + * // Geometry: { // RouteLegGeometry + * // LineString: [ // LineString + * // [ // Position + * // Number("double"), + * // ], + * // ], + * // Polyline: "STRING_VALUE", + * // }, + * // Language: "STRING_VALUE", + * // PedestrianLegDetails: { // RoutePedestrianLegDetails + * // Arrival: { // RoutePedestrianArrival + * // Place: { // RoutePedestrianPlace + * // Name: "STRING_VALUE", + * // OriginalPosition: "", + * // Position: "", // required + * // SideOfStreet: "STRING_VALUE", + * // WaypointIndex: Number("int"), + * // }, + * // Time: "STRING_VALUE", + * // }, + * // Departure: { // RoutePedestrianDeparture + * // Place: { + * // Name: "STRING_VALUE", + * // OriginalPosition: "", + * // Position: "", // required + * // SideOfStreet: "STRING_VALUE", + * // WaypointIndex: Number("int"), + * // }, + * // Time: "STRING_VALUE", + * // }, + * // Notices: [ // RoutePedestrianNoticeList // required + * // { // RoutePedestrianNotice + * // Code: "STRING_VALUE", // required + * // Impact: "STRING_VALUE", + * // }, + * // ], + * // PassThroughWaypoints: [ // required + * // { + * // GeometryOffset: Number("int"), + * // Place: { + * // OriginalPosition: "", + * // Position: "", // required + * // WaypointIndex: Number("int"), + * // }, + * // }, + * // ], + * // Spans: [ // RoutePedestrianSpanList // required + * // { // RoutePedestrianSpan + * // BestCaseDuration: Number("long"), + * // Country: "STRING_VALUE", + * // Distance: Number("long"), + * // Duration: Number("long"), + * // DynamicSpeed: { // RouteSpanDynamicSpeedDetails + * // BestCaseSpeed: Number("double"), + * // TurnDuration: Number("long"), + * // TypicalSpeed: Number("double"), + * // }, + * // FunctionalClassification: Number("int"), + * // GeometryOffset: Number("int"), + * // Incidents: [ // IndexList + * // Number("int"), + * // ], + * // Names: [ + * // { + * // Language: "STRING_VALUE", + * // Value: "STRING_VALUE", // required + * // }, + * // ], + * // PedestrianAccess: [ // RouteSpanPedestrianAccessAttributeList + * // "STRING_VALUE", + * // ], + * // Region: "STRING_VALUE", + * // RoadAttributes: [ // RouteSpanRoadAttributeList + * // "STRING_VALUE", + * // ], + * // RouteNumbers: [ // RouteNumberList + * // { // RouteNumber + * // Direction: "STRING_VALUE", + * // Language: "STRING_VALUE", + * // Value: "STRING_VALUE", // required + * // }, + * // ], + * // SpeedLimit: { // RouteSpanSpeedLimitDetails + * // MaxSpeed: Number("double"), + * // Unlimited: true || false, + * // }, + * // TypicalDuration: Number("long"), + * // }, + * // ], + * // Summary: { // RoutePedestrianSummary + * // Overview: { // RoutePedestrianOverviewSummary + * // Distance: Number("long"), // required + * // Duration: Number("long"), // required + * // }, + * // TravelOnly: { // RoutePedestrianTravelOnlySummary + * // Duration: Number("long"), // required + * // }, + * // }, + * // TravelSteps: [ // RoutePedestrianTravelStepList // required + * // { // RoutePedestrianTravelStep + * // ContinueStepDetails: { // RouteContinueStepDetails + * // Intersection: [ // required + * // { + * // Language: "STRING_VALUE", + * // Value: "STRING_VALUE", // required + * // }, + * // ], + * // }, + * // CurrentRoad: { // RouteRoad + * // RoadName: [ // required + * // { + * // Language: "STRING_VALUE", + * // Value: "STRING_VALUE", // required + * // }, + * // ], + * // RouteNumber: [ // required + * // { + * // Direction: "STRING_VALUE", + * // Language: "STRING_VALUE", + * // Value: "STRING_VALUE", // required + * // }, + * // ], + * // Towards: [ // required + * // { + * // Language: "STRING_VALUE", + * // Value: "STRING_VALUE", // required + * // }, + * // ], + * // Type: "STRING_VALUE", + * // }, + * // Distance: Number("long"), + * // Duration: Number("long"), // required + * // ExitNumber: "", + * // GeometryOffset: Number("int"), + * // Instruction: "STRING_VALUE", + * // KeepStepDetails: { // RouteKeepStepDetails + * // Intersection: "", // required + * // SteeringDirection: "STRING_VALUE", + * // TurnAngle: Number("double"), + * // TurnIntensity: "STRING_VALUE", + * // }, + * // NextRoad: { + * // RoadName: "", // required + * // RouteNumber: [ // required + * // { + * // Direction: "STRING_VALUE", + * // Language: "STRING_VALUE", + * // Value: "STRING_VALUE", // required + * // }, + * // ], + * // Towards: "", // required + * // Type: "STRING_VALUE", + * // }, + * // RoundaboutEnterStepDetails: { // RouteRoundaboutEnterStepDetails + * // Intersection: "", // required + * // SteeringDirection: "STRING_VALUE", + * // TurnAngle: Number("double"), + * // TurnIntensity: "STRING_VALUE", + * // }, + * // RoundaboutExitStepDetails: { // RouteRoundaboutExitStepDetails + * // Intersection: "", // required + * // RelativeExit: Number("int"), + * // RoundaboutAngle: Number("double"), + * // SteeringDirection: "STRING_VALUE", + * // }, + * // RoundaboutPassStepDetails: { // RouteRoundaboutPassStepDetails + * // Intersection: "", // required + * // SteeringDirection: "STRING_VALUE", + * // TurnAngle: Number("double"), + * // TurnIntensity: "STRING_VALUE", + * // }, + * // Signpost: { // RouteSignpost + * // Labels: [ // RouteSignpostLabelList // required + * // { // RouteSignpostLabel + * // RouteNumber: "", + * // Text: "", + * // }, + * // ], + * // }, + * // TurnStepDetails: { // RouteTurnStepDetails + * // Intersection: "", // required + * // SteeringDirection: "STRING_VALUE", + * // TurnAngle: Number("double"), + * // TurnIntensity: "STRING_VALUE", + * // }, + * // Type: "STRING_VALUE", // required + * // }, + * // ], + * // }, + * // TravelMode: "STRING_VALUE", // required + * // Type: "STRING_VALUE", // required + * // VehicleLegDetails: { // RouteVehicleLegDetails + * // Arrival: { // RouteVehicleArrival + * // Place: { // RouteVehiclePlace + * // Name: "STRING_VALUE", + * // OriginalPosition: "", + * // Position: "", // required + * // SideOfStreet: "STRING_VALUE", + * // WaypointIndex: Number("int"), + * // }, + * // Time: "STRING_VALUE", + * // }, + * // Departure: { // RouteVehicleDeparture + * // Place: { + * // Name: "STRING_VALUE", + * // OriginalPosition: "", + * // Position: "", // required + * // SideOfStreet: "STRING_VALUE", + * // WaypointIndex: Number("int"), + * // }, + * // Time: "STRING_VALUE", + * // }, + * // Incidents: [ // RouteVehicleIncidentList // required + * // { // RouteVehicleIncident + * // Description: "STRING_VALUE", + * // EndTime: "STRING_VALUE", + * // Severity: "STRING_VALUE", + * // StartTime: "STRING_VALUE", + * // Type: "STRING_VALUE", + * // }, + * // ], + * // Notices: [ // RouteVehicleNoticeList // required + * // { // RouteVehicleNotice + * // Code: "STRING_VALUE", // required + * // Details: [ // RouteVehicleNoticeDetailList // required + * // { // RouteVehicleNoticeDetail + * // Title: "STRING_VALUE", + * // ViolatedConstraints: { // RouteViolatedConstraints + * // AllHazardsRestricted: true || false, + * // AxleCount: { // RouteNoticeDetailRange + * // Min: Number("int"), + * // Max: Number("int"), + * // }, + * // HazardousCargos: [ // RouteHazardousCargoTypeList // required + * // "STRING_VALUE", + * // ], + * // MaxHeight: Number("long"), + * // MaxKpraLength: Number("long"), + * // MaxLength: Number("long"), + * // MaxPayloadCapacity: Number("long"), + * // MaxWeight: { // RouteWeightConstraint + * // Type: "STRING_VALUE", // required + * // Value: Number("long"), // required + * // }, + * // MaxWeightPerAxle: Number("long"), + * // MaxWeightPerAxleGroup: { // WeightPerAxleGroup + * // Single: Number("long"), + * // Tandem: Number("long"), + * // Triple: Number("long"), + * // Quad: Number("long"), + * // Quint: Number("long"), + * // }, + * // MaxWidth: Number("long"), + * // Occupancy: { + * // Min: Number("int"), + * // Max: Number("int"), + * // }, + * // RestrictedTimes: "STRING_VALUE", + * // TimeDependent: true || false, + * // TrailerCount: { + * // Min: Number("int"), + * // Max: Number("int"), + * // }, + * // TravelMode: true || false, + * // TruckRoadType: "STRING_VALUE", + * // TruckType: "STRING_VALUE", + * // TunnelRestrictionCode: "STRING_VALUE", + * // }, + * // }, + * // ], + * // Impact: "STRING_VALUE", + * // }, + * // ], + * // PassThroughWaypoints: [ // required + * // { + * // GeometryOffset: Number("int"), + * // Place: { + * // OriginalPosition: "", + * // Position: "", // required + * // WaypointIndex: Number("int"), + * // }, + * // }, + * // ], + * // Spans: [ // RouteVehicleSpanList // required + * // { // RouteVehicleSpan + * // BestCaseDuration: Number("long"), + * // CarAccess: [ // RouteSpanCarAccessAttributeList + * // "STRING_VALUE", + * // ], + * // Country: "STRING_VALUE", + * // Distance: Number("long"), + * // Duration: Number("long"), + * // DynamicSpeed: { + * // BestCaseSpeed: Number("double"), + * // TurnDuration: Number("long"), + * // TypicalSpeed: Number("double"), + * // }, + * // FunctionalClassification: Number("int"), + * // Gate: "STRING_VALUE", + * // GeometryOffset: Number("int"), + * // Incidents: [ + * // Number("int"), + * // ], + * // Names: "", + * // Notices: [ + * // Number("int"), + * // ], + * // RailwayCrossing: "STRING_VALUE", + * // Region: "STRING_VALUE", + * // RoadAttributes: [ + * // "STRING_VALUE", + * // ], + * // RouteNumbers: [ + * // "", + * // ], + * // ScooterAccess: [ // RouteSpanScooterAccessAttributeList + * // "STRING_VALUE", + * // ], + * // SpeedLimit: { + * // MaxSpeed: Number("double"), + * // Unlimited: true || false, + * // }, + * // TollSystems: [ + * // Number("int"), + * // ], + * // TruckAccess: [ // RouteSpanTruckAccessAttributeList + * // "STRING_VALUE", + * // ], + * // TruckRoadTypes: [ + * // Number("int"), + * // ], + * // TypicalDuration: Number("long"), + * // Zones: "", + * // }, + * // ], + * // Summary: { // RouteVehicleSummary + * // Overview: { // RouteVehicleOverviewSummary + * // BestCaseDuration: Number("long"), + * // Distance: Number("long"), // required + * // Duration: Number("long"), // required + * // TypicalDuration: Number("long"), + * // }, + * // TravelOnly: { // RouteVehicleTravelOnlySummary + * // BestCaseDuration: Number("long"), + * // Duration: Number("long"), // required + * // TypicalDuration: Number("long"), + * // }, + * // }, + * // Tolls: [ // RouteTollList // required + * // { // RouteToll + * // Country: "STRING_VALUE", + * // PaymentSites: [ // RouteTollPaymentSiteList // required + * // { // RouteTollPaymentSite + * // Name: "STRING_VALUE", + * // Position: "", // required + * // }, + * // ], + * // Rates: [ // RouteTollRateList // required + * // { // RouteTollRate + * // ApplicableTimes: "STRING_VALUE", + * // ConvertedPrice: { // RouteTollPrice + * // Currency: "STRING_VALUE", // required + * // Estimate: true || false, // required + * // PerDuration: Number("long"), + * // Range: true || false, // required + * // RangeValue: { // RouteTollPriceValueRange + * // Min: Number("double"), // required + * // Max: Number("double"), // required + * // }, + * // Value: Number("double"), // required + * // }, + * // Id: "STRING_VALUE", // required + * // LocalPrice: { + * // Currency: "STRING_VALUE", // required + * // Estimate: true || false, // required + * // PerDuration: Number("long"), + * // Range: true || false, // required + * // RangeValue: { + * // Min: Number("double"), // required + * // Max: Number("double"), // required + * // }, + * // Value: Number("double"), // required + * // }, + * // Name: "STRING_VALUE", // required + * // Pass: { // RouteTollPass + * // IncludesReturnTrip: true || false, + * // SeniorPass: true || false, + * // TransferCount: Number("int"), + * // TripCount: Number("int"), + * // ValidityPeriod: { // RouteTollPassValidityPeriod + * // Period: "STRING_VALUE", // required + * // PeriodCount: Number("int"), + * // }, + * // }, + * // PaymentMethods: [ // RouteTollPaymentMethodList // required + * // "STRING_VALUE", + * // ], + * // Transponders: [ // RouteTransponderList // required + * // { // RouteTransponder + * // SystemName: "STRING_VALUE", + * // }, + * // ], + * // }, + * // ], + * // Systems: "", // required + * // }, + * // ], + * // TollSystems: [ // RouteTollSystemList // required + * // { // RouteTollSystem + * // Name: "STRING_VALUE", + * // }, + * // ], + * // TravelSteps: [ // RouteVehicleTravelStepList // required + * // { // RouteVehicleTravelStep + * // ContinueHighwayStepDetails: { // RouteContinueHighwayStepDetails + * // Intersection: "", // required + * // SteeringDirection: "STRING_VALUE", + * // TurnAngle: Number("double"), + * // TurnIntensity: "STRING_VALUE", + * // }, + * // ContinueStepDetails: { + * // Intersection: "", // required + * // }, + * // CurrentRoad: { + * // RoadName: "", // required + * // RouteNumber: [ // required + * // "", + * // ], + * // Towards: "", // required + * // Type: "STRING_VALUE", + * // }, + * // Distance: Number("long"), + * // Duration: Number("long"), // required + * // EnterHighwayStepDetails: { // RouteEnterHighwayStepDetails + * // Intersection: "", // required + * // SteeringDirection: "STRING_VALUE", + * // TurnAngle: Number("double"), + * // TurnIntensity: "STRING_VALUE", + * // }, + * // ExitNumber: "", + * // ExitStepDetails: { // RouteExitStepDetails + * // Intersection: "", // required + * // RelativeExit: Number("int"), + * // SteeringDirection: "STRING_VALUE", + * // TurnAngle: Number("double"), + * // TurnIntensity: "STRING_VALUE", + * // }, + * // GeometryOffset: Number("int"), + * // Instruction: "STRING_VALUE", + * // KeepStepDetails: { + * // Intersection: "", // required + * // SteeringDirection: "STRING_VALUE", + * // TurnAngle: Number("double"), + * // TurnIntensity: "STRING_VALUE", + * // }, + * // NextRoad: { + * // RoadName: "", // required + * // RouteNumber: "", // required + * // Towards: "", // required + * // Type: "STRING_VALUE", + * // }, + * // RampStepDetails: { // RouteRampStepDetails + * // Intersection: "", // required + * // SteeringDirection: "STRING_VALUE", + * // TurnAngle: Number("double"), + * // TurnIntensity: "STRING_VALUE", + * // }, + * // RoundaboutEnterStepDetails: { + * // Intersection: "", // required + * // SteeringDirection: "STRING_VALUE", + * // TurnAngle: Number("double"), + * // TurnIntensity: "STRING_VALUE", + * // }, + * // RoundaboutExitStepDetails: { + * // Intersection: "", // required + * // RelativeExit: Number("int"), + * // RoundaboutAngle: Number("double"), + * // SteeringDirection: "STRING_VALUE", + * // }, + * // RoundaboutPassStepDetails: { + * // Intersection: "", // required + * // SteeringDirection: "STRING_VALUE", + * // TurnAngle: Number("double"), + * // TurnIntensity: "STRING_VALUE", + * // }, + * // Signpost: { + * // Labels: [ // required + * // { + * // RouteNumber: "", + * // Text: "", + * // }, + * // ], + * // }, + * // TurnStepDetails: { + * // Intersection: "", // required + * // SteeringDirection: "STRING_VALUE", + * // TurnAngle: Number("double"), + * // TurnIntensity: "STRING_VALUE", + * // }, + * // Type: "STRING_VALUE", // required + * // UTurnStepDetails: { // RouteUTurnStepDetails + * // Intersection: "", // required + * // SteeringDirection: "STRING_VALUE", + * // TurnAngle: Number("double"), + * // TurnIntensity: "STRING_VALUE", + * // }, + * // }, + * // ], + * // TruckRoadTypes: [ // TruckRoadTypeList // required + * // "STRING_VALUE", + * // ], + * // Zones: [ // RouteZoneList // required + * // { // RouteZone + * // Category: "STRING_VALUE", + * // Name: "STRING_VALUE", + * // }, + * // ], + * // }, + * // }, + * // ], + * // MajorRoadLabels: [ // RouteMajorRoadLabelList // required + * // { // RouteMajorRoadLabel + * // RoadName: "", + * // RouteNumber: "", + * // }, + * // ], + * // Summary: { // RouteSummary + * // Distance: Number("long"), + * // Duration: Number("long"), + * // Tolls: { // RouteTollSummary + * // Total: { // RouteTollPriceSummary + * // Currency: "STRING_VALUE", // required + * // Estimate: true || false, // required + * // Range: true || false, // required + * // RangeValue: { + * // Min: Number("double"), // required + * // Max: Number("double"), // required + * // }, + * // Value: Number("double"), // required + * // }, + * // }, + * // }, + * // }, + * // ], + * // }; + * + * ``` + * + * @param CalculateRoutesCommandInput - {@link CalculateRoutesCommandInput} + * @returns {@link CalculateRoutesCommandOutput} + * @see {@link CalculateRoutesCommandInput} for command's `input` shape. + * @see {@link CalculateRoutesCommandOutput} for command's `response` shape. + * @see {@link GeoRoutesClientResolvedConfig | config} for GeoRoutesClient's `config` shape. + * + * @throws {@link AccessDeniedException} (client fault) + *

You don't have sufficient access to perform this action.

+ * + * @throws {@link InternalServerException} (server fault) + *

The request processing has failed because of an unknown error, exception or failure.

+ * + * @throws {@link ThrottlingException} (client fault) + *

The request was denied due to request throttling.

+ * + * @throws {@link ValidationException} (client fault) + *

The input fails to satisfy the constraints specified by an AWS service.

+ * + * @throws {@link GeoRoutesServiceException} + *

Base exception class for all service exceptions from GeoRoutes service.

+ * + * @public + */ +export class CalculateRoutesCommand extends $Command + .classBuilder< + CalculateRoutesCommandInput, + CalculateRoutesCommandOutput, + GeoRoutesClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: GeoRoutesClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("RoutesService", "CalculateRoutes", {}) + .n("GeoRoutesClient", "CalculateRoutesCommand") + .f(CalculateRoutesRequestFilterSensitiveLog, CalculateRoutesResponseFilterSensitiveLog) + .ser(se_CalculateRoutesCommand) + .de(de_CalculateRoutesCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: CalculateRoutesRequest; + output: CalculateRoutesResponse; + }; + sdk: { + input: CalculateRoutesCommandInput; + output: CalculateRoutesCommandOutput; + }; + }; +} diff --git a/clients/client-geo-routes/src/commands/OptimizeWaypointsCommand.ts b/clients/client-geo-routes/src/commands/OptimizeWaypointsCommand.ts new file mode 100644 index 0000000000000..fa6136e3325f6 --- /dev/null +++ b/clients/client-geo-routes/src/commands/OptimizeWaypointsCommand.ts @@ -0,0 +1,277 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { commonParams } from "../endpoint/EndpointParameters"; +import { GeoRoutesClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../GeoRoutesClient"; +import { + OptimizeWaypointsRequest, + OptimizeWaypointsRequestFilterSensitiveLog, + OptimizeWaypointsResponse, + OptimizeWaypointsResponseFilterSensitiveLog, +} from "../models/models_0"; +import { de_OptimizeWaypointsCommand, se_OptimizeWaypointsCommand } from "../protocols/Aws_restJson1"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link OptimizeWaypointsCommand}. + */ +export interface OptimizeWaypointsCommandInput extends OptimizeWaypointsRequest {} +/** + * @public + * + * The output of {@link OptimizeWaypointsCommand}. + */ +export interface OptimizeWaypointsCommandOutput extends OptimizeWaypointsResponse, __MetadataBearer {} + +/** + *

Calculates the optimal order to travel between a set of waypoints to minimize either the + * travel time or the distance travelled during the journey, based on road network + * restrictions and the traffic pattern data.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { GeoRoutesClient, OptimizeWaypointsCommand } from "@aws-sdk/client-geo-routes"; // ES Modules import + * // const { GeoRoutesClient, OptimizeWaypointsCommand } = require("@aws-sdk/client-geo-routes"); // CommonJS import + * const client = new GeoRoutesClient(config); + * const input = { // OptimizeWaypointsRequest + * Avoid: { // WaypointOptimizationAvoidanceOptions + * Areas: [ // WaypointOptimizationAvoidanceAreaList + * { // WaypointOptimizationAvoidanceArea + * Geometry: { // WaypointOptimizationAvoidanceAreaGeometry + * BoundingBox: [ // BoundingBox + * Number("double"), + * ], + * }, + * }, + * ], + * CarShuttleTrains: true || false, + * ControlledAccessHighways: true || false, + * DirtRoads: true || false, + * Ferries: true || false, + * TollRoads: true || false, + * Tunnels: true || false, + * UTurns: true || false, + * }, + * DepartureTime: "STRING_VALUE", + * Destination: [ // Position + * Number("double"), + * ], + * DestinationOptions: { // WaypointOptimizationDestinationOptions + * AccessHours: { // WaypointOptimizationAccessHours + * From: { // WaypointOptimizationAccessHoursEntry + * DayOfWeek: "STRING_VALUE", // required + * TimeOfDay: "STRING_VALUE", // required + * }, + * To: { + * DayOfWeek: "STRING_VALUE", // required + * TimeOfDay: "STRING_VALUE", // required + * }, + * }, + * AppointmentTime: "STRING_VALUE", + * Heading: Number("double"), + * Id: "STRING_VALUE", + * ServiceDuration: Number("long"), + * SideOfStreet: { // WaypointOptimizationSideOfStreetOptions + * Position: [ // required + * Number("double"), + * ], + * UseWith: "STRING_VALUE", + * }, + * }, + * Driver: { // WaypointOptimizationDriverOptions + * RestCycles: { // WaypointOptimizationRestCycles + * LongCycle: { // WaypointOptimizationRestCycleDurations + * RestDuration: Number("long"), // required + * WorkDuration: Number("long"), // required + * }, + * ShortCycle: { + * RestDuration: Number("long"), // required + * WorkDuration: Number("long"), // required + * }, + * }, + * RestProfile: { // WaypointOptimizationRestProfile + * Profile: "STRING_VALUE", // required + * }, + * TreatServiceTimeAs: "STRING_VALUE", + * }, + * Exclude: { // WaypointOptimizationExclusionOptions + * Countries: [ // CountryCodeList // required + * "STRING_VALUE", + * ], + * }, + * Key: "STRING_VALUE", + * OptimizeSequencingFor: "STRING_VALUE", + * Origin: [ // required + * Number("double"), + * ], + * OriginOptions: { // WaypointOptimizationOriginOptions + * Id: "STRING_VALUE", + * }, + * Traffic: { // WaypointOptimizationTrafficOptions + * Usage: "STRING_VALUE", + * }, + * TravelMode: "STRING_VALUE", + * TravelModeOptions: { // WaypointOptimizationTravelModeOptions + * Pedestrian: { // WaypointOptimizationPedestrianOptions + * Speed: Number("double"), + * }, + * Truck: { // WaypointOptimizationTruckOptions + * GrossWeight: Number("long"), + * HazardousCargos: [ // WaypointOptimizationHazardousCargoTypeList + * "STRING_VALUE", + * ], + * Height: Number("long"), + * Length: Number("long"), + * Trailer: { // WaypointOptimizationTrailerOptions + * TrailerCount: Number("int"), + * }, + * TruckType: "STRING_VALUE", + * TunnelRestrictionCode: "STRING_VALUE", + * WeightPerAxle: Number("long"), + * Width: Number("long"), + * }, + * }, + * Waypoints: [ // WaypointOptimizationWaypointList + * { // WaypointOptimizationWaypoint + * AccessHours: { + * From: { + * DayOfWeek: "STRING_VALUE", // required + * TimeOfDay: "STRING_VALUE", // required + * }, + * To: { + * DayOfWeek: "STRING_VALUE", // required + * TimeOfDay: "STRING_VALUE", // required + * }, + * }, + * AppointmentTime: "STRING_VALUE", + * Before: [ // BeforeWaypointsList + * Number("int"), + * ], + * Heading: Number("double"), + * Id: "STRING_VALUE", + * Position: [ // required + * Number("double"), + * ], + * ServiceDuration: Number("long"), + * SideOfStreet: { + * Position: "", // required + * UseWith: "STRING_VALUE", + * }, + * }, + * ], + * }; + * const command = new OptimizeWaypointsCommand(input); + * const response = await client.send(command); + * // { // OptimizeWaypointsResponse + * // Connections: [ // WaypointOptimizationConnectionList // required + * // { // WaypointOptimizationConnection + * // Distance: Number("long"), // required + * // From: "STRING_VALUE", // required + * // RestDuration: Number("long"), // required + * // To: "STRING_VALUE", // required + * // TravelDuration: Number("long"), // required + * // WaitDuration: Number("long"), // required + * // }, + * // ], + * // Distance: Number("long"), // required + * // Duration: Number("long"), // required + * // ImpedingWaypoints: [ // WaypointOptimizationImpedingWaypointList // required + * // { // WaypointOptimizationImpedingWaypoint + * // FailedConstraints: [ // WaypointOptimizationFailedConstraintList // required + * // { // WaypointOptimizationFailedConstraint + * // Constraint: "STRING_VALUE", + * // Reason: "STRING_VALUE", + * // }, + * // ], + * // Id: "STRING_VALUE", // required + * // Position: [ // Position // required + * // Number("double"), + * // ], + * // }, + * // ], + * // OptimizedWaypoints: [ // WaypointOptimizationOptimizedWaypointList // required + * // { // WaypointOptimizationOptimizedWaypoint + * // ArrivalTime: "STRING_VALUE", + * // DepartureTime: "STRING_VALUE", // required + * // Id: "STRING_VALUE", // required + * // Position: [ // required + * // Number("double"), + * // ], + * // }, + * // ], + * // PricingBucket: "STRING_VALUE", // required + * // TimeBreakdown: { // WaypointOptimizationTimeBreakdown + * // RestDuration: Number("long"), // required + * // ServiceDuration: Number("long"), // required + * // TravelDuration: Number("long"), // required + * // WaitDuration: Number("long"), // required + * // }, + * // }; + * + * ``` + * + * @param OptimizeWaypointsCommandInput - {@link OptimizeWaypointsCommandInput} + * @returns {@link OptimizeWaypointsCommandOutput} + * @see {@link OptimizeWaypointsCommandInput} for command's `input` shape. + * @see {@link OptimizeWaypointsCommandOutput} for command's `response` shape. + * @see {@link GeoRoutesClientResolvedConfig | config} for GeoRoutesClient's `config` shape. + * + * @throws {@link AccessDeniedException} (client fault) + *

You don't have sufficient access to perform this action.

+ * + * @throws {@link InternalServerException} (server fault) + *

The request processing has failed because of an unknown error, exception or failure.

+ * + * @throws {@link ThrottlingException} (client fault) + *

The request was denied due to request throttling.

+ * + * @throws {@link ValidationException} (client fault) + *

The input fails to satisfy the constraints specified by an AWS service.

+ * + * @throws {@link GeoRoutesServiceException} + *

Base exception class for all service exceptions from GeoRoutes service.

+ * + * @public + */ +export class OptimizeWaypointsCommand extends $Command + .classBuilder< + OptimizeWaypointsCommandInput, + OptimizeWaypointsCommandOutput, + GeoRoutesClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: GeoRoutesClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("RoutesService", "OptimizeWaypoints", {}) + .n("GeoRoutesClient", "OptimizeWaypointsCommand") + .f(OptimizeWaypointsRequestFilterSensitiveLog, OptimizeWaypointsResponseFilterSensitiveLog) + .ser(se_OptimizeWaypointsCommand) + .de(de_OptimizeWaypointsCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: OptimizeWaypointsRequest; + output: OptimizeWaypointsResponse; + }; + sdk: { + input: OptimizeWaypointsCommandInput; + output: OptimizeWaypointsCommandOutput; + }; + }; +} diff --git a/clients/client-geo-routes/src/commands/SnapToRoadsCommand.ts b/clients/client-geo-routes/src/commands/SnapToRoadsCommand.ts new file mode 100644 index 0000000000000..01a7bed5c8193 --- /dev/null +++ b/clients/client-geo-routes/src/commands/SnapToRoadsCommand.ts @@ -0,0 +1,166 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { commonParams } from "../endpoint/EndpointParameters"; +import { GeoRoutesClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../GeoRoutesClient"; +import { + SnapToRoadsRequest, + SnapToRoadsRequestFilterSensitiveLog, + SnapToRoadsResponse, + SnapToRoadsResponseFilterSensitiveLog, +} from "../models/models_0"; +import { de_SnapToRoadsCommand, se_SnapToRoadsCommand } from "../protocols/Aws_restJson1"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link SnapToRoadsCommand}. + */ +export interface SnapToRoadsCommandInput extends SnapToRoadsRequest {} +/** + * @public + * + * The output of {@link SnapToRoadsCommand}. + */ +export interface SnapToRoadsCommandOutput extends SnapToRoadsResponse, __MetadataBearer {} + +/** + *

The SnapToRoads action matches GPS trace to roads most likely traveled on.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { GeoRoutesClient, SnapToRoadsCommand } from "@aws-sdk/client-geo-routes"; // ES Modules import + * // const { GeoRoutesClient, SnapToRoadsCommand } = require("@aws-sdk/client-geo-routes"); // CommonJS import + * const client = new GeoRoutesClient(config); + * const input = { // SnapToRoadsRequest + * Key: "STRING_VALUE", + * SnappedGeometryFormat: "STRING_VALUE", + * SnapRadius: Number("long"), + * TracePoints: [ // RoadSnapTracePointList // required + * { // RoadSnapTracePoint + * Heading: Number("double"), + * Position: [ // Position // required + * Number("double"), + * ], + * Speed: Number("double"), + * Timestamp: "STRING_VALUE", + * }, + * ], + * TravelMode: "STRING_VALUE", + * TravelModeOptions: { // RoadSnapTravelModeOptions + * Truck: { // RoadSnapTruckOptions + * GrossWeight: Number("long"), + * HazardousCargos: [ // RoadSnapHazardousCargoTypeList + * "STRING_VALUE", + * ], + * Height: Number("long"), + * Length: Number("long"), + * Trailer: { // RoadSnapTrailerOptions + * TrailerCount: Number("int"), + * }, + * TunnelRestrictionCode: "STRING_VALUE", + * Width: Number("long"), + * }, + * }, + * }; + * const command = new SnapToRoadsCommand(input); + * const response = await client.send(command); + * // { // SnapToRoadsResponse + * // Notices: [ // RoadSnapNoticeList // required + * // { // RoadSnapNotice + * // Code: "STRING_VALUE", // required + * // Title: "STRING_VALUE", // required + * // TracePointIndexes: [ // RoadSnapTracePointIndexList // required + * // Number("int"), + * // ], + * // }, + * // ], + * // PricingBucket: "STRING_VALUE", // required + * // SnappedGeometry: { // RoadSnapSnappedGeometry + * // LineString: [ // LineString + * // [ // Position + * // Number("double"), + * // ], + * // ], + * // Polyline: "STRING_VALUE", + * // }, + * // SnappedGeometryFormat: "STRING_VALUE", // required + * // SnappedTracePoints: [ // RoadSnapSnappedTracePointList // required + * // { // RoadSnapSnappedTracePoint + * // Confidence: Number("double"), // required + * // OriginalPosition: [ // required + * // Number("double"), + * // ], + * // SnappedPosition: [ // required + * // Number("double"), + * // ], + * // }, + * // ], + * // }; + * + * ``` + * + * @param SnapToRoadsCommandInput - {@link SnapToRoadsCommandInput} + * @returns {@link SnapToRoadsCommandOutput} + * @see {@link SnapToRoadsCommandInput} for command's `input` shape. + * @see {@link SnapToRoadsCommandOutput} for command's `response` shape. + * @see {@link GeoRoutesClientResolvedConfig | config} for GeoRoutesClient's `config` shape. + * + * @throws {@link AccessDeniedException} (client fault) + *

You don't have sufficient access to perform this action.

+ * + * @throws {@link InternalServerException} (server fault) + *

The request processing has failed because of an unknown error, exception or failure.

+ * + * @throws {@link ThrottlingException} (client fault) + *

The request was denied due to request throttling.

+ * + * @throws {@link ValidationException} (client fault) + *

The input fails to satisfy the constraints specified by an AWS service.

+ * + * @throws {@link GeoRoutesServiceException} + *

Base exception class for all service exceptions from GeoRoutes service.

+ * + * @public + */ +export class SnapToRoadsCommand extends $Command + .classBuilder< + SnapToRoadsCommandInput, + SnapToRoadsCommandOutput, + GeoRoutesClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: GeoRoutesClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("RoutesService", "SnapToRoads", {}) + .n("GeoRoutesClient", "SnapToRoadsCommand") + .f(SnapToRoadsRequestFilterSensitiveLog, SnapToRoadsResponseFilterSensitiveLog) + .ser(se_SnapToRoadsCommand) + .de(de_SnapToRoadsCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: SnapToRoadsRequest; + output: SnapToRoadsResponse; + }; + sdk: { + input: SnapToRoadsCommandInput; + output: SnapToRoadsCommandOutput; + }; + }; +} diff --git a/clients/client-geo-routes/src/commands/index.ts b/clients/client-geo-routes/src/commands/index.ts new file mode 100644 index 0000000000000..c635013d83540 --- /dev/null +++ b/clients/client-geo-routes/src/commands/index.ts @@ -0,0 +1,6 @@ +// smithy-typescript generated code +export * from "./CalculateIsolinesCommand"; +export * from "./CalculateRouteMatrixCommand"; +export * from "./CalculateRoutesCommand"; +export * from "./OptimizeWaypointsCommand"; +export * from "./SnapToRoadsCommand"; diff --git a/clients/client-geo-routes/src/endpoint/EndpointParameters.ts b/clients/client-geo-routes/src/endpoint/EndpointParameters.ts new file mode 100644 index 0000000000000..ede2aee2c0139 --- /dev/null +++ b/clients/client-geo-routes/src/endpoint/EndpointParameters.ts @@ -0,0 +1,41 @@ +// smithy-typescript generated code +import { Endpoint, EndpointParameters as __EndpointParameters, EndpointV2, Provider } from "@smithy/types"; + +/** + * @public + */ +export interface ClientInputEndpointParameters { + useDualstackEndpoint?: boolean | Provider; + useFipsEndpoint?: boolean | Provider; + endpoint?: string | Provider | Endpoint | Provider | EndpointV2 | Provider; + region?: string | Provider; +} + +export type ClientResolvedEndpointParameters = ClientInputEndpointParameters & { + defaultSigningName: string; +}; + +export const resolveClientEndpointParameters = ( + options: T & ClientInputEndpointParameters +): T & ClientResolvedEndpointParameters => { + return { + ...options, + useDualstackEndpoint: options.useDualstackEndpoint ?? false, + useFipsEndpoint: options.useFipsEndpoint ?? false, + defaultSigningName: "geo-routes", + }; +}; + +export const commonParams = { + UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" }, + Endpoint: { type: "builtInParams", name: "endpoint" }, + Region: { type: "builtInParams", name: "region" }, + UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" }, +} as const; + +export interface EndpointParameters extends __EndpointParameters { + UseDualStack?: boolean; + UseFIPS?: boolean; + Endpoint?: string; + Region?: string; +} diff --git a/clients/client-geo-routes/src/endpoint/endpointResolver.ts b/clients/client-geo-routes/src/endpoint/endpointResolver.ts new file mode 100644 index 0000000000000..ccee107f30d6d --- /dev/null +++ b/clients/client-geo-routes/src/endpoint/endpointResolver.ts @@ -0,0 +1,26 @@ +// smithy-typescript generated code +import { awsEndpointFunctions } from "@aws-sdk/util-endpoints"; +import { EndpointV2, Logger } from "@smithy/types"; +import { customEndpointFunctions, EndpointCache, EndpointParams, resolveEndpoint } from "@smithy/util-endpoints"; + +import { EndpointParameters } from "./EndpointParameters"; +import { ruleSet } from "./ruleset"; + +const cache = new EndpointCache({ + size: 50, + params: ["Endpoint", "Region", "UseDualStack", "UseFIPS"], +}); + +export const defaultEndpointResolver = ( + endpointParams: EndpointParameters, + context: { logger?: Logger } = {} +): EndpointV2 => { + return cache.get(endpointParams as EndpointParams, () => + resolveEndpoint(ruleSet, { + endpointParams: endpointParams as EndpointParams, + logger: context.logger, + }) + ); +}; + +customEndpointFunctions.aws = awsEndpointFunctions; diff --git a/clients/client-geo-routes/src/endpoint/ruleset.ts b/clients/client-geo-routes/src/endpoint/ruleset.ts new file mode 100644 index 0000000000000..0c6cb42f56609 --- /dev/null +++ b/clients/client-geo-routes/src/endpoint/ruleset.ts @@ -0,0 +1,34 @@ +// @ts-nocheck +// generated code, do not edit +import { RuleSetObject } from "@smithy/types"; + +/* This file is compressed. Log this object + or see "smithy.rules#endpointRuleSet" + in codegen/sdk-codegen/aws-models/geo-routes.json */ + +const u="required", +v="fn", +w="argv", +x="ref"; +const a=true, +b="isSet", +c="booleanEquals", +d="error", +e="endpoint", +f="tree", +g="PartitionResult", +h={[u]:true,"default":false,"type":"Boolean"}, +i={[u]:false,"type":"String"}, +j={[x]:"Endpoint"}, +k={[v]:c,[w]:[{[x]:"UseFIPS"},true]}, +l={[v]:c,[w]:[{[x]:"UseDualStack"},true]}, +m={}, +n={[v]:"stringEquals",[w]:[{[v]:"getAttr",[w]:[{[x]:g},"name"]},"aws"]}, +o={[v]:c,[w]:[{[x]:"UseFIPS"},false]}, +p={[v]:c,[w]:[{[x]:"UseDualStack"},false]}, +q={[v]:"stringEquals",[w]:[{[v]:"getAttr",[w]:[{[x]:g},"name"]},"aws-us-gov"]}, +r={[v]:"getAttr",[w]:[{[x]:g},"supportsFIPS"]}, +s={[v]:c,[w]:[true,{[v]:"getAttr",[w]:[{[x]:g},"supportsDualStack"]}]}, +t=[{[x]:"Region"}]; +const _data={version:"1.0",parameters:{UseDualStack:h,UseFIPS:h,Endpoint:i,Region:i},rules:[{conditions:[{[v]:b,[w]:[j]}],rules:[{conditions:[k],error:"Invalid Configuration: FIPS and custom endpoint are not supported",type:d},{rules:[{conditions:[l],error:"Invalid Configuration: Dualstack and custom endpoint are not supported",type:d},{endpoint:{url:j,properties:m,headers:m},type:e}],type:f}],type:f},{rules:[{conditions:[{[v]:b,[w]:t}],rules:[{conditions:[{[v]:"aws.partition",[w]:t,assign:g}],rules:[{conditions:[n,o,p],endpoint:{url:"https://routes.geo.{Region}.{PartitionResult#dnsSuffix}/v2",properties:m,headers:m},type:e},{conditions:[n,k,l],endpoint:{url:"https://routes.geo-fips.{Region}.{PartitionResult#dualStackDnsSuffix}/v2",properties:m,headers:m},type:e},{conditions:[n,k,p],endpoint:{url:"https://routes.geo-fips.{Region}.{PartitionResult#dnsSuffix}/v2",properties:m,headers:m},type:e},{conditions:[n,o,l],endpoint:{url:"https://routes.geo.{Region}.{PartitionResult#dualStackDnsSuffix}/v2",properties:m,headers:m},type:e},{conditions:[q,o,p],endpoint:{url:"https://routes.geo.{Region}.us-gov.{PartitionResult#dnsSuffix}/v2",properties:m,headers:m},type:e},{conditions:[q,k,l],endpoint:{url:"https://routes.geo-fips.{Region}.us-gov.{PartitionResult#dualStackDnsSuffix}/v2",properties:m,headers:m},type:e},{conditions:[q,k,p],endpoint:{url:"https://routes.geo-fips.{Region}.us-gov.{PartitionResult#dnsSuffix}/v2",properties:m,headers:m},type:e},{conditions:[q,o,l],endpoint:{url:"https://routes.geo.{Region}.us-gov.{PartitionResult#dualStackDnsSuffix}/v2",properties:m,headers:m},type:e},{conditions:[k,l],rules:[{conditions:[{[v]:c,[w]:[a,r]},s],rules:[{endpoint:{url:"https://geo-routes-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:m,headers:m},type:e}],type:f},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",type:d}],type:f},{conditions:[k,p],rules:[{conditions:[{[v]:c,[w]:[r,a]}],rules:[{endpoint:{url:"https://geo-routes-fips.{Region}.{PartitionResult#dnsSuffix}",properties:m,headers:m},type:e}],type:f},{error:"FIPS is enabled but this partition does not support FIPS",type:d}],type:f},{conditions:[o,l],rules:[{conditions:[s],rules:[{endpoint:{url:"https://geo-routes.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:m,headers:m},type:e}],type:f},{error:"DualStack is enabled but this partition does not support DualStack",type:d}],type:f},{endpoint:{url:"https://geo-routes.{Region}.{PartitionResult#dnsSuffix}",properties:m,headers:m},type:e}],type:f}],type:f},{error:"Invalid Configuration: Missing Region",type:d}],type:f}]}; +export const ruleSet: RuleSetObject = _data; diff --git a/clients/client-geo-routes/src/extensionConfiguration.ts b/clients/client-geo-routes/src/extensionConfiguration.ts new file mode 100644 index 0000000000000..3a0008f4c8d50 --- /dev/null +++ b/clients/client-geo-routes/src/extensionConfiguration.ts @@ -0,0 +1,15 @@ +// smithy-typescript generated code +import { AwsRegionExtensionConfiguration } from "@aws-sdk/types"; +import { HttpHandlerExtensionConfiguration } from "@smithy/protocol-http"; +import { DefaultExtensionConfiguration } from "@smithy/types"; + +import { HttpAuthExtensionConfiguration } from "./auth/httpAuthExtensionConfiguration"; + +/** + * @internal + */ +export interface GeoRoutesExtensionConfiguration + extends HttpHandlerExtensionConfiguration, + DefaultExtensionConfiguration, + AwsRegionExtensionConfiguration, + HttpAuthExtensionConfiguration {} diff --git a/clients/client-geo-routes/src/index.ts b/clients/client-geo-routes/src/index.ts new file mode 100644 index 0000000000000..80963e7b575f0 --- /dev/null +++ b/clients/client-geo-routes/src/index.ts @@ -0,0 +1,36 @@ +// smithy-typescript generated code +/* eslint-disable */ +/** + *

With the Amazon Location Routes API you can calculate + * routes and estimate travel time based on up-to-date road network and live + * traffic information.

+ *

Calculate optimal travel routes and estimate travel times using up-to-date road network and traffic data. Key features include:

+ *
    + *
  • + *

    Point-to-point routing with estimated travel time, distance, and turn-by-turn directions

    + *
  • + *
  • + *

    Multi-point route optimization to minimize travel time or distance

    + *
  • + *
  • + *

    Route matrices for efficient multi-destination planning

    + *
  • + *
  • + *

    Isoline calculations to determine reachable areas within specified time or distance thresholds

    + *
  • + *
  • + *

    Map-matching to align GPS traces with the road network

    + *
  • + *
+ * + * @packageDocumentation + */ +export * from "./GeoRoutesClient"; +export * from "./GeoRoutes"; +export { ClientInputEndpointParameters } from "./endpoint/EndpointParameters"; +export type { RuntimeExtension } from "./runtimeExtensions"; +export type { GeoRoutesExtensionConfiguration } from "./extensionConfiguration"; +export * from "./commands"; +export * from "./models"; + +export { GeoRoutesServiceException } from "./models/GeoRoutesServiceException"; diff --git a/clients/client-geo-routes/src/models/GeoRoutesServiceException.ts b/clients/client-geo-routes/src/models/GeoRoutesServiceException.ts new file mode 100644 index 0000000000000..a776126d3abdf --- /dev/null +++ b/clients/client-geo-routes/src/models/GeoRoutesServiceException.ts @@ -0,0 +1,24 @@ +// smithy-typescript generated code +import { + ServiceException as __ServiceException, + ServiceExceptionOptions as __ServiceExceptionOptions, +} from "@smithy/smithy-client"; + +export type { __ServiceExceptionOptions }; + +export { __ServiceException }; + +/** + * @public + * + * Base exception class for all service exceptions from GeoRoutes service. + */ +export class GeoRoutesServiceException extends __ServiceException { + /** + * @internal + */ + constructor(options: __ServiceExceptionOptions) { + super(options); + Object.setPrototypeOf(this, GeoRoutesServiceException.prototype); + } +} diff --git a/clients/client-geo-routes/src/models/index.ts b/clients/client-geo-routes/src/models/index.ts new file mode 100644 index 0000000000000..9eaceb12865f8 --- /dev/null +++ b/clients/client-geo-routes/src/models/index.ts @@ -0,0 +1,2 @@ +// smithy-typescript generated code +export * from "./models_0"; diff --git a/clients/client-geo-routes/src/models/models_0.ts b/clients/client-geo-routes/src/models/models_0.ts new file mode 100644 index 0000000000000..f6ef411cf6ba0 --- /dev/null +++ b/clients/client-geo-routes/src/models/models_0.ts @@ -0,0 +1,8985 @@ +// smithy-typescript generated code +import { ExceptionOptionType as __ExceptionOptionType, SENSITIVE_STRING } from "@smithy/smithy-client"; + +import { GeoRoutesServiceException as __BaseException } from "./GeoRoutesServiceException"; + +/** + *

You don't have sufficient access to perform this action.

+ * @public + */ +export class AccessDeniedException extends __BaseException { + readonly name: "AccessDeniedException" = "AccessDeniedException"; + readonly $fault: "client" = "client"; + Message: string | undefined; + /** + * @internal + */ + constructor(opts: __ExceptionOptionType) { + super({ + name: "AccessDeniedException", + $fault: "client", + ...opts, + }); + Object.setPrototypeOf(this, AccessDeniedException.prototype); + this.Message = opts.Message; + } +} + +/** + *

Features that are allowed while calculating. a route

+ * @public + */ +export interface IsolineAllowOptions { + /** + *

Allow Hot (High Occupancy Toll) lanes while calculating the route.

+ * @public + */ + Hot?: boolean; + + /** + *

Allow Hov (High Occupancy vehicle) lanes while calculating the route.

+ * @public + */ + Hov?: boolean; +} + +/** + *

Geometry defined as a corridor - a LineString with a radius that defines the width of the corridor.

+ * @public + */ +export interface Corridor { + /** + *

An ordered list of positions used to plot a route on a map.

+ * + *

LineString and Polyline are mutually exclusive properties.

+ *
+ * @public + */ + LineString: number[][] | undefined; + + /** + *

Radius that defines the width of the corridor.

+ * @public + */ + Radius: number | undefined; +} + +/** + *

Geometry defined as an encoded corridor - an encoded polyline with a radius that defines + * the width of the corridor.

+ * @public + */ +export interface PolylineCorridor { + /** + *

An ordered list of positions used to plot a route on a map in a lossy compression format.

+ * + *

LineString and Polyline are mutually exclusive properties.

+ *
+ * @public + */ + Polyline: string | undefined; + + /** + *

Considers all roads within the provided radius to match the provided destination to. The roads that are considered are determined by the provided Strategy.

+ *

+ * Unit: Meters + *

+ * @public + */ + Radius: number | undefined; +} + +/** + *

The avoidance geometry, to be included while calculating the route.

+ * @public + */ +export interface IsolineAvoidanceAreaGeometry { + /** + *

Geometry defined as a bounding box. The first pair represents the X and Y coordinates + * (longitude and latitude,) of the southwest corner of the bounding box; the second pair + * represents the X and Y coordinates (longitude and latitude) of the northeast corner.

+ * @public + */ + BoundingBox?: number[]; + + /** + *

Geometry defined as a corridor - a LineString with a radius that defines the width of the corridor.

+ * @public + */ + Corridor?: Corridor; + + /** + *

A list of Polygon will be excluded for calculating isolines, the list can only contain 1 polygon.

+ * @public + */ + Polygon?: number[][][]; + + /** + *

Geometry defined as an encoded corridor – a polyline with a radius that defines the width of the corridor. For more information on polyline + * encoding, see https://github.com/heremaps/flexiblepolyline/blob/master/README.md.

+ * @public + */ + PolylineCorridor?: PolylineCorridor; + + /** + *

A list of PolylinePolygon's that are excluded for calculating isolines, the list can only contain 1 polygon. For more information on polyline encoding, see https://github.com/heremaps/flexiblepolyline/blob/master/README.md. + *

+ * @public + */ + PolylinePolygon?: string[]; +} + +/** + *

The area to be avoided.

+ * @public + */ +export interface IsolineAvoidanceArea { + /** + *

Exceptions to the provided avoidance geometry, to be included while calculating the route.

+ * @public + */ + Except?: IsolineAvoidanceAreaGeometry[]; + + /** + *

Geometry of the area to be avoided.

+ * @public + */ + Geometry: IsolineAvoidanceAreaGeometry | undefined; +} + +/** + * @public + * @enum + */ +export const IsolineZoneCategory = { + CONGESTION_PRICING: "CongestionPricing", + ENVIRONMENTAL: "Environmental", + VIGNETTE: "Vignette", +} as const; + +/** + * @public + */ +export type IsolineZoneCategory = (typeof IsolineZoneCategory)[keyof typeof IsolineZoneCategory]; + +/** + *

Zone category to be avoided.

+ * @public + */ +export interface IsolineAvoidanceZoneCategory { + /** + *

Zone category to be avoided.

+ * @public + */ + Category?: IsolineZoneCategory; +} + +/** + *

Features that are avoided while calculating a route. Avoidance is on a best-case basis. If an + * avoidance can't be satisfied for a particular case, it violates the avoidance and the + * returned response produces a notice for the violation.

+ * @public + */ +export interface IsolineAvoidanceOptions { + /** + *

Areas to be avoided.

+ * @public + */ + Areas?: IsolineAvoidanceArea[]; + + /** + *

Avoid car-shuttle-trains while calculating the route.

+ * @public + */ + CarShuttleTrains?: boolean; + + /** + *

Avoid controlled access highways while calculating the route.

+ * @public + */ + ControlledAccessHighways?: boolean; + + /** + *

Avoid dirt roads while calculating the route.

+ * @public + */ + DirtRoads?: boolean; + + /** + *

Avoid ferries while calculating the route.

+ * @public + */ + Ferries?: boolean; + + /** + *

Avoid roads that have seasonal closure while calculating the route.

+ * @public + */ + SeasonalClosure?: boolean; + + /** + *

Avoids roads where the specified toll transponders are the only mode of payment.

+ * @public + */ + TollRoads?: boolean; + + /** + *

Avoids roads where the specified toll transponders are the only mode of payment.

+ * @public + */ + TollTransponders?: boolean; + + /** + *

Truck road type identifiers. BK1 through BK4 apply only to Sweden. + * A2,A4,B2,B4,C,D,ET2,ET4 apply only to Mexico.

+ * + *

There are currently no other supported values as of 26th April 2024.

+ *
+ * @public + */ + TruckRoadTypes?: string[]; + + /** + *

Avoid tunnels while calculating the route.

+ * @public + */ + Tunnels?: boolean; + + /** + *

Avoid U-turns for calculation on highways and motorways.

+ * @public + */ + UTurns?: boolean; + + /** + *

Zone categories to be avoided.

+ * @public + */ + ZoneCategories?: IsolineAvoidanceZoneCategory[]; +} + +/** + * @public + * @enum + */ +export const MatchingStrategy = { + MATCH_ANY: "MatchAny", + MATCH_MOST_SIGNIFICANT_ROAD: "MatchMostSignificantRoad", +} as const; + +/** + * @public + */ +export type MatchingStrategy = (typeof MatchingStrategy)[keyof typeof MatchingStrategy]; + +/** + *

Isoline matching related options.

+ * @public + */ +export interface IsolineMatchingOptions { + /** + *

Attempts to match the provided position to a road similar to the provided name.

+ * @public + */ + NameHint?: string; + + /** + *

If the distance to a highway/bridge/tunnel/sliproad is within threshold, the waypoint will be snapped to the highway/bridge/tunnel/sliproad.

+ *

+ * Unit: meters + *

+ * @public + */ + OnRoadThreshold?: number; + + /** + *

Considers all roads within the provided radius to match the provided destination to. The roads that are considered are determined by the provided Strategy.

+ *

+ * Unit: Meters + *

+ * @public + */ + Radius?: number; + + /** + *

Strategy that defines matching of the position onto the road network. MatchAny considers all roads possible, whereas MatchMostSignificantRoad matches to the most significant road.

+ * @public + */ + Strategy?: MatchingStrategy; +} + +/** + * @public + * @enum + */ +export const SideOfStreetMatchingStrategy = { + ANY_STREET: "AnyStreet", + DIVIDED_STREET_ONLY: "DividedStreetOnly", +} as const; + +/** + * @public + */ +export type SideOfStreetMatchingStrategy = + (typeof SideOfStreetMatchingStrategy)[keyof typeof SideOfStreetMatchingStrategy]; + +/** + *

Options to configure matching the provided position to a side of the street.

+ * @public + */ +export interface IsolineSideOfStreetOptions { + /** + *

Position defined as [longitude, latitude].

+ * @public + */ + Position: number[] | undefined; + + /** + *

Strategy that defines when the side of street position should be used. AnyStreet will always use the provided position.

+ *

Default Value: DividedStreetOnly + *

+ * @public + */ + UseWith?: SideOfStreetMatchingStrategy; +} + +/** + *

Destination related options.

+ * @public + */ +export interface IsolineDestinationOptions { + /** + *

Avoids actions for the provided distance. This is typically to consider for users in moving vehicles who may not have sufficient time to make an action at an origin or a destination.

+ * @public + */ + AvoidActionsForDistance?: number; + + /** + *

GPS Heading at the position.

+ * @public + */ + Heading?: number; + + /** + *

Options to configure matching the provided position to the road network.

+ * @public + */ + Matching?: IsolineMatchingOptions; + + /** + *

Options to configure matching the provided position to a side of the street.

+ * @public + */ + SideOfStreet?: IsolineSideOfStreetOptions; +} + +/** + * @public + * @enum + */ +export const GeometryFormat = { + FLEXIBLE_POLYLINE: "FlexiblePolyline", + SIMPLE: "Simple", +} as const; + +/** + * @public + */ +export type GeometryFormat = (typeof GeometryFormat)[keyof typeof GeometryFormat]; + +/** + *

Isoline granularity related options.

+ * @public + */ +export interface IsolineGranularityOptions { + /** + *

Maximum number of points of returned Isoline.

+ * @public + */ + MaxPoints?: number; + + /** + *

Maximum resolution of the returned isoline.

+ *

+ * Unit: centimeters + *

+ * @public + */ + MaxResolution?: number; +} + +/** + * @public + * @enum + */ +export const IsolineOptimizationObjective = { + ACCURATE_CALCULATION: "AccurateCalculation", + BALANCED_CALCULATION: "BalancedCalculation", + FAST_CALCULATION: "FastCalculation", +} as const; + +/** + * @public + */ +export type IsolineOptimizationObjective = + (typeof IsolineOptimizationObjective)[keyof typeof IsolineOptimizationObjective]; + +/** + * @public + * @enum + */ +export const RoutingObjective = { + FASTEST_ROUTE: "FastestRoute", + SHORTEST_ROUTE: "ShortestRoute", +} as const; + +/** + * @public + */ +export type RoutingObjective = (typeof RoutingObjective)[keyof typeof RoutingObjective]; + +/** + *

Options for the property.

+ * @public + */ +export interface IsolineOriginOptions { + /** + *

Avoids actions for the provided distance. This is typically to consider for users in moving vehicles who may not have sufficient time to make an action at an origin or a destination.

+ * @public + */ + AvoidActionsForDistance?: number; + + /** + *

GPS Heading at the position.

+ * @public + */ + Heading?: number; + + /** + *

Options to configure matching the provided position to the road network.

+ * @public + */ + Matching?: IsolineMatchingOptions; + + /** + *

Options to configure matching the provided position to a side of the street.

+ * @public + */ + SideOfStreet?: IsolineSideOfStreetOptions; +} + +/** + *

Threshold to be used for the isoline calculation. Up to 3 thresholds per provided type + * can be requested.

+ * @public + */ +export interface IsolineThresholds { + /** + *

Distance to be used for the isoline calculation.

+ * @public + */ + Distance?: number[]; + + /** + *

Time to be used for the isoline calculation.

+ * @public + */ + Time?: number[]; +} + +/** + * @public + * @enum + */ +export const TrafficUsage = { + IGNORE_TRAFFIC_DATA: "IgnoreTrafficData", + USE_TRAFFIC_DATA: "UseTrafficData", +} as const; + +/** + * @public + */ +export type TrafficUsage = (typeof TrafficUsage)[keyof typeof TrafficUsage]; + +/** + *

Options related to traffic.

+ * @public + */ +export interface IsolineTrafficOptions { + /** + *

Duration for which flow traffic is considered valid. For this period, the flow traffic is used over historical traffic data. Flow traffic refers to congestion, which changes very quickly. Duration in seconds for which flow traffic event would be considered valid. While flow traffic event is valid it will be used over the historical traffic data.

+ *

+ * Unit: seconds + *

+ * @public + */ + FlowEventThresholdOverride?: number; + + /** + *

Determines if traffic should be used or ignored while calculating the route.

+ *

Default Value: UseTrafficData + *

+ * @public + */ + Usage?: TrafficUsage; +} + +/** + * @public + * @enum + */ +export const IsolineTravelMode = { + CAR: "Car", + PEDESTRIAN: "Pedestrian", + SCOOTER: "Scooter", + TRUCK: "Truck", +} as const; + +/** + * @public + */ +export type IsolineTravelMode = (typeof IsolineTravelMode)[keyof typeof IsolineTravelMode]; + +/** + * @public + * @enum + */ +export const IsolineEngineType = { + ELECTRIC: "Electric", + INTERNAL_COMBUSTION: "InternalCombustion", + PLUGIN_HYBRID: "PluginHybrid", +} as const; + +/** + * @public + */ +export type IsolineEngineType = (typeof IsolineEngineType)[keyof typeof IsolineEngineType]; + +/** + *

The vehicle license plate.

+ * @public + */ +export interface IsolineVehicleLicensePlate { + /** + *

The last character of the License Plate.

+ * @public + */ + LastCharacter?: string; +} + +/** + *

Options for vehicles.

+ * @public + */ +export interface IsolineCarOptions { + /** + *

Engine type of the vehicle.

+ * @public + */ + EngineType?: IsolineEngineType; + + /** + *

The vehicle License Plate.

+ * @public + */ + LicensePlate?: IsolineVehicleLicensePlate; + + /** + *

Maximum speed.

+ *

+ * Unit: KilometersPerHour + *

+ * @public + */ + MaxSpeed?: number; + + /** + *

The number of occupants in the vehicle.

+ *

Default Value: 1 + *

+ * @public + */ + Occupancy?: number; +} + +/** + *

Options for the property.

+ * @public + */ +export interface IsolineScooterOptions { + /** + *

Engine type of the vehicle.

+ * @public + */ + EngineType?: IsolineEngineType; + + /** + *

The vehicle License Plate.

+ * @public + */ + LicensePlate?: IsolineVehicleLicensePlate; + + /** + *

Maximum speed specified.

+ *

+ * Unit: KilometersPerHour + *

+ * @public + */ + MaxSpeed?: number; + + /** + *

The number of occupants in the vehicle.

+ *

Default Value: 1 + *

+ * @public + */ + Occupancy?: number; +} + +/** + * @public + * @enum + */ +export const IsolineHazardousCargoType = { + COMBUSTIBLE: "Combustible", + CORROSIVE: "Corrosive", + EXPLOSIVE: "Explosive", + FLAMMABLE: "Flammable", + GAS: "Gas", + HARMFUL_TO_WATER: "HarmfulToWater", + ORGANIC: "Organic", + OTHER: "Other", + POISON: "Poison", + POISONOUS_INHALATION: "PoisonousInhalation", + RADIOACTIVE: "Radioactive", +} as const; + +/** + * @public + */ +export type IsolineHazardousCargoType = (typeof IsolineHazardousCargoType)[keyof typeof IsolineHazardousCargoType]; + +/** + *

Trailer options corresponding to the vehicle.

+ * @public + */ +export interface IsolineTrailerOptions { + /** + *

Total number of axles of the vehicle.

+ * @public + */ + AxleCount?: number; + + /** + *

Number of trailers attached to the vehicle.

+ *

Default Value: 0 + *

+ * @public + */ + TrailerCount?: number; +} + +/** + * @public + * @enum + */ +export const IsolineTruckType = { + LIGHT_TRUCK: "LightTruck", + STRAIGHT_TRUCK: "StraightTruck", + TRACTOR: "Tractor", +} as const; + +/** + * @public + */ +export type IsolineTruckType = (typeof IsolineTruckType)[keyof typeof IsolineTruckType]; + +/** + *

Specifies the total weight for the specified axle group. Meant for usage in countries that have different regulations based on the axle group type.

+ *

+ * Unit: Kilograms + *

+ * @public + */ +export interface WeightPerAxleGroup { + /** + *

Weight for single axle group.

+ *

+ * Unit: Kilograms + *

+ * @public + */ + Single?: number; + + /** + *

Weight for tandem axle group.

+ *

+ * Unit: Kilograms + *

+ * @public + */ + Tandem?: number; + + /** + *

Weight for triple axle group.

+ *

+ * Unit: Kilograms + *

+ * @public + */ + Triple?: number; + + /** + *

Weight for quad axle group.

+ *

+ * Unit: Kilograms + *

+ * @public + */ + Quad?: number; + + /** + *

Weight for quad quint group.

+ *

+ * Unit: Kilograms + *

+ * @public + */ + Quint?: number; +} + +/** + *

Travel mode options when the provided travel mode is "Truck"

+ * @public + */ +export interface IsolineTruckOptions { + /** + *

Total number of axles of the vehicle.

+ * @public + */ + AxleCount?: number; + + /** + *

Engine type of the vehicle.

+ * @public + */ + EngineType?: IsolineEngineType; + + /** + *

Gross weight of the vehicle including trailers, and goods at capacity.

+ *

+ * Unit: Kilograms + *

+ * @public + */ + GrossWeight?: number; + + /** + *

List of Hazardous cargo contained in the vehicle.

+ * @public + */ + HazardousCargos?: IsolineHazardousCargoType[]; + + /** + *

Height of the vehicle.

+ *

+ * Unit: centimeters + *

+ * @public + */ + Height?: number; + + /** + *

Height of the vehicle above its first axle.

+ *

+ * Unit: centimeters + *

+ * @public + */ + HeightAboveFirstAxle?: number; + + /** + *

Kingpin to rear axle length of the vehicle.

+ *

+ * Unit: centimeters + *

+ * @public + */ + KpraLength?: number; + + /** + *

Length of the vehicle.

+ *

+ * Unit: centimeters + *

+ * @public + */ + Length?: number; + + /** + *

The vehicle License Plate.

+ * @public + */ + LicensePlate?: IsolineVehicleLicensePlate; + + /** + *

Maximum speed specified.

+ *

+ * Unit: KilometersPerHour + *

+ * @public + */ + MaxSpeed?: number; + + /** + *

The number of occupants in the vehicle.

+ *

Default Value: 1 + *

+ * @public + */ + Occupancy?: number; + + /** + *

Payload capacity of the vehicle and trailers attached.

+ *

+ * Unit: kilograms + *

+ * @public + */ + PayloadCapacity?: number; + + /** + *

Number of tires on the vehicle.

+ * @public + */ + TireCount?: number; + + /** + *

Trailer options corresponding to the vehicle.

+ * @public + */ + Trailer?: IsolineTrailerOptions; + + /** + *

Type of the truck.

+ * @public + */ + TruckType?: IsolineTruckType; + + /** + *

The tunnel restriction code.

+ *

Tunnel categories in this list indicate the restrictions which apply to certain tunnels in Great Britain. + * They relate to the types of dangerous goods that can be transported through them.

+ *
    + *
  • + *

    + * Tunnel Category B + *

    + *
      + *
    • + *

      + * Risk Level: Limited risk

      + *
    • + *
    • + *

      + * Restrictions: Few restrictions

      + *
    • + *
    + *
  • + *
  • + *

    + * Tunnel Category C + *

    + *
      + *
    • + *

      + * Risk Level: Medium risk

      + *
    • + *
    • + *

      + * Restrictions: Some restrictions

      + *
    • + *
    + *
  • + *
  • + *

    + * Tunnel Category D + *

    + *
      + *
    • + *

      + * Risk Level: High risk

      + *
    • + *
    • + *

      + * Restrictions: Many restrictions occur

      + *
    • + *
    + *
  • + *
  • + *

    + * Tunnel Category E + *

    + *
      + *
    • + *

      + * Risk Level: Very high risk

      + *
    • + *
    • + *

      + * Restrictions: Restricted tunnel

      + *
    • + *
    + *
  • + *
+ * @public + */ + TunnelRestrictionCode?: string; + + /** + *

Heaviest weight per axle irrespective of the axle type or the axle group. Meant for usage in countries where the differences in axle types or axle groups are not distinguished.

+ *

+ * Unit: Kilograms + *

+ * @public + */ + WeightPerAxle?: number; + + /** + *

Specifies the total weight for the specified axle group. Meant for usage in countries that have different regulations based on the axle group type.

+ *

+ * Unit: Kilograms + *

+ * @public + */ + WeightPerAxleGroup?: WeightPerAxleGroup; + + /** + *

Width of the vehicle.

+ *

+ * Unit: centimeters + *

+ * @public + */ + Width?: number; +} + +/** + *

Travel mode related options for the provided travel mode.

+ * @public + */ +export interface IsolineTravelModeOptions { + /** + *

Travel mode options when the provided travel mode is "Car"

+ * @public + */ + Car?: IsolineCarOptions; + + /** + *

Travel mode options when the provided travel mode is "Scooter"

+ * @public + */ + Scooter?: IsolineScooterOptions; + + /** + *

Travel mode options when the provided travel mode is "Truck"

+ * @public + */ + Truck?: IsolineTruckOptions; +} + +/** + * @public + */ +export interface CalculateIsolinesRequest { + /** + *

Features that are allowed while calculating. a route

+ * @public + */ + Allow?: IsolineAllowOptions; + + /** + *

Time of arrival at the destination.

+ *

Time format: YYYY-MM-DDThh:mm:ss.sssZ | YYYY-MM-DDThh:mm:ss.sss+hh:mm + *

+ *

Examples:

+ *

+ * 2020-04-22T17:57:24Z + *

+ *

+ * 2020-04-22T17:57:24+02:00 + *

+ * @public + */ + ArrivalTime?: string; + + /** + *

Features that are avoided while calculating a route. Avoidance is on a best-case basis. If an + * avoidance can't be satisfied for a particular case, it violates the avoidance and the + * returned response produces a notice for the violation.

+ * @public + */ + Avoid?: IsolineAvoidanceOptions; + + /** + *

Uses the current time as the time of departure.

+ * @public + */ + DepartNow?: boolean; + + /** + *

Time of departure from thr origin.

+ *

Time format:YYYY-MM-DDThh:mm:ss.sssZ | YYYY-MM-DDThh:mm:ss.sss+hh:mm + *

+ *

Examples:

+ *

+ * 2020-04-22T17:57:24Z + *

+ *

+ * 2020-04-22T17:57:24+02:00 + *

+ * @public + */ + DepartureTime?: string; + + /** + *

The final position for the route. In the World Geodetic System (WGS 84) format: [longitude, latitude].

+ * @public + */ + Destination?: number[]; + + /** + *

Destination related options.

+ * @public + */ + DestinationOptions?: IsolineDestinationOptions; + + /** + *

The format of the returned IsolineGeometry.

+ *

Default Value:FlexiblePolyline + *

+ * @public + */ + IsolineGeometryFormat?: GeometryFormat; + + /** + *

Defines the granularity of the returned Isoline

+ * @public + */ + IsolineGranularity?: IsolineGranularityOptions; + + /** + *

Optional: The API key to be used for authorization. Either an API key or valid SigV4 + * signature must be provided when making a request.

+ * @public + */ + Key?: string; + + /** + *

Specifies the optimization criteria for when calculating an isoline. AccurateCalculation generates an isoline of higher granularity that is more precise. + * FastCalculation generates an isoline faster by reducing the granularity, and in turn the quality of the isoline. BalancedCalculation generates an isoline by balancing between quality and performance. + *

+ *

Default Value: BalancedCalculation + *

+ * @public + */ + OptimizeIsolineFor?: IsolineOptimizationObjective; + + /** + *

Specifies the optimization criteria for calculating a route.

+ *

Default Value: FastestRoute + *

+ * @public + */ + OptimizeRoutingFor?: RoutingObjective; + + /** + *

The start position for the route.

+ * @public + */ + Origin?: number[]; + + /** + *

Origin related options.

+ * @public + */ + OriginOptions?: IsolineOriginOptions; + + /** + *

Threshold to be used for the isoline calculation. Up to + * 3 thresholds per provided type can be requested.

+ * @public + */ + Thresholds: IsolineThresholds | undefined; + + /** + *

Traffic related options.

+ * @public + */ + Traffic?: IsolineTrafficOptions; + + /** + *

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

+ * + *

The mode Scooter also applies to motorcycles, set to Scooter when wanted to calculate options for motorcycles.

+ *
+ *

Default Value: Car + *

+ * @public + */ + TravelMode?: IsolineTravelMode; + + /** + *

Travel mode related options for the provided travel mode.

+ * @public + */ + TravelModeOptions?: IsolineTravelModeOptions; +} + +/** + *

Geometry of the connection between different Isoline components.

+ * @public + */ +export interface IsolineConnectionGeometry { + /** + *

An ordered list of positions used to plot a route on a map.

+ * + *

LineString and Polyline are mutually exclusive properties.

+ *
+ * @public + */ + LineString?: number[][]; + + /** + *

An ordered list of positions used to plot a route on a map in a lossy compression format.

+ * + *

LineString and Polyline are mutually exclusive properties.

+ *
+ * @public + */ + Polyline?: string; +} + +/** + *

Isolines may contain multiple components, if these components are connected by ferry links. These components are returned as separate polygons while the ferry links are returned as connections.

+ * @public + */ +export interface IsolineConnection { + /** + *

Index of the polygon corresponding to the "from" component of the connection. The polygon is available from Isoline[].Geometries.

+ * @public + */ + FromPolygonIndex: number | undefined; + + /** + *

The isoline geometry.

+ * @public + */ + Geometry: IsolineConnectionGeometry | undefined; + + /** + *

Index of the polygon corresponding to the "to" component of the connection. The polygon is available from Isoline[].Geometries.

+ * @public + */ + ToPolygonIndex: number | undefined; +} + +/** + *

Geometry of the connection between different Isoline components.

+ * @public + */ +export interface IsolineShapeGeometry { + /** + *

A list of Isoline Polygons, for each isoline polygon, it contains polygons of the first linear ring (the outer ring) and from 2nd item to the last item (the inner rings).

+ * @public + */ + Polygon?: number[][][]; + + /** + *

A list of Isoline PolylinePolygon, for each isoline PolylinePolygon, it contains PolylinePolygon + * of the first linear ring (the outer ring) and from 2nd item to the last item (the inner rings). + * For more information on polyline encoding, see https://github.com/heremaps/flexiblepolyline/blob/master/README.md.

+ * @public + */ + PolylinePolygon?: string[]; +} + +/** + *

Calculated isolines and associated properties.

+ * @public + */ +export interface Isoline { + /** + *

Isolines may contain multiple components, if these components are connected by ferry links. These components are returned as separate polygons while the ferry links are returned as connections.

+ * @public + */ + Connections: IsolineConnection[] | undefined; + + /** + *

Distance threshold corresponding to the calculated Isoline.

+ * @public + */ + DistanceThreshold?: number; + + /** + *

Geometries for the Calculated isolines.

+ * @public + */ + Geometries: IsolineShapeGeometry[] | undefined; + + /** + *

Time threshold corresponding to the calculated isoline.

+ * @public + */ + TimeThreshold?: number; +} + +/** + * @public + */ +export interface CalculateIsolinesResponse { + /** + *

Time of arrival at the destination. This parameter is returned only if the Destination parameters was provided in the request.

+ *

Time format:YYYY-MM-DDThh:mm:ss.sssZ | YYYY-MM-DDThh:mm:ss.sss+hh:mm + *

+ *

Examples:

+ *

+ * 2020-04-22T17:57:24Z + *

+ *

+ * 2020-04-22T17:57:24+02:00 + *

+ * @public + */ + ArrivalTime?: string; + + /** + *

Time of departure from thr origin.

+ *

Time format:YYYY-MM-DDThh:mm:ss.sssZ | YYYY-MM-DDThh:mm:ss.sss+hh:mm + *

+ *

Examples:

+ *

+ * 2020-04-22T17:57:24Z + *

+ *

+ * 2020-04-22T17:57:24+02:00 + *

+ * @public + */ + DepartureTime?: string; + + /** + *

The format of the returned IsolineGeometry.

+ *

Default Value:FlexiblePolyline + *

+ * @public + */ + IsolineGeometryFormat: GeometryFormat | undefined; + + /** + *

Calculated isolines and associated properties.

+ * @public + */ + Isolines: Isoline[] | undefined; + + /** + *

The pricing bucket for which the query is charged at.

+ * @public + */ + PricingBucket: string | undefined; + + /** + *

Snapped destination that was used for the Isoline calculation.

+ * @public + */ + SnappedDestination?: number[]; + + /** + *

Snapped origin that was used for the Isoline calculation.

+ * @public + */ + SnappedOrigin?: number[]; +} + +/** + *

The request processing has failed because of an unknown error, exception or failure.

+ * @public + */ +export class InternalServerException extends __BaseException { + readonly name: "InternalServerException" = "InternalServerException"; + readonly $fault: "server" = "server"; + $retryable = {}; + Message: string | undefined; + /** + * @internal + */ + constructor(opts: __ExceptionOptionType) { + super({ + name: "InternalServerException", + $fault: "server", + ...opts, + }); + Object.setPrototypeOf(this, InternalServerException.prototype); + this.Message = opts.Message; + } +} + +/** + *

The request was denied due to request throttling.

+ * @public + */ +export class ThrottlingException extends __BaseException { + readonly name: "ThrottlingException" = "ThrottlingException"; + readonly $fault: "client" = "client"; + $retryable = {}; + Message: string | undefined; + /** + * @internal + */ + constructor(opts: __ExceptionOptionType) { + super({ + name: "ThrottlingException", + $fault: "client", + ...opts, + }); + Object.setPrototypeOf(this, ThrottlingException.prototype); + this.Message = opts.Message; + } +} + +/** + *

The input fails to satisfy the constraints specified by the Amazon Location service.

+ * @public + */ +export interface ValidationExceptionField { + /** + *

The name of the Validation Exception Field.

+ * @public + */ + Name: string | undefined; + + /** + *

The error message.

+ * @public + */ + Message: string | undefined; +} + +/** + * @public + * @enum + */ +export const ValidationExceptionReason = { + /** + * The input cannot be parsed. For example a required JSON document, ARN identifier, + * date value, or numeric field cannot be parsed. + * + */ + CANNOT_PARSE: "CannotParse", + /** + * The input is present and parsable, but it is otherwise invalid. For example, a + * required numeric argument is outside the allowed range. + * + */ + FIELD_VALIDATION_FAILED: "FieldValidationFailed", + /** + * The required input is missing. + */ + MISSING: "Missing", + /** + * The input is invalid but no more specific reason is applicable. + */ + OTHER: "Other", + /** + * No such field is supported. + */ + UNKNOWN_FIELD: "UnknownField", + /** + * No such operation is supported. + */ + UNKNOWN_OPERATION: "UnknownOperation", +} as const; + +/** + * @public + */ +export type ValidationExceptionReason = (typeof ValidationExceptionReason)[keyof typeof ValidationExceptionReason]; + +/** + *

The input fails to satisfy the constraints specified by an AWS service.

+ * @public + */ +export class ValidationException extends __BaseException { + readonly name: "ValidationException" = "ValidationException"; + readonly $fault: "client" = "client"; + Message: string | undefined; + /** + *

A message with the reason for the validation exception error.

+ * @public + */ + Reason: ValidationExceptionReason | undefined; + + /** + *

The field where the invalid entry was detected.

+ * @public + */ + FieldList: ValidationExceptionField[] | undefined; + /** + * @internal + */ + constructor(opts: __ExceptionOptionType) { + super({ + name: "ValidationException", + $fault: "client", + ...opts, + }); + Object.setPrototypeOf(this, ValidationException.prototype); + this.Message = opts.Message; + this.Reason = opts.Reason; + this.FieldList = opts.FieldList; + } +} + +/** + *

Allow Options related to the route matrix.

+ * @public + */ +export interface RouteMatrixAllowOptions { + /** + *

Allow Hot (High Occupancy Toll) lanes while calculating the route.

+ * @public + */ + Hot?: boolean; + + /** + *

Allow Hov (High Occupancy vehicle) lanes while calculating the route.

+ * @public + */ + Hov?: boolean; +} + +/** + *

Geometry of the area to be avoided.

+ * @public + */ +export interface RouteMatrixAvoidanceAreaGeometry { + /** + *

Geometry defined as a bounding box. The first pair represents the X and Y coordinates + * (longitude and latitude,) of the southwest corner of the bounding box; the second pair + * represents the X and Y coordinates (longitude and latitude) of the northeast corner.

+ * @public + */ + BoundingBox?: number[]; + + /** + *

Geometry defined as a polygon with only one linear ring.

+ * @public + */ + Polygon?: number[][][]; + + /** + *

A list of Isoline PolylinePolygon, for each isoline PolylinePolygon, it contains + * PolylinePolygon of the first linear ring (the outer ring) and from second item to the last + * item (the inner rings). For more information on polyline encoding, see https://github.com/heremaps/flexiblepolyline/blob/master/README.md.

+ * @public + */ + PolylinePolygon?: string[]; +} + +/** + *

Area to be avoided.

+ * @public + */ +export interface RouteMatrixAvoidanceArea { + /** + *

Geometry of the area to be avoided.

+ * @public + */ + Geometry: RouteMatrixAvoidanceAreaGeometry | undefined; +} + +/** + * @public + * @enum + */ +export const RouteMatrixZoneCategory = { + CONGESTION_PRICING: "CongestionPricing", + ENVIRONMENTAL: "Environmental", + VIGNETTE: "Vignette", +} as const; + +/** + * @public + */ +export type RouteMatrixZoneCategory = (typeof RouteMatrixZoneCategory)[keyof typeof RouteMatrixZoneCategory]; + +/** + *

Zone categories to be avoided.

+ * @public + */ +export interface RouteMatrixAvoidanceZoneCategory { + /** + *

Zone category to be avoided.

+ * @public + */ + Category?: RouteMatrixZoneCategory; +} + +/** + *

Options related to the route matrix.

+ * @public + */ +export interface RouteMatrixAvoidanceOptions { + /** + *

Areas to be avoided.

+ * @public + */ + Areas?: RouteMatrixAvoidanceArea[]; + + /** + *

Avoid car-shuttle-trains while calculating the route.

+ * @public + */ + CarShuttleTrains?: boolean; + + /** + *

Avoid controlled access highways while calculating the route.

+ * @public + */ + ControlledAccessHighways?: boolean; + + /** + *

Avoid dirt roads while calculating the route.

+ * @public + */ + DirtRoads?: boolean; + + /** + *

Avoid ferries while calculating the route.

+ * @public + */ + Ferries?: boolean; + + /** + *

Avoids roads where the specified toll transponders are the only mode of payment.

+ * @public + */ + TollRoads?: boolean; + + /** + *

Avoids roads where the specified toll transponders are the only mode of payment.

+ * @public + */ + TollTransponders?: boolean; + + /** + *

Truck road type identifiers. BK1 through BK4 apply only to Sweden. + * A2,A4,B2,B4,C,D,ET2,ET4 apply only to Mexico.

+ * + *

There are currently no other supported values as of 26th April 2024.

+ *
+ * @public + */ + TruckRoadTypes?: string[]; + + /** + *

Avoid tunnels while calculating the route.

+ * @public + */ + Tunnels?: boolean; + + /** + *

Avoid U-turns for calculation on highways and motorways.

+ * @public + */ + UTurns?: boolean; + + /** + *

Zone categories to be avoided.

+ * @public + */ + ZoneCategories?: RouteMatrixAvoidanceZoneCategory[]; +} + +/** + *

Matching options.

+ * @public + */ +export interface RouteMatrixMatchingOptions { + /** + *

Attempts to match the provided position to a road similar to the provided name.

+ * @public + */ + NameHint?: string; + + /** + *

If the distance to a highway/bridge/tunnel/sliproad is within threshold, the waypoint will be snapped to the highway/bridge/tunnel/sliproad.

+ *

+ * Unit: meters + *

+ * @public + */ + OnRoadThreshold?: number; + + /** + *

Considers all roads within the provided radius to match the provided destination to. The roads that are considered are determined by the provided Strategy.

+ *

+ * Unit: Meters + *

+ * @public + */ + Radius?: number; + + /** + *

Strategy that defines matching of the position onto the road network. MatchAny considers all roads possible, whereas MatchMostSignificantRoad matches to the most significant road.

+ * @public + */ + Strategy?: MatchingStrategy; +} + +/** + *

Options to configure matching the provided position to a side of the street.

+ * @public + */ +export interface RouteMatrixSideOfStreetOptions { + /** + *

Position defined as [longitude, latitude].

+ * @public + */ + Position: number[] | undefined; + + /** + *

Strategy that defines when the side of street position should be used. AnyStreet will always use the provided position.

+ *

Default Value: DividedStreetOnly + *

+ * @public + */ + UseWith?: SideOfStreetMatchingStrategy; +} + +/** + *

Options related to the destination.

+ * @public + */ +export interface RouteMatrixDestinationOptions { + /** + *

Avoids actions for the provided distance. This is typically to consider for users in moving vehicles who may not have sufficient time to make an action at an origin or a destination.

+ * @public + */ + AvoidActionsForDistance?: number; + + /** + *

GPS Heading at the position.

+ * @public + */ + Heading?: number; + + /** + *

Options to configure matching the provided position to the road network.

+ * @public + */ + Matching?: RouteMatrixMatchingOptions; + + /** + *

Options to configure matching the provided position to a side of the street.

+ * @public + */ + SideOfStreet?: RouteMatrixSideOfStreetOptions; +} + +/** + *

The route destination.

+ * @public + */ +export interface RouteMatrixDestination { + /** + *

Destination related options.

+ * @public + */ + Options?: RouteMatrixDestinationOptions; + + /** + *

Position defined as [longitude, latitude].

+ * @public + */ + Position: number[] | undefined; +} + +/** + *

Exclusion options.

+ * @public + */ +export interface RouteMatrixExclusionOptions { + /** + *

List of countries to be avoided defined by two-letter or three-letter country codes.

+ * @public + */ + Countries: string[] | undefined; +} + +/** + *

Origin related options.

+ * @public + */ +export interface RouteMatrixOriginOptions { + /** + *

Avoids actions for the provided distance. This is typically to consider for users in moving vehicles who may not have sufficient time to make an action at an origin or a destination.

+ * @public + */ + AvoidActionsForDistance?: number; + + /** + *

GPS Heading at the position.

+ * @public + */ + Heading?: number; + + /** + *

Options to configure matching the provided position to the road network.

+ * @public + */ + Matching?: RouteMatrixMatchingOptions; + + /** + *

Options to configure matching the provided position to a side of the street.

+ * @public + */ + SideOfStreet?: RouteMatrixSideOfStreetOptions; +} + +/** + *

The start position for the route.

+ * @public + */ +export interface RouteMatrixOrigin { + /** + *

Origin related options.

+ * @public + */ + Options?: RouteMatrixOriginOptions; + + /** + *

Position defined as [longitude, latitude].

+ * @public + */ + Position: number[] | undefined; +} + +/** + *

Provides the circle that was used while calculating the route.

+ * @public + */ +export interface RouteMatrixAutoCircle { + /** + *

The margin provided for the calculation.

+ * @public + */ + Margin?: number; + + /** + *

The maximum size of the radius provided for the calculation.

+ * @public + */ + MaxRadius?: number; +} + +/** + *

Geometry defined as a circle. When request routing boundary was set as AutoCircle, the response routing boundary will return Circle derived from the AutoCircle settings.

+ * @public + */ +export interface Circle { + /** + *

Center of the Circle defined in longitude and latitude coordinates.

+ *

Example: [-123.1174, 49.2847] represents the position with longitude -123.1174 and latitude 49.2847.

+ * @public + */ + Center: number[] | undefined; + + /** + *

Radius of the Circle.

+ *

+ * Unit: meters + *

+ * @public + */ + Radius: number | undefined; +} + +/** + *

Geometry of the routing boundary.

+ * @public + */ +export interface RouteMatrixBoundaryGeometry { + /** + *

Provides the circle that was used while calculating the route.

+ * @public + */ + AutoCircle?: RouteMatrixAutoCircle; + + /** + *

Geometry defined as a circle. When request routing boundary was set as AutoCircle, the response routing boundary will return Circle derived from the AutoCircle settings.

+ * @public + */ + Circle?: Circle; + + /** + *

Geometry defined as a bounding box. The first pair represents the X and Y coordinates + * (longitude and latitude,) of the southwest corner of the bounding box; the second pair + * represents the X and Y coordinates (longitude and latitude) of the northeast corner.

+ * @public + */ + BoundingBox?: number[]; + + /** + *

Geometry defined as a polygon with only one linear ring.

+ * @public + */ + Polygon?: number[][][]; +} + +/** + *

Boundary within which the matrix is to be calculated. All data, origins and destinations outside the boundary are considered invalid.

+ * @public + */ +export interface RouteMatrixBoundary { + /** + *

Geometry of the area to be avoided.

+ * @public + */ + Geometry?: RouteMatrixBoundaryGeometry; + + /** + *

No restrictions in terms of a routing boundary, and is typically used for longer routes.

+ * @public + */ + Unbounded?: boolean; +} + +/** + *

Traffic related options.

+ * @public + */ +export interface RouteMatrixTrafficOptions { + /** + *

Duration for which flow traffic is considered valid. + * For this period, the flow traffic is used over historical traffic data. + * Flow traffic refers to congestion, which changes very quickly. + * Duration in seconds for which flow traffic event would be considered valid. + * While flow traffic event is valid it will be used over the historical traffic data.

+ * @public + */ + FlowEventThresholdOverride?: number; + + /** + *

Determines if traffic should be used or ignored while calculating the route.

+ *

Default Value: UseTrafficData + *

+ * @public + */ + Usage?: TrafficUsage; +} + +/** + * @public + * @enum + */ +export const RouteMatrixTravelMode = { + CAR: "Car", + PEDESTRIAN: "Pedestrian", + SCOOTER: "Scooter", + TRUCK: "Truck", +} as const; + +/** + * @public + */ +export type RouteMatrixTravelMode = (typeof RouteMatrixTravelMode)[keyof typeof RouteMatrixTravelMode]; + +/** + *

The vehicle License Plate.

+ * @public + */ +export interface RouteMatrixVehicleLicensePlate { + /** + *

The last character of the License Plate.

+ * @public + */ + LastCharacter?: string; +} + +/** + *

Options related to the car.

+ * @public + */ +export interface RouteMatrixCarOptions { + /** + *

The vehicle License Plate.

+ * @public + */ + LicensePlate?: RouteMatrixVehicleLicensePlate; + + /** + *

Maximum speed

+ *

+ * Unit: KilometersPerHour + *

+ * @public + */ + MaxSpeed?: number; + + /** + *

The number of occupants in the vehicle.

+ *

Default Value: 1 + *

+ * @public + */ + Occupancy?: number; +} + +/** + *

Travel mode options when the provided travel mode is "Scooter"

+ * @public + */ +export interface RouteMatrixScooterOptions { + /** + *

The vehicle License Plate.

+ * @public + */ + LicensePlate?: RouteMatrixVehicleLicensePlate; + + /** + *

Maximum speed.

+ *

+ * Unit: KilometersPerHour + *

+ * @public + */ + MaxSpeed?: number; + + /** + *

The number of occupants in the vehicle.

+ *

Default Value: 1 + *

+ * @public + */ + Occupancy?: number; +} + +/** + * @public + * @enum + */ +export const RouteMatrixHazardousCargoType = { + COMBUSTIBLE: "Combustible", + CORROSIVE: "Corrosive", + EXPLOSIVE: "Explosive", + FLAMMABLE: "Flammable", + GAS: "Gas", + HARMFUL_TO_WATER: "HarmfulToWater", + ORGANIC: "Organic", + OTHER: "Other", + POISON: "Poison", + POISONOUS_INHALATION: "PoisonousInhalation", + RADIOACTIVE: "Radioactive", +} as const; + +/** + * @public + */ +export type RouteMatrixHazardousCargoType = + (typeof RouteMatrixHazardousCargoType)[keyof typeof RouteMatrixHazardousCargoType]; + +/** + *

Trailer options corresponding to the vehicle.

+ * @public + */ +export interface RouteMatrixTrailerOptions { + /** + *

Number of trailers attached to the vehicle.

+ *

Default Value: 0 + *

+ * @public + */ + TrailerCount?: number; +} + +/** + * @public + * @enum + */ +export const RouteMatrixTruckType = { + LIGHT_TRUCK: "LightTruck", + STRAIGHT_TRUCK: "StraightTruck", + TRACTOR: "Tractor", +} as const; + +/** + * @public + */ +export type RouteMatrixTruckType = (typeof RouteMatrixTruckType)[keyof typeof RouteMatrixTruckType]; + +/** + *

Travel mode options when the provided travel mode is "Truck"

+ * @public + */ +export interface RouteMatrixTruckOptions { + /** + *

Total number of axles of the vehicle.

+ * @public + */ + AxleCount?: number; + + /** + *

Gross weight of the vehicle including trailers, and goods at capacity.

+ *

+ * Unit: Kilograms + *

+ * @public + */ + GrossWeight?: number; + + /** + *

List of Hazardous cargo contained in the vehicle.

+ * @public + */ + HazardousCargos?: RouteMatrixHazardousCargoType[]; + + /** + *

Height of the vehicle.

+ *

+ * Unit: centimeters + *

+ * @public + */ + Height?: number; + + /** + *

Kingpin to rear axle length of the vehicle

+ *

+ * Unit: centimeters + *

+ * @public + */ + KpraLength?: number; + + /** + *

Length of the vehicle.

+ *

+ * Unit: centimeters + *

+ * @public + */ + Length?: number; + + /** + *

The vehicle License Plate.

+ * @public + */ + LicensePlate?: RouteMatrixVehicleLicensePlate; + + /** + *

Maximum speed

+ *

+ * Unit: KilometersPerHour + *

+ * @public + */ + MaxSpeed?: number; + + /** + *

The number of occupants in the vehicle.

+ *

Default Value: 1 + *

+ * @public + */ + Occupancy?: number; + + /** + *

Payload capacity of the vehicle and trailers attached.

+ *

+ * Unit: kilograms + *

+ * @public + */ + PayloadCapacity?: number; + + /** + *

Trailer options corresponding to the vehicle.

+ * @public + */ + Trailer?: RouteMatrixTrailerOptions; + + /** + *

Type of the truck.

+ * @public + */ + TruckType?: RouteMatrixTruckType; + + /** + *

The tunnel restriction code.

+ *

Tunnel categories in this list indicate the restrictions which apply to certain tunnels in Great Britain. + * They relate to the types of dangerous goods that can be transported through them.

+ *
    + *
  • + *

    + * Tunnel Category B + *

    + *
      + *
    • + *

      + * Risk Level: Limited risk

      + *
    • + *
    • + *

      + * Restrictions: Few restrictions

      + *
    • + *
    + *
  • + *
  • + *

    + * Tunnel Category C + *

    + *
      + *
    • + *

      + * Risk Level: Medium risk

      + *
    • + *
    • + *

      + * Restrictions: Some restrictions

      + *
    • + *
    + *
  • + *
  • + *

    + * Tunnel Category D + *

    + *
      + *
    • + *

      + * Risk Level: High risk

      + *
    • + *
    • + *

      + * Restrictions: Many restrictions occur

      + *
    • + *
    + *
  • + *
  • + *

    + * Tunnel Category E + *

    + *
      + *
    • + *

      + * Risk Level: Very high risk

      + *
    • + *
    • + *

      + * Restrictions: Restricted tunnel

      + *
    • + *
    + *
  • + *
+ * @public + */ + TunnelRestrictionCode?: string; + + /** + *

Heaviest weight per axle irrespective of the axle type or the axle group. Meant for usage in countries where the differences in axle types or axle groups are not distinguished.

+ *

+ * Unit: Kilograms + *

+ * @public + */ + WeightPerAxle?: number; + + /** + *

Specifies the total weight for the specified axle group. Meant for usage in countries that have different regulations based on the axle group type.

+ * @public + */ + WeightPerAxleGroup?: WeightPerAxleGroup; + + /** + *

Width of the vehicle.

+ *

+ * Unit: centimeters + *

+ * @public + */ + Width?: number; +} + +/** + *

Travel mode related options for the provided travel mode.

+ * @public + */ +export interface RouteMatrixTravelModeOptions { + /** + *

Travel mode options when the provided travel mode is "Car"

+ * @public + */ + Car?: RouteMatrixCarOptions; + + /** + *

Travel mode options when the provided travel mode is "Scooter"

+ * @public + */ + Scooter?: RouteMatrixScooterOptions; + + /** + *

Travel mode options when the provided travel mode is "Truck"

+ * @public + */ + Truck?: RouteMatrixTruckOptions; +} + +/** + * @public + */ +export interface CalculateRouteMatrixRequest { + /** + *

Features that are allowed while calculating. a route

+ * @public + */ + Allow?: RouteMatrixAllowOptions; + + /** + *

Features that are avoided while calculating a route. Avoidance is on a best-case basis. If an + * avoidance can't be satisfied for a particular case, it violates the avoidance and the + * returned response produces a notice for the violation.

+ * @public + */ + Avoid?: RouteMatrixAvoidanceOptions; + + /** + *

Uses the current time as the time of departure.

+ * @public + */ + DepartNow?: boolean; + + /** + *

Time of departure from thr origin.

+ *

Time format:YYYY-MM-DDThh:mm:ss.sssZ | YYYY-MM-DDThh:mm:ss.sss+hh:mm + *

+ *

Examples:

+ *

+ * 2020-04-22T17:57:24Z + *

+ *

+ * 2020-04-22T17:57:24+02:00 + *

+ * @public + */ + DepartureTime?: string; + + /** + *

List of destinations for the route.

+ * @public + */ + Destinations: RouteMatrixDestination[] | undefined; + + /** + *

Features to be strictly excluded while calculating the route.

+ * @public + */ + Exclude?: RouteMatrixExclusionOptions; + + /** + *

Optional: The API key to be used for authorization. Either an API key or valid SigV4 + * signature must be provided when making a request.

+ * @public + */ + Key?: string; + + /** + *

Specifies the optimization criteria for calculating a route.

+ *

Default Value: FastestRoute + *

+ * @public + */ + OptimizeRoutingFor?: RoutingObjective; + + /** + *

The position in longitude and latitude for the origin.

+ * @public + */ + Origins: RouteMatrixOrigin[] | undefined; + + /** + *

Boundary within which the matrix is to be calculated. + * All data, origins and destinations outside the boundary are considered invalid.

+ * + *

When request routing boundary was set as AutoCircle, the response routing boundary will return Circle derived from the AutoCircle settings.

+ *
+ * @public + */ + RoutingBoundary: RouteMatrixBoundary | undefined; + + /** + *

Traffic related options.

+ * @public + */ + Traffic?: RouteMatrixTrafficOptions; + + /** + *

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

+ *

Default Value: Car + *

+ * @public + */ + TravelMode?: RouteMatrixTravelMode; + + /** + *

Travel mode related options for the provided travel mode.

+ * @public + */ + TravelModeOptions?: RouteMatrixTravelModeOptions; +} + +/** + * @public + * @enum + */ +export const RouteMatrixErrorCode = { + NO_MATCH: "NoMatch", + NO_MATCH_DESTINATION: "NoMatchDestination", + NO_MATCH_ORIGIN: "NoMatchOrigin", + NO_ROUTE: "NoRoute", + OTHER: "Other", + OUT_OF_BOUNDS: "OutOfBounds", + OUT_OF_BOUNDS_DESTINATION: "OutOfBoundsDestination", + OUT_OF_BOUNDS_ORIGIN: "OutOfBoundsOrigin", + VIOLATION: "Violation", +} as const; + +/** + * @public + */ +export type RouteMatrixErrorCode = (typeof RouteMatrixErrorCode)[keyof typeof RouteMatrixErrorCode]; + +/** + *

The calculated route matrix containing the results for all pairs of Origins to Destination positions. Each row corresponds to one entry in Origins. Each entry in the row corresponds to the route from that entry in Origins to an entry in Destination positions.

+ * @public + */ +export interface RouteMatrixEntry { + /** + *

The total distance of travel for the route.

+ * @public + */ + Distance: number | undefined; + + /** + *

The expected duration of travel for the route.

+ *

+ * Unit: seconds + *

+ * @public + */ + Duration: number | undefined; + + /** + *

Error code that occurred during calculation of the route.

+ * @public + */ + Error?: RouteMatrixErrorCode; +} + +/** + * @public + */ +export interface CalculateRouteMatrixResponse { + /** + *

The count of error results in the route matrix. If this number is 0, all routes were calculated successfully.

+ * @public + */ + ErrorCount: number | undefined; + + /** + *

The pricing bucket for which the query is charged at.

+ * @public + */ + PricingBucket: string | undefined; + + /** + *

The calculated route matrix containing the results for all pairs of Origins to Destination positions. Each row corresponds to one entry in Origins. Each entry in the row corresponds to the route from that entry in Origins to an entry in Destination positions.

+ * @public + */ + RouteMatrix: RouteMatrixEntry[][] | undefined; + + /** + *

Boundary within which the matrix is to be calculated. All data, origins and destinations outside the boundary are considered invalid.

+ * + *

When request routing boundary was set as AutoCircle, the response routing boundary will return Circle derived from the AutoCircle settings.

+ *
+ * @public + */ + RoutingBoundary: RouteMatrixBoundary | undefined; +} + +/** + *

Features that are allowed while calculating. a route

+ * @public + */ +export interface RouteAllowOptions { + /** + *

Allow Hot (High Occupancy Toll) lanes while calculating the route.

+ * @public + */ + Hot?: boolean; + + /** + *

Allow Hov (High Occupancy vehicle) lanes while calculating the route.

+ * @public + */ + Hov?: boolean; +} + +/** + *

Geometry of the area to be avoided.

+ * @public + */ +export interface RouteAvoidanceAreaGeometry { + /** + *

Geometry defined as a corridor - a LineString with a radius that defines the width of the corridor.

+ * @public + */ + Corridor?: Corridor; + + /** + *

Geometry defined as a bounding box. The first pair represents the X and Y coordinates + * (longitude and latitude,) of the southwest corner of the bounding box; the second pair + * represents the X and Y coordinates (longitude and latitude) of the northeast corner.

+ * @public + */ + BoundingBox?: number[]; + + /** + *

Geometry defined as a polygon with only one linear ring.

+ * @public + */ + Polygon?: number[][][]; + + /** + *

Geometry defined as an encoded corridor - an encoded polyline with a radius that defines + * the width of the corridor.

+ * @public + */ + PolylineCorridor?: PolylineCorridor; + + /** + *

A list of Isoline PolylinePolygon, for each isoline PolylinePolygon, it contains PolylinePolygon + * of the first linear ring (the outer ring) and from 2nd item to the last item (the inner rings). + * For more information on polyline encoding, see https://github.com/heremaps/flexiblepolyline/blob/master/README.md.

+ * @public + */ + PolylinePolygon?: string[]; +} + +/** + *

Areas to be avoided.

+ * @public + */ +export interface RouteAvoidanceArea { + /** + *

Exceptions to the provided avoidance geometry, to be included while calculating the route.

+ * @public + */ + Except?: RouteAvoidanceAreaGeometry[]; + + /** + *

Geometry of the area to be avoided.

+ * @public + */ + Geometry: RouteAvoidanceAreaGeometry | undefined; +} + +/** + * @public + * @enum + */ +export const RouteZoneCategory = { + CONGESTION_PRICING: "CongestionPricing", + ENVIRONMENTAL: "Environmental", + VIGNETTE: "Vignette", +} as const; + +/** + * @public + */ +export type RouteZoneCategory = (typeof RouteZoneCategory)[keyof typeof RouteZoneCategory]; + +/** + *

Zone categories to be avoided.

+ * @public + */ +export interface RouteAvoidanceZoneCategory { + /** + *

Zone category to be avoided.

+ * @public + */ + Category: RouteZoneCategory | undefined; +} + +/** + *

Options related to areas to be avoided.

+ * @public + */ +export interface RouteAvoidanceOptions { + /** + *

Areas to be avoided.

+ * @public + */ + Areas?: RouteAvoidanceArea[]; + + /** + *

Avoid car-shuttle-trains while calculating the route.

+ * @public + */ + CarShuttleTrains?: boolean; + + /** + *

Avoid controlled access highways while calculating the route.

+ * @public + */ + ControlledAccessHighways?: boolean; + + /** + *

Avoid dirt roads while calculating the route.

+ * @public + */ + DirtRoads?: boolean; + + /** + *

Avoid ferries while calculating the route.

+ * @public + */ + Ferries?: boolean; + + /** + *

Avoid roads that have seasonal closure while calculating the route.

+ * @public + */ + SeasonalClosure?: boolean; + + /** + *

Avoids roads where the specified toll transponders are the only mode of payment.

+ * @public + */ + TollRoads?: boolean; + + /** + *

Avoids roads where the specified toll transponders are the only mode of payment.

+ * @public + */ + TollTransponders?: boolean; + + /** + *

Truck road type identifiers. BK1 through BK4 apply only to Sweden. + * A2,A4,B2,B4,C,D,ET2,ET4 apply only to Mexico.

+ * + *

There are currently no other supported values as of 26th April 2024.

+ *
+ * @public + */ + TruckRoadTypes?: string[]; + + /** + *

Avoid tunnels while calculating the route.

+ * @public + */ + Tunnels?: boolean; + + /** + *

Avoid U-turns for calculation on highways and motorways.

+ * @public + */ + UTurns?: boolean; + + /** + *

Zone categories to be avoided.

+ * @public + */ + ZoneCategories?: RouteAvoidanceZoneCategory[]; +} + +/** + *

Options related to route matching.

+ * @public + */ +export interface RouteMatchingOptions { + /** + *

Attempts to match the provided position to a road similar to the provided name.

+ * @public + */ + NameHint?: string; + + /** + *

If the distance to a highway/bridge/tunnel/sliproad is within threshold, the waypoint will be snapped to the highway/bridge/tunnel/sliproad.

+ *

+ * Unit: meters + *

+ * @public + */ + OnRoadThreshold?: number; + + /** + *

Considers all roads within the provided radius to match the provided destination to. The roads that are considered are determined by the provided Strategy.

+ *

+ * Unit: Meters + *

+ * @public + */ + Radius?: number; + + /** + *

Strategy that defines matching of the position onto the road network. MatchAny considers all roads possible, whereas MatchMostSignificantRoad matches to the most significant road.

+ * @public + */ + Strategy?: MatchingStrategy; +} + +/** + *

Options to configure matching the provided position to a side of the street.

+ * @public + */ +export interface RouteSideOfStreetOptions { + /** + *

Position defined as [longitude, latitude].

+ * @public + */ + Position: number[] | undefined; + + /** + *

Strategy that defines when the side of street position should be used.

+ *

Default Value: DividedStreetOnly + *

+ * @public + */ + UseWith?: SideOfStreetMatchingStrategy; +} + +/** + *

Options related to the destination.

+ * @public + */ +export interface RouteDestinationOptions { + /** + *

Avoids actions for the provided distance. This is typically to consider for users in moving vehicles who may not have sufficient time to make an action at an origin or a destination.

+ * @public + */ + AvoidActionsForDistance?: number; + + /** + *

Avoid U-turns for calculation on highways and motorways.

+ * @public + */ + AvoidUTurns?: boolean; + + /** + *

GPS Heading at the position.

+ * @public + */ + Heading?: number; + + /** + *

Options to configure matching the provided position to the road network.

+ * @public + */ + Matching?: RouteMatchingOptions; + + /** + *

Options to configure matching the provided position to a side of the street.

+ * @public + */ + SideOfStreet?: RouteSideOfStreetOptions; + + /** + *

Duration of the stop.

+ *

+ * Unit: seconds + *

+ * @public + */ + StopDuration?: number; +} + +/** + *

Interval of the driver work-rest schedule. + * Stops are added to fulfil the provided rest schedule.

+ * @public + */ +export interface RouteDriverScheduleInterval { + /** + *

Maximum allowed driving time before stopping to rest.

+ *

+ * Unit: seconds + *

+ * @public + */ + DriveDuration: number | undefined; + + /** + *

Resting time before the driver can continue driving.

+ *

+ * Unit: seconds + *

+ * @public + */ + RestDuration: number | undefined; +} + +/** + *

Driver related options.

+ * @public + */ +export interface RouteDriverOptions { + /** + *

Driver work-rest schedule. Stops are added to fulfil the provided rest schedule.

+ * @public + */ + Schedule?: RouteDriverScheduleInterval[]; +} + +/** + *

Exclusion options for the route.

+ * @public + */ +export interface RouteExclusionOptions { + /** + *

List of countries to be avoided defined by two-letter or three-letter country codes.

+ * @public + */ + Countries: string[] | undefined; +} + +/** + * @public + * @enum + */ +export const MeasurementSystem = { + IMPERIAL: "Imperial", + METRIC: "Metric", +} as const; + +/** + * @public + */ +export type MeasurementSystem = (typeof MeasurementSystem)[keyof typeof MeasurementSystem]; + +/** + * @public + * @enum + */ +export const RouteLegAdditionalFeature = { + ELEVATION: "Elevation", + INCIDENTS: "Incidents", + PASS_THROUGH_WAYPOINTS: "PassThroughWaypoints", + SUMMARY: "Summary", + TOLLS: "Tolls", + TRAVEL_STEP_INSTRUCTIONS: "TravelStepInstructions", + TRUCK_ROAD_TYPES: "TruckRoadTypes", + TYPICAL_DURATION: "TypicalDuration", + ZONES: "Zones", +} as const; + +/** + * @public + */ +export type RouteLegAdditionalFeature = (typeof RouteLegAdditionalFeature)[keyof typeof RouteLegAdditionalFeature]; + +/** + *

Origin related options.

+ * @public + */ +export interface RouteOriginOptions { + /** + *

Avoids actions for the provided distance. This is typically to consider for users in moving vehicles who may not have sufficient time to make an action at an origin or a destination.

+ * @public + */ + AvoidActionsForDistance?: number; + + /** + *

Avoid U-turns for calculation on highways and motorways.

+ * @public + */ + AvoidUTurns?: boolean; + + /** + *

GPS Heading at the position.

+ * @public + */ + Heading?: number; + + /** + *

Options to configure matching the provided position to the road network.

+ * @public + */ + Matching?: RouteMatchingOptions; + + /** + *

Options to configure matching the provided position to a side of the street.

+ * @public + */ + SideOfStreet?: RouteSideOfStreetOptions; +} + +/** + * @public + * @enum + */ +export const RouteSpanAdditionalFeature = { + BEST_CASE_DURATION: "BestCaseDuration", + CAR_ACCESS: "CarAccess", + CONSUMPTION: "Consumption", + COUNTRY: "Country", + DISTANCE: "Distance", + DURATION: "Duration", + DYNAMIC_SPEED: "DynamicSpeed", + FUNCTIONAL_CLASSIFICATION: "FunctionalClassification", + GATES: "Gates", + INCIDENTS: "Incidents", + NAMES: "Names", + NOTICES: "Notices", + PEDESTRIAN_ACCESS: "PedestrianAccess", + RAILWAY_CROSSINGS: "RailwayCrossings", + REGION: "Region", + ROAD_ATTRIBUTES: "RoadAttributes", + ROUTE_NUMBERS: "RouteNumbers", + SCOOTER_ACCESS: "ScooterAccess", + SPEED_LIMIT: "SpeedLimit", + TOLL_SYSTEMS: "TollSystems", + TRUCK_ACCESS: "TruckAccess", + TRUCK_ROAD_TYPES: "TruckRoadTypes", + TYPICAL_DURATION: "TypicalDuration", + ZONES: "Zones", +} as const; + +/** + * @public + */ +export type RouteSpanAdditionalFeature = (typeof RouteSpanAdditionalFeature)[keyof typeof RouteSpanAdditionalFeature]; + +/** + *

Type of the emission.

+ *

+ * Valid values: Euro1, Euro2, Euro3, Euro4, Euro5, Euro6, EuroEev + *

+ * @public + */ +export interface RouteEmissionType { + /** + *

The CO 2 emission classes.

+ * @public + */ + Co2EmissionClass?: string; + + /** + *

Type of the emission.

+ *

+ * Valid values: Euro1, Euro2, Euro3, Euro4, Euro5, Euro6, EuroEev + *

+ * @public + */ + Type: string | undefined; +} + +/** + * @public + * @enum + */ +export const RouteTollVehicleCategory = { + MINIBUS: "Minibus", +} as const; + +/** + * @public + */ +export type RouteTollVehicleCategory = (typeof RouteTollVehicleCategory)[keyof typeof RouteTollVehicleCategory]; + +/** + *

Options related to Tolls on a route.

+ * @public + */ +export interface RouteTollOptions { + /** + *

Specifies if the user has valid transponder with access to all toll systems. This + * impacts toll calculation, and if true the price with transponders is used.

+ * @public + */ + AllTransponders?: boolean; + + /** + *

Specifies if the user has valid vignettes with access for all toll roads. If a user has a vignette for a toll road, then toll cost for that road is omitted since no further payment is necessary.

+ * @public + */ + AllVignettes?: boolean; + + /** + *

Currency code corresponding to the price. This is the same as Currency specified in the request.

+ * @public + */ + Currency?: string; + + /** + *

Emission type of the vehicle for toll cost calculation.

+ *

+ * Valid values: Euro1, Euro2, Euro3, Euro4, Euro5, Euro6, EuroEev + *

+ * @public + */ + EmissionType?: RouteEmissionType; + + /** + *

Vehicle category for toll cost calculation.

+ * @public + */ + VehicleCategory?: RouteTollVehicleCategory; +} + +/** + *

Traffic options for the route.

+ * @public + */ +export interface RouteTrafficOptions { + /** + *

Duration for which flow + * traffic is considered valid. + * For this period, the flow traffic is used over historical traffic data. + * Flow traffic refers to congestion, which changes very quickly. + * Duration in seconds for which flow traffic event would be considered valid. + * While flow traffic event is valid it will be used over the historical traffic data.

+ * @public + */ + FlowEventThresholdOverride?: number; + + /** + *

Determines if traffic should be used or ignored while calculating the route.

+ *

Default Value: UseTrafficData + *

+ * @public + */ + Usage?: TrafficUsage; +} + +/** + * @public + * @enum + */ +export const RouteTravelMode = { + CAR: "Car", + PEDESTRIAN: "Pedestrian", + SCOOTER: "Scooter", + TRUCK: "Truck", +} as const; + +/** + * @public + */ +export type RouteTravelMode = (typeof RouteTravelMode)[keyof typeof RouteTravelMode]; + +/** + * @public + * @enum + */ +export const RouteEngineType = { + ELECTRIC: "Electric", + INTERNAL_COMBUSTION: "InternalCombustion", + PLUGIN_HYBRID: "PluginHybrid", +} as const; + +/** + * @public + */ +export type RouteEngineType = (typeof RouteEngineType)[keyof typeof RouteEngineType]; + +/** + *

License plate information of the vehicle. Currently, only the last character is used + * where license plate based controlled access is enforced.

+ * @public + */ +export interface RouteVehicleLicensePlate { + /** + *

The last character of the License Plate.

+ * @public + */ + LastCharacter?: string; +} + +/** + *

Travel mode options when the provided travel mode is "Car"

+ * @public + */ +export interface RouteCarOptions { + /** + *

Engine type of the vehicle.

+ * @public + */ + EngineType?: RouteEngineType; + + /** + *

The vehicle License Plate.

+ * @public + */ + LicensePlate?: RouteVehicleLicensePlate; + + /** + *

Maximum speed specified.

+ *

+ * Unit: KilometersPerHour + *

+ * @public + */ + MaxSpeed?: number; + + /** + *

The number of occupants in the vehicle.

+ *

Default Value: 1 + *

+ * @public + */ + Occupancy?: number; +} + +/** + *

Options related to the pedestrian.

+ * @public + */ +export interface RoutePedestrianOptions { + /** + *

Walking speed in Kilometers per hour.

+ * @public + */ + Speed?: number; +} + +/** + *

Travel mode options when the provided travel mode is "Scooter"

+ * @public + */ +export interface RouteScooterOptions { + /** + *

Engine type of the vehicle.

+ * @public + */ + EngineType?: RouteEngineType; + + /** + *

The vehicle License Plate.

+ * @public + */ + LicensePlate?: RouteVehicleLicensePlate; + + /** + *

Maximum speed

+ *

+ * Unit: KilometersPerHour + *

+ * @public + */ + MaxSpeed?: number; + + /** + *

The number of occupants in the vehicle.

+ *

Default Value: 1 + *

+ * @public + */ + Occupancy?: number; +} + +/** + * @public + * @enum + */ +export const RouteHazardousCargoType = { + COMBUSTIBLE: "Combustible", + CORROSIVE: "Corrosive", + EXPLOSIVE: "Explosive", + FLAMMABLE: "Flammable", + GAS: "Gas", + HARMFUL_TO_WATER: "HarmfulToWater", + ORGANIC: "Organic", + OTHER: "Other", + POISON: "Poison", + POISONOUS_INHALATION: "PoisonousInhalation", + RADIOACTIVE: "Radioactive", +} as const; + +/** + * @public + */ +export type RouteHazardousCargoType = (typeof RouteHazardousCargoType)[keyof typeof RouteHazardousCargoType]; + +/** + *

Trailer options corresponding to the vehicle.

+ * @public + */ +export interface RouteTrailerOptions { + /** + *

Total number of axles of the vehicle.

+ * @public + */ + AxleCount?: number; + + /** + *

Number of trailers attached to the vehicle.

+ *

Default Value: 0 + *

+ * @public + */ + TrailerCount?: number; +} + +/** + * @public + * @enum + */ +export const RouteTruckType = { + LIGHT_TRUCK: "LightTruck", + STRAIGHT_TRUCK: "StraightTruck", + TRACTOR: "Tractor", +} as const; + +/** + * @public + */ +export type RouteTruckType = (typeof RouteTruckType)[keyof typeof RouteTruckType]; + +/** + *

Travel mode options when the provided travel mode is "Truck"

+ * @public + */ +export interface RouteTruckOptions { + /** + *

Total number of axles of the vehicle.

+ * @public + */ + AxleCount?: number; + + /** + *

Engine type of the vehicle.

+ * @public + */ + EngineType?: RouteEngineType; + + /** + *

Gross weight of the vehicle including trailers, and goods at capacity.

+ *

+ * Unit: Kilograms + *

+ * @public + */ + GrossWeight?: number; + + /** + *

List of Hazardous cargo contained in the vehicle.

+ * @public + */ + HazardousCargos?: RouteHazardousCargoType[]; + + /** + *

Height of the vehicle.

+ *

+ * Unit: centimeters + *

+ * @public + */ + Height?: number; + + /** + *

Height of the vehicle above its first axle.

+ *

+ * Unit: centimeters + *

+ * @public + */ + HeightAboveFirstAxle?: number; + + /** + *

Kingpin to rear axle length of the vehicle.

+ *

+ * Unit: centimeters + *

+ * @public + */ + KpraLength?: number; + + /** + *

Length of the vehicle.

+ *

+ * Unit: c + *

+ * @public + */ + Length?: number; + + /** + *

The vehicle License Plate.

+ * @public + */ + LicensePlate?: RouteVehicleLicensePlate; + + /** + *

Maximum speed

+ *

+ * Unit: KilometersPerHour + *

+ * @public + */ + MaxSpeed?: number; + + /** + *

The number of occupants in the vehicle.

+ *

Default Value: 1 + *

+ * @public + */ + Occupancy?: number; + + /** + *

Payload capacity of the vehicle and trailers attached.

+ *

+ * Unit: kilograms + *

+ * @public + */ + PayloadCapacity?: number; + + /** + *

Number of tires on the vehicle.

+ * @public + */ + TireCount?: number; + + /** + *

Trailer options corresponding to the vehicle.

+ * @public + */ + Trailer?: RouteTrailerOptions; + + /** + *

Type of the truck.

+ * @public + */ + TruckType?: RouteTruckType; + + /** + *

The tunnel restriction code.

+ *

Tunnel categories in this list indicate the restrictions which apply to certain tunnels in Great Britain. + * They relate to the types of dangerous goods that can be transported through them.

+ *
    + *
  • + *

    + * Tunnel Category B + *

    + *
      + *
    • + *

      + * Risk Level: Limited risk

      + *
    • + *
    • + *

      + * Restrictions: Few restrictions

      + *
    • + *
    + *
  • + *
  • + *

    + * Tunnel Category C + *

    + *
      + *
    • + *

      + * Risk Level: Medium risk

      + *
    • + *
    • + *

      + * Restrictions: Some restrictions

      + *
    • + *
    + *
  • + *
  • + *

    + * Tunnel Category D + *

    + *
      + *
    • + *

      + * Risk Level: High risk

      + *
    • + *
    • + *

      + * Restrictions: Many restrictions occur

      + *
    • + *
    + *
  • + *
  • + *

    + * Tunnel Category E + *

    + *
      + *
    • + *

      + * Risk Level: Very high risk

      + *
    • + *
    • + *

      + * Restrictions: Restricted tunnel

      + *
    • + *
    + *
  • + *
+ * @public + */ + TunnelRestrictionCode?: string; + + /** + *

Heaviest weight per axle irrespective of the axle type or the axle group. Meant for usage in countries where the differences in axle types or axle groups are not distinguished.

+ *

+ * Unit: Kilograms + *

+ * @public + */ + WeightPerAxle?: number; + + /** + *

Specifies the total weight for the specified axle group. Meant for usage in countries that have different regulations based on the axle group type.

+ *

+ * Unit: Kilograms + *

+ * @public + */ + WeightPerAxleGroup?: WeightPerAxleGroup; + + /** + *

Width of the vehicle.

+ *

+ * Unit: centimeters + *

+ * @public + */ + Width?: number; +} + +/** + *

Travel mode related options for the provided travel mode.

+ * @public + */ +export interface RouteTravelModeOptions { + /** + *

Travel mode options when the provided travel mode is "Car"

+ * @public + */ + Car?: RouteCarOptions; + + /** + *

Travel mode options when the provided travel mode is "Pedestrian"

+ * @public + */ + Pedestrian?: RoutePedestrianOptions; + + /** + *

Travel mode options when the provided travel mode is "Scooter"

+ * @public + */ + Scooter?: RouteScooterOptions; + + /** + *

Travel mode options when the provided travel mode is "Truck"

+ * @public + */ + Truck?: RouteTruckOptions; +} + +/** + * @public + * @enum + */ +export const RouteTravelStepType = { + DEFAULT: "Default", + TURN_BY_TURN: "TurnByTurn", +} as const; + +/** + * @public + */ +export type RouteTravelStepType = (typeof RouteTravelStepType)[keyof typeof RouteTravelStepType]; + +/** + *

Waypoint between the Origin and Destination.

+ * @public + */ +export interface RouteWaypoint { + /** + *

Avoids actions for the provided distance. This is typically to consider for users in moving vehicles who may not have sufficient time to make an action at an origin or a destination.

+ * @public + */ + AvoidActionsForDistance?: number; + + /** + *

Avoid U-turns for calculation on highways and motorways.

+ * @public + */ + AvoidUTurns?: boolean; + + /** + *

GPS Heading at the position.

+ * @public + */ + Heading?: number; + + /** + *

Options to configure matching the provided position to the road network.

+ * @public + */ + Matching?: RouteMatchingOptions; + + /** + *

If the waypoint should not be treated as a stop. If yes, the waypoint is passed through and doesn't split the route into different legs.

+ * @public + */ + PassThrough?: boolean; + + /** + *

Position defined as [longitude, latitude].

+ * @public + */ + Position: number[] | undefined; + + /** + *

Options to configure matching the provided position to a side of the street.

+ * @public + */ + SideOfStreet?: RouteSideOfStreetOptions; + + /** + *

Duration of the stop.

+ *

+ * Unit: seconds + *

+ * @public + */ + StopDuration?: number; +} + +/** + * @public + */ +export interface CalculateRoutesRequest { + /** + *

Features that are allowed while calculating. a route

+ * @public + */ + Allow?: RouteAllowOptions; + + /** + *

Time of arrival at the destination.

+ *

Time format:YYYY-MM-DDThh:mm:ss.sssZ | YYYY-MM-DDThh:mm:ss.sss+hh:mm + *

+ *

Examples:

+ *

+ * 2020-04-22T17:57:24Z + *

+ *

+ * 2020-04-22T17:57:24+02:00 + *

+ * @public + */ + ArrivalTime?: string; + + /** + *

Features that are avoided while calculating a route. Avoidance is on a best-case basis. If an + * avoidance can't be satisfied for a particular case, it violates the avoidance and the + * returned response produces a notice for the violation.

+ * @public + */ + Avoid?: RouteAvoidanceOptions; + + /** + *

Uses the current time as the time of departure.

+ * @public + */ + DepartNow?: boolean; + + /** + *

Time of departure from thr origin.

+ *

Time format:YYYY-MM-DDThh:mm:ss.sssZ | YYYY-MM-DDThh:mm:ss.sss+hh:mm + *

+ *

Examples:

+ *

+ * 2020-04-22T17:57:24Z + *

+ *

+ * 2020-04-22T17:57:24+02:00 + *

+ * @public + */ + DepartureTime?: string; + + /** + *

The final position for the route. In the World Geodetic System (WGS 84) format: [longitude, latitude].

+ * @public + */ + Destination: number[] | undefined; + + /** + *

Destination related options.

+ * @public + */ + DestinationOptions?: RouteDestinationOptions; + + /** + *

Driver related options.

+ * @public + */ + Driver?: RouteDriverOptions; + + /** + *

Features to be strictly excluded while calculating the route.

+ * @public + */ + Exclude?: RouteExclusionOptions; + + /** + *

Measurement system to be used for instructions within steps in the response.

+ * @public + */ + InstructionsMeasurementSystem?: MeasurementSystem; + + /** + *

Optional: The API key to be used for authorization. Either an API key or valid SigV4 + * signature must be provided when making a request.

+ * @public + */ + Key?: string; + + /** + *

List of languages for instructions within steps in the response.

+ * + *

Instructions in the requested language are returned only if they are available.

+ *
+ * @public + */ + Languages?: string[]; + + /** + *

A list of optional additional parameters such as timezone that can be requested for each result.

+ *
    + *
  • + *

    + * Elevation: Retrieves the elevation information for each location.

    + *
  • + *
  • + *

    + * Incidents: Provides information on traffic incidents along the route.

    + *
  • + *
  • + *

    + * PassThroughWaypoints: Indicates waypoints that are passed through without stopping.

    + *
  • + *
  • + *

    + * Summary: Returns a summary of the route, including distance and duration.

    + *
  • + *
  • + *

    + * Tolls: Supplies toll cost information along the route.

    + *
  • + *
  • + *

    + * TravelStepInstructions: Provides step-by-step instructions for travel along the route.

    + *
  • + *
  • + *

    + * TruckRoadTypes: Returns information about road types suitable for trucks.

    + *
  • + *
  • + *

    + * TypicalDuration: Gives typical travel duration based on historical data.

    + *
  • + *
  • + *

    + * Zones: Specifies the time zone information for each waypoint.

    + *
  • + *
+ * @public + */ + LegAdditionalFeatures?: RouteLegAdditionalFeature[]; + + /** + *

Specifies the format of the geometry returned for each leg of the route. You can + * choose between two different geometry encoding formats.

+ *

+ * FlexiblePolyline: A compact and precise encoding format for the + * leg geometry. For more information on the format, see the GitHub repository for + * FlexiblePolyline + * .

+ *

+ * Simple: A less compact encoding, + * which is easier to decode but may be less precise and result in larger payloads.

+ * @public + */ + LegGeometryFormat?: GeometryFormat; + + /** + *

Maximum number of alternative routes to be provided in the response, if available.

+ * @public + */ + MaxAlternatives?: number; + + /** + *

Specifies the optimization criteria for calculating a route.

+ *

Default Value: FastestRoute + *

+ * @public + */ + OptimizeRoutingFor?: RoutingObjective; + + /** + *

The start position for the route.

+ * @public + */ + Origin: number[] | undefined; + + /** + *

Origin related options.

+ * @public + */ + OriginOptions?: RouteOriginOptions; + + /** + *

A list of optional features such as SpeedLimit that can be requested for a Span. A span is a section of a Leg for which the requested features have the same values.

+ * @public + */ + SpanAdditionalFeatures?: RouteSpanAdditionalFeature[]; + + /** + *

Toll related options.

+ * @public + */ + Tolls?: RouteTollOptions; + + /** + *

Traffic related options.

+ * @public + */ + Traffic?: RouteTrafficOptions; + + /** + *

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

+ *

Default Value: Car + *

+ * @public + */ + TravelMode?: RouteTravelMode; + + /** + *

Travel mode related options for the provided travel mode.

+ * @public + */ + TravelModeOptions?: RouteTravelModeOptions; + + /** + *

Type of step returned by the response. + * Default provides basic steps intended for web based applications. + * TurnByTurn provides detailed instructions with more granularity intended for a turn based naviagtion system.

+ * @public + */ + TravelStepType?: RouteTravelStepType; + + /** + *

List of waypoints between the Origin and Destination.

+ * @public + */ + Waypoints?: RouteWaypoint[]; +} + +/** + * @public + * @enum + */ +export const RouteResponseNoticeCode = { + MAIN_LANGUAGE_NOT_FOUND: "MainLanguageNotFound", + OTHER: "Other", + TRAVEL_TIME_EXCEEDS_DRIVER_WORK_HOURS: "TravelTimeExceedsDriverWorkHours", +} as const; + +/** + * @public + */ +export type RouteResponseNoticeCode = (typeof RouteResponseNoticeCode)[keyof typeof RouteResponseNoticeCode]; + +/** + * @public + * @enum + */ +export const RouteNoticeImpact = { + HIGH: "High", + LOW: "Low", +} as const; + +/** + * @public + */ +export type RouteNoticeImpact = (typeof RouteNoticeImpact)[keyof typeof RouteNoticeImpact]; + +/** + *

Notices are additional information returned that indicate issues that occurred during route calculation.

+ * @public + */ +export interface RouteResponseNotice { + /** + *

Code corresponding to the issue.

+ * @public + */ + Code: RouteResponseNoticeCode | undefined; + + /** + *

Impact corresponding to the issue. While Low impact notices can be safely ignored, High impact notices must be evaluated further to determine the impact.

+ * @public + */ + Impact?: RouteNoticeImpact; +} + +/** + * @public + * @enum + */ +export const RouteFerryAfterTravelStepType = { + DEBOARD: "Deboard", +} as const; + +/** + * @public + */ +export type RouteFerryAfterTravelStepType = + (typeof RouteFerryAfterTravelStepType)[keyof typeof RouteFerryAfterTravelStepType]; + +/** + *

Steps of a leg that must be performed after the travel portion of the leg.

+ * @public + */ +export interface RouteFerryAfterTravelStep { + /** + *

Duration of the step.

+ *

+ * Unit: seconds + *

+ * @public + */ + Duration: number | undefined; + + /** + *

Brief description of the step in the requested language.

+ * + *

Only available when the TravelStepType is Default.

+ *
+ * @public + */ + Instruction?: string; + + /** + *

Type of the step.

+ * @public + */ + Type: RouteFerryAfterTravelStepType | undefined; +} + +/** + *

Position provided in the request.

+ * @public + */ +export interface RouteFerryPlace { + /** + *

The name of the place.

+ * @public + */ + Name?: string; + + /** + *

Position provided in the request.

+ * @public + */ + OriginalPosition?: number[]; + + /** + *

Position defined as [longitude, latitude].

+ * @public + */ + Position: number[] | undefined; + + /** + *

Index of the waypoint in the request.

+ * @public + */ + WaypointIndex?: number; +} + +/** + *

Details corresponding to the arrival for the leg.

+ * @public + */ +export interface RouteFerryArrival { + /** + *

The place details.

+ * @public + */ + Place: RouteFerryPlace | undefined; + + /** + *

The time.

+ * @public + */ + Time?: string; +} + +/** + * @public + * @enum + */ +export const RouteFerryBeforeTravelStepType = { + BOARD: "Board", +} as const; + +/** + * @public + */ +export type RouteFerryBeforeTravelStepType = + (typeof RouteFerryBeforeTravelStepType)[keyof typeof RouteFerryBeforeTravelStepType]; + +/** + *

Steps of a leg that must be performed before the travel portion of the leg.

+ * @public + */ +export interface RouteFerryBeforeTravelStep { + /** + *

Duration of the step.

+ *

+ * Unit: seconds + *

+ * @public + */ + Duration: number | undefined; + + /** + *

Brief description of the step in the requested language.

+ * + *

Only available when the TravelStepType is Default.

+ *
+ * @public + */ + Instruction?: string; + + /** + *

Type of the step.

+ * @public + */ + Type: RouteFerryBeforeTravelStepType | undefined; +} + +/** + *

Details corresponding to the departure for the leg.

+ * @public + */ +export interface RouteFerryDeparture { + /** + *

The place details.

+ * @public + */ + Place: RouteFerryPlace | undefined; + + /** + *

The time.

+ * @public + */ + Time?: string; +} + +/** + * @public + * @enum + */ +export const RouteFerryNoticeCode = { + ACCURATE_POLYLINE_UNAVAILABLE: "AccuratePolylineUnavailable", + NO_SCHEDULE: "NoSchedule", + OTHER: "Other", + VIOLATED_AVOID_FERRY: "ViolatedAvoidFerry", + VIOLATED_AVOID_RAIL_FERRY: "ViolatedAvoidRailFerry", +} as const; + +/** + * @public + */ +export type RouteFerryNoticeCode = (typeof RouteFerryNoticeCode)[keyof typeof RouteFerryNoticeCode]; + +/** + *

Notices are additional information returned that indicate issues that occurred during route calculation.

+ * @public + */ +export interface RouteFerryNotice { + /** + *

Code corresponding to the issue.

+ * @public + */ + Code: RouteFerryNoticeCode | undefined; + + /** + *

Impact corresponding to the issue. While Low impact notices can be safely ignored, High impact notices must be evaluated further to determine the impact.

+ * @public + */ + Impact?: RouteNoticeImpact; +} + +/** + *

The place where the waypoint is passed through and not treated as a stop.

+ * @public + */ +export interface RoutePassThroughPlace { + /** + *

Position provided in the request.

+ * @public + */ + OriginalPosition?: number[]; + + /** + *

Position defined as [longitude, latitude].

+ * @public + */ + Position: number[] | undefined; + + /** + *

Index of the waypoint in the request.

+ * @public + */ + WaypointIndex?: number; +} + +/** + *

If the waypoint should be treated as a stop. If yes, the route is split up into different legs around the stop.

+ * @public + */ +export interface RoutePassThroughWaypoint { + /** + *

Offset in the leg geometry corresponding to the start of this step.

+ * @public + */ + GeometryOffset?: number; + + /** + *

The place details.

+ * @public + */ + Place: RoutePassThroughPlace | undefined; +} + +/** + *

The localized string.

+ * @public + */ +export interface LocalizedString { + /** + *

A list of BCP 47 compliant language codes for the results to be rendered in. The request + * uses the regional default as the fallback if the requested language can't be + * provided.

+ * @public + */ + Language?: string; + + /** + *

The value of the localized string.

+ * @public + */ + Value: string | undefined; +} + +/** + *

Span computed for the requested SpanAdditionalFeatures.

+ * @public + */ +export interface RouteFerrySpan { + /** + *

3 letter Country code corresponding to the Span.

+ * @public + */ + Country?: string; + + /** + *

Distance of the computed span. This feature doesn't split a span, but is always computed on a span split by other properties.

+ * @public + */ + Distance?: number; + + /** + *

Duration of the computed span. This feature doesn't split a span, but is always computed on a span split by other properties.

+ *

+ * Unit: seconds + *

+ * @public + */ + Duration?: number; + + /** + *

Offset in the leg geometry corresponding to the start of this span.

+ * @public + */ + GeometryOffset?: number; + + /** + *

Provides an array of names of the ferry span in available languages.

+ * @public + */ + Names?: LocalizedString[]; + + /** + *

2-3 letter Region code corresponding to the Span. This is either a province or a state.

+ * @public + */ + Region?: string; +} + +/** + *

Summarized details of the leg.

+ * @public + */ +export interface RouteFerryOverviewSummary { + /** + *

Distance of the step.

+ * @public + */ + Distance: number | undefined; + + /** + *

Duration of the step.

+ *

+ * Unit: seconds + *

+ * @public + */ + Duration: number | undefined; +} + +/** + *

Summarized details for the leg including travel steps only. The Distance for the travel only portion of the journey is the same as the Distance within the Overview summary.

+ * @public + */ +export interface RouteFerryTravelOnlySummary { + /** + *

Total duration in free flowing traffic, which is the best case or shortest duration possible to cover the leg.

+ *

+ * Unit: seconds + *

+ * @public + */ + Duration: number | undefined; +} + +/** + *

Summarized details for the leg including travel steps only. The Distance for the travel only portion of the journey is the same as the Distance within the Overview summary.

+ * @public + */ +export interface RouteFerrySummary { + /** + *

Summarized details for the leg including before travel, travel and after travel steps.

+ * @public + */ + Overview?: RouteFerryOverviewSummary; + + /** + *

Summarized details for the leg including travel steps only. The Distance for the travel only portion of the journey is in meters

+ * @public + */ + TravelOnly?: RouteFerryTravelOnlySummary; +} + +/** + * @public + * @enum + */ +export const RouteFerryTravelStepType = { + ARRIVE: "Arrive", + CONTINUE: "Continue", + DEPART: "Depart", +} as const; + +/** + * @public + */ +export type RouteFerryTravelStepType = (typeof RouteFerryTravelStepType)[keyof typeof RouteFerryTravelStepType]; + +/** + *

Steps of a leg that must be performed during the travel portion of the leg.

+ * @public + */ +export interface RouteFerryTravelStep { + /** + *

Distance of the step.

+ * @public + */ + Distance?: number; + + /** + *

Duration of the step.

+ *

+ * Unit: seconds + *

+ * @public + */ + Duration: number | undefined; + + /** + *

Offset in the leg geometry corresponding to the start of this step.

+ * @public + */ + GeometryOffset?: number; + + /** + *

Brief description of the step in the requested language.

+ * + *

Only available when the TravelStepType is Default.

+ *
+ * @public + */ + Instruction?: string; + + /** + *

Type of the step.

+ * @public + */ + Type: RouteFerryTravelStepType | undefined; +} + +/** + *

FerryLegDetails is populated when the Leg type is Ferry, and provides additional + * information that is specific

+ * @public + */ +export interface RouteFerryLegDetails { + /** + *

Steps of a leg that must be performed after the travel portion of the leg.

+ * @public + */ + AfterTravelSteps: RouteFerryAfterTravelStep[] | undefined; + + /** + *

Details corresponding to the arrival for the leg.

+ * @public + */ + Arrival: RouteFerryArrival | undefined; + + /** + *

Steps of a leg that must be performed before the travel portion of the leg.

+ * @public + */ + BeforeTravelSteps: RouteFerryBeforeTravelStep[] | undefined; + + /** + *

Details corresponding to the departure for the leg.

+ * @public + */ + Departure: RouteFerryDeparture | undefined; + + /** + *

Notices are additional information returned that indicate issues that occurred during route calculation.

+ * @public + */ + Notices: RouteFerryNotice[] | undefined; + + /** + *

Waypoints that were passed through during the leg. This includes the waypoints that were configured with the PassThrough option.

+ * @public + */ + PassThroughWaypoints: RoutePassThroughWaypoint[] | undefined; + + /** + *

Route name of the ferry line.

+ * @public + */ + RouteName?: string; + + /** + *

Spans that were computed for the requested SpanAdditionalFeatures.

+ * @public + */ + Spans: RouteFerrySpan[] | undefined; + + /** + *

Summarized details of the leg.

+ * @public + */ + Summary?: RouteFerrySummary; + + /** + *

Steps of a leg that must be performed before the travel portion of the leg.

+ * @public + */ + TravelSteps: RouteFerryTravelStep[] | undefined; +} + +/** + *

The returned Route leg geometry.

+ * @public + */ +export interface RouteLegGeometry { + /** + *

An ordered list of positions used to plot a route on a map.

+ * + *

LineString and Polyline are mutually exclusive properties.

+ *
+ * @public + */ + LineString?: number[][]; + + /** + *

An ordered list of positions used to plot a route on a map in a lossy compression format.

+ * + *

LineString and Polyline are mutually exclusive properties.

+ *
+ * @public + */ + Polyline?: string; +} + +/** + * @public + * @enum + */ +export const RouteSideOfStreet = { + LEFT: "Left", + RIGHT: "Right", +} as const; + +/** + * @public + */ +export type RouteSideOfStreet = (typeof RouteSideOfStreet)[keyof typeof RouteSideOfStreet]; + +/** + *

Place details corresponding to the arrival or departure.

+ * @public + */ +export interface RoutePedestrianPlace { + /** + *

The name of the place.

+ * @public + */ + Name?: string; + + /** + *

Position provided in the request.

+ * @public + */ + OriginalPosition?: number[]; + + /** + *

Position defined as [longitude, latitude].

+ * @public + */ + Position: number[] | undefined; + + /** + *

Options to configure matching the provided position to a side of the street.

+ * @public + */ + SideOfStreet?: RouteSideOfStreet; + + /** + *

Index of the waypoint in the request.

+ * @public + */ + WaypointIndex?: number; +} + +/** + *

Details corresponding to the arrival for a leg.

+ *

Time format:YYYY-MM-DDThh:mm:ss.sssZ | YYYY-MM-DDThh:mm:ss.sss+hh:mm + *

+ *

Examples:

+ *

+ * 2020-04-22T17:57:24Z + *

+ *

+ * 2020-04-22T17:57:24+02:00 + *

+ * @public + */ +export interface RoutePedestrianArrival { + /** + *

The place details.

+ * @public + */ + Place: RoutePedestrianPlace | undefined; + + /** + *

The time.

+ * @public + */ + Time?: string; +} + +/** + *

Details corresponding to the departure for a leg.

+ *

Time format:YYYY-MM-DDThh:mm:ss.sssZ | YYYY-MM-DDThh:mm:ss.sss+hh:mm + *

+ *

Examples:

+ *

+ * 2020-04-22T17:57:24Z + *

+ *

+ * 2020-04-22T17:57:24+02:00 + *

+ * @public + */ +export interface RoutePedestrianDeparture { + /** + *

The place details.

+ * @public + */ + Place: RoutePedestrianPlace | undefined; + + /** + *

The time.

+ * @public + */ + Time?: string; +} + +/** + * @public + * @enum + */ +export const RoutePedestrianNoticeCode = { + ACCURATE_POLYLINE_UNAVAILABLE: "AccuratePolylineUnavailable", + OTHER: "Other", + VIOLATED_AVOID_DIRT_ROAD: "ViolatedAvoidDirtRoad", + VIOLATED_AVOID_TUNNEL: "ViolatedAvoidTunnel", + VIOLATED_PEDESTRIAN_OPTION: "ViolatedPedestrianOption", +} as const; + +/** + * @public + */ +export type RoutePedestrianNoticeCode = (typeof RoutePedestrianNoticeCode)[keyof typeof RoutePedestrianNoticeCode]; + +/** + *

Notices are additional information returned that indicate issues that occurred during route calculation.

+ * @public + */ +export interface RoutePedestrianNotice { + /** + *

Code corresponding to the issue.

+ * @public + */ + Code: RoutePedestrianNoticeCode | undefined; + + /** + *

Impact corresponding to the issue. While Low impact notices can be safely ignored, High impact notices must be evaluated further to determine the impact.

+ * @public + */ + Impact?: RouteNoticeImpact; +} + +/** + *

Details about the dynamic speed.

+ *

+ * Unit: KilometersPerHour + *

+ * @public + */ +export interface RouteSpanDynamicSpeedDetails { + /** + *

Estimated speed while traversing the span without traffic congestion.

+ *

+ * Unit: KilometersPerHour + *

+ * @public + */ + BestCaseSpeed?: number; + + /** + *

Estimated time to turn from this span into the next.

+ *

+ * Unit: seconds + *

+ * @public + */ + TurnDuration?: number; + + /** + *

Estimated speed while traversing the span under typical traffic congestion.

+ *

+ * Unit: KilometersPerHour + *

+ * @public + */ + TypicalSpeed?: number; +} + +/** + * @public + * @enum + */ +export const RouteSpanPedestrianAccessAttribute = { + ALLOWED: "Allowed", + INDOORS: "Indoors", + NO_THROUGH_TRAFFIC: "NoThroughTraffic", + PARK: "Park", + STAIRS: "Stairs", + TOLL_ROAD: "TollRoad", +} as const; + +/** + * @public + */ +export type RouteSpanPedestrianAccessAttribute = + (typeof RouteSpanPedestrianAccessAttribute)[keyof typeof RouteSpanPedestrianAccessAttribute]; + +/** + * @public + * @enum + */ +export const RouteSpanRoadAttribute = { + BRIDGE: "Bridge", + BUILT_UP_AREA: "BuiltUpArea", + CONTROLLED_ACCESS_HIGHWAY: "ControlledAccessHighway", + DIRT_ROAD: "DirtRoad", + DIVIDED_ROAD: "DividedRoad", + MOTORWAY: "Motorway", + PRIVATE_ROAD: "PrivateRoad", + RAMP: "Ramp", + RIGHT_HAND_TRAFFIC: "RightHandTraffic", + ROUNDABOUT: "Roundabout", + TUNNEL: "Tunnel", + UNDER_CONSTRUCTION: "UnderConstruction", +} as const; + +/** + * @public + */ +export type RouteSpanRoadAttribute = (typeof RouteSpanRoadAttribute)[keyof typeof RouteSpanRoadAttribute]; + +/** + * @public + * @enum + */ +export const RouteDirection = { + EAST: "East", + NORTH: "North", + SOUTH: "South", + WEST: "West", +} as const; + +/** + * @public + */ +export type RouteDirection = (typeof RouteDirection)[keyof typeof RouteDirection]; + +/** + *

The route number.

+ * @public + */ +export interface RouteNumber { + /** + *

Directional identifier of the route.

+ * @public + */ + Direction?: RouteDirection; + + /** + *

List of languages for instructions corresponding to the route number.

+ * @public + */ + Language?: string; + + /** + *

The route number.

+ * @public + */ + Value: string | undefined; +} + +/** + *

Details about the speed limit corresponding to the span.

+ *

+ * Unit: KilometersPerHour + *

+ * @public + */ +export interface RouteSpanSpeedLimitDetails { + /** + *

Maximum speed.

+ *

+ * Unit: KilometersPerHour + *

+ * @public + */ + MaxSpeed?: number; + + /** + *

If the span doesn't have a speed limit like the Autobahn.

+ * @public + */ + Unlimited?: boolean; +} + +/** + *

Span computed for the requested SpanAdditionalFeatures.

+ * @public + */ +export interface RoutePedestrianSpan { + /** + *

Duration of the computed span without traffic congestion.

+ *

+ * Unit: seconds + *

+ * @public + */ + BestCaseDuration?: number; + + /** + *

3 letter Country code corresponding to the Span.

+ * @public + */ + Country?: string; + + /** + *

Distance of the computed span. This feature doesn't split a span, but is always computed on a span split by other properties.

+ * @public + */ + Distance?: number; + + /** + *

Duration of the computed span. This feature doesn't split a span, but is always computed on a span split by other properties.

+ *

+ * Unit: seconds + *

+ * @public + */ + Duration?: number; + + /** + *

Dynamic speed details corresponding to the span.

+ *

+ * Unit: KilometersPerHour + *

+ * @public + */ + DynamicSpeed?: RouteSpanDynamicSpeedDetails; + + /** + *

Functional classification of the road segment corresponding to the span.

+ * @public + */ + FunctionalClassification?: number; + + /** + *

Offset in the leg geometry corresponding to the start of this span.

+ * @public + */ + GeometryOffset?: number; + + /** + *

Incidents corresponding to the span. These index into the Incidents in the parent Leg.

+ * @public + */ + Incidents?: number[]; + + /** + *

Provides an array of names of the pedestrian span in available languages.

+ * @public + */ + Names?: LocalizedString[]; + + /** + *

Access attributes for a pedestrian corresponding to the span.

+ * @public + */ + PedestrianAccess?: RouteSpanPedestrianAccessAttribute[]; + + /** + *

2-3 letter Region code corresponding to the Span. This is either a province or a state.

+ * @public + */ + Region?: string; + + /** + *

Attributes for the road segment corresponding to the span.

+ * @public + */ + RoadAttributes?: RouteSpanRoadAttribute[]; + + /** + *

Designated route name or number corresponding to the span.

+ * @public + */ + RouteNumbers?: RouteNumber[]; + + /** + *

Speed limit details corresponding to the span.

+ *

+ * Unit: KilometersPerHour + *

+ * @public + */ + SpeedLimit?: RouteSpanSpeedLimitDetails; + + /** + *

Duration of the computed span under typical traffic congestion.

+ *

+ * Unit: seconds + *

+ * @public + */ + TypicalDuration?: number; +} + +/** + *

Provides a summary of a pedestrian route step.

+ * @public + */ +export interface RoutePedestrianOverviewSummary { + /** + *

Distance of the step.

+ * @public + */ + Distance: number | undefined; + + /** + *

Duration of the step.

+ * @public + */ + Duration: number | undefined; +} + +/** + *

Summarized details for the leg including travel steps.

+ * @public + */ +export interface RoutePedestrianTravelOnlySummary { + /** + *

Duration of the step.

+ *

+ * Unit: seconds + *

+ * @public + */ + Duration: number | undefined; +} + +/** + *

Summarized details for the leg including before travel, travel and after travel steps.

+ * @public + */ +export interface RoutePedestrianSummary { + /** + *

Summarized details for the leg including before travel, travel and after travel steps.

+ * @public + */ + Overview?: RoutePedestrianOverviewSummary; + + /** + *

Summarized details for the leg including travel steps only. The Distance for the travel only portion of the journey is in meters

+ * @public + */ + TravelOnly?: RoutePedestrianTravelOnlySummary; +} + +/** + *

Details related to the continue step.

+ * @public + */ +export interface RouteContinueStepDetails { + /** + *

Name of the intersection, if applicable to the step.

+ * @public + */ + Intersection: LocalizedString[] | undefined; +} + +/** + * @public + * @enum + */ +export const RouteRoadType = { + HIGHWAY: "Highway", + RURAL: "Rural", + URBAN: "Urban", +} as const; + +/** + * @public + */ +export type RouteRoadType = (typeof RouteRoadType)[keyof typeof RouteRoadType]; + +/** + *

The road on the route.

+ * @public + */ +export interface RouteRoad { + /** + *

Name of the road (localized).

+ * @public + */ + RoadName: LocalizedString[] | undefined; + + /** + *

Route number of the road.

+ * @public + */ + RouteNumber: RouteNumber[] | undefined; + + /** + *

Names of destinations that can be reached when traveling on the road.

+ * @public + */ + Towards: LocalizedString[] | undefined; + + /** + *

The type of road.

+ * @public + */ + Type?: RouteRoadType; +} + +/** + * @public + * @enum + */ +export const RouteSteeringDirection = { + LEFT: "Left", + RIGHT: "Right", + STRAIGHT: "Straight", +} as const; + +/** + * @public + */ +export type RouteSteeringDirection = (typeof RouteSteeringDirection)[keyof typeof RouteSteeringDirection]; + +/** + * @public + * @enum + */ +export const RouteTurnIntensity = { + SHARP: "Sharp", + SLIGHT: "Slight", + TYPICAL: "Typical", +} as const; + +/** + * @public + */ +export type RouteTurnIntensity = (typeof RouteTurnIntensity)[keyof typeof RouteTurnIntensity]; + +/** + *

Details that are specific to a Keep step.

+ * @public + */ +export interface RouteKeepStepDetails { + /** + *

Name of the intersection, if applicable to the step.

+ * @public + */ + Intersection: LocalizedString[] | undefined; + + /** + *

Steering direction for the step.

+ * @public + */ + SteeringDirection?: RouteSteeringDirection; + + /** + *

Angle of the turn.

+ * @public + */ + TurnAngle?: number; + + /** + *

Intensity of the turn.

+ * @public + */ + TurnIntensity?: RouteTurnIntensity; +} + +/** + *

Details about the roundabout leg.

+ * @public + */ +export interface RouteRoundaboutEnterStepDetails { + /** + *

Name of the intersection, if applicable to the step.

+ * @public + */ + Intersection: LocalizedString[] | undefined; + + /** + *

Steering direction for the step.

+ * @public + */ + SteeringDirection?: RouteSteeringDirection; + + /** + *

Angle of the turn.

+ * @public + */ + TurnAngle?: number; + + /** + *

Intensity of the turn.

+ * @public + */ + TurnIntensity?: RouteTurnIntensity; +} + +/** + *

Details about the roundabout step.

+ * @public + */ +export interface RouteRoundaboutExitStepDetails { + /** + *

Name of the intersection, if applicable to the step.

+ * @public + */ + Intersection: LocalizedString[] | undefined; + + /** + *

Exit to be taken.

+ * @public + */ + RelativeExit?: number; + + /** + *

Angle of the roundabout.

+ * @public + */ + RoundaboutAngle?: number; + + /** + *

Steering direction for the step.

+ * @public + */ + SteeringDirection?: RouteSteeringDirection; +} + +/** + *

Details about the step.

+ * @public + */ +export interface RouteRoundaboutPassStepDetails { + /** + *

Name of the intersection, if applicable to the step.

+ * @public + */ + Intersection: LocalizedString[] | undefined; + + /** + *

Steering direction for the step.

+ * @public + */ + SteeringDirection?: RouteSteeringDirection; + + /** + *

Angle of the turn.

+ * @public + */ + TurnAngle?: number; + + /** + *

Intensity of the turn.

+ * @public + */ + TurnIntensity?: RouteTurnIntensity; +} + +/** + *

Labels presented on the sign post.

+ * @public + */ +export interface RouteSignpostLabel { + /** + *

Route number of the road.

+ * @public + */ + RouteNumber?: RouteNumber; + + /** + *

The Signpost text.

+ * @public + */ + Text?: LocalizedString; +} + +/** + *

Sign post information of the action, applicable only for TurnByTurn steps. See RouteSignpost for details of sub-attributes.

+ * @public + */ +export interface RouteSignpost { + /** + *

Labels present on the sign post.

+ * @public + */ + Labels: RouteSignpostLabel[] | undefined; +} + +/** + *

Details related to the turn step.

+ * @public + */ +export interface RouteTurnStepDetails { + /** + *

Name of the intersection, if applicable to the step.

+ * @public + */ + Intersection: LocalizedString[] | undefined; + + /** + *

Steering direction for the step.

+ * @public + */ + SteeringDirection?: RouteSteeringDirection; + + /** + *

Angle of the turn.

+ * @public + */ + TurnAngle?: number; + + /** + *

Intensity of the turn.

+ * @public + */ + TurnIntensity?: RouteTurnIntensity; +} + +/** + * @public + * @enum + */ +export const RoutePedestrianTravelStepType = { + ARRIVE: "Arrive", + CONTINUE: "Continue", + DEPART: "Depart", + EXIT: "Exit", + KEEP: "Keep", + RAMP: "Ramp", + ROUNDABOUT_ENTER: "RoundaboutEnter", + ROUNDABOUT_EXIT: "RoundaboutExit", + ROUNDABOUT_PASS: "RoundaboutPass", + TURN: "Turn", + U_TURN: "UTurn", +} as const; + +/** + * @public + */ +export type RoutePedestrianTravelStepType = + (typeof RoutePedestrianTravelStepType)[keyof typeof RoutePedestrianTravelStepType]; + +/** + *

Steps of a leg that must be performed during the travel portion of the leg.

+ * @public + */ +export interface RoutePedestrianTravelStep { + /** + *

Details related to the continue step.

+ * @public + */ + ContinueStepDetails?: RouteContinueStepDetails; + + /** + *

Details of the current road. See RouteRoad for details of sub-attributes.

+ * @public + */ + CurrentRoad?: RouteRoad; + + /** + *

Distance of the step.

+ * @public + */ + Distance?: number; + + /** + *

Duration of the step.

+ *

+ * Unit: seconds + *

+ * @public + */ + Duration: number | undefined; + + /** + *

Exit number of the road exit, if applicable.

+ * @public + */ + ExitNumber?: LocalizedString[]; + + /** + *

Offset in the leg geometry corresponding to the start of this step.

+ * @public + */ + GeometryOffset?: number; + + /** + *

Brief description of the step in the requested language.

+ * + *

Only available when the TravelStepType is Default.

+ *
+ * @public + */ + Instruction?: string; + + /** + *

Details that are specific to a Keep step.

+ * @public + */ + KeepStepDetails?: RouteKeepStepDetails; + + /** + *

Details of the next road. See RouteRoad for details of sub-attributes.

+ * @public + */ + NextRoad?: RouteRoad; + + /** + *

Details that are specific to a Roundabout Enter step.

+ * @public + */ + RoundaboutEnterStepDetails?: RouteRoundaboutEnterStepDetails; + + /** + *

Details that are specific to a Roundabout Exit step.

+ * @public + */ + RoundaboutExitStepDetails?: RouteRoundaboutExitStepDetails; + + /** + *

Details that are specific to a Roundabout Pass step.

+ * @public + */ + RoundaboutPassStepDetails?: RouteRoundaboutPassStepDetails; + + /** + *

Sign post information of the action, applicable only for TurnByTurn steps. See RouteSignpost for details of sub-attributes.

+ * @public + */ + Signpost?: RouteSignpost; + + /** + *

Details that are specific to a turn step.

+ * @public + */ + TurnStepDetails?: RouteTurnStepDetails; + + /** + *

Type of the step.

+ * @public + */ + Type: RoutePedestrianTravelStepType | undefined; +} + +/** + *

Details that are specific to a pedestrian leg.

+ * @public + */ +export interface RoutePedestrianLegDetails { + /** + *

Details corresponding to the arrival for the leg.

+ * @public + */ + Arrival: RoutePedestrianArrival | undefined; + + /** + *

Details corresponding to the departure for the leg.

+ * @public + */ + Departure: RoutePedestrianDeparture | undefined; + + /** + *

Notices are additional information returned that indicate issues that occurred during route calculation.

+ * @public + */ + Notices: RoutePedestrianNotice[] | undefined; + + /** + *

Waypoints that were passed through during the leg. This includes the waypoints that were configured with the PassThrough option.

+ * @public + */ + PassThroughWaypoints: RoutePassThroughWaypoint[] | undefined; + + /** + *

Spans that were computed for the requested SpanAdditionalFeatures.

+ * @public + */ + Spans: RoutePedestrianSpan[] | undefined; + + /** + *

Summarized details of the leg.

+ * @public + */ + Summary?: RoutePedestrianSummary; + + /** + *

Steps of a leg that must be performed before the travel portion of the leg.

+ * @public + */ + TravelSteps: RoutePedestrianTravelStep[] | undefined; +} + +/** + * @public + * @enum + */ +export const RouteLegTravelMode = { + CAR: "Car", + FERRY: "Ferry", + PEDESTRIAN: "Pedestrian", + SCOOTER: "Scooter", + TRUCK: "Truck", +} as const; + +/** + * @public + */ +export type RouteLegTravelMode = (typeof RouteLegTravelMode)[keyof typeof RouteLegTravelMode]; + +/** + * @public + * @enum + */ +export const RouteLegType = { + FERRY: "Ferry", + PEDESTRIAN: "Pedestrian", + VEHICLE: "Vehicle", +} as const; + +/** + * @public + */ +export type RouteLegType = (typeof RouteLegType)[keyof typeof RouteLegType]; + +/** + *

Place details corresponding to the arrival or departure.

+ * @public + */ +export interface RouteVehiclePlace { + /** + *

The name of the place.

+ * @public + */ + Name?: string; + + /** + *

Position provided in the request.

+ * @public + */ + OriginalPosition?: number[]; + + /** + *

Position defined as [longitude, latitude].

+ * @public + */ + Position: number[] | undefined; + + /** + *

Options to configure matching the provided position to a side of the street.

+ * @public + */ + SideOfStreet?: RouteSideOfStreet; + + /** + *

Index of the waypoint in the request.

+ * @public + */ + WaypointIndex?: number; +} + +/** + *

Details corresponding to the arrival for a leg.

+ * @public + */ +export interface RouteVehicleArrival { + /** + *

The place details.

+ * @public + */ + Place: RouteVehiclePlace | undefined; + + /** + *

The time.

+ * @public + */ + Time?: string; +} + +/** + *

Details corresponding to the departure for the leg.

+ * @public + */ +export interface RouteVehicleDeparture { + /** + *

The place details.

+ * @public + */ + Place: RouteVehiclePlace | undefined; + + /** + *

The departure time.

+ * @public + */ + Time?: string; +} + +/** + * @public + * @enum + */ +export const RouteVehicleIncidentSeverity = { + CRITICAL: "Critical", + HIGH: "High", + LOW: "Low", + MEDIUM: "Medium", +} as const; + +/** + * @public + */ +export type RouteVehicleIncidentSeverity = + (typeof RouteVehicleIncidentSeverity)[keyof typeof RouteVehicleIncidentSeverity]; + +/** + * @public + * @enum + */ +export const RouteVehicleIncidentType = { + ACCIDENT: "Accident", + CONGESTION: "Congestion", + CONSTRUCTION: "Construction", + DISABLED_VEHICLE: "DisabledVehicle", + LANE_RESTRICTION: "LaneRestriction", + MASS_TRANSIT: "MassTransit", + OTHER: "Other", + PLANNED_EVENT: "PlannedEvent", + ROAD_CLOSURE: "RoadClosure", + ROAD_HAZARD: "RoadHazard", + WEATHER: "Weather", +} as const; + +/** + * @public + */ +export type RouteVehicleIncidentType = (typeof RouteVehicleIncidentType)[keyof typeof RouteVehicleIncidentType]; + +/** + *

Incidents corresponding to this leg of the route.

+ * @public + */ +export interface RouteVehicleIncident { + /** + *

Brief readable description of the incident.

+ * @public + */ + Description?: string; + + /** + *

End timestamp of the incident.

+ * @public + */ + EndTime?: string; + + /** + *

Severity of the incident + * Critical - The part of the route the incident affects is unusable. + * Major- Major impact on the leg duration, for example stop and go + * Minor- Minor impact on the leg duration, for example traffic jam + * Low - Low on duration, for example slightly increased traffic

+ * @public + */ + Severity?: RouteVehicleIncidentSeverity; + + /** + *

Start time of the incident.

+ * @public + */ + StartTime?: string; + + /** + *

Type of the incident.

+ * @public + */ + Type?: RouteVehicleIncidentType; +} + +/** + * @public + * @enum + */ +export const RouteVehicleNoticeCode = { + ACCURATE_POLYLINE_UNAVAILABLE: "AccuratePolylineUnavailable", + OTHER: "Other", + POTENTIAL_VIOLATED_AVOID_TOLL_ROAD_USAGE: "PotentialViolatedAvoidTollRoadUsage", + POTENTIAL_VIOLATED_CARPOOL_USAGE: "PotentialViolatedCarpoolUsage", + POTENTIAL_VIOLATED_TURN_RESTRICTION_USAGE: "PotentialViolatedTurnRestrictionUsage", + POTENTIAL_VIOLATED_VEHICLE_RESTRICTION_USAGE: "PotentialViolatedVehicleRestrictionUsage", + POTENTIAL_VIOLATED_ZONE_RESTRICTION_USAGE: "PotentialViolatedZoneRestrictionUsage", + SEASONAL_CLOSURE: "SeasonalClosure", + TOLLS_DATA_TEMPORARILY_UNAVAILABLE: "TollsDataTemporarilyUnavailable", + TOLLS_DATA_UNAVAILABLE: "TollsDataUnavailable", + TOLL_TRANSPONDER: "TollTransponder", + VIOLATED_AVOID_CONTROLLED_ACCESS_HIGHWAY: "ViolatedAvoidControlledAccessHighway", + VIOLATED_AVOID_DIFFICULT_TURNS: "ViolatedAvoidDifficultTurns", + VIOLATED_AVOID_DIRT_ROAD: "ViolatedAvoidDirtRoad", + VIOLATED_AVOID_SEASONAL_CLOSURE: "ViolatedAvoidSeasonalClosure", + VIOLATED_AVOID_TOLL_ROAD: "ViolatedAvoidTollRoad", + VIOLATED_AVOID_TOLL_TRANSPONDER: "ViolatedAvoidTollTransponder", + VIOLATED_AVOID_TRUCK_ROAD_TYPE: "ViolatedAvoidTruckRoadType", + VIOLATED_AVOID_TUNNEL: "ViolatedAvoidTunnel", + VIOLATED_AVOID_U_TURNS: "ViolatedAvoidUTurns", + VIOLATED_BLOCKED_ROAD: "ViolatedBlockedRoad", + VIOLATED_CARPOOL: "ViolatedCarpool", + VIOLATED_EMERGENCY_GATE: "ViolatedEmergencyGate", + VIOLATED_START_DIRECTION: "ViolatedStartDirection", + VIOLATED_TURN_RESTRICTION: "ViolatedTurnRestriction", + VIOLATED_VEHICLE_RESTRICTION: "ViolatedVehicleRestriction", + VIOLATED_ZONE_RESTRICTION: "ViolatedZoneRestriction", +} as const; + +/** + * @public + */ +export type RouteVehicleNoticeCode = (typeof RouteVehicleNoticeCode)[keyof typeof RouteVehicleNoticeCode]; + +/** + *

Notice Detail that is a range.

+ * @public + */ +export interface RouteNoticeDetailRange { + /** + *

Minimum value for the range.

+ * @public + */ + Min?: number; + + /** + *

Maximum value for the range.

+ * @public + */ + Max?: number; +} + +/** + * @public + * @enum + */ +export const RouteWeightConstraintType = { + CURRENT: "Current", + GROSS: "Gross", + UNKNOWN: "Unknown", +} as const; + +/** + * @public + */ +export type RouteWeightConstraintType = (typeof RouteWeightConstraintType)[keyof typeof RouteWeightConstraintType]; + +/** + *

The weight constraint for the route.

+ *

+ * Unit: Kilograms + *

+ * @public + */ +export interface RouteWeightConstraint { + /** + *

The type of constraint.

+ * @public + */ + Type: RouteWeightConstraintType | undefined; + + /** + *

The constraint value.

+ *

+ * Unit: Kilograms + *

+ * @public + */ + Value: number | undefined; +} + +/** + *

This property contains a + * summary of violated constraints.

+ * @public + */ +export interface RouteViolatedConstraints { + /** + *

This restriction applies to truck cargo, where the resulting route excludes roads on which hazardous materials are prohibited from being transported.

+ * @public + */ + AllHazardsRestricted?: boolean; + + /** + *

Total number of axles of the vehicle.

+ * @public + */ + AxleCount?: RouteNoticeDetailRange; + + /** + *

List of Hazardous cargo contained in the vehicle.

+ * @public + */ + HazardousCargos: RouteHazardousCargoType[] | undefined; + + /** + *

The maximum height of the vehicle.

+ * @public + */ + MaxHeight?: number; + + /** + *

The maximum Kpra length of the vehicle.

+ *

+ * Unit: centimeters + *

+ * @public + */ + MaxKpraLength?: number; + + /** + *

The maximum length of the vehicle.

+ * @public + */ + MaxLength?: number; + + /** + *

The maximum load capacity of the vehicle.

+ *

+ * Unit: kilograms + *

+ * @public + */ + MaxPayloadCapacity?: number; + + /** + *

The maximum weight of the route.

+ *

+ * Unit: Kilograms + *

+ * @public + */ + MaxWeight?: RouteWeightConstraint; + + /** + *

The maximum weight per axle of the vehicle.

+ *

+ * Unit: Kilograms + *

+ * @public + */ + MaxWeightPerAxle?: number; + + /** + *

The maximum weight per axle group of the vehicle.

+ *

+ * Unit: Kilograms + *

+ * @public + */ + MaxWeightPerAxleGroup?: WeightPerAxleGroup; + + /** + *

The maximum width of the vehicle.

+ * @public + */ + MaxWidth?: number; + + /** + *

The number of occupants in the vehicle.

+ *

Default Value: 1 + *

+ * @public + */ + Occupancy?: RouteNoticeDetailRange; + + /** + *

Access radius restrictions based on time.

+ * @public + */ + RestrictedTimes?: string; + + /** + *

The time dependent constraint.

+ * @public + */ + TimeDependent?: boolean; + + /** + *

Number of trailers attached to the vehicle.

+ *

Default Value: 0 + *

+ * @public + */ + TrailerCount?: RouteNoticeDetailRange; + + /** + *

Travel mode corresponding to the leg.

+ * @public + */ + TravelMode?: boolean; + + /** + *

Truck road type identifiers. BK1 through BK4 apply only to Sweden. + * A2,A4,B2,B4,C,D,ET2,ET4 apply only to Mexico.

+ * + *

There are currently no other supported values as of 26th April 2024.

+ *
+ * @public + */ + TruckRoadType?: string; + + /** + *

Type of the truck.

+ * @public + */ + TruckType?: RouteTruckType; + + /** + *

The tunnel restriction code.

+ *

Tunnel categories in this list indicate the restrictions which apply to certain tunnels in Great Britain. + * They relate to the types of dangerous goods that can be transported through them.

+ *
    + *
  • + *

    + * Tunnel Category B + *

    + *
      + *
    • + *

      + * Risk Level: Limited risk

      + *
    • + *
    • + *

      + * Restrictions: Few restrictions

      + *
    • + *
    + *
  • + *
  • + *

    + * Tunnel Category C + *

    + *
      + *
    • + *

      + * Risk Level: Medium risk

      + *
    • + *
    • + *

      + * Restrictions: Some restrictions

      + *
    • + *
    + *
  • + *
  • + *

    + * Tunnel Category D + *

    + *
      + *
    • + *

      + * Risk Level: High risk

      + *
    • + *
    • + *

      + * Restrictions: Many restrictions occur

      + *
    • + *
    + *
  • + *
  • + *

    + * Tunnel Category E + *

    + *
      + *
    • + *

      + * Risk Level: Very high risk

      + *
    • + *
    • + *

      + * Restrictions: Restricted tunnel

      + *
    • + *
    + *
  • + *
+ * @public + */ + TunnelRestrictionCode?: string; +} + +/** + *

Additional details of the notice.

+ * @public + */ +export interface RouteVehicleNoticeDetail { + /** + *

The notice title.

+ * @public + */ + Title?: string; + + /** + *

Any violated constraints.

+ * @public + */ + ViolatedConstraints?: RouteViolatedConstraints; +} + +/** + *

Notices are additional information returned that indicate issues that occurred during route calculation.

+ * @public + */ +export interface RouteVehicleNotice { + /** + *

Code corresponding to the issue.

+ * @public + */ + Code: RouteVehicleNoticeCode | undefined; + + /** + *

Additional details of the notice.

+ * @public + */ + Details: RouteVehicleNoticeDetail[] | undefined; + + /** + *

Impact corresponding to the issue. While Low impact notices can be safely ignored, High impact notices must be evaluated further to determine the impact.

+ * @public + */ + Impact?: RouteNoticeImpact; +} + +/** + * @public + * @enum + */ +export const RouteSpanCarAccessAttribute = { + ALLOWED: "Allowed", + NO_THROUGH_TRAFFIC: "NoThroughTraffic", + TOLL_ROAD: "TollRoad", +} as const; + +/** + * @public + */ +export type RouteSpanCarAccessAttribute = + (typeof RouteSpanCarAccessAttribute)[keyof typeof RouteSpanCarAccessAttribute]; + +/** + * @public + * @enum + */ +export const RouteSpanGateAttribute = { + EMERGENCY: "Emergency", + KEY_ACCESS: "KeyAccess", + PERMISSION_REQUIRED: "PermissionRequired", +} as const; + +/** + * @public + */ +export type RouteSpanGateAttribute = (typeof RouteSpanGateAttribute)[keyof typeof RouteSpanGateAttribute]; + +/** + * @public + * @enum + */ +export const RouteSpanRailwayCrossingAttribute = { + PROTECTED: "Protected", + UNPROTECTED: "Unprotected", +} as const; + +/** + * @public + */ +export type RouteSpanRailwayCrossingAttribute = + (typeof RouteSpanRailwayCrossingAttribute)[keyof typeof RouteSpanRailwayCrossingAttribute]; + +/** + * @public + * @enum + */ +export const RouteSpanScooterAccessAttribute = { + ALLOWED: "Allowed", + NO_THROUGH_TRAFFIC: "NoThroughTraffic", + TOLL_ROAD: "TollRoad", +} as const; + +/** + * @public + */ +export type RouteSpanScooterAccessAttribute = + (typeof RouteSpanScooterAccessAttribute)[keyof typeof RouteSpanScooterAccessAttribute]; + +/** + * @public + * @enum + */ +export const RouteSpanTruckAccessAttribute = { + ALLOWED: "Allowed", + NO_THROUGH_TRAFFIC: "NoThroughTraffic", + TOLL_ROAD: "TollRoad", +} as const; + +/** + * @public + */ +export type RouteSpanTruckAccessAttribute = + (typeof RouteSpanTruckAccessAttribute)[keyof typeof RouteSpanTruckAccessAttribute]; + +/** + *

Span computed for the requested SpanAdditionalFeatures.

+ * @public + */ +export interface RouteVehicleSpan { + /** + *

Duration of the computed span without traffic congestion.

+ *

+ * Unit: seconds + *

+ * @public + */ + BestCaseDuration?: number; + + /** + *

Access attributes for a car corresponding to the span.

+ * @public + */ + CarAccess?: RouteSpanCarAccessAttribute[]; + + /** + *

3 letter Country code corresponding to the Span.

+ * @public + */ + Country?: string; + + /** + *

Distance of the computed span. This feature doesn't split a span, but is always computed on a span split by other properties.

+ * @public + */ + Distance?: number; + + /** + *

Duration of the computed span. This feature doesn't split a span, but is always computed on a span split by other properties.

+ *

+ * Unit: seconds + *

+ * @public + */ + Duration?: number; + + /** + *

Dynamic speed details corresponding to the span.

+ *

+ * Unit: KilometersPerHour + *

+ * @public + */ + DynamicSpeed?: RouteSpanDynamicSpeedDetails; + + /** + *

Functional classification of the road segment corresponding to the span.

+ * @public + */ + FunctionalClassification?: number; + + /** + *

Attributes corresponding to a gate. The gate is present at the end of the returned span.

+ * @public + */ + Gate?: RouteSpanGateAttribute; + + /** + *

Offset in the leg geometry corresponding to the start of this span.

+ * @public + */ + GeometryOffset?: number; + + /** + *

Incidents corresponding to the span. These index into the Incidents in the parent Leg.

+ * @public + */ + Incidents?: number[]; + + /** + *

Provides an array of names of the vehicle span in available languages.

+ * @public + */ + Names?: LocalizedString[]; + + /** + *

Notices are additional information returned that indicate issues that occurred during route calculation.

+ * @public + */ + Notices?: number[]; + + /** + *

Attributes corresponding to a railway crossing. The gate is present at the end of the returned span.

+ * @public + */ + RailwayCrossing?: RouteSpanRailwayCrossingAttribute; + + /** + *

2-3 letter Region code corresponding to the Span. This is either a province or a state.

+ * @public + */ + Region?: string; + + /** + *

Attributes for the road segment corresponding to the span.

+ * @public + */ + RoadAttributes?: RouteSpanRoadAttribute[]; + + /** + *

Designated route name or number corresponding to the span.

+ * @public + */ + RouteNumbers?: RouteNumber[]; + + /** + *

Access attributes for a scooter corresponding to the span.

+ * @public + */ + ScooterAccess?: RouteSpanScooterAccessAttribute[]; + + /** + *

Speed limit details corresponding to the span.

+ *

+ * Unit: KilometersPerHour + *

+ * @public + */ + SpeedLimit?: RouteSpanSpeedLimitDetails; + + /** + *

Toll systems are authorities that collect payments for the toll.

+ * @public + */ + TollSystems?: number[]; + + /** + *

Access attributes for a truck corresponding to the span.

+ * @public + */ + TruckAccess?: RouteSpanTruckAccessAttribute[]; + + /** + *

Truck road type identifiers. BK1 through BK4 apply only to Sweden. + * A2,A4,B2,B4,C,D,ET2,ET4 apply only to Mexico.

+ * + *

There are currently no other supported values as of 26th April 2024.

+ *
+ * @public + */ + TruckRoadTypes?: number[]; + + /** + *

Duration of the computed span under typical traffic congestion.

+ *

+ * Unit: seconds + *

+ * @public + */ + TypicalDuration?: number; + + /** + *

Zones corresponding to this leg of the route.

+ * @public + */ + Zones?: number[]; +} + +/** + *

Summarized details of the leg.

+ * @public + */ +export interface RouteVehicleOverviewSummary { + /** + *

Total duration in free flowing traffic, which is the best case or shortest duration possible to cover the leg.

+ *

+ * Unit: seconds + *

+ * @public + */ + BestCaseDuration?: number; + + /** + *

Distance of the step.

+ * @public + */ + Distance: number | undefined; + + /** + *

Duration of the step.

+ *

+ * Unit: seconds + *

+ * @public + */ + Duration: number | undefined; + + /** + *

Duration of the computed span under typical traffic congestion.

+ *

+ * Unit: seconds + *

+ * @public + */ + TypicalDuration?: number; +} + +/** + *

Summarized details of the route.

+ * @public + */ +export interface RouteVehicleTravelOnlySummary { + /** + *

Total duration in free flowing traffic, which is the best case or shortest duration possible to cover the leg.

+ *

+ * Unit: seconds + *

+ * @public + */ + BestCaseDuration?: number; + + /** + *

Duration of the step.

+ *

+ * Unit: seconds + *

+ * @public + */ + Duration: number | undefined; + + /** + *

Duration of the computed span under typical traffic congestion.

+ *

+ * Unit: seconds + *

+ * @public + */ + TypicalDuration?: number; +} + +/** + *

Summarized details of the route.

+ * @public + */ +export interface RouteVehicleSummary { + /** + *

Summarized details for the leg including before travel, travel and after travel steps.

+ * @public + */ + Overview?: RouteVehicleOverviewSummary; + + /** + *

Summarized details for the leg including travel steps only. The Distance for the travel only portion of the journey is in meters

+ * @public + */ + TravelOnly?: RouteVehicleTravelOnlySummary; +} + +/** + *

Locations or sites where the toll fare is collected.

+ * @public + */ +export interface RouteTollPaymentSite { + /** + *

Name of the payment site.

+ * @public + */ + Name?: string; + + /** + *

Position defined as [longitude, latitude].

+ * @public + */ + Position: number[] | undefined; +} + +/** + *

Price range with a minimum and maximum value, if a range.

+ * @public + */ +export interface RouteTollPriceValueRange { + /** + *

Minimum price.

+ * @public + */ + Min: number | undefined; + + /** + *

Maximum price.

+ * @public + */ + Max: number | undefined; +} + +/** + *

The toll price.

+ * @public + */ +export interface RouteTollPrice { + /** + *

Currency code corresponding to the price. This is the same as Currency specified in the request.

+ * @public + */ + Currency: string | undefined; + + /** + *

If the price is an estimate or an exact value.

+ * @public + */ + Estimate: boolean | undefined; + + /** + *

Duration for which the price corresponds to.

+ *

+ * Unit: seconds + *

+ * @public + */ + PerDuration?: number; + + /** + *

If the price is a range or an exact value. If any of the toll fares making up the route is a range, the overall price is also a range.

+ * @public + */ + Range: boolean | undefined; + + /** + *

Price range with a minimum and maximum value, if a range.

+ * @public + */ + RangeValue?: RouteTollPriceValueRange; + + /** + *

Exact price, if not a range.

+ * @public + */ + Value: number | undefined; +} + +/** + * @public + * @enum + */ +export const RouteTollPassValidityPeriodType = { + ANNUAL: "Annual", + DAYS: "Days", + EXTENDED_ANNUAL: "ExtendedAnnual", + MINUTES: "Minutes", + MONTHS: "Months", +} as const; + +/** + * @public + */ +export type RouteTollPassValidityPeriodType = + (typeof RouteTollPassValidityPeriodType)[keyof typeof RouteTollPassValidityPeriodType]; + +/** + *

Period for which the pass is valid.

+ * @public + */ +export interface RouteTollPassValidityPeriod { + /** + *

Validity period.

+ * @public + */ + Period: RouteTollPassValidityPeriodType | undefined; + + /** + *

Counts for the validity period.

+ * @public + */ + PeriodCount?: number; +} + +/** + *

Details if the toll rate can be a pass that supports multiple trips.

+ * @public + */ +export interface RouteTollPass { + /** + *

If the pass includes the rate for the return leg of the trip.

+ * @public + */ + IncludesReturnTrip?: boolean; + + /** + *

If the pass is only valid for senior persons.

+ * @public + */ + SeniorPass?: boolean; + + /** + *

If the toll pass can be transferred, and how many times.

+ * @public + */ + TransferCount?: number; + + /** + *

Number of trips the pass is valid for.

+ * @public + */ + TripCount?: number; + + /** + *

Period for which the pass is valid.

+ * @public + */ + ValidityPeriod?: RouteTollPassValidityPeriod; +} + +/** + * @public + * @enum + */ +export const RouteTollPaymentMethod = { + BANK_CARD: "BankCard", + CASH: "Cash", + CASH_EXACT: "CashExact", + CREDIT_CARD: "CreditCard", + PASS_SUBSCRIPTION: "PassSubscription", + TRANSPONDER: "Transponder", + TRAVEL_CARD: "TravelCard", + VIDEO_TOLL: "VideoToll", +} as const; + +/** + * @public + */ +export type RouteTollPaymentMethod = (typeof RouteTollPaymentMethod)[keyof typeof RouteTollPaymentMethod]; + +/** + *

Transponders for which this toll can be applied.

+ * @public + */ +export interface RouteTransponder { + /** + *

Names of the toll system collecting the toll.

+ * @public + */ + SystemName?: string; +} + +/** + *

The toll rate.

+ * @public + */ +export interface RouteTollRate { + /** + *

Time when the rate is valid.

+ * @public + */ + ApplicableTimes?: string; + + /** + *

Price in the converted currency as specified in the request.

+ * @public + */ + ConvertedPrice?: RouteTollPrice; + + /** + *

The Toll rate Id.

+ * @public + */ + Id: string | undefined; + + /** + *

Price in the local regional currency.

+ * @public + */ + LocalPrice: RouteTollPrice | undefined; + + /** + *

The name of the toll.

+ * @public + */ + Name: string | undefined; + + /** + *

Details if the toll rate can be a pass that supports multiple trips.

+ * @public + */ + Pass?: RouteTollPass; + + /** + *

Accepted payment methods at the toll.

+ * @public + */ + PaymentMethods: RouteTollPaymentMethod[] | undefined; + + /** + *

Transponders for which this toll can be applied.

+ * @public + */ + Transponders: RouteTransponder[] | undefined; +} + +/** + *

Provides details about toll information along a route, including the payment sites, applicable toll rates, toll systems, and the country associated with the toll collection.

+ * @public + */ +export interface RouteToll { + /** + *

The alpha-2 or alpha-3 character code for the country.

+ * @public + */ + Country?: string; + + /** + *

Locations or sites where the toll fare is collected.

+ * @public + */ + PaymentSites: RouteTollPaymentSite[] | undefined; + + /** + *

Toll rates that need to be paid to travel this leg of the route.

+ * @public + */ + Rates: RouteTollRate[] | undefined; + + /** + *

Toll systems are authorities that collect payments for the toll.

+ * @public + */ + Systems: number[] | undefined; +} + +/** + *

Toll systems are authorities that collect payments for the toll.

+ * @public + */ +export interface RouteTollSystem { + /** + *

The toll system name.

+ * @public + */ + Name?: string; +} + +/** + *

Details related to the continue highway step.

+ * @public + */ +export interface RouteContinueHighwayStepDetails { + /** + *

Name of the intersection, if applicable to the step.

+ * @public + */ + Intersection: LocalizedString[] | undefined; + + /** + *

Steering direction for the step.

+ * @public + */ + SteeringDirection?: RouteSteeringDirection; + + /** + *

Angle of the turn.

+ * @public + */ + TurnAngle?: number; + + /** + *

Intensity of the turn.

+ * @public + */ + TurnIntensity?: RouteTurnIntensity; +} + +/** + *

Details related to the enter highway step.

+ * @public + */ +export interface RouteEnterHighwayStepDetails { + /** + *

Name of the intersection, if applicable to the step.

+ * @public + */ + Intersection: LocalizedString[] | undefined; + + /** + *

Steering direction for the step.

+ * @public + */ + SteeringDirection?: RouteSteeringDirection; + + /** + *

Angle of the turn.

+ * @public + */ + TurnAngle?: number; + + /** + *

Intensity of the turn.

+ * @public + */ + TurnIntensity?: RouteTurnIntensity; +} + +/** + *

Details related to the exit step.

+ * @public + */ +export interface RouteExitStepDetails { + /** + *

Name of the intersection, if applicable to the step.

+ * @public + */ + Intersection: LocalizedString[] | undefined; + + /** + *

Exit to be taken.

+ * @public + */ + RelativeExit?: number; + + /** + *

Steering direction for the step.

+ * @public + */ + SteeringDirection?: RouteSteeringDirection; + + /** + *

Angle of the turn.

+ * @public + */ + TurnAngle?: number; + + /** + *

Intensity of the turn.

+ * @public + */ + TurnIntensity?: RouteTurnIntensity; +} + +/** + *

Details that are specific to a ramp step.

+ * @public + */ +export interface RouteRampStepDetails { + /** + *

Name of the intersection, if applicable to the step.

+ * @public + */ + Intersection: LocalizedString[] | undefined; + + /** + *

Steering direction for the step.

+ * @public + */ + SteeringDirection?: RouteSteeringDirection; + + /** + *

Angle of the turn.

+ * @public + */ + TurnAngle?: number; + + /** + *

Intensity of the turn.

+ * @public + */ + TurnIntensity?: RouteTurnIntensity; +} + +/** + * @public + * @enum + */ +export const RouteVehicleTravelStepType = { + ARRIVE: "Arrive", + CONTINUE: "Continue", + CONTINUE_HIGHWAY: "ContinueHighway", + DEPART: "Depart", + ENTER_HIGHWAY: "EnterHighway", + EXIT: "Exit", + KEEP: "Keep", + RAMP: "Ramp", + ROUNDABOUT_ENTER: "RoundaboutEnter", + ROUNDABOUT_EXIT: "RoundaboutExit", + ROUNDABOUT_PASS: "RoundaboutPass", + TURN: "Turn", + U_TURN: "UTurn", +} as const; + +/** + * @public + */ +export type RouteVehicleTravelStepType = (typeof RouteVehicleTravelStepType)[keyof typeof RouteVehicleTravelStepType]; + +/** + *

Details related to the U-turn step.

+ * @public + */ +export interface RouteUTurnStepDetails { + /** + *

Name of the intersection, if applicable to the step.

+ * @public + */ + Intersection: LocalizedString[] | undefined; + + /** + *

Steering direction for the step.

+ * @public + */ + SteeringDirection?: RouteSteeringDirection; + + /** + *

Angle of the turn.

+ * @public + */ + TurnAngle?: number; + + /** + *

Intensity of the turn.

+ * @public + */ + TurnIntensity?: RouteTurnIntensity; +} + +/** + *

Steps of a leg that correspond to the travel portion of the leg.

+ * @public + */ +export interface RouteVehicleTravelStep { + /** + *

Details that are specific to a Continue Highway step.

+ * @public + */ + ContinueHighwayStepDetails?: RouteContinueHighwayStepDetails; + + /** + *

Details that are specific to a Continue step.

+ * @public + */ + ContinueStepDetails?: RouteContinueStepDetails; + + /** + *

Details of the current road.

+ * @public + */ + CurrentRoad?: RouteRoad; + + /** + *

Distance of the step.

+ * @public + */ + Distance?: number; + + /** + *

Duration of the step.

+ *

+ * Unit: seconds + *

+ * @public + */ + Duration: number | undefined; + + /** + *

Details that are specific to a Enter Highway step.

+ * @public + */ + EnterHighwayStepDetails?: RouteEnterHighwayStepDetails; + + /** + *

Exit number of the road exit, if applicable.

+ * @public + */ + ExitNumber?: LocalizedString[]; + + /** + *

Details that are specific to a Roundabout Exit step.

+ * @public + */ + ExitStepDetails?: RouteExitStepDetails; + + /** + *

Offset in the leg geometry corresponding to the start of this step.

+ * @public + */ + GeometryOffset?: number; + + /** + *

Brief description of the step in the requested language.

+ * + *

Only available when the TravelStepType is Default.

+ *
+ * @public + */ + Instruction?: string; + + /** + *

Details that are specific to a Keep step.

+ * @public + */ + KeepStepDetails?: RouteKeepStepDetails; + + /** + *

Details of the next road. See RouteRoad for details of sub-attributes.

+ * @public + */ + NextRoad?: RouteRoad; + + /** + *

Details that are specific to a Ramp step.

+ * @public + */ + RampStepDetails?: RouteRampStepDetails; + + /** + *

Details that are specific to a Roundabout Enter step.

+ * @public + */ + RoundaboutEnterStepDetails?: RouteRoundaboutEnterStepDetails; + + /** + *

Details that are specific to a Roundabout Exit step.

+ * @public + */ + RoundaboutExitStepDetails?: RouteRoundaboutExitStepDetails; + + /** + *

Details that are specific to a Roundabout Pass step.

+ * @public + */ + RoundaboutPassStepDetails?: RouteRoundaboutPassStepDetails; + + /** + *

Sign post information of the action, applicable only for TurnByTurn steps. See RouteSignpost for details of sub-attributes.

+ * @public + */ + Signpost?: RouteSignpost; + + /** + *

Details that are specific to a Turn step.

+ * @public + */ + TurnStepDetails?: RouteTurnStepDetails; + + /** + *

Type of the step.

+ * @public + */ + Type: RouteVehicleTravelStepType | undefined; + + /** + *

Details that are specific to a Turn step.

+ * @public + */ + UTurnStepDetails?: RouteUTurnStepDetails; +} + +/** + *

The zone.

+ * @public + */ +export interface RouteZone { + /** + *

The zone category.

+ * @public + */ + Category?: RouteZoneCategory; + + /** + *

The name of the zone.

+ * @public + */ + Name?: string; +} + +/** + *

Steps of a leg that correspond to the travel portion of the leg.

+ * @public + */ +export interface RouteVehicleLegDetails { + /** + *

Details corresponding to the arrival for the leg.

+ * @public + */ + Arrival: RouteVehicleArrival | undefined; + + /** + *

Details corresponding to the departure for the leg.

+ * @public + */ + Departure: RouteVehicleDeparture | undefined; + + /** + *

Incidents corresponding to this leg of the route.

+ * @public + */ + Incidents: RouteVehicleIncident[] | undefined; + + /** + *

Notices are additional information returned that indicate issues that occurred during route calculation.

+ * @public + */ + Notices: RouteVehicleNotice[] | undefined; + + /** + *

Waypoints that were passed through during the leg. This includes the waypoints that were configured with the PassThrough option.

+ * @public + */ + PassThroughWaypoints: RoutePassThroughWaypoint[] | undefined; + + /** + *

Spans that were computed for the requested SpanAdditionalFeatures.

+ * @public + */ + Spans: RouteVehicleSpan[] | undefined; + + /** + *

Summarized details of the leg.

+ * @public + */ + Summary?: RouteVehicleSummary; + + /** + *

Toll related options.

+ * @public + */ + Tolls: RouteToll[] | undefined; + + /** + *

Toll systems are authorities that collect payments for the toll.

+ * @public + */ + TollSystems: RouteTollSystem[] | undefined; + + /** + *

Steps of a leg that must be performed before the travel portion of the leg.

+ * @public + */ + TravelSteps: RouteVehicleTravelStep[] | undefined; + + /** + *

Truck road type identifiers. BK1 through BK4 apply only to Sweden. + * A2,A4,B2,B4,C,D,ET2,ET4 apply only to Mexico.

+ * + *

There are currently no other supported values as of 26th April 2024.

+ *
+ * @public + */ + TruckRoadTypes: string[] | undefined; + + /** + *

Zones corresponding to this leg of the route.

+ * @public + */ + Zones: RouteZone[] | undefined; +} + +/** + *

A leg is a section of a route from one waypoint to the next. A leg could be of type Vehicle, Pedestrian or Ferry. + * Legs of different types could occur together within a single route. For example, a car employing the use of a Ferry will contain Vehicle legs corresponding to journey on land, and Ferry legs corresponding to the journey via Ferry.

+ * @public + */ +export interface RouteLeg { + /** + *

FerryLegDetails is populated when the Leg type is Ferry, and provides additional + * information that is specific

+ * @public + */ + FerryLegDetails?: RouteFerryLegDetails; + + /** + *

Geometry of the area to be avoided.

+ * @public + */ + Geometry: RouteLegGeometry | undefined; + + /** + *

List of languages for instructions within steps in the response.

+ * @public + */ + Language?: string; + + /** + *

Details related to the pedestrian leg.

+ * @public + */ + PedestrianLegDetails?: RoutePedestrianLegDetails; + + /** + *

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

+ *

Default Value: Car + *

+ * @public + */ + TravelMode: RouteLegTravelMode | undefined; + + /** + *

Type of the leg.

+ * @public + */ + Type: RouteLegType | undefined; + + /** + *

Details related to the vehicle leg.

+ * @public + */ + VehicleLegDetails?: RouteVehicleLegDetails; +} + +/** + *

Important labels including names and route numbers that differentiate the current route from the alternatives presented.

+ * @public + */ +export interface RouteMajorRoadLabel { + /** + *

Name of the road (localized).

+ * @public + */ + RoadName?: LocalizedString; + + /** + *

Route number of the road.

+ * @public + */ + RouteNumber?: RouteNumber; +} + +/** + *

Summary of the route and toll price.

+ * @public + */ +export interface RouteTollPriceSummary { + /** + *

Currency code corresponding to the price. This is the same as Currency specified in the request.

+ * @public + */ + Currency: string | undefined; + + /** + *

If the price is an estimate or an exact value.

+ * @public + */ + Estimate: boolean | undefined; + + /** + *

If the price is a range or an exact value. If any of the toll fares making up the route is a range, the overall price is also a range.

+ * @public + */ + Range: boolean | undefined; + + /** + *

Price range with a minimum and maximum value, if a range.

+ * @public + */ + RangeValue?: RouteTollPriceValueRange; + + /** + *

Exact price, if not a range.

+ * @public + */ + Value: number | undefined; +} + +/** + *

The toll summary for the complete route.

+ * @public + */ +export interface RouteTollSummary { + /** + *

Total toll summary for the complete route. Total is the only summary available + * today.

+ * @public + */ + Total?: RouteTollPriceSummary; +} + +/** + *

Summarized details for the leg including travel steps only. The Distance for the travel only portion of the journey is the same as the Distance within the Overview summary.

+ * @public + */ +export interface RouteSummary { + /** + *

Distance of the route.

+ * @public + */ + Distance?: number; + + /** + *

Duration of the route.

+ *

+ * Unit: seconds + *

+ * @public + */ + Duration?: number; + + /** + *

Toll summary for the complete route.

+ * @public + */ + Tolls?: RouteTollSummary; +} + +/** + *

The route.

+ * @public + */ +export interface Route { + /** + *

A leg is a section of a route from one waypoint to the next. A leg could be of type Vehicle, Pedestrian or Ferry. + * Legs of different types could occur together within a single route. For example, a car employing the use of a Ferry will contain Vehicle legs corresponding to journey on land, and Ferry legs corresponding to the journey via Ferry.

+ * @public + */ + Legs: RouteLeg[] | undefined; + + /** + *

Important labels including names and route numbers that differentiate the current route from the alternatives presented.

+ * @public + */ + MajorRoadLabels: RouteMajorRoadLabel[] | undefined; + + /** + *

Summarized details of the leg.

+ * @public + */ + Summary?: RouteSummary; +} + +/** + * @public + */ +export interface CalculateRoutesResponse { + /** + *

Specifies the format of the geometry returned for each leg of the route.

+ * @public + */ + LegGeometryFormat: GeometryFormat | undefined; + + /** + *

Notices are additional information returned that indicate issues that occurred during route calculation.

+ * @public + */ + Notices: RouteResponseNotice[] | undefined; + + /** + *

The pricing bucket for which the query is charged at.

+ * @public + */ + PricingBucket: string | undefined; + + /** + *

The path from the origin to the destination.

+ * @public + */ + Routes: Route[] | undefined; +} + +/** + * @public + * @enum + */ +export const DayOfWeek = { + FRIDAY: "Friday", + MONDAY: "Monday", + SATURDAY: "Saturday", + SUNDAY: "Sunday", + THURSDAY: "Thursday", + TUESDAY: "Tuesday", + WEDNESDAY: "Wednesday", +} as const; + +/** + * @public + */ +export type DayOfWeek = (typeof DayOfWeek)[keyof typeof DayOfWeek]; + +/** + *

Geometry of the area to be avoided.

+ * @public + */ +export interface WaypointOptimizationAvoidanceAreaGeometry { + /** + *

Geometry defined as a bounding box. The first pair represents the X and Y coordinates + * (longitude and latitude,) of the southwest corner of the bounding box; the second pair + * represents the X and Y coordinates (longitude and latitude) of the northeast corner.

+ * @public + */ + BoundingBox?: number[]; +} + +/** + *

The area to be avoided.

+ * @public + */ +export interface WaypointOptimizationAvoidanceArea { + /** + *

Geometry of the area to be avoided.

+ * @public + */ + Geometry: WaypointOptimizationAvoidanceAreaGeometry | undefined; +} + +/** + *

Options for WaypointOptimizationAvoidance.

+ * @public + */ +export interface WaypointOptimizationAvoidanceOptions { + /** + *

Areas to be avoided.

+ * @public + */ + Areas?: WaypointOptimizationAvoidanceArea[]; + + /** + *

Avoidance options for cars-shuttles-trains.

+ * @public + */ + CarShuttleTrains?: boolean; + + /** + *

Avoid controlled access highways while calculating the route.

+ * @public + */ + ControlledAccessHighways?: boolean; + + /** + *

Avoid dirt roads while calculating the route.

+ * @public + */ + DirtRoads?: boolean; + + /** + *

Avoidance options for ferries.

+ * @public + */ + Ferries?: boolean; + + /** + *

Avoids roads where the specified toll transponders are the only mode of payment.

+ * @public + */ + TollRoads?: boolean; + + /** + *

Avoid tunnels while calculating the route.

+ * @public + */ + Tunnels?: boolean; + + /** + *

Avoid U-turns for calculation on highways and motorways.

+ * @public + */ + UTurns?: boolean; +} + +/** + *

Hours of entry.

+ * @public + */ +export interface WaypointOptimizationAccessHoursEntry { + /** + *

Day of the week.

+ * @public + */ + DayOfWeek: DayOfWeek | undefined; + + /** + *

Time of the day.

+ * @public + */ + TimeOfDay: string | undefined; +} + +/** + *

Access hours corresponding to when a destination can be visited.

+ * @public + */ +export interface WaypointOptimizationAccessHours { + /** + *

Contains the ID of the starting waypoint in this connection.

+ * @public + */ + From: WaypointOptimizationAccessHoursEntry | undefined; + + /** + *

Contains the ID of the ending waypoint in this connection.

+ * @public + */ + To: WaypointOptimizationAccessHoursEntry | undefined; +} + +/** + *

Options to configure matching the provided position to a side of the street.

+ * @public + */ +export interface WaypointOptimizationSideOfStreetOptions { + /** + *

Position defined as [longitude, latitude].

+ * @public + */ + Position: number[] | undefined; + + /** + *

Strategy that defines when the side of street position should be used. AnyStreet will always use the provided position.

+ *

Default Value: DividedStreetOnly + *

+ * @public + */ + UseWith?: SideOfStreetMatchingStrategy; +} + +/** + *

Destination related options.

+ * @public + */ +export interface WaypointOptimizationDestinationOptions { + /** + *

Access hours corresponding to when a waypoint can be visited.

+ * @public + */ + AccessHours?: WaypointOptimizationAccessHours; + + /** + *

Appointment time at the destination.

+ * @public + */ + AppointmentTime?: string; + + /** + *

GPS Heading at the position.

+ * @public + */ + Heading?: number; + + /** + *

The waypoint Id.

+ * @public + */ + Id?: string; + + /** + *

Service time spent at the destination. At an appointment, the service time should be the appointment duration.

+ *

+ * Unit: seconds + *

+ * @public + */ + ServiceDuration?: number; + + /** + *

Options to configure matching the provided position to a side of the street.

+ * @public + */ + SideOfStreet?: WaypointOptimizationSideOfStreetOptions; +} + +/** + *

Driver work-rest schedules defined by a short and long cycle. A rest needs to be taken after the short work duration. The short cycle can be repeated until you hit the long work duration, at which point the long rest duration should be taken before restarting.

+ *

+ * Unit: seconds + *

+ * @public + */ +export interface WaypointOptimizationRestCycleDurations { + /** + *

Resting phase of the cycle.

+ *

+ * Unit: seconds + *

+ * @public + */ + RestDuration: number | undefined; + + /** + *

Working phase of the cycle.

+ *

+ * Unit: seconds + *

+ * @public + */ + WorkDuration: number | undefined; +} + +/** + *

Resting phase of the cycle.

+ * @public + */ +export interface WaypointOptimizationRestCycles { + /** + *

Long cycle for a driver work-rest schedule.

+ * @public + */ + LongCycle: WaypointOptimizationRestCycleDurations | undefined; + + /** + *

Short cycle for a driver work-rest schedule

+ * @public + */ + ShortCycle: WaypointOptimizationRestCycleDurations | undefined; +} + +/** + *

Pre defined rest profiles for a driver schedule. The only currently supported profile is + * EU.

+ * @public + */ +export interface WaypointOptimizationRestProfile { + /** + *

Pre defined rest profiles for a driver schedule. The only currently supported profile is + * EU.

+ * @public + */ + Profile: string | undefined; +} + +/** + * @public + * @enum + */ +export const WaypointOptimizationServiceTimeTreatment = { + REST: "Rest", + WORK: "Work", +} as const; + +/** + * @public + */ +export type WaypointOptimizationServiceTimeTreatment = + (typeof WaypointOptimizationServiceTimeTreatment)[keyof typeof WaypointOptimizationServiceTimeTreatment]; + +/** + *

Driver related options.

+ * @public + */ +export interface WaypointOptimizationDriverOptions { + /** + *

Driver work-rest schedules defined by a short and long cycle. A rest needs to be taken after the short work duration. The short cycle can be repeated until you hit the long work duration, at which point the long rest duration should be taken before restarting.

+ * @public + */ + RestCycles?: WaypointOptimizationRestCycles; + + /** + *

Pre defined rest profiles for a driver schedule. The only currently supported profile is + * EU.

+ * @public + */ + RestProfile?: WaypointOptimizationRestProfile; + + /** + *

If the service time provided at a waypoint/destination should be considered as rest or work. This contributes to the total time breakdown returned within the response.

+ * @public + */ + TreatServiceTimeAs?: WaypointOptimizationServiceTimeTreatment; +} + +/** + *

Exclusion options.

+ * @public + */ +export interface WaypointOptimizationExclusionOptions { + /** + *

List of countries to be avoided defined by two-letter or three-letter country codes.

+ * @public + */ + Countries: string[] | undefined; +} + +/** + * @public + * @enum + */ +export const WaypointOptimizationSequencingObjective = { + FASTEST_ROUTE: "FastestRoute", + SHORTEST_ROUTE: "ShortestRoute", +} as const; + +/** + * @public + */ +export type WaypointOptimizationSequencingObjective = + (typeof WaypointOptimizationSequencingObjective)[keyof typeof WaypointOptimizationSequencingObjective]; + +/** + *

Options related to the origin.

+ * @public + */ +export interface WaypointOptimizationOriginOptions { + /** + *

The Origin Id.

+ * @public + */ + Id?: string; +} + +/** + *

Options related to traffic.

+ * @public + */ +export interface WaypointOptimizationTrafficOptions { + /** + *

Determines if traffic should be used or ignored while calculating the route.

+ *

Default Value: UseTrafficData + *

+ * @public + */ + Usage?: TrafficUsage; +} + +/** + * @public + * @enum + */ +export const WaypointOptimizationTravelMode = { + CAR: "Car", + PEDESTRIAN: "Pedestrian", + SCOOTER: "Scooter", + TRUCK: "Truck", +} as const; + +/** + * @public + */ +export type WaypointOptimizationTravelMode = + (typeof WaypointOptimizationTravelMode)[keyof typeof WaypointOptimizationTravelMode]; + +/** + *

Options related to a pedestrian.

+ * @public + */ +export interface WaypointOptimizationPedestrianOptions { + /** + *

Walking speed.

+ *

+ * Unit: KilometersPerHour + *

+ * @public + */ + Speed?: number; +} + +/** + * @public + * @enum + */ +export const WaypointOptimizationHazardousCargoType = { + COMBUSTIBLE: "Combustible", + CORROSIVE: "Corrosive", + EXPLOSIVE: "Explosive", + FLAMMABLE: "Flammable", + GAS: "Gas", + HARMFUL_TO_WATER: "HarmfulToWater", + ORGANIC: "Organic", + OTHER: "Other", + POISON: "Poison", + POISONOUS_INHALATION: "PoisonousInhalation", + RADIOACTIVE: "Radioactive", +} as const; + +/** + * @public + */ +export type WaypointOptimizationHazardousCargoType = + (typeof WaypointOptimizationHazardousCargoType)[keyof typeof WaypointOptimizationHazardousCargoType]; + +/** + *

Trailer options corresponding to the vehicle.

+ * @public + */ +export interface WaypointOptimizationTrailerOptions { + /** + *

Number of trailers attached to the vehicle.

+ *

Default Value: 0 + *

+ * @public + */ + TrailerCount?: number; +} + +/** + * @public + * @enum + */ +export const WaypointOptimizationTruckType = { + STRAIGHT_TRUCK: "StraightTruck", + TRACTOR: "Tractor", +} as const; + +/** + * @public + */ +export type WaypointOptimizationTruckType = + (typeof WaypointOptimizationTruckType)[keyof typeof WaypointOptimizationTruckType]; + +/** + *

Travel mode options when the provided travel mode is "Truck"

+ * @public + */ +export interface WaypointOptimizationTruckOptions { + /** + *

Gross weight of the vehicle including trailers, and goods at capacity.

+ *

+ * Unit: Kilograms + *

+ * @public + */ + GrossWeight?: number; + + /** + *

List of Hazardous cargo contained in the vehicle.

+ * @public + */ + HazardousCargos?: WaypointOptimizationHazardousCargoType[]; + + /** + *

Height of the vehicle.

+ *

+ * Unit: centimeters + *

+ * @public + */ + Height?: number; + + /** + *

Length of the vehicle.

+ *

+ * Unit: centimeters + *

+ * @public + */ + Length?: number; + + /** + *

Trailer options corresponding to the vehicle.

+ * @public + */ + Trailer?: WaypointOptimizationTrailerOptions; + + /** + *

Type of the truck.

+ * @public + */ + TruckType?: WaypointOptimizationTruckType; + + /** + *

The tunnel restriction code.

+ *

Tunnel categories in this list indicate the restrictions which apply to certain tunnels in Great Britain. + * They relate to the types of dangerous goods that can be transported through them.

+ *
    + *
  • + *

    + * Tunnel Category B + *

    + *
      + *
    • + *

      + * Risk Level: Limited risk

      + *
    • + *
    • + *

      + * Restrictions: Few restrictions

      + *
    • + *
    + *
  • + *
  • + *

    + * Tunnel Category C + *

    + *
      + *
    • + *

      + * Risk Level: Medium risk

      + *
    • + *
    • + *

      + * Restrictions: Some restrictions

      + *
    • + *
    + *
  • + *
  • + *

    + * Tunnel Category D + *

    + *
      + *
    • + *

      + * Risk Level: High risk

      + *
    • + *
    • + *

      + * Restrictions: Many restrictions occur

      + *
    • + *
    + *
  • + *
  • + *

    + * Tunnel Category E + *

    + *
      + *
    • + *

      + * Risk Level: Very high risk

      + *
    • + *
    • + *

      + * Restrictions: Restricted tunnel

      + *
    • + *
    + *
  • + *
+ * @public + */ + TunnelRestrictionCode?: string; + + /** + *

Heaviest weight per axle irrespective of the axle type or the axle group. Meant for usage in countries where the differences in axle types or axle groups are not distinguished.

+ *

+ * Unit: Kilograms + *

+ * @public + */ + WeightPerAxle?: number; + + /** + *

Width of the vehicle.

+ *

+ * Unit: centimeters + *

+ * @public + */ + Width?: number; +} + +/** + *

Travel mode related options for the provided travel mode.

+ * @public + */ +export interface WaypointOptimizationTravelModeOptions { + /** + *

Travel mode options when the provided travel mode is "Pedestrian"

+ * @public + */ + Pedestrian?: WaypointOptimizationPedestrianOptions; + + /** + *

Travel mode options when the provided travel mode is "Truck"

+ * @public + */ + Truck?: WaypointOptimizationTruckOptions; +} + +/** + *

Waypoint between the Origin and Destination.

+ * @public + */ +export interface WaypointOptimizationWaypoint { + /** + *

Access hours corresponding to when a waypoint can be visited.

+ * @public + */ + AccessHours?: WaypointOptimizationAccessHours; + + /** + *

Appointment time at the waypoint.

+ * @public + */ + AppointmentTime?: string; + + /** + *

Constraint defining what waypoints are to be visited after this waypoint.

+ * @public + */ + Before?: number[]; + + /** + *

GPS Heading at the position.

+ * @public + */ + Heading?: number; + + /** + *

The waypoint Id.

+ * @public + */ + Id?: string; + + /** + *

Position defined as [longitude, latitude].

+ * @public + */ + Position: number[] | undefined; + + /** + *

Service time spent at the waypoint. At an appointment, the service time should be the appointment duration.

+ *

+ * Unit: seconds + *

+ * @public + */ + ServiceDuration?: number; + + /** + *

Options to configure matching the provided position to a side of the street.

+ * @public + */ + SideOfStreet?: WaypointOptimizationSideOfStreetOptions; +} + +/** + * @public + */ +export interface OptimizeWaypointsRequest { + /** + *

Features that are avoided while calculating a route. Avoidance is on a best-case basis. If an + * avoidance can't be satisfied for a particular case, this setting is ignored.

+ * @public + */ + Avoid?: WaypointOptimizationAvoidanceOptions; + + /** + *

Departure time from the waypoint.

+ *

Time format:YYYY-MM-DDThh:mm:ss.sssZ | YYYY-MM-DDThh:mm:ss.sss+hh:mm + *

+ *

Examples:

+ *

+ * 2020-04-22T17:57:24Z + *

+ *

+ * 2020-04-22T17:57:24+02:00 + *

+ * @public + */ + DepartureTime?: string; + + /** + *

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

+ * @public + */ + Destination?: number[]; + + /** + *

Destination related options.

+ * @public + */ + DestinationOptions?: WaypointOptimizationDestinationOptions; + + /** + *

Driver related options.

+ * @public + */ + Driver?: WaypointOptimizationDriverOptions; + + /** + *

Features to be strictly excluded while calculating the route.

+ * @public + */ + Exclude?: WaypointOptimizationExclusionOptions; + + /** + *

Optional: The API key to be used for authorization. Either an API key or valid SigV4 + * signature must be provided when making a request.

+ * @public + */ + Key?: string; + + /** + *

Specifies the optimization criteria for the calculated sequence.

+ *

Default Value: FastestRoute.

+ * @public + */ + OptimizeSequencingFor?: WaypointOptimizationSequencingObjective; + + /** + *

The start position for the route.

+ * @public + */ + Origin: number[] | undefined; + + /** + *

Origin related options.

+ * @public + */ + OriginOptions?: WaypointOptimizationOriginOptions; + + /** + *

Traffic-related options.

+ * @public + */ + Traffic?: WaypointOptimizationTrafficOptions; + + /** + *

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

+ *

Default Value: Car + *

+ * @public + */ + TravelMode?: WaypointOptimizationTravelMode; + + /** + *

Travel mode related options for the provided travel mode.

+ * @public + */ + TravelModeOptions?: WaypointOptimizationTravelModeOptions; + + /** + *

List of waypoints between the Origin and Destination.

+ * @public + */ + Waypoints?: WaypointOptimizationWaypoint[]; +} + +/** + *

This contains information such as distance and duration from one waypoint to the next waypoint in the sequence.

+ * @public + */ +export interface WaypointOptimizationConnection { + /** + *

Distance of the step.

+ * @public + */ + Distance: number | undefined; + + /** + *

contains the ID of the starting waypoint in this connection.

+ * @public + */ + From: string | undefined; + + /** + *

Resting time before the driver can continue driving.

+ * @public + */ + RestDuration: number | undefined; + + /** + *

Contains the ID of the ending waypoint in this connection.

+ * @public + */ + To: string | undefined; + + /** + *

Total duration.

+ *

+ * Unit: seconds + *

+ * @public + */ + TravelDuration: number | undefined; + + /** + *

Duration of a wait step.

+ *

+ * Unit: seconds + *

+ * @public + */ + WaitDuration: number | undefined; +} + +/** + * @public + * @enum + */ +export const WaypointOptimizationConstraint = { + ACCESS_HOURS: "AccessHours", + APPOINTMENT_TIME: "AppointmentTime", + BEFORE: "Before", + HEADING: "Heading", + SERVICE_DURATION: "ServiceDuration", + SIDE_OF_STREET: "SideOfStreet", +} as const; + +/** + * @public + */ +export type WaypointOptimizationConstraint = + (typeof WaypointOptimizationConstraint)[keyof typeof WaypointOptimizationConstraint]; + +/** + *

The failed constraint.

+ * @public + */ +export interface WaypointOptimizationFailedConstraint { + /** + *

The failed constraint.

+ * @public + */ + Constraint?: WaypointOptimizationConstraint; + + /** + *

Reason for the failed constraint.

+ * @public + */ + Reason?: string; +} + +/** + *

The impeding waypoint.

+ * @public + */ +export interface WaypointOptimizationImpedingWaypoint { + /** + *

Failed constraints for an impeding waypoint.

+ * @public + */ + FailedConstraints: WaypointOptimizationFailedConstraint[] | undefined; + + /** + *

The waypoint Id.

+ * @public + */ + Id: string | undefined; + + /** + *

Position defined as [longitude, latitude].

+ * @public + */ + Position: number[] | undefined; +} + +/** + *

The optimized waypoint.

+ * @public + */ +export interface WaypointOptimizationOptimizedWaypoint { + /** + *

Estimated time of arrival at the destination.

+ *

Time format:YYYY-MM-DDThh:mm:ss.sssZ | YYYY-MM-DDThh:mm:ss.sss+hh:mm + *

+ *

Examples:

+ *

+ * 2020-04-22T17:57:24Z + *

+ *

+ * 2020-04-22T17:57:24+02:00 + *

+ * @public + */ + ArrivalTime?: string; + + /** + *

Estimated time of departure from thr origin.

+ *

Time format:YYYY-MM-DDThh:mm:ss.sssZ | YYYY-MM-DDThh:mm:ss.sss+hh:mm + *

+ *

Examples:

+ *

+ * 2020-04-22T17:57:24Z + *

+ *

+ * 2020-04-22T17:57:24+02:00 + *

+ * @public + */ + DepartureTime: string | undefined; + + /** + *

The waypoint Id.

+ * @public + */ + Id: string | undefined; + + /** + *

Position defined as [longitude, latitude].

+ * @public + */ + Position: number[] | undefined; +} + +/** + *

Time breakdown for the sequence.

+ * @public + */ +export interface WaypointOptimizationTimeBreakdown { + /** + *

Resting phase of the cycle.

+ *

+ * Unit: seconds + *

+ * @public + */ + RestDuration: number | undefined; + + /** + *

Service time spent at the destination. At an appointment, the service time should be the appointment duration.

+ *

+ * Unit: seconds + *

+ * @public + */ + ServiceDuration: number | undefined; + + /** + *

Traveling phase of the cycle.

+ *

+ * Unit: seconds + *

+ * @public + */ + TravelDuration: number | undefined; + + /** + *

Waiting phase of the cycle.

+ *

+ * Unit: seconds + *

+ * @public + */ + WaitDuration: number | undefined; +} + +/** + * @public + */ +export interface OptimizeWaypointsResponse { + /** + *

Details about the connection from one waypoint to the next, within the optimized sequence.

+ * @public + */ + Connections: WaypointOptimizationConnection[] | undefined; + + /** + *

Overall distance to travel the whole sequence.

+ * @public + */ + Distance: number | undefined; + + /** + *

Overall duration to travel the whole sequence.

+ *

+ * Unit: seconds + *

+ * @public + */ + Duration: number | undefined; + + /** + *

Returns waypoints that caused the optimization problem to fail, and the constraints that were unsatisfied leading to the failure.

+ * @public + */ + ImpedingWaypoints: WaypointOptimizationImpedingWaypoint[] | undefined; + + /** + *

Waypoints in the order of the optimized sequence.

+ * @public + */ + OptimizedWaypoints: WaypointOptimizationOptimizedWaypoint[] | undefined; + + /** + *

The pricing bucket for which the query is charged at.

+ * @public + */ + PricingBucket: string | undefined; + + /** + *

Time breakdown for the sequence.

+ * @public + */ + TimeBreakdown: WaypointOptimizationTimeBreakdown | undefined; +} + +/** + *

TracePoint indices for which the provided notice code corresponds to.

+ * @public + */ +export interface RoadSnapTracePoint { + /** + *

GPS Heading at the position.

+ * @public + */ + Heading?: number; + + /** + *

Position defined as [longitude, latitude].

+ * @public + */ + Position: number[] | undefined; + + /** + *

Speed at the specified trace point .

+ *

+ * Unit: KilometersPerHour + *

+ * @public + */ + Speed?: number; + + /** + *

Timestamp of the event.

+ * @public + */ + Timestamp?: string; +} + +/** + * @public + * @enum + */ +export const RoadSnapTravelMode = { + CAR: "Car", + PEDESTRIAN: "Pedestrian", + SCOOTER: "Scooter", + TRUCK: "Truck", +} as const; + +/** + * @public + */ +export type RoadSnapTravelMode = (typeof RoadSnapTravelMode)[keyof typeof RoadSnapTravelMode]; + +/** + * @public + * @enum + */ +export const RoadSnapHazardousCargoType = { + COMBUSTIBLE: "Combustible", + CORROSIVE: "Corrosive", + EXPLOSIVE: "Explosive", + FLAMMABLE: "Flammable", + GAS: "Gas", + HARMFUL_TO_WATER: "HarmfulToWater", + ORGANIC: "Organic", + OTHER: "Other", + POISON: "Poison", + POISONOUS_INHALATION: "PoisonousInhalation", + RADIOACTIVE: "Radioactive", +} as const; + +/** + * @public + */ +export type RoadSnapHazardousCargoType = (typeof RoadSnapHazardousCargoType)[keyof typeof RoadSnapHazardousCargoType]; + +/** + *

Trailer options corresponding to the vehicle.

+ * @public + */ +export interface RoadSnapTrailerOptions { + /** + *

Number of trailers attached to the vehicle.

+ *

Default Value: 0 + *

+ * @public + */ + TrailerCount?: number; +} + +/** + *

Travel mode options when the provided travel mode is "Truck".

+ * @public + */ +export interface RoadSnapTruckOptions { + /** + *

Gross weight of the vehicle including trailers, and goods at capacity.

+ *

+ * Unit: Kilograms + *

+ * @public + */ + GrossWeight?: number; + + /** + *

List of Hazardous cargos contained in the vehicle.

+ * @public + */ + HazardousCargos?: RoadSnapHazardousCargoType[]; + + /** + *

Height of the vehicle.

+ *

+ * Unit: centimeters + *

+ * @public + */ + Height?: number; + + /** + *

Length of the vehicle.

+ *

+ * Unit: centimeters + *

+ * @public + */ + Length?: number; + + /** + *

Trailer options corresponding to the vehicle.

+ * @public + */ + Trailer?: RoadSnapTrailerOptions; + + /** + *

The tunnel restriction code.

+ *

Tunnel categories in this list indicate the restrictions which apply to certain tunnels in Great Britain. + * They relate to the types of dangerous goods that can be transported through them.

+ *
    + *
  • + *

    + * Tunnel Category B + *

    + *
      + *
    • + *

      + * Risk Level: Limited risk

      + *
    • + *
    • + *

      + * Restrictions: Few restrictions

      + *
    • + *
    + *
  • + *
  • + *

    + * Tunnel Category C + *

    + *
      + *
    • + *

      + * Risk Level: Medium risk

      + *
    • + *
    • + *

      + * Restrictions: Some restrictions

      + *
    • + *
    + *
  • + *
  • + *

    + * Tunnel Category D + *

    + *
      + *
    • + *

      + * Risk Level: High risk

      + *
    • + *
    • + *

      + * Restrictions: Many restrictions occur

      + *
    • + *
    + *
  • + *
  • + *

    + * Tunnel Category E + *

    + *
      + *
    • + *

      + * Risk Level: Very high risk

      + *
    • + *
    • + *

      + * Restrictions: Restricted tunnel

      + *
    • + *
    + *
  • + *
+ * @public + */ + TunnelRestrictionCode?: string; + + /** + *

Width of the vehicle in centimenters.

+ * @public + */ + Width?: number; +} + +/** + *

Travel mode related options for the provided travel mode.

+ * @public + */ +export interface RoadSnapTravelModeOptions { + /** + *

Travel mode options when the provided travel mode is "Truck".

+ * @public + */ + Truck?: RoadSnapTruckOptions; +} + +/** + * @public + */ +export interface SnapToRoadsRequest { + /** + *

Optional: The API key to be used for authorization. Either an API key or valid SigV4 + * signature must be provided when making a request.

+ * @public + */ + Key?: string; + + /** + *

Chooses what the returned SnappedGeometry format should be.

+ *

Default Value: FlexiblePolyline + *

+ * @public + */ + SnappedGeometryFormat?: GeometryFormat; + + /** + *

The radius around the provided tracepoint that is considered for snapping.

+ *

+ * Unit: meters + *

+ *

Default value: 300 + *

+ * @public + */ + SnapRadius?: number; + + /** + *

List of trace points to be snapped onto the road network.

+ * @public + */ + TracePoints: RoadSnapTracePoint[] | undefined; + + /** + *

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

+ *

Default Value: Car + *

+ * @public + */ + TravelMode?: RoadSnapTravelMode; + + /** + *

Travel mode related options for the provided travel mode.

+ * @public + */ + TravelModeOptions?: RoadSnapTravelModeOptions; +} + +/** + * @public + * @enum + */ +export const RoadSnapNoticeCode = { + TRACE_POINTS_HEADING_IGNORED: "TracePointsHeadingIgnored", + TRACE_POINTS_IGNORED: "TracePointsIgnored", + TRACE_POINTS_MOVED_BY_LARGE_DISTANCE: "TracePointsMovedByLargeDistance", + TRACE_POINTS_NOT_MATCHED: "TracePointsNotMatched", + TRACE_POINTS_OUT_OF_SEQUENCE: "TracePointsOutOfSequence", + TRACE_POINTS_SPEED_ESTIMATED: "TracePointsSpeedEstimated", + TRACE_POINTS_SPEED_IGNORED: "TracePointsSpeedIgnored", +} as const; + +/** + * @public + */ +export type RoadSnapNoticeCode = (typeof RoadSnapNoticeCode)[keyof typeof RoadSnapNoticeCode]; + +/** + *

Notices provide information around factors that may have influenced snapping in a manner atypical to the standard use cases.

+ * @public + */ +export interface RoadSnapNotice { + /** + *

Code corresponding to the issue.

+ * @public + */ + Code: RoadSnapNoticeCode | undefined; + + /** + *

The notice title.

+ * @public + */ + Title: string | undefined; + + /** + *

TracePoint indices for which the provided notice code corresponds to.

+ * @public + */ + TracePointIndexes: number[] | undefined; +} + +/** + *

Interpolated geometry for the snapped route that is overlay-able onto a map.

+ * @public + */ +export interface RoadSnapSnappedGeometry { + /** + *

An ordered list of positions used to plot a route on a map.

+ * + *

LineString and Polyline are mutually exclusive properties.

+ *
+ * @public + */ + LineString?: number[][]; + + /** + *

An ordered list of positions used to plot a route on a map in a lossy compression format.

+ * + *

LineString and Polyline are mutually exclusive properties.

+ *
+ * @public + */ + Polyline?: string; +} + +/** + *

TracePoints snapped onto the road network.

+ * @public + */ +export interface RoadSnapSnappedTracePoint { + /** + *

Confidence value for the correctness of this point match.

+ * @public + */ + Confidence: number | undefined; + + /** + *

Position of the TracePoint provided within the request, at the same index.

+ * @public + */ + OriginalPosition: number[] | undefined; + + /** + *

Snapped position of the TracePoint provided within the request, at the same index.

+ * @public + */ + SnappedPosition: number[] | undefined; +} + +/** + * @public + */ +export interface SnapToRoadsResponse { + /** + *

Notices are additional information returned that indicate issues that occurred during route calculation.

+ * @public + */ + Notices: RoadSnapNotice[] | undefined; + + /** + *

The pricing bucket for which the query is charged at.

+ * @public + */ + PricingBucket: string | undefined; + + /** + *

The interpolated geometry for the snapped route onto the road network.

+ * @public + */ + SnappedGeometry?: RoadSnapSnappedGeometry; + + /** + *

Specifies the format of the geometry returned for each leg of the route.

+ * @public + */ + SnappedGeometryFormat: GeometryFormat | undefined; + + /** + *

The trace points snapped onto the road network.

+ * @public + */ + SnappedTracePoints: RoadSnapSnappedTracePoint[] | undefined; +} + +/** + * @internal + */ +export const CorridorFilterSensitiveLog = (obj: Corridor): any => ({ + ...obj, + ...(obj.LineString && { LineString: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const PolylineCorridorFilterSensitiveLog = (obj: PolylineCorridor): any => ({ + ...obj, + ...(obj.Polyline && { Polyline: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const IsolineAvoidanceAreaGeometryFilterSensitiveLog = (obj: IsolineAvoidanceAreaGeometry): any => ({ + ...obj, + ...(obj.BoundingBox && { BoundingBox: SENSITIVE_STRING }), + ...(obj.Corridor && { Corridor: SENSITIVE_STRING }), + ...(obj.Polygon && { Polygon: obj.Polygon.map((item) => SENSITIVE_STRING) }), + ...(obj.PolylineCorridor && { PolylineCorridor: SENSITIVE_STRING }), + ...(obj.PolylinePolygon && { PolylinePolygon: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const IsolineAvoidanceAreaFilterSensitiveLog = (obj: IsolineAvoidanceArea): any => ({ + ...obj, + ...(obj.Except && { Except: obj.Except.map((item) => IsolineAvoidanceAreaGeometryFilterSensitiveLog(item)) }), + ...(obj.Geometry && { Geometry: IsolineAvoidanceAreaGeometryFilterSensitiveLog(obj.Geometry) }), +}); + +/** + * @internal + */ +export const IsolineAvoidanceOptionsFilterSensitiveLog = (obj: IsolineAvoidanceOptions): any => ({ + ...obj, + ...(obj.Areas && { Areas: obj.Areas.map((item) => IsolineAvoidanceAreaFilterSensitiveLog(item)) }), +}); + +/** + * @internal + */ +export const IsolineMatchingOptionsFilterSensitiveLog = (obj: IsolineMatchingOptions): any => ({ + ...obj, + ...(obj.NameHint && { NameHint: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const IsolineSideOfStreetOptionsFilterSensitiveLog = (obj: IsolineSideOfStreetOptions): any => ({ + ...obj, + ...(obj.Position && { Position: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const IsolineDestinationOptionsFilterSensitiveLog = (obj: IsolineDestinationOptions): any => ({ + ...obj, + ...(obj.Matching && { Matching: IsolineMatchingOptionsFilterSensitiveLog(obj.Matching) }), + ...(obj.SideOfStreet && { SideOfStreet: IsolineSideOfStreetOptionsFilterSensitiveLog(obj.SideOfStreet) }), +}); + +/** + * @internal + */ +export const IsolineOriginOptionsFilterSensitiveLog = (obj: IsolineOriginOptions): any => ({ + ...obj, + ...(obj.Matching && { Matching: IsolineMatchingOptionsFilterSensitiveLog(obj.Matching) }), + ...(obj.SideOfStreet && { SideOfStreet: IsolineSideOfStreetOptionsFilterSensitiveLog(obj.SideOfStreet) }), +}); + +/** + * @internal + */ +export const CalculateIsolinesRequestFilterSensitiveLog = (obj: CalculateIsolinesRequest): any => ({ + ...obj, + ...(obj.Avoid && { Avoid: IsolineAvoidanceOptionsFilterSensitiveLog(obj.Avoid) }), + ...(obj.Destination && { Destination: SENSITIVE_STRING }), + ...(obj.DestinationOptions && { + DestinationOptions: IsolineDestinationOptionsFilterSensitiveLog(obj.DestinationOptions), + }), + ...(obj.Key && { Key: SENSITIVE_STRING }), + ...(obj.Origin && { Origin: SENSITIVE_STRING }), + ...(obj.OriginOptions && { OriginOptions: IsolineOriginOptionsFilterSensitiveLog(obj.OriginOptions) }), +}); + +/** + * @internal + */ +export const IsolineConnectionGeometryFilterSensitiveLog = (obj: IsolineConnectionGeometry): any => ({ + ...obj, + ...(obj.LineString && { LineString: SENSITIVE_STRING }), + ...(obj.Polyline && { Polyline: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const IsolineConnectionFilterSensitiveLog = (obj: IsolineConnection): any => ({ + ...obj, + ...(obj.Geometry && { Geometry: IsolineConnectionGeometryFilterSensitiveLog(obj.Geometry) }), +}); + +/** + * @internal + */ +export const IsolineShapeGeometryFilterSensitiveLog = (obj: IsolineShapeGeometry): any => ({ + ...obj, + ...(obj.Polygon && { Polygon: obj.Polygon.map((item) => SENSITIVE_STRING) }), + ...(obj.PolylinePolygon && { PolylinePolygon: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const IsolineFilterSensitiveLog = (obj: Isoline): any => ({ + ...obj, + ...(obj.Connections && { Connections: obj.Connections.map((item) => IsolineConnectionFilterSensitiveLog(item)) }), + ...(obj.Geometries && { Geometries: obj.Geometries.map((item) => IsolineShapeGeometryFilterSensitiveLog(item)) }), +}); + +/** + * @internal + */ +export const CalculateIsolinesResponseFilterSensitiveLog = (obj: CalculateIsolinesResponse): any => ({ + ...obj, + ...(obj.SnappedDestination && { SnappedDestination: SENSITIVE_STRING }), + ...(obj.SnappedOrigin && { SnappedOrigin: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const RouteMatrixAvoidanceAreaGeometryFilterSensitiveLog = (obj: RouteMatrixAvoidanceAreaGeometry): any => ({ + ...obj, + ...(obj.BoundingBox && { BoundingBox: SENSITIVE_STRING }), + ...(obj.Polygon && { Polygon: obj.Polygon.map((item) => SENSITIVE_STRING) }), + ...(obj.PolylinePolygon && { PolylinePolygon: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const RouteMatrixAvoidanceAreaFilterSensitiveLog = (obj: RouteMatrixAvoidanceArea): any => ({ + ...obj, + ...(obj.Geometry && { Geometry: RouteMatrixAvoidanceAreaGeometryFilterSensitiveLog(obj.Geometry) }), +}); + +/** + * @internal + */ +export const RouteMatrixAvoidanceOptionsFilterSensitiveLog = (obj: RouteMatrixAvoidanceOptions): any => ({ + ...obj, + ...(obj.Areas && { Areas: obj.Areas.map((item) => RouteMatrixAvoidanceAreaFilterSensitiveLog(item)) }), +}); + +/** + * @internal + */ +export const RouteMatrixMatchingOptionsFilterSensitiveLog = (obj: RouteMatrixMatchingOptions): any => ({ + ...obj, + ...(obj.NameHint && { NameHint: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const RouteMatrixSideOfStreetOptionsFilterSensitiveLog = (obj: RouteMatrixSideOfStreetOptions): any => ({ + ...obj, + ...(obj.Position && { Position: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const RouteMatrixDestinationOptionsFilterSensitiveLog = (obj: RouteMatrixDestinationOptions): any => ({ + ...obj, + ...(obj.Matching && { Matching: RouteMatrixMatchingOptionsFilterSensitiveLog(obj.Matching) }), + ...(obj.SideOfStreet && { SideOfStreet: RouteMatrixSideOfStreetOptionsFilterSensitiveLog(obj.SideOfStreet) }), +}); + +/** + * @internal + */ +export const RouteMatrixDestinationFilterSensitiveLog = (obj: RouteMatrixDestination): any => ({ + ...obj, + ...(obj.Options && { Options: RouteMatrixDestinationOptionsFilterSensitiveLog(obj.Options) }), + ...(obj.Position && { Position: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const RouteMatrixOriginOptionsFilterSensitiveLog = (obj: RouteMatrixOriginOptions): any => ({ + ...obj, + ...(obj.Matching && { Matching: RouteMatrixMatchingOptionsFilterSensitiveLog(obj.Matching) }), + ...(obj.SideOfStreet && { SideOfStreet: RouteMatrixSideOfStreetOptionsFilterSensitiveLog(obj.SideOfStreet) }), +}); + +/** + * @internal + */ +export const RouteMatrixOriginFilterSensitiveLog = (obj: RouteMatrixOrigin): any => ({ + ...obj, + ...(obj.Options && { Options: RouteMatrixOriginOptionsFilterSensitiveLog(obj.Options) }), + ...(obj.Position && { Position: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const CircleFilterSensitiveLog = (obj: Circle): any => ({ + ...obj, + ...(obj.Center && { Center: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const RouteMatrixBoundaryGeometryFilterSensitiveLog = (obj: RouteMatrixBoundaryGeometry): any => ({ + ...obj, + ...(obj.Circle && { Circle: SENSITIVE_STRING }), + ...(obj.BoundingBox && { BoundingBox: SENSITIVE_STRING }), + ...(obj.Polygon && { Polygon: obj.Polygon.map((item) => SENSITIVE_STRING) }), +}); + +/** + * @internal + */ +export const RouteMatrixBoundaryFilterSensitiveLog = (obj: RouteMatrixBoundary): any => ({ + ...obj, + ...(obj.Geometry && { Geometry: RouteMatrixBoundaryGeometryFilterSensitiveLog(obj.Geometry) }), +}); + +/** + * @internal + */ +export const CalculateRouteMatrixRequestFilterSensitiveLog = (obj: CalculateRouteMatrixRequest): any => ({ + ...obj, + ...(obj.Avoid && { Avoid: RouteMatrixAvoidanceOptionsFilterSensitiveLog(obj.Avoid) }), + ...(obj.Destinations && { + Destinations: obj.Destinations.map((item) => RouteMatrixDestinationFilterSensitiveLog(item)), + }), + ...(obj.Key && { Key: SENSITIVE_STRING }), + ...(obj.Origins && { Origins: obj.Origins.map((item) => RouteMatrixOriginFilterSensitiveLog(item)) }), + ...(obj.RoutingBoundary && { RoutingBoundary: RouteMatrixBoundaryFilterSensitiveLog(obj.RoutingBoundary) }), +}); + +/** + * @internal + */ +export const CalculateRouteMatrixResponseFilterSensitiveLog = (obj: CalculateRouteMatrixResponse): any => ({ + ...obj, + ...(obj.RoutingBoundary && { RoutingBoundary: RouteMatrixBoundaryFilterSensitiveLog(obj.RoutingBoundary) }), +}); + +/** + * @internal + */ +export const RouteAvoidanceAreaGeometryFilterSensitiveLog = (obj: RouteAvoidanceAreaGeometry): any => ({ + ...obj, + ...(obj.Corridor && { Corridor: SENSITIVE_STRING }), + ...(obj.BoundingBox && { BoundingBox: SENSITIVE_STRING }), + ...(obj.Polygon && { Polygon: obj.Polygon.map((item) => SENSITIVE_STRING) }), + ...(obj.PolylineCorridor && { PolylineCorridor: SENSITIVE_STRING }), + ...(obj.PolylinePolygon && { PolylinePolygon: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const RouteAvoidanceAreaFilterSensitiveLog = (obj: RouteAvoidanceArea): any => ({ + ...obj, + ...(obj.Except && { Except: obj.Except.map((item) => RouteAvoidanceAreaGeometryFilterSensitiveLog(item)) }), + ...(obj.Geometry && { Geometry: RouteAvoidanceAreaGeometryFilterSensitiveLog(obj.Geometry) }), +}); + +/** + * @internal + */ +export const RouteAvoidanceOptionsFilterSensitiveLog = (obj: RouteAvoidanceOptions): any => ({ + ...obj, + ...(obj.Areas && { Areas: obj.Areas.map((item) => RouteAvoidanceAreaFilterSensitiveLog(item)) }), +}); + +/** + * @internal + */ +export const RouteMatchingOptionsFilterSensitiveLog = (obj: RouteMatchingOptions): any => ({ + ...obj, + ...(obj.NameHint && { NameHint: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const RouteSideOfStreetOptionsFilterSensitiveLog = (obj: RouteSideOfStreetOptions): any => ({ + ...obj, + ...(obj.Position && { Position: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const RouteDestinationOptionsFilterSensitiveLog = (obj: RouteDestinationOptions): any => ({ + ...obj, + ...(obj.Matching && { Matching: RouteMatchingOptionsFilterSensitiveLog(obj.Matching) }), + ...(obj.SideOfStreet && { SideOfStreet: RouteSideOfStreetOptionsFilterSensitiveLog(obj.SideOfStreet) }), +}); + +/** + * @internal + */ +export const RouteOriginOptionsFilterSensitiveLog = (obj: RouteOriginOptions): any => ({ + ...obj, + ...(obj.Matching && { Matching: RouteMatchingOptionsFilterSensitiveLog(obj.Matching) }), + ...(obj.SideOfStreet && { SideOfStreet: RouteSideOfStreetOptionsFilterSensitiveLog(obj.SideOfStreet) }), +}); + +/** + * @internal + */ +export const RouteWaypointFilterSensitiveLog = (obj: RouteWaypoint): any => ({ + ...obj, + ...(obj.Matching && { Matching: RouteMatchingOptionsFilterSensitiveLog(obj.Matching) }), + ...(obj.Position && { Position: SENSITIVE_STRING }), + ...(obj.SideOfStreet && { SideOfStreet: RouteSideOfStreetOptionsFilterSensitiveLog(obj.SideOfStreet) }), +}); + +/** + * @internal + */ +export const CalculateRoutesRequestFilterSensitiveLog = (obj: CalculateRoutesRequest): any => ({ + ...obj, + ...(obj.Avoid && { Avoid: RouteAvoidanceOptionsFilterSensitiveLog(obj.Avoid) }), + ...(obj.Destination && { Destination: SENSITIVE_STRING }), + ...(obj.DestinationOptions && { + DestinationOptions: RouteDestinationOptionsFilterSensitiveLog(obj.DestinationOptions), + }), + ...(obj.Key && { Key: SENSITIVE_STRING }), + ...(obj.Origin && { Origin: SENSITIVE_STRING }), + ...(obj.OriginOptions && { OriginOptions: RouteOriginOptionsFilterSensitiveLog(obj.OriginOptions) }), + ...(obj.Waypoints && { Waypoints: obj.Waypoints.map((item) => RouteWaypointFilterSensitiveLog(item)) }), +}); + +/** + * @internal + */ +export const RouteFerryPlaceFilterSensitiveLog = (obj: RouteFerryPlace): any => ({ + ...obj, + ...(obj.OriginalPosition && { OriginalPosition: SENSITIVE_STRING }), + ...(obj.Position && { Position: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const RouteFerryArrivalFilterSensitiveLog = (obj: RouteFerryArrival): any => ({ + ...obj, + ...(obj.Place && { Place: RouteFerryPlaceFilterSensitiveLog(obj.Place) }), +}); + +/** + * @internal + */ +export const RouteFerryDepartureFilterSensitiveLog = (obj: RouteFerryDeparture): any => ({ + ...obj, + ...(obj.Place && { Place: RouteFerryPlaceFilterSensitiveLog(obj.Place) }), +}); + +/** + * @internal + */ +export const RoutePassThroughPlaceFilterSensitiveLog = (obj: RoutePassThroughPlace): any => ({ + ...obj, + ...(obj.OriginalPosition && { OriginalPosition: SENSITIVE_STRING }), + ...(obj.Position && { Position: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const RoutePassThroughWaypointFilterSensitiveLog = (obj: RoutePassThroughWaypoint): any => ({ + ...obj, + ...(obj.Place && { Place: RoutePassThroughPlaceFilterSensitiveLog(obj.Place) }), +}); + +/** + * @internal + */ +export const RouteFerryLegDetailsFilterSensitiveLog = (obj: RouteFerryLegDetails): any => ({ + ...obj, + ...(obj.Arrival && { Arrival: RouteFerryArrivalFilterSensitiveLog(obj.Arrival) }), + ...(obj.Departure && { Departure: RouteFerryDepartureFilterSensitiveLog(obj.Departure) }), + ...(obj.PassThroughWaypoints && { + PassThroughWaypoints: obj.PassThroughWaypoints.map((item) => RoutePassThroughWaypointFilterSensitiveLog(item)), + }), +}); + +/** + * @internal + */ +export const RouteLegGeometryFilterSensitiveLog = (obj: RouteLegGeometry): any => ({ + ...obj, + ...(obj.LineString && { LineString: SENSITIVE_STRING }), + ...(obj.Polyline && { Polyline: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const RoutePedestrianPlaceFilterSensitiveLog = (obj: RoutePedestrianPlace): any => ({ + ...obj, + ...(obj.OriginalPosition && { OriginalPosition: SENSITIVE_STRING }), + ...(obj.Position && { Position: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const RoutePedestrianArrivalFilterSensitiveLog = (obj: RoutePedestrianArrival): any => ({ + ...obj, + ...(obj.Place && { Place: RoutePedestrianPlaceFilterSensitiveLog(obj.Place) }), +}); + +/** + * @internal + */ +export const RoutePedestrianDepartureFilterSensitiveLog = (obj: RoutePedestrianDeparture): any => ({ + ...obj, + ...(obj.Place && { Place: RoutePedestrianPlaceFilterSensitiveLog(obj.Place) }), +}); + +/** + * @internal + */ +export const RoutePedestrianLegDetailsFilterSensitiveLog = (obj: RoutePedestrianLegDetails): any => ({ + ...obj, + ...(obj.Arrival && { Arrival: RoutePedestrianArrivalFilterSensitiveLog(obj.Arrival) }), + ...(obj.Departure && { Departure: RoutePedestrianDepartureFilterSensitiveLog(obj.Departure) }), + ...(obj.PassThroughWaypoints && { + PassThroughWaypoints: obj.PassThroughWaypoints.map((item) => RoutePassThroughWaypointFilterSensitiveLog(item)), + }), +}); + +/** + * @internal + */ +export const RouteVehiclePlaceFilterSensitiveLog = (obj: RouteVehiclePlace): any => ({ + ...obj, + ...(obj.OriginalPosition && { OriginalPosition: SENSITIVE_STRING }), + ...(obj.Position && { Position: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const RouteVehicleArrivalFilterSensitiveLog = (obj: RouteVehicleArrival): any => ({ + ...obj, + ...(obj.Place && { Place: RouteVehiclePlaceFilterSensitiveLog(obj.Place) }), +}); + +/** + * @internal + */ +export const RouteVehicleDepartureFilterSensitiveLog = (obj: RouteVehicleDeparture): any => ({ + ...obj, + ...(obj.Place && { Place: RouteVehiclePlaceFilterSensitiveLog(obj.Place) }), +}); + +/** + * @internal + */ +export const RouteTollPaymentSiteFilterSensitiveLog = (obj: RouteTollPaymentSite): any => ({ + ...obj, + ...(obj.Position && { Position: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const RouteTollFilterSensitiveLog = (obj: RouteToll): any => ({ + ...obj, + ...(obj.PaymentSites && { + PaymentSites: obj.PaymentSites.map((item) => RouteTollPaymentSiteFilterSensitiveLog(item)), + }), +}); + +/** + * @internal + */ +export const RouteVehicleLegDetailsFilterSensitiveLog = (obj: RouteVehicleLegDetails): any => ({ + ...obj, + ...(obj.Arrival && { Arrival: RouteVehicleArrivalFilterSensitiveLog(obj.Arrival) }), + ...(obj.Departure && { Departure: RouteVehicleDepartureFilterSensitiveLog(obj.Departure) }), + ...(obj.PassThroughWaypoints && { + PassThroughWaypoints: obj.PassThroughWaypoints.map((item) => RoutePassThroughWaypointFilterSensitiveLog(item)), + }), +}); + +/** + * @internal + */ +export const RouteLegFilterSensitiveLog = (obj: RouteLeg): any => ({ + ...obj, + ...(obj.FerryLegDetails && { FerryLegDetails: RouteFerryLegDetailsFilterSensitiveLog(obj.FerryLegDetails) }), + ...(obj.Geometry && { Geometry: RouteLegGeometryFilterSensitiveLog(obj.Geometry) }), + ...(obj.PedestrianLegDetails && { + PedestrianLegDetails: RoutePedestrianLegDetailsFilterSensitiveLog(obj.PedestrianLegDetails), + }), + ...(obj.VehicleLegDetails && { VehicleLegDetails: RouteVehicleLegDetailsFilterSensitiveLog(obj.VehicleLegDetails) }), +}); + +/** + * @internal + */ +export const RouteFilterSensitiveLog = (obj: Route): any => ({ + ...obj, + ...(obj.Legs && { Legs: obj.Legs.map((item) => RouteLegFilterSensitiveLog(item)) }), +}); + +/** + * @internal + */ +export const CalculateRoutesResponseFilterSensitiveLog = (obj: CalculateRoutesResponse): any => ({ + ...obj, +}); + +/** + * @internal + */ +export const WaypointOptimizationAvoidanceAreaGeometryFilterSensitiveLog = ( + obj: WaypointOptimizationAvoidanceAreaGeometry +): any => ({ + ...obj, + ...(obj.BoundingBox && { BoundingBox: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const WaypointOptimizationAvoidanceAreaFilterSensitiveLog = (obj: WaypointOptimizationAvoidanceArea): any => ({ + ...obj, + ...(obj.Geometry && { Geometry: WaypointOptimizationAvoidanceAreaGeometryFilterSensitiveLog(obj.Geometry) }), +}); + +/** + * @internal + */ +export const WaypointOptimizationAvoidanceOptionsFilterSensitiveLog = ( + obj: WaypointOptimizationAvoidanceOptions +): any => ({ + ...obj, + ...(obj.Areas && { Areas: obj.Areas.map((item) => WaypointOptimizationAvoidanceAreaFilterSensitiveLog(item)) }), +}); + +/** + * @internal + */ +export const WaypointOptimizationSideOfStreetOptionsFilterSensitiveLog = ( + obj: WaypointOptimizationSideOfStreetOptions +): any => ({ + ...obj, + ...(obj.Position && { Position: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const WaypointOptimizationDestinationOptionsFilterSensitiveLog = ( + obj: WaypointOptimizationDestinationOptions +): any => ({ + ...obj, + ...(obj.SideOfStreet && { + SideOfStreet: WaypointOptimizationSideOfStreetOptionsFilterSensitiveLog(obj.SideOfStreet), + }), +}); + +/** + * @internal + */ +export const WaypointOptimizationWaypointFilterSensitiveLog = (obj: WaypointOptimizationWaypoint): any => ({ + ...obj, + ...(obj.Position && { Position: SENSITIVE_STRING }), + ...(obj.SideOfStreet && { + SideOfStreet: WaypointOptimizationSideOfStreetOptionsFilterSensitiveLog(obj.SideOfStreet), + }), +}); + +/** + * @internal + */ +export const OptimizeWaypointsRequestFilterSensitiveLog = (obj: OptimizeWaypointsRequest): any => ({ + ...obj, + ...(obj.Avoid && { Avoid: WaypointOptimizationAvoidanceOptionsFilterSensitiveLog(obj.Avoid) }), + ...(obj.Destination && { Destination: SENSITIVE_STRING }), + ...(obj.DestinationOptions && { + DestinationOptions: WaypointOptimizationDestinationOptionsFilterSensitiveLog(obj.DestinationOptions), + }), + ...(obj.Key && { Key: SENSITIVE_STRING }), + ...(obj.Origin && { Origin: SENSITIVE_STRING }), + ...(obj.Waypoints && { + Waypoints: obj.Waypoints.map((item) => WaypointOptimizationWaypointFilterSensitiveLog(item)), + }), +}); + +/** + * @internal + */ +export const WaypointOptimizationImpedingWaypointFilterSensitiveLog = ( + obj: WaypointOptimizationImpedingWaypoint +): any => ({ + ...obj, + ...(obj.Position && { Position: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const WaypointOptimizationOptimizedWaypointFilterSensitiveLog = ( + obj: WaypointOptimizationOptimizedWaypoint +): any => ({ + ...obj, + ...(obj.Position && { Position: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const OptimizeWaypointsResponseFilterSensitiveLog = (obj: OptimizeWaypointsResponse): any => ({ + ...obj, + ...(obj.ImpedingWaypoints && { + ImpedingWaypoints: obj.ImpedingWaypoints.map((item) => + WaypointOptimizationImpedingWaypointFilterSensitiveLog(item) + ), + }), + ...(obj.OptimizedWaypoints && { + OptimizedWaypoints: obj.OptimizedWaypoints.map((item) => + WaypointOptimizationOptimizedWaypointFilterSensitiveLog(item) + ), + }), +}); + +/** + * @internal + */ +export const RoadSnapTracePointFilterSensitiveLog = (obj: RoadSnapTracePoint): any => ({ + ...obj, + ...(obj.Position && { Position: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const SnapToRoadsRequestFilterSensitiveLog = (obj: SnapToRoadsRequest): any => ({ + ...obj, + ...(obj.Key && { Key: SENSITIVE_STRING }), + ...(obj.TracePoints && { TracePoints: obj.TracePoints.map((item) => RoadSnapTracePointFilterSensitiveLog(item)) }), +}); + +/** + * @internal + */ +export const RoadSnapSnappedGeometryFilterSensitiveLog = (obj: RoadSnapSnappedGeometry): any => ({ + ...obj, + ...(obj.LineString && { LineString: SENSITIVE_STRING }), + ...(obj.Polyline && { Polyline: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const RoadSnapSnappedTracePointFilterSensitiveLog = (obj: RoadSnapSnappedTracePoint): any => ({ + ...obj, + ...(obj.OriginalPosition && { OriginalPosition: SENSITIVE_STRING }), + ...(obj.SnappedPosition && { SnappedPosition: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const SnapToRoadsResponseFilterSensitiveLog = (obj: SnapToRoadsResponse): any => ({ + ...obj, + ...(obj.SnappedGeometry && { SnappedGeometry: RoadSnapSnappedGeometryFilterSensitiveLog(obj.SnappedGeometry) }), + ...(obj.SnappedTracePoints && { + SnappedTracePoints: obj.SnappedTracePoints.map((item) => RoadSnapSnappedTracePointFilterSensitiveLog(item)), + }), +}); diff --git a/clients/client-geo-routes/src/protocols/Aws_restJson1.ts b/clients/client-geo-routes/src/protocols/Aws_restJson1.ts new file mode 100644 index 0000000000000..3f55a019b6404 --- /dev/null +++ b/clients/client-geo-routes/src/protocols/Aws_restJson1.ts @@ -0,0 +1,2674 @@ +// smithy-typescript generated code +import { loadRestJsonErrorCode, parseJsonBody as parseBody, parseJsonErrorBody as parseErrorBody } from "@aws-sdk/core"; +import { requestBuilder as rb } from "@smithy/core"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; +import { + _json, + collectBody, + decorateServiceException as __decorateServiceException, + expectBoolean as __expectBoolean, + expectInt32 as __expectInt32, + expectLong as __expectLong, + expectNonNull as __expectNonNull, + expectObject as __expectObject, + expectString as __expectString, + extendedEncodeURIComponent as __extendedEncodeURIComponent, + limitedParseDouble as __limitedParseDouble, + map, + serializeFloat as __serializeFloat, + take, + withBaseException, +} from "@smithy/smithy-client"; +import { + Endpoint as __Endpoint, + ResponseMetadata as __ResponseMetadata, + SerdeContext as __SerdeContext, +} from "@smithy/types"; + +import { CalculateIsolinesCommandInput, CalculateIsolinesCommandOutput } from "../commands/CalculateIsolinesCommand"; +import { + CalculateRouteMatrixCommandInput, + CalculateRouteMatrixCommandOutput, +} from "../commands/CalculateRouteMatrixCommand"; +import { CalculateRoutesCommandInput, CalculateRoutesCommandOutput } from "../commands/CalculateRoutesCommand"; +import { OptimizeWaypointsCommandInput, OptimizeWaypointsCommandOutput } from "../commands/OptimizeWaypointsCommand"; +import { SnapToRoadsCommandInput, SnapToRoadsCommandOutput } from "../commands/SnapToRoadsCommand"; +import { GeoRoutesServiceException as __BaseException } from "../models/GeoRoutesServiceException"; +import { + AccessDeniedException, + Circle, + Corridor, + InternalServerException, + Isoline, + IsolineAllowOptions, + IsolineAvoidanceArea, + IsolineAvoidanceAreaGeometry, + IsolineAvoidanceOptions, + IsolineAvoidanceZoneCategory, + IsolineCarOptions, + IsolineConnection, + IsolineConnectionGeometry, + IsolineDestinationOptions, + IsolineGranularityOptions, + IsolineHazardousCargoType, + IsolineMatchingOptions, + IsolineOriginOptions, + IsolineScooterOptions, + IsolineShapeGeometry, + IsolineSideOfStreetOptions, + IsolineThresholds, + IsolineTrafficOptions, + IsolineTrailerOptions, + IsolineTravelModeOptions, + IsolineTruckOptions, + IsolineVehicleLicensePlate, + PolylineCorridor, + RoadSnapHazardousCargoType, + RoadSnapSnappedGeometry, + RoadSnapSnappedTracePoint, + RoadSnapTracePoint, + RoadSnapTrailerOptions, + RoadSnapTravelModeOptions, + RoadSnapTruckOptions, + Route, + RouteAllowOptions, + RouteAvoidanceArea, + RouteAvoidanceAreaGeometry, + RouteAvoidanceOptions, + RouteAvoidanceZoneCategory, + RouteCarOptions, + RouteContinueHighwayStepDetails, + RouteDestinationOptions, + RouteDriverOptions, + RouteDriverScheduleInterval, + RouteEmissionType, + RouteEnterHighwayStepDetails, + RouteExclusionOptions, + RouteExitStepDetails, + RouteFerryArrival, + RouteFerryDeparture, + RouteFerryLegDetails, + RouteFerryPlace, + RouteHazardousCargoType, + RouteKeepStepDetails, + RouteLeg, + RouteLegAdditionalFeature, + RouteLegGeometry, + RouteMatchingOptions, + RouteMatrixAllowOptions, + RouteMatrixAutoCircle, + RouteMatrixAvoidanceArea, + RouteMatrixAvoidanceAreaGeometry, + RouteMatrixAvoidanceOptions, + RouteMatrixAvoidanceZoneCategory, + RouteMatrixBoundary, + RouteMatrixBoundaryGeometry, + RouteMatrixCarOptions, + RouteMatrixDestination, + RouteMatrixDestinationOptions, + RouteMatrixExclusionOptions, + RouteMatrixHazardousCargoType, + RouteMatrixMatchingOptions, + RouteMatrixOrigin, + RouteMatrixOriginOptions, + RouteMatrixScooterOptions, + RouteMatrixSideOfStreetOptions, + RouteMatrixTrafficOptions, + RouteMatrixTrailerOptions, + RouteMatrixTravelModeOptions, + RouteMatrixTruckOptions, + RouteMatrixVehicleLicensePlate, + RouteOriginOptions, + RoutePassThroughPlace, + RoutePassThroughWaypoint, + RoutePedestrianArrival, + RoutePedestrianDeparture, + RoutePedestrianLegDetails, + RoutePedestrianOptions, + RoutePedestrianPlace, + RoutePedestrianSpan, + RoutePedestrianTravelStep, + RouteRampStepDetails, + RouteRoundaboutEnterStepDetails, + RouteRoundaboutExitStepDetails, + RouteRoundaboutPassStepDetails, + RouteScooterOptions, + RouteSideOfStreetOptions, + RouteSpanAdditionalFeature, + RouteSpanDynamicSpeedDetails, + RouteSpanSpeedLimitDetails, + RouteSummary, + RouteToll, + RouteTollOptions, + RouteTollPaymentSite, + RouteTollPrice, + RouteTollPriceSummary, + RouteTollPriceValueRange, + RouteTollRate, + RouteTollSummary, + RouteTrafficOptions, + RouteTrailerOptions, + RouteTravelModeOptions, + RouteTruckOptions, + RouteTurnStepDetails, + RouteUTurnStepDetails, + RouteVehicleArrival, + RouteVehicleDeparture, + RouteVehicleLegDetails, + RouteVehicleLicensePlate, + RouteVehiclePlace, + RouteVehicleSpan, + RouteVehicleTravelStep, + RouteWaypoint, + ThrottlingException, + ValidationException, + ValidationExceptionField, + WaypointOptimizationAccessHours, + WaypointOptimizationAccessHoursEntry, + WaypointOptimizationAvoidanceArea, + WaypointOptimizationAvoidanceAreaGeometry, + WaypointOptimizationAvoidanceOptions, + WaypointOptimizationDestinationOptions, + WaypointOptimizationDriverOptions, + WaypointOptimizationExclusionOptions, + WaypointOptimizationHazardousCargoType, + WaypointOptimizationImpedingWaypoint, + WaypointOptimizationOptimizedWaypoint, + WaypointOptimizationOriginOptions, + WaypointOptimizationPedestrianOptions, + WaypointOptimizationRestCycleDurations, + WaypointOptimizationRestCycles, + WaypointOptimizationRestProfile, + WaypointOptimizationSideOfStreetOptions, + WaypointOptimizationTrafficOptions, + WaypointOptimizationTrailerOptions, + WaypointOptimizationTravelModeOptions, + WaypointOptimizationTruckOptions, + WaypointOptimizationWaypoint, + WeightPerAxleGroup, +} from "../models/models_0"; + +/** + * serializeAws_restJson1CalculateIsolinesCommand + */ +export const se_CalculateIsolinesCommand = async ( + input: CalculateIsolinesCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const b = rb(input, context); + const headers: any = { + "content-type": "application/json", + }; + b.bp("/isolines"); + const query: any = map({ + [_k]: [, input[_K]!], + }); + let body: any; + body = JSON.stringify( + take(input, { + Allow: (_) => _json(_), + ArrivalTime: [], + Avoid: (_) => se_IsolineAvoidanceOptions(_, context), + DepartNow: [], + DepartureTime: [], + Destination: (_) => se_Position(_, context), + DestinationOptions: (_) => se_IsolineDestinationOptions(_, context), + IsolineGeometryFormat: [], + IsolineGranularity: (_) => _json(_), + OptimizeIsolineFor: [], + OptimizeRoutingFor: [], + Origin: (_) => se_Position(_, context), + OriginOptions: (_) => se_IsolineOriginOptions(_, context), + Thresholds: (_) => _json(_), + Traffic: (_) => _json(_), + TravelMode: [], + TravelModeOptions: (_) => se_IsolineTravelModeOptions(_, context), + }) + ); + b.m("POST").h(headers).q(query).b(body); + return b.build(); +}; + +/** + * serializeAws_restJson1CalculateRouteMatrixCommand + */ +export const se_CalculateRouteMatrixCommand = async ( + input: CalculateRouteMatrixCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const b = rb(input, context); + const headers: any = { + "content-type": "application/json", + }; + b.bp("/route-matrix"); + const query: any = map({ + [_k]: [, input[_K]!], + }); + let body: any; + body = JSON.stringify( + take(input, { + Allow: (_) => _json(_), + Avoid: (_) => se_RouteMatrixAvoidanceOptions(_, context), + DepartNow: [], + DepartureTime: [], + Destinations: (_) => se_RouteMatrixDestinationList(_, context), + Exclude: (_) => _json(_), + OptimizeRoutingFor: [], + Origins: (_) => se_RouteMatrixOriginList(_, context), + RoutingBoundary: (_) => se_RouteMatrixBoundary(_, context), + Traffic: (_) => _json(_), + TravelMode: [], + TravelModeOptions: (_) => se_RouteMatrixTravelModeOptions(_, context), + }) + ); + b.m("POST").h(headers).q(query).b(body); + return b.build(); +}; + +/** + * serializeAws_restJson1CalculateRoutesCommand + */ +export const se_CalculateRoutesCommand = async ( + input: CalculateRoutesCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const b = rb(input, context); + const headers: any = { + "content-type": "application/json", + }; + b.bp("/routes"); + const query: any = map({ + [_k]: [, input[_K]!], + }); + let body: any; + body = JSON.stringify( + take(input, { + Allow: (_) => _json(_), + ArrivalTime: [], + Avoid: (_) => se_RouteAvoidanceOptions(_, context), + DepartNow: [], + DepartureTime: [], + Destination: (_) => se_Position(_, context), + DestinationOptions: (_) => se_RouteDestinationOptions(_, context), + Driver: (_) => _json(_), + Exclude: (_) => _json(_), + InstructionsMeasurementSystem: [], + Languages: (_) => _json(_), + LegAdditionalFeatures: (_) => _json(_), + LegGeometryFormat: [], + MaxAlternatives: [], + OptimizeRoutingFor: [], + Origin: (_) => se_Position(_, context), + OriginOptions: (_) => se_RouteOriginOptions(_, context), + SpanAdditionalFeatures: (_) => _json(_), + Tolls: (_) => _json(_), + Traffic: (_) => _json(_), + TravelMode: [], + TravelModeOptions: (_) => se_RouteTravelModeOptions(_, context), + TravelStepType: [], + Waypoints: (_) => se_RouteWaypointList(_, context), + }) + ); + b.m("POST").h(headers).q(query).b(body); + return b.build(); +}; + +/** + * serializeAws_restJson1OptimizeWaypointsCommand + */ +export const se_OptimizeWaypointsCommand = async ( + input: OptimizeWaypointsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const b = rb(input, context); + const headers: any = { + "content-type": "application/json", + }; + b.bp("/optimize-waypoints"); + const query: any = map({ + [_k]: [, input[_K]!], + }); + let body: any; + body = JSON.stringify( + take(input, { + Avoid: (_) => se_WaypointOptimizationAvoidanceOptions(_, context), + DepartureTime: [], + Destination: (_) => se_Position(_, context), + DestinationOptions: (_) => se_WaypointOptimizationDestinationOptions(_, context), + Driver: (_) => _json(_), + Exclude: (_) => _json(_), + OptimizeSequencingFor: [], + Origin: (_) => se_Position(_, context), + OriginOptions: (_) => _json(_), + Traffic: (_) => _json(_), + TravelMode: [], + TravelModeOptions: (_) => se_WaypointOptimizationTravelModeOptions(_, context), + Waypoints: (_) => se_WaypointOptimizationWaypointList(_, context), + }) + ); + b.m("POST").h(headers).q(query).b(body); + return b.build(); +}; + +/** + * serializeAws_restJson1SnapToRoadsCommand + */ +export const se_SnapToRoadsCommand = async ( + input: SnapToRoadsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const b = rb(input, context); + const headers: any = { + "content-type": "application/json", + }; + b.bp("/snap-to-roads"); + const query: any = map({ + [_k]: [, input[_K]!], + }); + let body: any; + body = JSON.stringify( + take(input, { + SnapRadius: [], + SnappedGeometryFormat: [], + TracePoints: (_) => se_RoadSnapTracePointList(_, context), + TravelMode: [], + TravelModeOptions: (_) => _json(_), + }) + ); + b.m("POST").h(headers).q(query).b(body); + return b.build(); +}; + +/** + * deserializeAws_restJson1CalculateIsolinesCommand + */ +export const de_CalculateIsolinesCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError(output, context); + } + const contents: any = map({ + $metadata: deserializeMetadata(output), + [_PB]: [, output.headers[_xagpb]], + }); + const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + const doc = take(data, { + ArrivalTime: __expectString, + DepartureTime: __expectString, + IsolineGeometryFormat: __expectString, + Isolines: (_) => de_IsolineList(_, context), + SnappedDestination: (_) => de_Position(_, context), + SnappedOrigin: (_) => de_Position(_, context), + }); + Object.assign(contents, doc); + return contents; +}; + +/** + * deserializeAws_restJson1CalculateRouteMatrixCommand + */ +export const de_CalculateRouteMatrixCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError(output, context); + } + const contents: any = map({ + $metadata: deserializeMetadata(output), + [_PB]: [, output.headers[_xagpb]], + }); + const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + const doc = take(data, { + ErrorCount: __expectInt32, + RouteMatrix: _json, + RoutingBoundary: (_) => de_RouteMatrixBoundary(_, context), + }); + Object.assign(contents, doc); + return contents; +}; + +/** + * deserializeAws_restJson1CalculateRoutesCommand + */ +export const de_CalculateRoutesCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError(output, context); + } + const contents: any = map({ + $metadata: deserializeMetadata(output), + [_PB]: [, output.headers[_xagpb]], + }); + const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + const doc = take(data, { + LegGeometryFormat: __expectString, + Notices: _json, + Routes: (_) => de_RouteList(_, context), + }); + Object.assign(contents, doc); + return contents; +}; + +/** + * deserializeAws_restJson1OptimizeWaypointsCommand + */ +export const de_OptimizeWaypointsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError(output, context); + } + const contents: any = map({ + $metadata: deserializeMetadata(output), + [_PB]: [, output.headers[_xagpb]], + }); + const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + const doc = take(data, { + Connections: _json, + Distance: __expectLong, + Duration: __expectLong, + ImpedingWaypoints: (_) => de_WaypointOptimizationImpedingWaypointList(_, context), + OptimizedWaypoints: (_) => de_WaypointOptimizationOptimizedWaypointList(_, context), + TimeBreakdown: _json, + }); + Object.assign(contents, doc); + return contents; +}; + +/** + * deserializeAws_restJson1SnapToRoadsCommand + */ +export const de_SnapToRoadsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError(output, context); + } + const contents: any = map({ + $metadata: deserializeMetadata(output), + [_PB]: [, output.headers[_xagpb]], + }); + const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + const doc = take(data, { + Notices: _json, + SnappedGeometry: (_) => de_RoadSnapSnappedGeometry(_, context), + SnappedGeometryFormat: __expectString, + SnappedTracePoints: (_) => de_RoadSnapSnappedTracePointList(_, context), + }); + Object.assign(contents, doc); + return contents; +}; + +/** + * deserialize_Aws_restJson1CommandError + */ +const de_CommandError = async (output: __HttpResponse, context: __SerdeContext): Promise => { + const parsedOutput: any = { + ...output, + body: await parseErrorBody(output.body, context), + }; + const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.georoutes#AccessDeniedException": + throw await de_AccessDeniedExceptionRes(parsedOutput, context); + case "InternalServerException": + case "com.amazonaws.georoutes#InternalServerException": + throw await de_InternalServerExceptionRes(parsedOutput, context); + case "ThrottlingException": + case "com.amazonaws.georoutes#ThrottlingException": + throw await de_ThrottlingExceptionRes(parsedOutput, context); + case "ValidationException": + case "com.amazonaws.georoutes#ValidationException": + throw await de_ValidationExceptionRes(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + return throwDefaultError({ + output, + parsedBody, + errorCode, + }) as never; + } +}; + +const throwDefaultError = withBaseException(__BaseException); +/** + * deserializeAws_restJson1AccessDeniedExceptionRes + */ +const de_AccessDeniedExceptionRes = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const contents: any = map({}); + const data: any = parsedOutput.body; + const doc = take(data, { + Message: [, __expectString, `message`], + }); + Object.assign(contents, doc); + const exception = new AccessDeniedException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents, + }); + return __decorateServiceException(exception, parsedOutput.body); +}; + +/** + * deserializeAws_restJson1InternalServerExceptionRes + */ +const de_InternalServerExceptionRes = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const contents: any = map({}); + const data: any = parsedOutput.body; + const doc = take(data, { + Message: [, __expectString, `message`], + }); + Object.assign(contents, doc); + const exception = new InternalServerException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents, + }); + return __decorateServiceException(exception, parsedOutput.body); +}; + +/** + * deserializeAws_restJson1ThrottlingExceptionRes + */ +const de_ThrottlingExceptionRes = async (parsedOutput: any, context: __SerdeContext): Promise => { + const contents: any = map({}); + const data: any = parsedOutput.body; + const doc = take(data, { + Message: [, __expectString, `message`], + }); + Object.assign(contents, doc); + const exception = new ThrottlingException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents, + }); + return __decorateServiceException(exception, parsedOutput.body); +}; + +/** + * deserializeAws_restJson1ValidationExceptionRes + */ +const de_ValidationExceptionRes = async (parsedOutput: any, context: __SerdeContext): Promise => { + const contents: any = map({}); + const data: any = parsedOutput.body; + const doc = take(data, { + FieldList: [, (_) => de_ValidationExceptionFieldList(_, context), `fieldList`], + Message: [, __expectString, `message`], + Reason: [, __expectString, `reason`], + }); + Object.assign(contents, doc); + const exception = new ValidationException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents, + }); + return __decorateServiceException(exception, parsedOutput.body); +}; + +// se_BeforeWaypointsList omitted. + +/** + * serializeAws_restJson1BoundingBox + */ +const se_BoundingBox = (input: number[], context: __SerdeContext): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + return __serializeFloat(entry); + }); +}; + +/** + * serializeAws_restJson1Circle + */ +const se_Circle = (input: Circle, context: __SerdeContext): any => { + return take(input, { + Center: (_) => se_Position(_, context), + Radius: __serializeFloat, + }); +}; + +/** + * serializeAws_restJson1Corridor + */ +const se_Corridor = (input: Corridor, context: __SerdeContext): any => { + return take(input, { + LineString: (_) => se_LineString(_, context), + Radius: [], + }); +}; + +// se_CountryCodeList omitted. + +// se_DistanceThresholdList omitted. + +// se_IsolineAllowOptions omitted. + +/** + * serializeAws_restJson1IsolineAvoidanceArea + */ +const se_IsolineAvoidanceArea = (input: IsolineAvoidanceArea, context: __SerdeContext): any => { + return take(input, { + Except: (_) => se_IsolineAvoidanceAreaGeometryList(_, context), + Geometry: (_) => se_IsolineAvoidanceAreaGeometry(_, context), + }); +}; + +/** + * serializeAws_restJson1IsolineAvoidanceAreaGeometry + */ +const se_IsolineAvoidanceAreaGeometry = (input: IsolineAvoidanceAreaGeometry, context: __SerdeContext): any => { + return take(input, { + BoundingBox: (_) => se_BoundingBox(_, context), + Corridor: (_) => se_Corridor(_, context), + Polygon: (_) => se_LinearRings(_, context), + PolylineCorridor: _json, + PolylinePolygon: _json, + }); +}; + +/** + * serializeAws_restJson1IsolineAvoidanceAreaGeometryList + */ +const se_IsolineAvoidanceAreaGeometryList = (input: IsolineAvoidanceAreaGeometry[], context: __SerdeContext): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + return se_IsolineAvoidanceAreaGeometry(entry, context); + }); +}; + +/** + * serializeAws_restJson1IsolineAvoidanceAreaList + */ +const se_IsolineAvoidanceAreaList = (input: IsolineAvoidanceArea[], context: __SerdeContext): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + return se_IsolineAvoidanceArea(entry, context); + }); +}; + +/** + * serializeAws_restJson1IsolineAvoidanceOptions + */ +const se_IsolineAvoidanceOptions = (input: IsolineAvoidanceOptions, context: __SerdeContext): any => { + return take(input, { + Areas: (_) => se_IsolineAvoidanceAreaList(_, context), + CarShuttleTrains: [], + ControlledAccessHighways: [], + DirtRoads: [], + Ferries: [], + SeasonalClosure: [], + TollRoads: [], + TollTransponders: [], + TruckRoadTypes: _json, + Tunnels: [], + UTurns: [], + ZoneCategories: _json, + }); +}; + +// se_IsolineAvoidanceZoneCategory omitted. + +// se_IsolineAvoidanceZoneCategoryList omitted. + +/** + * serializeAws_restJson1IsolineCarOptions + */ +const se_IsolineCarOptions = (input: IsolineCarOptions, context: __SerdeContext): any => { + return take(input, { + EngineType: [], + LicensePlate: _json, + MaxSpeed: __serializeFloat, + Occupancy: [], + }); +}; + +/** + * serializeAws_restJson1IsolineDestinationOptions + */ +const se_IsolineDestinationOptions = (input: IsolineDestinationOptions, context: __SerdeContext): any => { + return take(input, { + AvoidActionsForDistance: [], + Heading: __serializeFloat, + Matching: _json, + SideOfStreet: (_) => se_IsolineSideOfStreetOptions(_, context), + }); +}; + +// se_IsolineGranularityOptions omitted. + +// se_IsolineHazardousCargoTypeList omitted. + +// se_IsolineMatchingOptions omitted. + +/** + * serializeAws_restJson1IsolineOriginOptions + */ +const se_IsolineOriginOptions = (input: IsolineOriginOptions, context: __SerdeContext): any => { + return take(input, { + AvoidActionsForDistance: [], + Heading: __serializeFloat, + Matching: _json, + SideOfStreet: (_) => se_IsolineSideOfStreetOptions(_, context), + }); +}; + +/** + * serializeAws_restJson1IsolineScooterOptions + */ +const se_IsolineScooterOptions = (input: IsolineScooterOptions, context: __SerdeContext): any => { + return take(input, { + EngineType: [], + LicensePlate: _json, + MaxSpeed: __serializeFloat, + Occupancy: [], + }); +}; + +/** + * serializeAws_restJson1IsolineSideOfStreetOptions + */ +const se_IsolineSideOfStreetOptions = (input: IsolineSideOfStreetOptions, context: __SerdeContext): any => { + return take(input, { + Position: (_) => se_Position(_, context), + UseWith: [], + }); +}; + +// se_IsolineThresholds omitted. + +// se_IsolineTrafficOptions omitted. + +// se_IsolineTrailerOptions omitted. + +/** + * serializeAws_restJson1IsolineTravelModeOptions + */ +const se_IsolineTravelModeOptions = (input: IsolineTravelModeOptions, context: __SerdeContext): any => { + return take(input, { + Car: (_) => se_IsolineCarOptions(_, context), + Scooter: (_) => se_IsolineScooterOptions(_, context), + Truck: (_) => se_IsolineTruckOptions(_, context), + }); +}; + +/** + * serializeAws_restJson1IsolineTruckOptions + */ +const se_IsolineTruckOptions = (input: IsolineTruckOptions, context: __SerdeContext): any => { + return take(input, { + AxleCount: [], + EngineType: [], + GrossWeight: [], + HazardousCargos: _json, + Height: [], + HeightAboveFirstAxle: [], + KpraLength: [], + Length: [], + LicensePlate: _json, + MaxSpeed: __serializeFloat, + Occupancy: [], + PayloadCapacity: [], + TireCount: [], + Trailer: _json, + TruckType: [], + TunnelRestrictionCode: [], + WeightPerAxle: [], + WeightPerAxleGroup: _json, + Width: [], + }); +}; + +// se_IsolineVehicleLicensePlate omitted. + +// se_LanguageTagList omitted. + +/** + * serializeAws_restJson1LinearRing + */ +const se_LinearRing = (input: number[][], context: __SerdeContext): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + return se_Position(entry, context); + }); +}; + +/** + * serializeAws_restJson1LinearRings + */ +const se_LinearRings = (input: number[][][], context: __SerdeContext): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + return se_LinearRing(entry, context); + }); +}; + +/** + * serializeAws_restJson1LineString + */ +const se_LineString = (input: number[][], context: __SerdeContext): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + return se_Position(entry, context); + }); +}; + +// se_PolylineCorridor omitted. + +// se_PolylineRingList omitted. + +/** + * serializeAws_restJson1Position + */ +const se_Position = (input: number[], context: __SerdeContext): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + return __serializeFloat(entry); + }); +}; + +// se_RoadSnapHazardousCargoTypeList omitted. + +/** + * serializeAws_restJson1RoadSnapTracePoint + */ +const se_RoadSnapTracePoint = (input: RoadSnapTracePoint, context: __SerdeContext): any => { + return take(input, { + Heading: __serializeFloat, + Position: (_) => se_Position(_, context), + Speed: __serializeFloat, + Timestamp: [], + }); +}; + +/** + * serializeAws_restJson1RoadSnapTracePointList + */ +const se_RoadSnapTracePointList = (input: RoadSnapTracePoint[], context: __SerdeContext): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + return se_RoadSnapTracePoint(entry, context); + }); +}; + +// se_RoadSnapTrailerOptions omitted. + +// se_RoadSnapTravelModeOptions omitted. + +// se_RoadSnapTruckOptions omitted. + +// se_RouteAllowOptions omitted. + +/** + * serializeAws_restJson1RouteAvoidanceArea + */ +const se_RouteAvoidanceArea = (input: RouteAvoidanceArea, context: __SerdeContext): any => { + return take(input, { + Except: (_) => se_RouteAvoidanceAreaGeometryList(_, context), + Geometry: (_) => se_RouteAvoidanceAreaGeometry(_, context), + }); +}; + +/** + * serializeAws_restJson1RouteAvoidanceAreaGeometry + */ +const se_RouteAvoidanceAreaGeometry = (input: RouteAvoidanceAreaGeometry, context: __SerdeContext): any => { + return take(input, { + BoundingBox: (_) => se_BoundingBox(_, context), + Corridor: (_) => se_Corridor(_, context), + Polygon: (_) => se_LinearRings(_, context), + PolylineCorridor: _json, + PolylinePolygon: _json, + }); +}; + +/** + * serializeAws_restJson1RouteAvoidanceAreaGeometryList + */ +const se_RouteAvoidanceAreaGeometryList = (input: RouteAvoidanceAreaGeometry[], context: __SerdeContext): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + return se_RouteAvoidanceAreaGeometry(entry, context); + }); +}; + +/** + * serializeAws_restJson1RouteAvoidanceAreaList + */ +const se_RouteAvoidanceAreaList = (input: RouteAvoidanceArea[], context: __SerdeContext): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + return se_RouteAvoidanceArea(entry, context); + }); +}; + +/** + * serializeAws_restJson1RouteAvoidanceOptions + */ +const se_RouteAvoidanceOptions = (input: RouteAvoidanceOptions, context: __SerdeContext): any => { + return take(input, { + Areas: (_) => se_RouteAvoidanceAreaList(_, context), + CarShuttleTrains: [], + ControlledAccessHighways: [], + DirtRoads: [], + Ferries: [], + SeasonalClosure: [], + TollRoads: [], + TollTransponders: [], + TruckRoadTypes: _json, + Tunnels: [], + UTurns: [], + ZoneCategories: _json, + }); +}; + +// se_RouteAvoidanceZoneCategory omitted. + +// se_RouteAvoidanceZoneCategoryList omitted. + +/** + * serializeAws_restJson1RouteCarOptions + */ +const se_RouteCarOptions = (input: RouteCarOptions, context: __SerdeContext): any => { + return take(input, { + EngineType: [], + LicensePlate: _json, + MaxSpeed: __serializeFloat, + Occupancy: [], + }); +}; + +/** + * serializeAws_restJson1RouteDestinationOptions + */ +const se_RouteDestinationOptions = (input: RouteDestinationOptions, context: __SerdeContext): any => { + return take(input, { + AvoidActionsForDistance: [], + AvoidUTurns: [], + Heading: __serializeFloat, + Matching: _json, + SideOfStreet: (_) => se_RouteSideOfStreetOptions(_, context), + StopDuration: [], + }); +}; + +// se_RouteDriverOptions omitted. + +// se_RouteDriverScheduleInterval omitted. + +// se_RouteDriverScheduleIntervalList omitted. + +// se_RouteEmissionType omitted. + +// se_RouteExclusionOptions omitted. + +// se_RouteHazardousCargoTypeList omitted. + +// se_RouteLegAdditionalFeatureList omitted. + +// se_RouteMatchingOptions omitted. + +// se_RouteMatrixAllowOptions omitted. + +// se_RouteMatrixAutoCircle omitted. + +/** + * serializeAws_restJson1RouteMatrixAvoidanceArea + */ +const se_RouteMatrixAvoidanceArea = (input: RouteMatrixAvoidanceArea, context: __SerdeContext): any => { + return take(input, { + Geometry: (_) => se_RouteMatrixAvoidanceAreaGeometry(_, context), + }); +}; + +/** + * serializeAws_restJson1RouteMatrixAvoidanceAreaGeometry + */ +const se_RouteMatrixAvoidanceAreaGeometry = (input: RouteMatrixAvoidanceAreaGeometry, context: __SerdeContext): any => { + return take(input, { + BoundingBox: (_) => se_BoundingBox(_, context), + Polygon: (_) => se_LinearRings(_, context), + PolylinePolygon: _json, + }); +}; + +/** + * serializeAws_restJson1RouteMatrixAvoidanceAreaList + */ +const se_RouteMatrixAvoidanceAreaList = (input: RouteMatrixAvoidanceArea[], context: __SerdeContext): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + return se_RouteMatrixAvoidanceArea(entry, context); + }); +}; + +/** + * serializeAws_restJson1RouteMatrixAvoidanceOptions + */ +const se_RouteMatrixAvoidanceOptions = (input: RouteMatrixAvoidanceOptions, context: __SerdeContext): any => { + return take(input, { + Areas: (_) => se_RouteMatrixAvoidanceAreaList(_, context), + CarShuttleTrains: [], + ControlledAccessHighways: [], + DirtRoads: [], + Ferries: [], + TollRoads: [], + TollTransponders: [], + TruckRoadTypes: _json, + Tunnels: [], + UTurns: [], + ZoneCategories: _json, + }); +}; + +// se_RouteMatrixAvoidanceZoneCategory omitted. + +// se_RouteMatrixAvoidanceZoneCategoryList omitted. + +/** + * serializeAws_restJson1RouteMatrixBoundary + */ +const se_RouteMatrixBoundary = (input: RouteMatrixBoundary, context: __SerdeContext): any => { + return take(input, { + Geometry: (_) => se_RouteMatrixBoundaryGeometry(_, context), + Unbounded: [], + }); +}; + +/** + * serializeAws_restJson1RouteMatrixBoundaryGeometry + */ +const se_RouteMatrixBoundaryGeometry = (input: RouteMatrixBoundaryGeometry, context: __SerdeContext): any => { + return take(input, { + AutoCircle: _json, + BoundingBox: (_) => se_BoundingBox(_, context), + Circle: (_) => se_Circle(_, context), + Polygon: (_) => se_LinearRings(_, context), + }); +}; + +/** + * serializeAws_restJson1RouteMatrixCarOptions + */ +const se_RouteMatrixCarOptions = (input: RouteMatrixCarOptions, context: __SerdeContext): any => { + return take(input, { + LicensePlate: _json, + MaxSpeed: __serializeFloat, + Occupancy: [], + }); +}; + +/** + * serializeAws_restJson1RouteMatrixDestination + */ +const se_RouteMatrixDestination = (input: RouteMatrixDestination, context: __SerdeContext): any => { + return take(input, { + Options: (_) => se_RouteMatrixDestinationOptions(_, context), + Position: (_) => se_Position(_, context), + }); +}; + +/** + * serializeAws_restJson1RouteMatrixDestinationList + */ +const se_RouteMatrixDestinationList = (input: RouteMatrixDestination[], context: __SerdeContext): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + return se_RouteMatrixDestination(entry, context); + }); +}; + +/** + * serializeAws_restJson1RouteMatrixDestinationOptions + */ +const se_RouteMatrixDestinationOptions = (input: RouteMatrixDestinationOptions, context: __SerdeContext): any => { + return take(input, { + AvoidActionsForDistance: [], + Heading: __serializeFloat, + Matching: _json, + SideOfStreet: (_) => se_RouteMatrixSideOfStreetOptions(_, context), + }); +}; + +// se_RouteMatrixExclusionOptions omitted. + +// se_RouteMatrixHazardousCargoTypeList omitted. + +// se_RouteMatrixMatchingOptions omitted. + +/** + * serializeAws_restJson1RouteMatrixOrigin + */ +const se_RouteMatrixOrigin = (input: RouteMatrixOrigin, context: __SerdeContext): any => { + return take(input, { + Options: (_) => se_RouteMatrixOriginOptions(_, context), + Position: (_) => se_Position(_, context), + }); +}; + +/** + * serializeAws_restJson1RouteMatrixOriginList + */ +const se_RouteMatrixOriginList = (input: RouteMatrixOrigin[], context: __SerdeContext): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + return se_RouteMatrixOrigin(entry, context); + }); +}; + +/** + * serializeAws_restJson1RouteMatrixOriginOptions + */ +const se_RouteMatrixOriginOptions = (input: RouteMatrixOriginOptions, context: __SerdeContext): any => { + return take(input, { + AvoidActionsForDistance: [], + Heading: __serializeFloat, + Matching: _json, + SideOfStreet: (_) => se_RouteMatrixSideOfStreetOptions(_, context), + }); +}; + +/** + * serializeAws_restJson1RouteMatrixScooterOptions + */ +const se_RouteMatrixScooterOptions = (input: RouteMatrixScooterOptions, context: __SerdeContext): any => { + return take(input, { + LicensePlate: _json, + MaxSpeed: __serializeFloat, + Occupancy: [], + }); +}; + +/** + * serializeAws_restJson1RouteMatrixSideOfStreetOptions + */ +const se_RouteMatrixSideOfStreetOptions = (input: RouteMatrixSideOfStreetOptions, context: __SerdeContext): any => { + return take(input, { + Position: (_) => se_Position(_, context), + UseWith: [], + }); +}; + +// se_RouteMatrixTrafficOptions omitted. + +// se_RouteMatrixTrailerOptions omitted. + +/** + * serializeAws_restJson1RouteMatrixTravelModeOptions + */ +const se_RouteMatrixTravelModeOptions = (input: RouteMatrixTravelModeOptions, context: __SerdeContext): any => { + return take(input, { + Car: (_) => se_RouteMatrixCarOptions(_, context), + Scooter: (_) => se_RouteMatrixScooterOptions(_, context), + Truck: (_) => se_RouteMatrixTruckOptions(_, context), + }); +}; + +/** + * serializeAws_restJson1RouteMatrixTruckOptions + */ +const se_RouteMatrixTruckOptions = (input: RouteMatrixTruckOptions, context: __SerdeContext): any => { + return take(input, { + AxleCount: [], + GrossWeight: [], + HazardousCargos: _json, + Height: [], + KpraLength: [], + Length: [], + LicensePlate: _json, + MaxSpeed: __serializeFloat, + Occupancy: [], + PayloadCapacity: [], + Trailer: _json, + TruckType: [], + TunnelRestrictionCode: [], + WeightPerAxle: [], + WeightPerAxleGroup: _json, + Width: [], + }); +}; + +// se_RouteMatrixVehicleLicensePlate omitted. + +/** + * serializeAws_restJson1RouteOriginOptions + */ +const se_RouteOriginOptions = (input: RouteOriginOptions, context: __SerdeContext): any => { + return take(input, { + AvoidActionsForDistance: [], + AvoidUTurns: [], + Heading: __serializeFloat, + Matching: _json, + SideOfStreet: (_) => se_RouteSideOfStreetOptions(_, context), + }); +}; + +/** + * serializeAws_restJson1RoutePedestrianOptions + */ +const se_RoutePedestrianOptions = (input: RoutePedestrianOptions, context: __SerdeContext): any => { + return take(input, { + Speed: __serializeFloat, + }); +}; + +/** + * serializeAws_restJson1RouteScooterOptions + */ +const se_RouteScooterOptions = (input: RouteScooterOptions, context: __SerdeContext): any => { + return take(input, { + EngineType: [], + LicensePlate: _json, + MaxSpeed: __serializeFloat, + Occupancy: [], + }); +}; + +/** + * serializeAws_restJson1RouteSideOfStreetOptions + */ +const se_RouteSideOfStreetOptions = (input: RouteSideOfStreetOptions, context: __SerdeContext): any => { + return take(input, { + Position: (_) => se_Position(_, context), + UseWith: [], + }); +}; + +// se_RouteSpanAdditionalFeatureList omitted. + +// se_RouteTollOptions omitted. + +// se_RouteTrafficOptions omitted. + +// se_RouteTrailerOptions omitted. + +/** + * serializeAws_restJson1RouteTravelModeOptions + */ +const se_RouteTravelModeOptions = (input: RouteTravelModeOptions, context: __SerdeContext): any => { + return take(input, { + Car: (_) => se_RouteCarOptions(_, context), + Pedestrian: (_) => se_RoutePedestrianOptions(_, context), + Scooter: (_) => se_RouteScooterOptions(_, context), + Truck: (_) => se_RouteTruckOptions(_, context), + }); +}; + +/** + * serializeAws_restJson1RouteTruckOptions + */ +const se_RouteTruckOptions = (input: RouteTruckOptions, context: __SerdeContext): any => { + return take(input, { + AxleCount: [], + EngineType: [], + GrossWeight: [], + HazardousCargos: _json, + Height: [], + HeightAboveFirstAxle: [], + KpraLength: [], + Length: [], + LicensePlate: _json, + MaxSpeed: __serializeFloat, + Occupancy: [], + PayloadCapacity: [], + TireCount: [], + Trailer: _json, + TruckType: [], + TunnelRestrictionCode: [], + WeightPerAxle: [], + WeightPerAxleGroup: _json, + Width: [], + }); +}; + +// se_RouteVehicleLicensePlate omitted. + +/** + * serializeAws_restJson1RouteWaypoint + */ +const se_RouteWaypoint = (input: RouteWaypoint, context: __SerdeContext): any => { + return take(input, { + AvoidActionsForDistance: [], + AvoidUTurns: [], + Heading: __serializeFloat, + Matching: _json, + PassThrough: [], + Position: (_) => se_Position(_, context), + SideOfStreet: (_) => se_RouteSideOfStreetOptions(_, context), + StopDuration: [], + }); +}; + +/** + * serializeAws_restJson1RouteWaypointList + */ +const se_RouteWaypointList = (input: RouteWaypoint[], context: __SerdeContext): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + return se_RouteWaypoint(entry, context); + }); +}; + +// se_TimeThresholdList omitted. + +// se_TruckRoadTypeList omitted. + +// se_WaypointOptimizationAccessHours omitted. + +// se_WaypointOptimizationAccessHoursEntry omitted. + +/** + * serializeAws_restJson1WaypointOptimizationAvoidanceArea + */ +const se_WaypointOptimizationAvoidanceArea = ( + input: WaypointOptimizationAvoidanceArea, + context: __SerdeContext +): any => { + return take(input, { + Geometry: (_) => se_WaypointOptimizationAvoidanceAreaGeometry(_, context), + }); +}; + +/** + * serializeAws_restJson1WaypointOptimizationAvoidanceAreaGeometry + */ +const se_WaypointOptimizationAvoidanceAreaGeometry = ( + input: WaypointOptimizationAvoidanceAreaGeometry, + context: __SerdeContext +): any => { + return take(input, { + BoundingBox: (_) => se_BoundingBox(_, context), + }); +}; + +/** + * serializeAws_restJson1WaypointOptimizationAvoidanceAreaList + */ +const se_WaypointOptimizationAvoidanceAreaList = ( + input: WaypointOptimizationAvoidanceArea[], + context: __SerdeContext +): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + return se_WaypointOptimizationAvoidanceArea(entry, context); + }); +}; + +/** + * serializeAws_restJson1WaypointOptimizationAvoidanceOptions + */ +const se_WaypointOptimizationAvoidanceOptions = ( + input: WaypointOptimizationAvoidanceOptions, + context: __SerdeContext +): any => { + return take(input, { + Areas: (_) => se_WaypointOptimizationAvoidanceAreaList(_, context), + CarShuttleTrains: [], + ControlledAccessHighways: [], + DirtRoads: [], + Ferries: [], + TollRoads: [], + Tunnels: [], + UTurns: [], + }); +}; + +/** + * serializeAws_restJson1WaypointOptimizationDestinationOptions + */ +const se_WaypointOptimizationDestinationOptions = ( + input: WaypointOptimizationDestinationOptions, + context: __SerdeContext +): any => { + return take(input, { + AccessHours: _json, + AppointmentTime: [], + Heading: __serializeFloat, + Id: [], + ServiceDuration: [], + SideOfStreet: (_) => se_WaypointOptimizationSideOfStreetOptions(_, context), + }); +}; + +// se_WaypointOptimizationDriverOptions omitted. + +// se_WaypointOptimizationExclusionOptions omitted. + +// se_WaypointOptimizationHazardousCargoTypeList omitted. + +// se_WaypointOptimizationOriginOptions omitted. + +/** + * serializeAws_restJson1WaypointOptimizationPedestrianOptions + */ +const se_WaypointOptimizationPedestrianOptions = ( + input: WaypointOptimizationPedestrianOptions, + context: __SerdeContext +): any => { + return take(input, { + Speed: __serializeFloat, + }); +}; + +// se_WaypointOptimizationRestCycleDurations omitted. + +// se_WaypointOptimizationRestCycles omitted. + +// se_WaypointOptimizationRestProfile omitted. + +/** + * serializeAws_restJson1WaypointOptimizationSideOfStreetOptions + */ +const se_WaypointOptimizationSideOfStreetOptions = ( + input: WaypointOptimizationSideOfStreetOptions, + context: __SerdeContext +): any => { + return take(input, { + Position: (_) => se_Position(_, context), + UseWith: [], + }); +}; + +// se_WaypointOptimizationTrafficOptions omitted. + +// se_WaypointOptimizationTrailerOptions omitted. + +/** + * serializeAws_restJson1WaypointOptimizationTravelModeOptions + */ +const se_WaypointOptimizationTravelModeOptions = ( + input: WaypointOptimizationTravelModeOptions, + context: __SerdeContext +): any => { + return take(input, { + Pedestrian: (_) => se_WaypointOptimizationPedestrianOptions(_, context), + Truck: _json, + }); +}; + +// se_WaypointOptimizationTruckOptions omitted. + +/** + * serializeAws_restJson1WaypointOptimizationWaypoint + */ +const se_WaypointOptimizationWaypoint = (input: WaypointOptimizationWaypoint, context: __SerdeContext): any => { + return take(input, { + AccessHours: _json, + AppointmentTime: [], + Before: _json, + Heading: __serializeFloat, + Id: [], + Position: (_) => se_Position(_, context), + ServiceDuration: [], + SideOfStreet: (_) => se_WaypointOptimizationSideOfStreetOptions(_, context), + }); +}; + +/** + * serializeAws_restJson1WaypointOptimizationWaypointList + */ +const se_WaypointOptimizationWaypointList = (input: WaypointOptimizationWaypoint[], context: __SerdeContext): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + return se_WaypointOptimizationWaypoint(entry, context); + }); +}; + +// se_WeightPerAxleGroup omitted. + +/** + * deserializeAws_restJson1BoundingBox + */ +const de_BoundingBox = (output: any, context: __SerdeContext): number[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return __limitedParseDouble(entry) as any; + }); + return retVal; +}; + +/** + * deserializeAws_restJson1Circle + */ +const de_Circle = (output: any, context: __SerdeContext): Circle => { + return take(output, { + Center: (_: any) => de_Position(_, context), + Radius: __limitedParseDouble, + }) as any; +}; + +// de_IndexList omitted. + +/** + * deserializeAws_restJson1Isoline + */ +const de_Isoline = (output: any, context: __SerdeContext): Isoline => { + return take(output, { + Connections: (_: any) => de_IsolineConnectionList(_, context), + DistanceThreshold: __expectLong, + Geometries: (_: any) => de_IsolineShapeGeometryList(_, context), + TimeThreshold: __expectLong, + }) as any; +}; + +/** + * deserializeAws_restJson1IsolineConnection + */ +const de_IsolineConnection = (output: any, context: __SerdeContext): IsolineConnection => { + return take(output, { + FromPolygonIndex: __expectInt32, + Geometry: (_: any) => de_IsolineConnectionGeometry(_, context), + ToPolygonIndex: __expectInt32, + }) as any; +}; + +/** + * deserializeAws_restJson1IsolineConnectionGeometry + */ +const de_IsolineConnectionGeometry = (output: any, context: __SerdeContext): IsolineConnectionGeometry => { + return take(output, { + LineString: (_: any) => de_LineString(_, context), + Polyline: __expectString, + }) as any; +}; + +/** + * deserializeAws_restJson1IsolineConnectionList + */ +const de_IsolineConnectionList = (output: any, context: __SerdeContext): IsolineConnection[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_IsolineConnection(entry, context); + }); + return retVal; +}; + +/** + * deserializeAws_restJson1IsolineList + */ +const de_IsolineList = (output: any, context: __SerdeContext): Isoline[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_Isoline(entry, context); + }); + return retVal; +}; + +/** + * deserializeAws_restJson1IsolineShapeGeometry + */ +const de_IsolineShapeGeometry = (output: any, context: __SerdeContext): IsolineShapeGeometry => { + return take(output, { + Polygon: (_: any) => de_LinearRings(_, context), + PolylinePolygon: _json, + }) as any; +}; + +/** + * deserializeAws_restJson1IsolineShapeGeometryList + */ +const de_IsolineShapeGeometryList = (output: any, context: __SerdeContext): IsolineShapeGeometry[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_IsolineShapeGeometry(entry, context); + }); + return retVal; +}; + +/** + * deserializeAws_restJson1LinearRing + */ +const de_LinearRing = (output: any, context: __SerdeContext): number[][] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_Position(entry, context); + }); + return retVal; +}; + +/** + * deserializeAws_restJson1LinearRings + */ +const de_LinearRings = (output: any, context: __SerdeContext): number[][][] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_LinearRing(entry, context); + }); + return retVal; +}; + +/** + * deserializeAws_restJson1LineString + */ +const de_LineString = (output: any, context: __SerdeContext): number[][] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_Position(entry, context); + }); + return retVal; +}; + +// de_LocalizedString omitted. + +// de_LocalizedStringList omitted. + +// de_PolylineRingList omitted. + +/** + * deserializeAws_restJson1Position + */ +const de_Position = (output: any, context: __SerdeContext): number[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return __limitedParseDouble(entry) as any; + }); + return retVal; +}; + +/** + * deserializeAws_restJson1Position23 + */ +const de_Position23 = (output: any, context: __SerdeContext): number[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return __limitedParseDouble(entry) as any; + }); + return retVal; +}; + +// de_RoadSnapNotice omitted. + +// de_RoadSnapNoticeList omitted. + +/** + * deserializeAws_restJson1RoadSnapSnappedGeometry + */ +const de_RoadSnapSnappedGeometry = (output: any, context: __SerdeContext): RoadSnapSnappedGeometry => { + return take(output, { + LineString: (_: any) => de_LineString(_, context), + Polyline: __expectString, + }) as any; +}; + +/** + * deserializeAws_restJson1RoadSnapSnappedTracePoint + */ +const de_RoadSnapSnappedTracePoint = (output: any, context: __SerdeContext): RoadSnapSnappedTracePoint => { + return take(output, { + Confidence: __limitedParseDouble, + OriginalPosition: (_: any) => de_Position(_, context), + SnappedPosition: (_: any) => de_Position(_, context), + }) as any; +}; + +/** + * deserializeAws_restJson1RoadSnapSnappedTracePointList + */ +const de_RoadSnapSnappedTracePointList = (output: any, context: __SerdeContext): RoadSnapSnappedTracePoint[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_RoadSnapSnappedTracePoint(entry, context); + }); + return retVal; +}; + +// de_RoadSnapTracePointIndexList omitted. + +/** + * deserializeAws_restJson1Route + */ +const de_Route = (output: any, context: __SerdeContext): Route => { + return take(output, { + Legs: (_: any) => de_RouteLegList(_, context), + MajorRoadLabels: _json, + Summary: (_: any) => de_RouteSummary(_, context), + }) as any; +}; + +/** + * deserializeAws_restJson1RouteContinueHighwayStepDetails + */ +const de_RouteContinueHighwayStepDetails = (output: any, context: __SerdeContext): RouteContinueHighwayStepDetails => { + return take(output, { + Intersection: _json, + SteeringDirection: __expectString, + TurnAngle: __limitedParseDouble, + TurnIntensity: __expectString, + }) as any; +}; + +// de_RouteContinueStepDetails omitted. + +/** + * deserializeAws_restJson1RouteEnterHighwayStepDetails + */ +const de_RouteEnterHighwayStepDetails = (output: any, context: __SerdeContext): RouteEnterHighwayStepDetails => { + return take(output, { + Intersection: _json, + SteeringDirection: __expectString, + TurnAngle: __limitedParseDouble, + TurnIntensity: __expectString, + }) as any; +}; + +/** + * deserializeAws_restJson1RouteExitStepDetails + */ +const de_RouteExitStepDetails = (output: any, context: __SerdeContext): RouteExitStepDetails => { + return take(output, { + Intersection: _json, + RelativeExit: __expectInt32, + SteeringDirection: __expectString, + TurnAngle: __limitedParseDouble, + TurnIntensity: __expectString, + }) as any; +}; + +// de_RouteFerryAfterTravelStep omitted. + +// de_RouteFerryAfterTravelStepList omitted. + +/** + * deserializeAws_restJson1RouteFerryArrival + */ +const de_RouteFerryArrival = (output: any, context: __SerdeContext): RouteFerryArrival => { + return take(output, { + Place: (_: any) => de_RouteFerryPlace(_, context), + Time: __expectString, + }) as any; +}; + +// de_RouteFerryBeforeTravelStep omitted. + +// de_RouteFerryBeforeTravelStepList omitted. + +/** + * deserializeAws_restJson1RouteFerryDeparture + */ +const de_RouteFerryDeparture = (output: any, context: __SerdeContext): RouteFerryDeparture => { + return take(output, { + Place: (_: any) => de_RouteFerryPlace(_, context), + Time: __expectString, + }) as any; +}; + +/** + * deserializeAws_restJson1RouteFerryLegDetails + */ +const de_RouteFerryLegDetails = (output: any, context: __SerdeContext): RouteFerryLegDetails => { + return take(output, { + AfterTravelSteps: _json, + Arrival: (_: any) => de_RouteFerryArrival(_, context), + BeforeTravelSteps: _json, + Departure: (_: any) => de_RouteFerryDeparture(_, context), + Notices: _json, + PassThroughWaypoints: (_: any) => de_RoutePassThroughWaypointList(_, context), + RouteName: __expectString, + Spans: _json, + Summary: _json, + TravelSteps: _json, + }) as any; +}; + +// de_RouteFerryNotice omitted. + +// de_RouteFerryNoticeList omitted. + +// de_RouteFerryOverviewSummary omitted. + +/** + * deserializeAws_restJson1RouteFerryPlace + */ +const de_RouteFerryPlace = (output: any, context: __SerdeContext): RouteFerryPlace => { + return take(output, { + Name: __expectString, + OriginalPosition: (_: any) => de_Position23(_, context), + Position: (_: any) => de_Position23(_, context), + WaypointIndex: __expectInt32, + }) as any; +}; + +// de_RouteFerrySpan omitted. + +// de_RouteFerrySpanList omitted. + +// de_RouteFerrySummary omitted. + +// de_RouteFerryTravelOnlySummary omitted. + +// de_RouteFerryTravelStep omitted. + +// de_RouteFerryTravelStepList omitted. + +// de_RouteHazardousCargoTypeList omitted. + +/** + * deserializeAws_restJson1RouteKeepStepDetails + */ +const de_RouteKeepStepDetails = (output: any, context: __SerdeContext): RouteKeepStepDetails => { + return take(output, { + Intersection: _json, + SteeringDirection: __expectString, + TurnAngle: __limitedParseDouble, + TurnIntensity: __expectString, + }) as any; +}; + +/** + * deserializeAws_restJson1RouteLeg + */ +const de_RouteLeg = (output: any, context: __SerdeContext): RouteLeg => { + return take(output, { + FerryLegDetails: (_: any) => de_RouteFerryLegDetails(_, context), + Geometry: (_: any) => de_RouteLegGeometry(_, context), + Language: __expectString, + PedestrianLegDetails: (_: any) => de_RoutePedestrianLegDetails(_, context), + TravelMode: __expectString, + Type: __expectString, + VehicleLegDetails: (_: any) => de_RouteVehicleLegDetails(_, context), + }) as any; +}; + +/** + * deserializeAws_restJson1RouteLegGeometry + */ +const de_RouteLegGeometry = (output: any, context: __SerdeContext): RouteLegGeometry => { + return take(output, { + LineString: (_: any) => de_LineString(_, context), + Polyline: __expectString, + }) as any; +}; + +/** + * deserializeAws_restJson1RouteLegList + */ +const de_RouteLegList = (output: any, context: __SerdeContext): RouteLeg[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_RouteLeg(entry, context); + }); + return retVal; +}; + +/** + * deserializeAws_restJson1RouteList + */ +const de_RouteList = (output: any, context: __SerdeContext): Route[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_Route(entry, context); + }); + return retVal; +}; + +// de_RouteMajorRoadLabel omitted. + +// de_RouteMajorRoadLabelList omitted. + +// de_RouteMatrix omitted. + +// de_RouteMatrixAutoCircle omitted. + +/** + * deserializeAws_restJson1RouteMatrixBoundary + */ +const de_RouteMatrixBoundary = (output: any, context: __SerdeContext): RouteMatrixBoundary => { + return take(output, { + Geometry: (_: any) => de_RouteMatrixBoundaryGeometry(_, context), + Unbounded: __expectBoolean, + }) as any; +}; + +/** + * deserializeAws_restJson1RouteMatrixBoundaryGeometry + */ +const de_RouteMatrixBoundaryGeometry = (output: any, context: __SerdeContext): RouteMatrixBoundaryGeometry => { + return take(output, { + AutoCircle: _json, + BoundingBox: (_: any) => de_BoundingBox(_, context), + Circle: (_: any) => de_Circle(_, context), + Polygon: (_: any) => de_LinearRings(_, context), + }) as any; +}; + +// de_RouteMatrixEntry omitted. + +// de_RouteMatrixRow omitted. + +// de_RouteNoticeDetailRange omitted. + +// de_RouteNumber omitted. + +// de_RouteNumberList omitted. + +/** + * deserializeAws_restJson1RoutePassThroughPlace + */ +const de_RoutePassThroughPlace = (output: any, context: __SerdeContext): RoutePassThroughPlace => { + return take(output, { + OriginalPosition: (_: any) => de_Position23(_, context), + Position: (_: any) => de_Position23(_, context), + WaypointIndex: __expectInt32, + }) as any; +}; + +/** + * deserializeAws_restJson1RoutePassThroughWaypoint + */ +const de_RoutePassThroughWaypoint = (output: any, context: __SerdeContext): RoutePassThroughWaypoint => { + return take(output, { + GeometryOffset: __expectInt32, + Place: (_: any) => de_RoutePassThroughPlace(_, context), + }) as any; +}; + +/** + * deserializeAws_restJson1RoutePassThroughWaypointList + */ +const de_RoutePassThroughWaypointList = (output: any, context: __SerdeContext): RoutePassThroughWaypoint[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_RoutePassThroughWaypoint(entry, context); + }); + return retVal; +}; + +/** + * deserializeAws_restJson1RoutePedestrianArrival + */ +const de_RoutePedestrianArrival = (output: any, context: __SerdeContext): RoutePedestrianArrival => { + return take(output, { + Place: (_: any) => de_RoutePedestrianPlace(_, context), + Time: __expectString, + }) as any; +}; + +/** + * deserializeAws_restJson1RoutePedestrianDeparture + */ +const de_RoutePedestrianDeparture = (output: any, context: __SerdeContext): RoutePedestrianDeparture => { + return take(output, { + Place: (_: any) => de_RoutePedestrianPlace(_, context), + Time: __expectString, + }) as any; +}; + +/** + * deserializeAws_restJson1RoutePedestrianLegDetails + */ +const de_RoutePedestrianLegDetails = (output: any, context: __SerdeContext): RoutePedestrianLegDetails => { + return take(output, { + Arrival: (_: any) => de_RoutePedestrianArrival(_, context), + Departure: (_: any) => de_RoutePedestrianDeparture(_, context), + Notices: _json, + PassThroughWaypoints: (_: any) => de_RoutePassThroughWaypointList(_, context), + Spans: (_: any) => de_RoutePedestrianSpanList(_, context), + Summary: _json, + TravelSteps: (_: any) => de_RoutePedestrianTravelStepList(_, context), + }) as any; +}; + +// de_RoutePedestrianNotice omitted. + +// de_RoutePedestrianNoticeList omitted. + +// de_RoutePedestrianOverviewSummary omitted. + +/** + * deserializeAws_restJson1RoutePedestrianPlace + */ +const de_RoutePedestrianPlace = (output: any, context: __SerdeContext): RoutePedestrianPlace => { + return take(output, { + Name: __expectString, + OriginalPosition: (_: any) => de_Position23(_, context), + Position: (_: any) => de_Position23(_, context), + SideOfStreet: __expectString, + WaypointIndex: __expectInt32, + }) as any; +}; + +/** + * deserializeAws_restJson1RoutePedestrianSpan + */ +const de_RoutePedestrianSpan = (output: any, context: __SerdeContext): RoutePedestrianSpan => { + return take(output, { + BestCaseDuration: __expectLong, + Country: __expectString, + Distance: __expectLong, + Duration: __expectLong, + DynamicSpeed: (_: any) => de_RouteSpanDynamicSpeedDetails(_, context), + FunctionalClassification: __expectInt32, + GeometryOffset: __expectInt32, + Incidents: _json, + Names: _json, + PedestrianAccess: _json, + Region: __expectString, + RoadAttributes: _json, + RouteNumbers: _json, + SpeedLimit: (_: any) => de_RouteSpanSpeedLimitDetails(_, context), + TypicalDuration: __expectLong, + }) as any; +}; + +/** + * deserializeAws_restJson1RoutePedestrianSpanList + */ +const de_RoutePedestrianSpanList = (output: any, context: __SerdeContext): RoutePedestrianSpan[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_RoutePedestrianSpan(entry, context); + }); + return retVal; +}; + +// de_RoutePedestrianSummary omitted. + +// de_RoutePedestrianTravelOnlySummary omitted. + +/** + * deserializeAws_restJson1RoutePedestrianTravelStep + */ +const de_RoutePedestrianTravelStep = (output: any, context: __SerdeContext): RoutePedestrianTravelStep => { + return take(output, { + ContinueStepDetails: _json, + CurrentRoad: _json, + Distance: __expectLong, + Duration: __expectLong, + ExitNumber: _json, + GeometryOffset: __expectInt32, + Instruction: __expectString, + KeepStepDetails: (_: any) => de_RouteKeepStepDetails(_, context), + NextRoad: _json, + RoundaboutEnterStepDetails: (_: any) => de_RouteRoundaboutEnterStepDetails(_, context), + RoundaboutExitStepDetails: (_: any) => de_RouteRoundaboutExitStepDetails(_, context), + RoundaboutPassStepDetails: (_: any) => de_RouteRoundaboutPassStepDetails(_, context), + Signpost: _json, + TurnStepDetails: (_: any) => de_RouteTurnStepDetails(_, context), + Type: __expectString, + }) as any; +}; + +/** + * deserializeAws_restJson1RoutePedestrianTravelStepList + */ +const de_RoutePedestrianTravelStepList = (output: any, context: __SerdeContext): RoutePedestrianTravelStep[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_RoutePedestrianTravelStep(entry, context); + }); + return retVal; +}; + +/** + * deserializeAws_restJson1RouteRampStepDetails + */ +const de_RouteRampStepDetails = (output: any, context: __SerdeContext): RouteRampStepDetails => { + return take(output, { + Intersection: _json, + SteeringDirection: __expectString, + TurnAngle: __limitedParseDouble, + TurnIntensity: __expectString, + }) as any; +}; + +// de_RouteResponseNotice omitted. + +// de_RouteResponseNoticeList omitted. + +// de_RouteRoad omitted. + +/** + * deserializeAws_restJson1RouteRoundaboutEnterStepDetails + */ +const de_RouteRoundaboutEnterStepDetails = (output: any, context: __SerdeContext): RouteRoundaboutEnterStepDetails => { + return take(output, { + Intersection: _json, + SteeringDirection: __expectString, + TurnAngle: __limitedParseDouble, + TurnIntensity: __expectString, + }) as any; +}; + +/** + * deserializeAws_restJson1RouteRoundaboutExitStepDetails + */ +const de_RouteRoundaboutExitStepDetails = (output: any, context: __SerdeContext): RouteRoundaboutExitStepDetails => { + return take(output, { + Intersection: _json, + RelativeExit: __expectInt32, + RoundaboutAngle: __limitedParseDouble, + SteeringDirection: __expectString, + }) as any; +}; + +/** + * deserializeAws_restJson1RouteRoundaboutPassStepDetails + */ +const de_RouteRoundaboutPassStepDetails = (output: any, context: __SerdeContext): RouteRoundaboutPassStepDetails => { + return take(output, { + Intersection: _json, + SteeringDirection: __expectString, + TurnAngle: __limitedParseDouble, + TurnIntensity: __expectString, + }) as any; +}; + +// de_RouteSignpost omitted. + +// de_RouteSignpostLabel omitted. + +// de_RouteSignpostLabelList omitted. + +// de_RouteSpanCarAccessAttributeList omitted. + +/** + * deserializeAws_restJson1RouteSpanDynamicSpeedDetails + */ +const de_RouteSpanDynamicSpeedDetails = (output: any, context: __SerdeContext): RouteSpanDynamicSpeedDetails => { + return take(output, { + BestCaseSpeed: __limitedParseDouble, + TurnDuration: __expectLong, + TypicalSpeed: __limitedParseDouble, + }) as any; +}; + +// de_RouteSpanPedestrianAccessAttributeList omitted. + +// de_RouteSpanRoadAttributeList omitted. + +// de_RouteSpanScooterAccessAttributeList omitted. + +/** + * deserializeAws_restJson1RouteSpanSpeedLimitDetails + */ +const de_RouteSpanSpeedLimitDetails = (output: any, context: __SerdeContext): RouteSpanSpeedLimitDetails => { + return take(output, { + MaxSpeed: __limitedParseDouble, + Unlimited: __expectBoolean, + }) as any; +}; + +// de_RouteSpanTruckAccessAttributeList omitted. + +/** + * deserializeAws_restJson1RouteSummary + */ +const de_RouteSummary = (output: any, context: __SerdeContext): RouteSummary => { + return take(output, { + Distance: __expectLong, + Duration: __expectLong, + Tolls: (_: any) => de_RouteTollSummary(_, context), + }) as any; +}; + +/** + * deserializeAws_restJson1RouteToll + */ +const de_RouteToll = (output: any, context: __SerdeContext): RouteToll => { + return take(output, { + Country: __expectString, + PaymentSites: (_: any) => de_RouteTollPaymentSiteList(_, context), + Rates: (_: any) => de_RouteTollRateList(_, context), + Systems: _json, + }) as any; +}; + +/** + * deserializeAws_restJson1RouteTollList + */ +const de_RouteTollList = (output: any, context: __SerdeContext): RouteToll[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_RouteToll(entry, context); + }); + return retVal; +}; + +// de_RouteTollPass omitted. + +// de_RouteTollPassValidityPeriod omitted. + +// de_RouteTollPaymentMethodList omitted. + +/** + * deserializeAws_restJson1RouteTollPaymentSite + */ +const de_RouteTollPaymentSite = (output: any, context: __SerdeContext): RouteTollPaymentSite => { + return take(output, { + Name: __expectString, + Position: (_: any) => de_Position23(_, context), + }) as any; +}; + +/** + * deserializeAws_restJson1RouteTollPaymentSiteList + */ +const de_RouteTollPaymentSiteList = (output: any, context: __SerdeContext): RouteTollPaymentSite[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_RouteTollPaymentSite(entry, context); + }); + return retVal; +}; + +/** + * deserializeAws_restJson1RouteTollPrice + */ +const de_RouteTollPrice = (output: any, context: __SerdeContext): RouteTollPrice => { + return take(output, { + Currency: __expectString, + Estimate: __expectBoolean, + PerDuration: __expectLong, + Range: __expectBoolean, + RangeValue: (_: any) => de_RouteTollPriceValueRange(_, context), + Value: __limitedParseDouble, + }) as any; +}; + +/** + * deserializeAws_restJson1RouteTollPriceSummary + */ +const de_RouteTollPriceSummary = (output: any, context: __SerdeContext): RouteTollPriceSummary => { + return take(output, { + Currency: __expectString, + Estimate: __expectBoolean, + Range: __expectBoolean, + RangeValue: (_: any) => de_RouteTollPriceValueRange(_, context), + Value: __limitedParseDouble, + }) as any; +}; + +/** + * deserializeAws_restJson1RouteTollPriceValueRange + */ +const de_RouteTollPriceValueRange = (output: any, context: __SerdeContext): RouteTollPriceValueRange => { + return take(output, { + Max: __limitedParseDouble, + Min: __limitedParseDouble, + }) as any; +}; + +/** + * deserializeAws_restJson1RouteTollRate + */ +const de_RouteTollRate = (output: any, context: __SerdeContext): RouteTollRate => { + return take(output, { + ApplicableTimes: __expectString, + ConvertedPrice: (_: any) => de_RouteTollPrice(_, context), + Id: __expectString, + LocalPrice: (_: any) => de_RouteTollPrice(_, context), + Name: __expectString, + Pass: _json, + PaymentMethods: _json, + Transponders: _json, + }) as any; +}; + +/** + * deserializeAws_restJson1RouteTollRateList + */ +const de_RouteTollRateList = (output: any, context: __SerdeContext): RouteTollRate[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_RouteTollRate(entry, context); + }); + return retVal; +}; + +/** + * deserializeAws_restJson1RouteTollSummary + */ +const de_RouteTollSummary = (output: any, context: __SerdeContext): RouteTollSummary => { + return take(output, { + Total: (_: any) => de_RouteTollPriceSummary(_, context), + }) as any; +}; + +// de_RouteTollSystem omitted. + +// de_RouteTollSystemList omitted. + +// de_RouteTransponder omitted. + +// de_RouteTransponderList omitted. + +/** + * deserializeAws_restJson1RouteTurnStepDetails + */ +const de_RouteTurnStepDetails = (output: any, context: __SerdeContext): RouteTurnStepDetails => { + return take(output, { + Intersection: _json, + SteeringDirection: __expectString, + TurnAngle: __limitedParseDouble, + TurnIntensity: __expectString, + }) as any; +}; + +/** + * deserializeAws_restJson1RouteUTurnStepDetails + */ +const de_RouteUTurnStepDetails = (output: any, context: __SerdeContext): RouteUTurnStepDetails => { + return take(output, { + Intersection: _json, + SteeringDirection: __expectString, + TurnAngle: __limitedParseDouble, + TurnIntensity: __expectString, + }) as any; +}; + +/** + * deserializeAws_restJson1RouteVehicleArrival + */ +const de_RouteVehicleArrival = (output: any, context: __SerdeContext): RouteVehicleArrival => { + return take(output, { + Place: (_: any) => de_RouteVehiclePlace(_, context), + Time: __expectString, + }) as any; +}; + +/** + * deserializeAws_restJson1RouteVehicleDeparture + */ +const de_RouteVehicleDeparture = (output: any, context: __SerdeContext): RouteVehicleDeparture => { + return take(output, { + Place: (_: any) => de_RouteVehiclePlace(_, context), + Time: __expectString, + }) as any; +}; + +// de_RouteVehicleIncident omitted. + +// de_RouteVehicleIncidentList omitted. + +/** + * deserializeAws_restJson1RouteVehicleLegDetails + */ +const de_RouteVehicleLegDetails = (output: any, context: __SerdeContext): RouteVehicleLegDetails => { + return take(output, { + Arrival: (_: any) => de_RouteVehicleArrival(_, context), + Departure: (_: any) => de_RouteVehicleDeparture(_, context), + Incidents: _json, + Notices: _json, + PassThroughWaypoints: (_: any) => de_RoutePassThroughWaypointList(_, context), + Spans: (_: any) => de_RouteVehicleSpanList(_, context), + Summary: _json, + TollSystems: _json, + Tolls: (_: any) => de_RouteTollList(_, context), + TravelSteps: (_: any) => de_RouteVehicleTravelStepList(_, context), + TruckRoadTypes: _json, + Zones: _json, + }) as any; +}; + +// de_RouteVehicleNotice omitted. + +// de_RouteVehicleNoticeDetail omitted. + +// de_RouteVehicleNoticeDetailList omitted. + +// de_RouteVehicleNoticeList omitted. + +// de_RouteVehicleOverviewSummary omitted. + +/** + * deserializeAws_restJson1RouteVehiclePlace + */ +const de_RouteVehiclePlace = (output: any, context: __SerdeContext): RouteVehiclePlace => { + return take(output, { + Name: __expectString, + OriginalPosition: (_: any) => de_Position23(_, context), + Position: (_: any) => de_Position23(_, context), + SideOfStreet: __expectString, + WaypointIndex: __expectInt32, + }) as any; +}; + +/** + * deserializeAws_restJson1RouteVehicleSpan + */ +const de_RouteVehicleSpan = (output: any, context: __SerdeContext): RouteVehicleSpan => { + return take(output, { + BestCaseDuration: __expectLong, + CarAccess: _json, + Country: __expectString, + Distance: __expectLong, + Duration: __expectLong, + DynamicSpeed: (_: any) => de_RouteSpanDynamicSpeedDetails(_, context), + FunctionalClassification: __expectInt32, + Gate: __expectString, + GeometryOffset: __expectInt32, + Incidents: _json, + Names: _json, + Notices: _json, + RailwayCrossing: __expectString, + Region: __expectString, + RoadAttributes: _json, + RouteNumbers: _json, + ScooterAccess: _json, + SpeedLimit: (_: any) => de_RouteSpanSpeedLimitDetails(_, context), + TollSystems: _json, + TruckAccess: _json, + TruckRoadTypes: _json, + TypicalDuration: __expectLong, + Zones: _json, + }) as any; +}; + +/** + * deserializeAws_restJson1RouteVehicleSpanList + */ +const de_RouteVehicleSpanList = (output: any, context: __SerdeContext): RouteVehicleSpan[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_RouteVehicleSpan(entry, context); + }); + return retVal; +}; + +// de_RouteVehicleSummary omitted. + +// de_RouteVehicleTravelOnlySummary omitted. + +/** + * deserializeAws_restJson1RouteVehicleTravelStep + */ +const de_RouteVehicleTravelStep = (output: any, context: __SerdeContext): RouteVehicleTravelStep => { + return take(output, { + ContinueHighwayStepDetails: (_: any) => de_RouteContinueHighwayStepDetails(_, context), + ContinueStepDetails: _json, + CurrentRoad: _json, + Distance: __expectLong, + Duration: __expectLong, + EnterHighwayStepDetails: (_: any) => de_RouteEnterHighwayStepDetails(_, context), + ExitNumber: _json, + ExitStepDetails: (_: any) => de_RouteExitStepDetails(_, context), + GeometryOffset: __expectInt32, + Instruction: __expectString, + KeepStepDetails: (_: any) => de_RouteKeepStepDetails(_, context), + NextRoad: _json, + RampStepDetails: (_: any) => de_RouteRampStepDetails(_, context), + RoundaboutEnterStepDetails: (_: any) => de_RouteRoundaboutEnterStepDetails(_, context), + RoundaboutExitStepDetails: (_: any) => de_RouteRoundaboutExitStepDetails(_, context), + RoundaboutPassStepDetails: (_: any) => de_RouteRoundaboutPassStepDetails(_, context), + Signpost: _json, + TurnStepDetails: (_: any) => de_RouteTurnStepDetails(_, context), + Type: __expectString, + UTurnStepDetails: (_: any) => de_RouteUTurnStepDetails(_, context), + }) as any; +}; + +/** + * deserializeAws_restJson1RouteVehicleTravelStepList + */ +const de_RouteVehicleTravelStepList = (output: any, context: __SerdeContext): RouteVehicleTravelStep[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_RouteVehicleTravelStep(entry, context); + }); + return retVal; +}; + +// de_RouteViolatedConstraints omitted. + +// de_RouteWeightConstraint omitted. + +// de_RouteZone omitted. + +// de_RouteZoneList omitted. + +// de_TruckRoadTypeList omitted. + +/** + * deserializeAws_restJson1ValidationExceptionField + */ +const de_ValidationExceptionField = (output: any, context: __SerdeContext): ValidationExceptionField => { + return take(output, { + Message: [, __expectString, `message`], + Name: [, __expectString, `name`], + }) as any; +}; + +/** + * deserializeAws_restJson1ValidationExceptionFieldList + */ +const de_ValidationExceptionFieldList = (output: any, context: __SerdeContext): ValidationExceptionField[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_ValidationExceptionField(entry, context); + }); + return retVal; +}; + +// de_WaypointOptimizationConnection omitted. + +// de_WaypointOptimizationConnectionList omitted. + +// de_WaypointOptimizationFailedConstraint omitted. + +// de_WaypointOptimizationFailedConstraintList omitted. + +/** + * deserializeAws_restJson1WaypointOptimizationImpedingWaypoint + */ +const de_WaypointOptimizationImpedingWaypoint = ( + output: any, + context: __SerdeContext +): WaypointOptimizationImpedingWaypoint => { + return take(output, { + FailedConstraints: _json, + Id: __expectString, + Position: (_: any) => de_Position(_, context), + }) as any; +}; + +/** + * deserializeAws_restJson1WaypointOptimizationImpedingWaypointList + */ +const de_WaypointOptimizationImpedingWaypointList = ( + output: any, + context: __SerdeContext +): WaypointOptimizationImpedingWaypoint[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_WaypointOptimizationImpedingWaypoint(entry, context); + }); + return retVal; +}; + +/** + * deserializeAws_restJson1WaypointOptimizationOptimizedWaypoint + */ +const de_WaypointOptimizationOptimizedWaypoint = ( + output: any, + context: __SerdeContext +): WaypointOptimizationOptimizedWaypoint => { + return take(output, { + ArrivalTime: __expectString, + DepartureTime: __expectString, + Id: __expectString, + Position: (_: any) => de_Position(_, context), + }) as any; +}; + +/** + * deserializeAws_restJson1WaypointOptimizationOptimizedWaypointList + */ +const de_WaypointOptimizationOptimizedWaypointList = ( + output: any, + context: __SerdeContext +): WaypointOptimizationOptimizedWaypoint[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_WaypointOptimizationOptimizedWaypoint(entry, context); + }); + return retVal; +}; + +// de_WaypointOptimizationTimeBreakdown omitted. + +// de_WeightPerAxleGroup omitted. + +const deserializeMetadata = (output: __HttpResponse): __ResponseMetadata => ({ + httpStatusCode: output.statusCode, + requestId: + output.headers["x-amzn-requestid"] ?? output.headers["x-amzn-request-id"] ?? output.headers["x-amz-request-id"], + extendedRequestId: output.headers["x-amz-id-2"], + cfId: output.headers["x-amz-cf-id"], +}); + +// Encode Uint8Array data into string with utf-8. +const collectBodyString = (streamBody: any, context: __SerdeContext): Promise => + collectBody(streamBody, context).then((body) => context.utf8Encoder(body)); + +const _K = "Key"; +const _PB = "PricingBucket"; +const _k = "key"; +const _xagpb = "x-amz-geo-pricing-bucket"; diff --git a/clients/client-geo-routes/src/runtimeConfig.browser.ts b/clients/client-geo-routes/src/runtimeConfig.browser.ts new file mode 100644 index 0000000000000..9613e80792502 --- /dev/null +++ b/clients/client-geo-routes/src/runtimeConfig.browser.ts @@ -0,0 +1,44 @@ +// smithy-typescript generated code +// @ts-ignore: package.json will be imported from dist folders +import packageInfo from "../package.json"; // eslint-disable-line + +import { Sha256 } from "@aws-crypto/sha256-browser"; +import { createDefaultUserAgentProvider } from "@aws-sdk/util-user-agent-browser"; +import { DEFAULT_USE_DUALSTACK_ENDPOINT, DEFAULT_USE_FIPS_ENDPOINT } from "@smithy/config-resolver"; +import { FetchHttpHandler as RequestHandler, streamCollector } from "@smithy/fetch-http-handler"; +import { invalidProvider } from "@smithy/invalid-dependency"; +import { calculateBodyLength } from "@smithy/util-body-length-browser"; +import { DEFAULT_MAX_ATTEMPTS, DEFAULT_RETRY_MODE } from "@smithy/util-retry"; +import { GeoRoutesClientConfig } from "./GeoRoutesClient"; +import { getRuntimeConfig as getSharedRuntimeConfig } from "./runtimeConfig.shared"; +import { loadConfigsForDefaultMode } from "@smithy/smithy-client"; +import { resolveDefaultsModeConfig } from "@smithy/util-defaults-mode-browser"; + +/** + * @internal + */ +export const getRuntimeConfig = (config: GeoRoutesClientConfig) => { + const defaultsMode = resolveDefaultsModeConfig(config); + const defaultConfigProvider = () => defaultsMode().then(loadConfigsForDefaultMode); + const clientSharedValues = getSharedRuntimeConfig(config); + return { + ...clientSharedValues, + ...config, + runtime: "browser", + defaultsMode, + bodyLengthChecker: config?.bodyLengthChecker ?? calculateBodyLength, + credentialDefaultProvider: + config?.credentialDefaultProvider ?? ((_: unknown) => () => Promise.reject(new Error("Credential is missing"))), + defaultUserAgentProvider: + config?.defaultUserAgentProvider ?? + createDefaultUserAgentProvider({ serviceId: clientSharedValues.serviceId, clientVersion: packageInfo.version }), + maxAttempts: config?.maxAttempts ?? DEFAULT_MAX_ATTEMPTS, + region: config?.region ?? invalidProvider("Region is missing"), + requestHandler: RequestHandler.create(config?.requestHandler ?? defaultConfigProvider), + retryMode: config?.retryMode ?? (async () => (await defaultConfigProvider()).retryMode || DEFAULT_RETRY_MODE), + sha256: config?.sha256 ?? Sha256, + streamCollector: config?.streamCollector ?? streamCollector, + useDualstackEndpoint: config?.useDualstackEndpoint ?? (() => Promise.resolve(DEFAULT_USE_DUALSTACK_ENDPOINT)), + useFipsEndpoint: config?.useFipsEndpoint ?? (() => Promise.resolve(DEFAULT_USE_FIPS_ENDPOINT)), + }; +}; diff --git a/clients/client-geo-routes/src/runtimeConfig.native.ts b/clients/client-geo-routes/src/runtimeConfig.native.ts new file mode 100644 index 0000000000000..2f86e6172ed03 --- /dev/null +++ b/clients/client-geo-routes/src/runtimeConfig.native.ts @@ -0,0 +1,18 @@ +// smithy-typescript generated code +import { Sha256 } from "@aws-crypto/sha256-js"; + +import { GeoRoutesClientConfig } from "./GeoRoutesClient"; +import { getRuntimeConfig as getBrowserRuntimeConfig } from "./runtimeConfig.browser"; + +/** + * @internal + */ +export const getRuntimeConfig = (config: GeoRoutesClientConfig) => { + const browserDefaults = getBrowserRuntimeConfig(config); + return { + ...browserDefaults, + ...config, + runtime: "react-native", + sha256: config?.sha256 ?? Sha256, + }; +}; diff --git a/clients/client-geo-routes/src/runtimeConfig.shared.ts b/clients/client-geo-routes/src/runtimeConfig.shared.ts new file mode 100644 index 0000000000000..bdbfa775e8576 --- /dev/null +++ b/clients/client-geo-routes/src/runtimeConfig.shared.ts @@ -0,0 +1,38 @@ +// smithy-typescript generated code +import { AwsSdkSigV4Signer } from "@aws-sdk/core"; +import { NoOpLogger } from "@smithy/smithy-client"; +import { IdentityProviderConfig } from "@smithy/types"; +import { parseUrl } from "@smithy/url-parser"; +import { fromBase64, toBase64 } from "@smithy/util-base64"; +import { fromUtf8, toUtf8 } from "@smithy/util-utf8"; + +import { defaultGeoRoutesHttpAuthSchemeProvider } from "./auth/httpAuthSchemeProvider"; +import { defaultEndpointResolver } from "./endpoint/endpointResolver"; +import { GeoRoutesClientConfig } from "./GeoRoutesClient"; + +/** + * @internal + */ +export const getRuntimeConfig = (config: GeoRoutesClientConfig) => { + return { + apiVersion: "2020-11-19", + base64Decoder: config?.base64Decoder ?? fromBase64, + base64Encoder: config?.base64Encoder ?? toBase64, + disableHostPrefix: config?.disableHostPrefix ?? false, + endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], + httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? defaultGeoRoutesHttpAuthSchemeProvider, + httpAuthSchemes: config?.httpAuthSchemes ?? [ + { + schemeId: "aws.auth#sigv4", + identityProvider: (ipc: IdentityProviderConfig) => ipc.getIdentityProvider("aws.auth#sigv4"), + signer: new AwsSdkSigV4Signer(), + }, + ], + logger: config?.logger ?? new NoOpLogger(), + serviceId: config?.serviceId ?? "Geo Routes", + urlParser: config?.urlParser ?? parseUrl, + utf8Decoder: config?.utf8Decoder ?? fromUtf8, + utf8Encoder: config?.utf8Encoder ?? toUtf8, + }; +}; diff --git a/clients/client-geo-routes/src/runtimeConfig.ts b/clients/client-geo-routes/src/runtimeConfig.ts new file mode 100644 index 0000000000000..c68e242910403 --- /dev/null +++ b/clients/client-geo-routes/src/runtimeConfig.ts @@ -0,0 +1,60 @@ +// smithy-typescript generated code +// @ts-ignore: package.json will be imported from dist folders +import packageInfo from "../package.json"; // eslint-disable-line + +import { emitWarningIfUnsupportedVersion as awsCheckVersion } from "@aws-sdk/core"; +import { defaultProvider as credentialDefaultProvider } from "@aws-sdk/credential-provider-node"; +import { NODE_APP_ID_CONFIG_OPTIONS, createDefaultUserAgentProvider } from "@aws-sdk/util-user-agent-node"; +import { + NODE_REGION_CONFIG_FILE_OPTIONS, + NODE_REGION_CONFIG_OPTIONS, + NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, + NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, +} from "@smithy/config-resolver"; +import { Hash } from "@smithy/hash-node"; +import { NODE_MAX_ATTEMPT_CONFIG_OPTIONS, NODE_RETRY_MODE_CONFIG_OPTIONS } from "@smithy/middleware-retry"; +import { loadConfig as loadNodeConfig } from "@smithy/node-config-provider"; +import { NodeHttpHandler as RequestHandler, streamCollector } from "@smithy/node-http-handler"; +import { calculateBodyLength } from "@smithy/util-body-length-node"; +import { DEFAULT_RETRY_MODE } from "@smithy/util-retry"; +import { GeoRoutesClientConfig } from "./GeoRoutesClient"; +import { getRuntimeConfig as getSharedRuntimeConfig } from "./runtimeConfig.shared"; +import { loadConfigsForDefaultMode } from "@smithy/smithy-client"; +import { resolveDefaultsModeConfig } from "@smithy/util-defaults-mode-node"; +import { emitWarningIfUnsupportedVersion } from "@smithy/smithy-client"; + +/** + * @internal + */ +export const getRuntimeConfig = (config: GeoRoutesClientConfig) => { + emitWarningIfUnsupportedVersion(process.version); + const defaultsMode = resolveDefaultsModeConfig(config); + const defaultConfigProvider = () => defaultsMode().then(loadConfigsForDefaultMode); + const clientSharedValues = getSharedRuntimeConfig(config); + awsCheckVersion(process.version); + return { + ...clientSharedValues, + ...config, + runtime: "node", + defaultsMode, + bodyLengthChecker: config?.bodyLengthChecker ?? calculateBodyLength, + credentialDefaultProvider: config?.credentialDefaultProvider ?? credentialDefaultProvider, + defaultUserAgentProvider: + config?.defaultUserAgentProvider ?? + createDefaultUserAgentProvider({ serviceId: clientSharedValues.serviceId, clientVersion: packageInfo.version }), + maxAttempts: config?.maxAttempts ?? loadNodeConfig(NODE_MAX_ATTEMPT_CONFIG_OPTIONS), + region: config?.region ?? loadNodeConfig(NODE_REGION_CONFIG_OPTIONS, NODE_REGION_CONFIG_FILE_OPTIONS), + requestHandler: RequestHandler.create(config?.requestHandler ?? defaultConfigProvider), + retryMode: + config?.retryMode ?? + loadNodeConfig({ + ...NODE_RETRY_MODE_CONFIG_OPTIONS, + default: async () => (await defaultConfigProvider()).retryMode || DEFAULT_RETRY_MODE, + }), + sha256: config?.sha256 ?? Hash.bind(null, "sha256"), + streamCollector: config?.streamCollector ?? streamCollector, + useDualstackEndpoint: config?.useDualstackEndpoint ?? loadNodeConfig(NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS), + useFipsEndpoint: config?.useFipsEndpoint ?? loadNodeConfig(NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS), + userAgentAppId: config?.userAgentAppId ?? loadNodeConfig(NODE_APP_ID_CONFIG_OPTIONS), + }; +}; diff --git a/clients/client-geo-routes/src/runtimeExtensions.ts b/clients/client-geo-routes/src/runtimeExtensions.ts new file mode 100644 index 0000000000000..e30ec0f8ee714 --- /dev/null +++ b/clients/client-geo-routes/src/runtimeExtensions.ts @@ -0,0 +1,48 @@ +// smithy-typescript generated code +import { + getAwsRegionExtensionConfiguration, + resolveAwsRegionExtensionConfiguration, +} from "@aws-sdk/region-config-resolver"; +import { getHttpHandlerExtensionConfiguration, resolveHttpHandlerRuntimeConfig } from "@smithy/protocol-http"; +import { getDefaultExtensionConfiguration, resolveDefaultRuntimeConfig } from "@smithy/smithy-client"; + +import { getHttpAuthExtensionConfiguration, resolveHttpAuthRuntimeConfig } from "./auth/httpAuthExtensionConfiguration"; +import { GeoRoutesExtensionConfiguration } from "./extensionConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configure(extensionConfiguration: GeoRoutesExtensionConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const extensionConfiguration: GeoRoutesExtensionConfiguration = { + ...asPartial(getAwsRegionExtensionConfiguration(runtimeConfig)), + ...asPartial(getDefaultExtensionConfiguration(runtimeConfig)), + ...asPartial(getHttpHandlerExtensionConfiguration(runtimeConfig)), + ...asPartial(getHttpAuthExtensionConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configure(extensionConfiguration)); + + return { + ...runtimeConfig, + ...resolveAwsRegionExtensionConfiguration(extensionConfiguration), + ...resolveDefaultRuntimeConfig(extensionConfiguration), + ...resolveHttpHandlerRuntimeConfig(extensionConfiguration), + ...resolveHttpAuthRuntimeConfig(extensionConfiguration), + }; +}; diff --git a/clients/client-geo-routes/tsconfig.cjs.json b/clients/client-geo-routes/tsconfig.cjs.json new file mode 100644 index 0000000000000..3567d85ba8460 --- /dev/null +++ b/clients/client-geo-routes/tsconfig.cjs.json @@ -0,0 +1,6 @@ +{ + "extends": "./tsconfig", + "compilerOptions": { + "outDir": "dist-cjs" + } +} diff --git a/clients/client-geo-routes/tsconfig.es.json b/clients/client-geo-routes/tsconfig.es.json new file mode 100644 index 0000000000000..809f57bde65e6 --- /dev/null +++ b/clients/client-geo-routes/tsconfig.es.json @@ -0,0 +1,8 @@ +{ + "extends": "./tsconfig", + "compilerOptions": { + "lib": ["dom"], + "module": "esnext", + "outDir": "dist-es" + } +} diff --git a/clients/client-geo-routes/tsconfig.json b/clients/client-geo-routes/tsconfig.json new file mode 100644 index 0000000000000..e7f5ec56b742b --- /dev/null +++ b/clients/client-geo-routes/tsconfig.json @@ -0,0 +1,13 @@ +{ + "extends": "@tsconfig/node16/tsconfig.json", + "compilerOptions": { + "downlevelIteration": true, + "importHelpers": true, + "incremental": true, + "removeComments": true, + "resolveJsonModule": true, + "rootDir": "src", + "useUnknownInCatchVariables": false + }, + "exclude": ["test/"] +} diff --git a/clients/client-geo-routes/tsconfig.types.json b/clients/client-geo-routes/tsconfig.types.json new file mode 100644 index 0000000000000..4c3dfa7b3d25f --- /dev/null +++ b/clients/client-geo-routes/tsconfig.types.json @@ -0,0 +1,10 @@ +{ + "extends": "./tsconfig", + "compilerOptions": { + "removeComments": false, + "declaration": true, + "declarationDir": "dist-types", + "emitDeclarationOnly": true + }, + "exclude": ["test/**/*", "dist-types/**/*"] +} diff --git a/codegen/sdk-codegen/aws-models/geo-routes.json b/codegen/sdk-codegen/aws-models/geo-routes.json new file mode 100644 index 0000000000000..5f538c4c91877 --- /dev/null +++ b/codegen/sdk-codegen/aws-models/geo-routes.json @@ -0,0 +1,11320 @@ +{ + "smithy": "2.0", + "shapes": { + "com.amazonaws.georoutes#AccessDeniedException": { + "type": "structure", + "members": { + "Message": { + "target": "smithy.api#String", + "traits": { + "smithy.api#jsonName": "message", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

You don't have sufficient access to perform this action.

", + "smithy.api#error": "client", + "smithy.api#httpError": 403 + } + }, + "com.amazonaws.georoutes#ApiKey": { + "type": "string", + "traits": { + "smithy.api#externalDocumentation": { + "Implementation Guide": "https://github.com/paseto-standard/paseto-spec/blob/master/docs/02-Implementation-Guide/03-Algorithm-Lucidity.md" + }, + "smithy.api#length": { + "max": 1000 + }, + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.georoutes#BeforeWaypointsList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#WaypointIndex" + } + }, + "com.amazonaws.georoutes#BoundingBox": { + "type": "list", + "member": { + "target": "smithy.api#Double" + }, + "traits": { + "smithy.api#externalDocumentation": { + "Documentation": "https://tools.ietf.org/html/rfc7946#section-5" + }, + "smithy.api#length": { + "min": 4, + "max": 4 + }, + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.georoutes#CalculateIsolines": { + "type": "operation", + "input": { + "target": "com.amazonaws.georoutes#CalculateIsolinesRequest" + }, + "output": { + "target": "com.amazonaws.georoutes#CalculateIsolinesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.georoutes#AccessDeniedException" + }, + { + "target": "com.amazonaws.georoutes#InternalServerException" + }, + { + "target": "com.amazonaws.georoutes#ThrottlingException" + }, + { + "target": "com.amazonaws.georoutes#ValidationException" + } + ], + "traits": { + "aws.api#dataPlane": {}, + "smithy.api#documentation": "

Use the CalculateIsolines action to find service areas that can be reached\n in a given threshold of time, distance.

", + "smithy.api#http": { + "uri": "/isolines", + "method": "POST" + }, + "smithy.api#readonly": {}, + "smithy.test#smokeTests": [ + { + "id": "CalculateIsolinesSuccess", + "params": { + "Thresholds": { + "Time": [60] + }, + "Origin": [-123.116796, 49.281476] + }, + "expect": { + "success": {} + }, + "vendorParamsShape": "aws.test#AwsVendorParams", + "vendorParams": { + "region": "us-west-2" + } + } + ] + } + }, + "com.amazonaws.georoutes#CalculateIsolinesRequest": { + "type": "structure", + "members": { + "Allow": { + "target": "com.amazonaws.georoutes#IsolineAllowOptions", + "traits": { + "smithy.api#documentation": "

Features that are allowed while calculating. a route

" + } + }, + "ArrivalTime": { + "target": "com.amazonaws.georoutes#TimestampWithTimezoneOffset", + "traits": { + "smithy.api#documentation": "

Time of arrival at the destination.

\n

Time format: YYYY-MM-DDThh:mm:ss.sssZ | YYYY-MM-DDThh:mm:ss.sss+hh:mm\n

\n

Examples:

\n

\n 2020-04-22T17:57:24Z\n

\n

\n 2020-04-22T17:57:24+02:00\n

" + } + }, + "Avoid": { + "target": "com.amazonaws.georoutes#IsolineAvoidanceOptions", + "traits": { + "smithy.api#documentation": "

Features that are avoided while calculating a route. Avoidance is on a best-case basis. If an\n avoidance can't be satisfied for a particular case, it violates the avoidance and the\n returned response produces a notice for the violation.

" + } + }, + "DepartNow": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Uses the current time as the time of departure.

" + } + }, + "DepartureTime": { + "target": "com.amazonaws.georoutes#TimestampWithTimezoneOffset", + "traits": { + "smithy.api#documentation": "

Time of departure from thr origin.

\n

Time format:YYYY-MM-DDThh:mm:ss.sssZ | YYYY-MM-DDThh:mm:ss.sss+hh:mm\n

\n

Examples:

\n

\n 2020-04-22T17:57:24Z\n

\n

\n 2020-04-22T17:57:24+02:00\n

" + } + }, + "Destination": { + "target": "com.amazonaws.georoutes#Position", + "traits": { + "smithy.api#documentation": "

The final position for the route. In the World Geodetic System (WGS 84) format: [longitude, latitude].

" + } + }, + "DestinationOptions": { + "target": "com.amazonaws.georoutes#IsolineDestinationOptions", + "traits": { + "smithy.api#documentation": "

Destination related options.

" + } + }, + "IsolineGeometryFormat": { + "target": "com.amazonaws.georoutes#GeometryFormat", + "traits": { + "smithy.api#documentation": "

The format of the returned IsolineGeometry.

\n

Default Value:FlexiblePolyline\n

" + } + }, + "IsolineGranularity": { + "target": "com.amazonaws.georoutes#IsolineGranularityOptions", + "traits": { + "smithy.api#documentation": "

Defines the granularity of the returned Isoline

" + } + }, + "Key": { + "target": "com.amazonaws.georoutes#ApiKey", + "traits": { + "smithy.api#documentation": "

Optional: The API key to be used for authorization. Either an API key or valid SigV4\n signature must be provided when making a request.

", + "smithy.api#httpQuery": "key" + } + }, + "OptimizeIsolineFor": { + "target": "com.amazonaws.georoutes#IsolineOptimizationObjective", + "traits": { + "smithy.api#documentation": "

Specifies the optimization criteria for when calculating an isoline. AccurateCalculation generates an isoline of higher granularity that is more precise. \nFastCalculation generates an isoline faster by reducing the granularity, and in turn the quality of the isoline. BalancedCalculation generates an isoline by balancing between quality and performance. \n

\n

Default Value: BalancedCalculation\n

" + } + }, + "OptimizeRoutingFor": { + "target": "com.amazonaws.georoutes#RoutingObjective", + "traits": { + "smithy.api#documentation": "

Specifies the optimization criteria for calculating a route.

\n

Default Value: FastestRoute\n

" + } + }, + "Origin": { + "target": "com.amazonaws.georoutes#Position", + "traits": { + "smithy.api#documentation": "

The start position for the route.

" + } + }, + "OriginOptions": { + "target": "com.amazonaws.georoutes#IsolineOriginOptions", + "traits": { + "smithy.api#documentation": "

Origin related options.

" + } + }, + "Thresholds": { + "target": "com.amazonaws.georoutes#IsolineThresholds", + "traits": { + "smithy.api#documentation": "

Threshold to be used for the isoline calculation. Up to \n 3 thresholds per provided type can be requested.

", + "smithy.api#required": {} + } + }, + "Traffic": { + "target": "com.amazonaws.georoutes#IsolineTrafficOptions", + "traits": { + "smithy.api#documentation": "

Traffic related options.

" + } + }, + "TravelMode": { + "target": "com.amazonaws.georoutes#IsolineTravelMode", + "traits": { + "smithy.api#documentation": "

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

\n \n

The mode Scooter also applies to motorcycles, set to Scooter when wanted to calculate options for motorcycles.

\n
\n

Default Value: Car\n

" + } + }, + "TravelModeOptions": { + "target": "com.amazonaws.georoutes#IsolineTravelModeOptions", + "traits": { + "smithy.api#documentation": "

Travel mode related options for the provided travel mode.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.georoutes#CalculateIsolinesResponse": { + "type": "structure", + "members": { + "ArrivalTime": { + "target": "com.amazonaws.georoutes#TimestampWithTimezoneOffset", + "traits": { + "smithy.api#documentation": "

Time of arrival at the destination. This parameter is returned only if the Destination parameters was provided in the request.

\n

Time format:YYYY-MM-DDThh:mm:ss.sssZ | YYYY-MM-DDThh:mm:ss.sss+hh:mm\n

\n

Examples:

\n

\n 2020-04-22T17:57:24Z\n

\n

\n 2020-04-22T17:57:24+02:00\n

" + } + }, + "DepartureTime": { + "target": "com.amazonaws.georoutes#TimestampWithTimezoneOffset", + "traits": { + "smithy.api#documentation": "

Time of departure from thr origin.

\n

Time format:YYYY-MM-DDThh:mm:ss.sssZ | YYYY-MM-DDThh:mm:ss.sss+hh:mm\n

\n

Examples:

\n

\n 2020-04-22T17:57:24Z\n

\n

\n 2020-04-22T17:57:24+02:00\n

" + } + }, + "IsolineGeometryFormat": { + "target": "com.amazonaws.georoutes#GeometryFormat", + "traits": { + "smithy.api#documentation": "

The format of the returned IsolineGeometry.

\n

Default Value:FlexiblePolyline\n

", + "smithy.api#required": {} + } + }, + "Isolines": { + "target": "com.amazonaws.georoutes#IsolineList", + "traits": { + "smithy.api#documentation": "

Calculated isolines and associated properties.

", + "smithy.api#required": {} + } + }, + "PricingBucket": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The pricing bucket for which the query is charged at.

", + "smithy.api#httpHeader": "x-amz-geo-pricing-bucket", + "smithy.api#required": {} + } + }, + "SnappedDestination": { + "target": "com.amazonaws.georoutes#Position", + "traits": { + "smithy.api#documentation": "

Snapped destination that was used for the Isoline calculation.

" + } + }, + "SnappedOrigin": { + "target": "com.amazonaws.georoutes#Position", + "traits": { + "smithy.api#documentation": "

Snapped origin that was used for the Isoline calculation.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.georoutes#CalculateRouteMatrix": { + "type": "operation", + "input": { + "target": "com.amazonaws.georoutes#CalculateRouteMatrixRequest" + }, + "output": { + "target": "com.amazonaws.georoutes#CalculateRouteMatrixResponse" + }, + "errors": [ + { + "target": "com.amazonaws.georoutes#AccessDeniedException" + }, + { + "target": "com.amazonaws.georoutes#InternalServerException" + }, + { + "target": "com.amazonaws.georoutes#ThrottlingException" + }, + { + "target": "com.amazonaws.georoutes#ValidationException" + } + ], + "traits": { + "aws.api#dataPlane": {}, + "smithy.api#documentation": "

Calculates route matrix containing the results for all pairs of \n Origins to Destinations. Each row corresponds to one entry in Origins. \n Each entry in the row corresponds to the route from that entry in Origins to an entry in Destinations positions.

", + "smithy.api#http": { + "uri": "/route-matrix", + "method": "POST" + }, + "smithy.api#readonly": {}, + "smithy.test#smokeTests": [ + { + "id": "CalculateRouteMatrixSuccess", + "params": { + "Origins": [ + { + "Position": [-123.11679, 49.28147] + } + ], + "Destinations": [ + { + "Position": [-123.11231, 49.28897192166] + } + ], + "RoutingBoundary": { + "Unbounded": true + } + }, + "expect": { + "success": {} + }, + "vendorParamsShape": "aws.test#AwsVendorParams", + "vendorParams": { + "region": "us-west-2" + } + } + ] + } + }, + "com.amazonaws.georoutes#CalculateRouteMatrixRequest": { + "type": "structure", + "members": { + "Allow": { + "target": "com.amazonaws.georoutes#RouteMatrixAllowOptions", + "traits": { + "smithy.api#documentation": "

Features that are allowed while calculating. a route

" + } + }, + "Avoid": { + "target": "com.amazonaws.georoutes#RouteMatrixAvoidanceOptions", + "traits": { + "smithy.api#documentation": "

Features that are avoided while calculating a route. Avoidance is on a best-case basis. If an\n avoidance can't be satisfied for a particular case, it violates the avoidance and the\n returned response produces a notice for the violation.

" + } + }, + "DepartNow": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Uses the current time as the time of departure.

" + } + }, + "DepartureTime": { + "target": "com.amazonaws.georoutes#TimestampWithTimezoneOffset", + "traits": { + "smithy.api#documentation": "

Time of departure from thr origin.

\n

Time format:YYYY-MM-DDThh:mm:ss.sssZ | YYYY-MM-DDThh:mm:ss.sss+hh:mm\n

\n

Examples:

\n

\n 2020-04-22T17:57:24Z\n

\n

\n 2020-04-22T17:57:24+02:00\n

" + } + }, + "Destinations": { + "target": "com.amazonaws.georoutes#RouteMatrixDestinationList", + "traits": { + "smithy.api#documentation": "

List of destinations for the route.

", + "smithy.api#length": { + "min": 1 + }, + "smithy.api#required": {} + } + }, + "Exclude": { + "target": "com.amazonaws.georoutes#RouteMatrixExclusionOptions", + "traits": { + "smithy.api#documentation": "

Features to be strictly excluded while calculating the route.

" + } + }, + "Key": { + "target": "com.amazonaws.georoutes#ApiKey", + "traits": { + "smithy.api#documentation": "

Optional: The API key to be used for authorization. Either an API key or valid SigV4\n signature must be provided when making a request.

", + "smithy.api#httpQuery": "key" + } + }, + "OptimizeRoutingFor": { + "target": "com.amazonaws.georoutes#RoutingObjective", + "traits": { + "smithy.api#documentation": "

Specifies the optimization criteria for calculating a route.

\n

Default Value: FastestRoute\n

" + } + }, + "Origins": { + "target": "com.amazonaws.georoutes#RouteMatrixOriginList", + "traits": { + "smithy.api#documentation": "

The position in longitude and latitude for the origin.

", + "smithy.api#length": { + "min": 1 + }, + "smithy.api#required": {} + } + }, + "RoutingBoundary": { + "target": "com.amazonaws.georoutes#RouteMatrixBoundary", + "traits": { + "smithy.api#documentation": "

Boundary within which the matrix is to be calculated. \n All data, origins and destinations outside the boundary are considered invalid.

\n \n

When request routing boundary was set as AutoCircle, the response routing boundary will return Circle derived from the AutoCircle settings.

\n
", + "smithy.api#required": {} + } + }, + "Traffic": { + "target": "com.amazonaws.georoutes#RouteMatrixTrafficOptions", + "traits": { + "smithy.api#documentation": "

Traffic related options.

" + } + }, + "TravelMode": { + "target": "com.amazonaws.georoutes#RouteMatrixTravelMode", + "traits": { + "smithy.api#documentation": "

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

\n

Default Value: Car\n

" + } + }, + "TravelModeOptions": { + "target": "com.amazonaws.georoutes#RouteMatrixTravelModeOptions", + "traits": { + "smithy.api#documentation": "

Travel mode related options for the provided travel mode.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.georoutes#CalculateRouteMatrixResponse": { + "type": "structure", + "members": { + "ErrorCount": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

The count of error results in the route matrix. If this number is 0, all routes were calculated successfully.

", + "smithy.api#range": { + "min": 0 + }, + "smithy.api#required": {} + } + }, + "PricingBucket": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The pricing bucket for which the query is charged at.

", + "smithy.api#httpHeader": "x-amz-geo-pricing-bucket", + "smithy.api#required": {} + } + }, + "RouteMatrix": { + "target": "com.amazonaws.georoutes#RouteMatrix", + "traits": { + "smithy.api#documentation": "

The calculated route matrix containing the results for all pairs of Origins to Destination positions. Each row corresponds to one entry in Origins. Each entry in the row corresponds to the route from that entry in Origins to an entry in Destination positions.

", + "smithy.api#required": {} + } + }, + "RoutingBoundary": { + "target": "com.amazonaws.georoutes#RouteMatrixBoundary", + "traits": { + "smithy.api#documentation": "

Boundary within which the matrix is to be calculated. All data, origins and destinations outside the boundary are considered invalid.

\n \n

When request routing boundary was set as AutoCircle, the response routing boundary will return Circle derived from the AutoCircle settings.

\n
", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.georoutes#CalculateRoutes": { + "type": "operation", + "input": { + "target": "com.amazonaws.georoutes#CalculateRoutesRequest" + }, + "output": { + "target": "com.amazonaws.georoutes#CalculateRoutesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.georoutes#AccessDeniedException" + }, + { + "target": "com.amazonaws.georoutes#InternalServerException" + }, + { + "target": "com.amazonaws.georoutes#ThrottlingException" + }, + { + "target": "com.amazonaws.georoutes#ValidationException" + } + ], + "traits": { + "aws.api#dataPlane": {}, + "smithy.api#documentation": "

Calculates a route given the following required parameters: \n Origin and Destination.

", + "smithy.api#http": { + "uri": "/routes", + "method": "POST" + }, + "smithy.api#readonly": {}, + "smithy.test#smokeTests": [ + { + "id": "CalculateRoutesSuccess", + "params": { + "Origin": [-123.253374, 49.351673], + "Destination": [-123.930756, 49.1314] + }, + "expect": { + "success": {} + }, + "vendorParamsShape": "aws.test#AwsVendorParams", + "vendorParams": { + "region": "us-west-2" + } + } + ] + } + }, + "com.amazonaws.georoutes#CalculateRoutesRequest": { + "type": "structure", + "members": { + "Allow": { + "target": "com.amazonaws.georoutes#RouteAllowOptions", + "traits": { + "smithy.api#documentation": "

Features that are allowed while calculating. a route

" + } + }, + "ArrivalTime": { + "target": "com.amazonaws.georoutes#TimestampWithTimezoneOffset", + "traits": { + "smithy.api#documentation": "

Time of arrival at the destination.

\n

Time format:YYYY-MM-DDThh:mm:ss.sssZ | YYYY-MM-DDThh:mm:ss.sss+hh:mm\n

\n

Examples:

\n

\n 2020-04-22T17:57:24Z\n

\n

\n 2020-04-22T17:57:24+02:00\n

" + } + }, + "Avoid": { + "target": "com.amazonaws.georoutes#RouteAvoidanceOptions", + "traits": { + "smithy.api#documentation": "

Features that are avoided while calculating a route. Avoidance is on a best-case basis. If an\n avoidance can't be satisfied for a particular case, it violates the avoidance and the\n returned response produces a notice for the violation.

" + } + }, + "DepartNow": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Uses the current time as the time of departure.

" + } + }, + "DepartureTime": { + "target": "com.amazonaws.georoutes#TimestampWithTimezoneOffset", + "traits": { + "smithy.api#documentation": "

Time of departure from thr origin.

\n

Time format:YYYY-MM-DDThh:mm:ss.sssZ | YYYY-MM-DDThh:mm:ss.sss+hh:mm\n

\n

Examples:

\n

\n 2020-04-22T17:57:24Z\n

\n

\n 2020-04-22T17:57:24+02:00\n

" + } + }, + "Destination": { + "target": "com.amazonaws.georoutes#Position", + "traits": { + "smithy.api#documentation": "

The final position for the route. In the World Geodetic System (WGS 84) format: [longitude, latitude].

", + "smithy.api#required": {} + } + }, + "DestinationOptions": { + "target": "com.amazonaws.georoutes#RouteDestinationOptions", + "traits": { + "smithy.api#documentation": "

Destination related options.

" + } + }, + "Driver": { + "target": "com.amazonaws.georoutes#RouteDriverOptions", + "traits": { + "smithy.api#documentation": "

Driver related options.

" + } + }, + "Exclude": { + "target": "com.amazonaws.georoutes#RouteExclusionOptions", + "traits": { + "smithy.api#documentation": "

Features to be strictly excluded while calculating the route.

" + } + }, + "InstructionsMeasurementSystem": { + "target": "com.amazonaws.georoutes#MeasurementSystem", + "traits": { + "smithy.api#documentation": "

Measurement system to be used for instructions within steps in the response.

" + } + }, + "Key": { + "target": "com.amazonaws.georoutes#ApiKey", + "traits": { + "smithy.api#documentation": "

Optional: The API key to be used for authorization. Either an API key or valid SigV4\n signature must be provided when making a request.

", + "smithy.api#httpQuery": "key" + } + }, + "Languages": { + "target": "com.amazonaws.georoutes#LanguageTagList", + "traits": { + "smithy.api#documentation": "

List of languages for instructions within steps in the response.

\n \n

Instructions in the requested language are returned only if they are available.

\n
", + "smithy.api#length": { + "max": 10 + } + } + }, + "LegAdditionalFeatures": { + "target": "com.amazonaws.georoutes#RouteLegAdditionalFeatureList", + "traits": { + "smithy.api#documentation": "

A list of optional additional parameters such as timezone that can be requested for each result.

\n
    \n
  • \n

    \n Elevation: Retrieves the elevation information for each location.

    \n
  • \n
  • \n

    \n Incidents: Provides information on traffic incidents along the route.

    \n
  • \n
  • \n

    \n PassThroughWaypoints: Indicates waypoints that are passed through without stopping.

    \n
  • \n
  • \n

    \n Summary: Returns a summary of the route, including distance and duration.

    \n
  • \n
  • \n

    \n Tolls: Supplies toll cost information along the route.

    \n
  • \n
  • \n

    \n TravelStepInstructions: Provides step-by-step instructions for travel along the route.

    \n
  • \n
  • \n

    \n TruckRoadTypes: Returns information about road types suitable for trucks.

    \n
  • \n
  • \n

    \n TypicalDuration: Gives typical travel duration based on historical data.

    \n
  • \n
  • \n

    \n Zones: Specifies the time zone information for each waypoint.

    \n
  • \n
" + } + }, + "LegGeometryFormat": { + "target": "com.amazonaws.georoutes#GeometryFormat", + "traits": { + "smithy.api#documentation": "

Specifies the format of the geometry returned for each leg of the route. You can \n choose between two different geometry encoding formats.

\n

\n FlexiblePolyline: A compact and precise encoding format for the \n leg geometry. For more information on the format, see the GitHub repository for \n FlexiblePolyline\n .

\n

\n Simple: A less compact encoding,\n which is easier to decode but may be less precise and result in larger payloads.

" + } + }, + "MaxAlternatives": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

Maximum number of alternative routes to be provided in the response, if available.

", + "smithy.api#range": { + "min": 0, + "max": 5 + } + } + }, + "OptimizeRoutingFor": { + "target": "com.amazonaws.georoutes#RoutingObjective", + "traits": { + "smithy.api#documentation": "

Specifies the optimization criteria for calculating a route.

\n

Default Value: FastestRoute\n

" + } + }, + "Origin": { + "target": "com.amazonaws.georoutes#Position", + "traits": { + "smithy.api#documentation": "

The start position for the route.

", + "smithy.api#required": {} + } + }, + "OriginOptions": { + "target": "com.amazonaws.georoutes#RouteOriginOptions", + "traits": { + "smithy.api#documentation": "

Origin related options.

" + } + }, + "SpanAdditionalFeatures": { + "target": "com.amazonaws.georoutes#RouteSpanAdditionalFeatureList", + "traits": { + "smithy.api#documentation": "

A list of optional features such as SpeedLimit that can be requested for a Span. A span is a section of a Leg for which the requested features have the same values.

" + } + }, + "Tolls": { + "target": "com.amazonaws.georoutes#RouteTollOptions", + "traits": { + "smithy.api#documentation": "

Toll related options.

" + } + }, + "Traffic": { + "target": "com.amazonaws.georoutes#RouteTrafficOptions", + "traits": { + "smithy.api#documentation": "

Traffic related options.

" + } + }, + "TravelMode": { + "target": "com.amazonaws.georoutes#RouteTravelMode", + "traits": { + "smithy.api#documentation": "

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

\n

Default Value: Car\n

" + } + }, + "TravelModeOptions": { + "target": "com.amazonaws.georoutes#RouteTravelModeOptions", + "traits": { + "smithy.api#documentation": "

Travel mode related options for the provided travel mode.

" + } + }, + "TravelStepType": { + "target": "com.amazonaws.georoutes#RouteTravelStepType", + "traits": { + "smithy.api#documentation": "

Type of step returned by the response.\nDefault provides basic steps intended for web based applications.\nTurnByTurn provides detailed instructions with more granularity intended for a turn based naviagtion system.

" + } + }, + "Waypoints": { + "target": "com.amazonaws.georoutes#RouteWaypointList", + "traits": { + "smithy.api#documentation": "

List of waypoints between the Origin and Destination.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.georoutes#CalculateRoutesResponse": { + "type": "structure", + "members": { + "LegGeometryFormat": { + "target": "com.amazonaws.georoutes#GeometryFormat", + "traits": { + "smithy.api#documentation": "

Specifies the format of the geometry returned for each leg of the route.

", + "smithy.api#required": {} + } + }, + "Notices": { + "target": "com.amazonaws.georoutes#RouteResponseNoticeList", + "traits": { + "smithy.api#documentation": "

Notices are additional information returned that indicate issues that occurred during route calculation.

", + "smithy.api#required": {} + } + }, + "PricingBucket": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The pricing bucket for which the query is charged at.

", + "smithy.api#httpHeader": "x-amz-geo-pricing-bucket", + "smithy.api#required": {} + } + }, + "Routes": { + "target": "com.amazonaws.georoutes#RouteList", + "traits": { + "smithy.api#documentation": "

The path from the origin to the destination.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.georoutes#Circle": { + "type": "structure", + "members": { + "Center": { + "target": "com.amazonaws.georoutes#Position", + "traits": { + "smithy.api#documentation": "

Center of the Circle defined in longitude and latitude coordinates.

\n

Example: [-123.1174, 49.2847] represents the position with longitude -123.1174 and latitude 49.2847.

", + "smithy.api#required": {} + } + }, + "Radius": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#documentation": "

Radius of the Circle.

\n

\n Unit: meters\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Geometry defined as a circle. When request routing boundary was set as AutoCircle, the response routing boundary will return Circle derived from the AutoCircle settings.

", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.georoutes#Corridor": { + "type": "structure", + "members": { + "LineString": { + "target": "com.amazonaws.georoutes#LineString", + "traits": { + "smithy.api#documentation": "

An ordered list of positions used to plot a route on a map.

\n \n

LineString and Polyline are mutually exclusive properties.

\n
", + "smithy.api#required": {} + } + }, + "Radius": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

Radius that defines the width of the corridor.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Geometry defined as a corridor - a LineString with a radius that defines the width of the corridor.

", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.georoutes#CountryCode": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 2, + "max": 3 + }, + "smithy.api#pattern": "^([A-Z]{2}|[A-Z]{3})$" + } + }, + "com.amazonaws.georoutes#CountryCode3": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 3, + "max": 3 + }, + "smithy.api#pattern": "^[A-Z]{3}$" + } + }, + "com.amazonaws.georoutes#CountryCodeList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#CountryCode" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 100 + }, + "smithy.api#uniqueItems": {} + } + }, + "com.amazonaws.georoutes#CurrencyCode": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 3, + "max": 3 + }, + "smithy.api#pattern": "^[A-Z]{3}$" + } + }, + "com.amazonaws.georoutes#DayOfWeek": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "MONDAY", + "value": "Monday" + }, + { + "name": "TUESDAY", + "value": "Tuesday" + }, + { + "name": "WEDNESDAY", + "value": "Wednesday" + }, + { + "name": "THURSDAY", + "value": "Thursday" + }, + { + "name": "FRIDAY", + "value": "Friday" + }, + { + "name": "SATURDAY", + "value": "Saturday" + }, + { + "name": "SUNDAY", + "value": "Sunday" + } + ] + } + }, + "com.amazonaws.georoutes#DimensionCentimeters": { + "type": "long", + "traits": { + "smithy.api#default": 0, + "smithy.api#range": { + "min": 0, + "max": 4294967295 + } + } + }, + "com.amazonaws.georoutes#DistanceMeters": { + "type": "long", + "traits": { + "smithy.api#default": 0, + "smithy.api#range": { + "min": 0, + "max": 4294967295 + } + } + }, + "com.amazonaws.georoutes#DistanceThresholdList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#DistanceMeters", + "traits": { + "smithy.api#range": { + "min": 0, + "max": 300000 + } + } + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 5 + } + } + }, + "com.amazonaws.georoutes#DurationSeconds": { + "type": "long", + "traits": { + "smithy.api#default": 0, + "smithy.api#range": { + "min": 0, + "max": 4294967295 + } + } + }, + "com.amazonaws.georoutes#GeometryFormat": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "FLEXIBLE_POLYLINE", + "value": "FlexiblePolyline" + }, + { + "name": "SIMPLE", + "value": "Simple" + } + ] + } + }, + "com.amazonaws.georoutes#Heading": { + "type": "double", + "traits": { + "smithy.api#default": 0, + "smithy.api#range": { + "min": 0.0, + "max": 360.0 + } + } + }, + "com.amazonaws.georoutes#IndexList": { + "type": "list", + "member": { + "target": "smithy.api#Integer" + } + }, + "com.amazonaws.georoutes#InternalServerException": { + "type": "structure", + "members": { + "Message": { + "target": "smithy.api#String", + "traits": { + "smithy.api#jsonName": "message", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The request processing has failed because of an unknown error, exception or failure.

", + "smithy.api#error": "server", + "smithy.api#httpError": 500, + "smithy.api#retryable": {} + } + }, + "com.amazonaws.georoutes#Isoline": { + "type": "structure", + "members": { + "Connections": { + "target": "com.amazonaws.georoutes#IsolineConnectionList", + "traits": { + "smithy.api#documentation": "

Isolines may contain multiple components, if these components are connected by ferry links. These components are returned as separate polygons while the ferry links are returned as connections.

", + "smithy.api#required": {} + } + }, + "DistanceThreshold": { + "target": "com.amazonaws.georoutes#DistanceMeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Distance threshold corresponding to the calculated Isoline.

" + } + }, + "Geometries": { + "target": "com.amazonaws.georoutes#IsolineShapeGeometryList", + "traits": { + "smithy.api#documentation": "

Geometries for the Calculated isolines.

", + "smithy.api#required": {} + } + }, + "TimeThreshold": { + "target": "com.amazonaws.georoutes#DurationSeconds", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Time threshold corresponding to the calculated isoline.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Calculated isolines and associated properties.

" + } + }, + "com.amazonaws.georoutes#IsolineAllowOptions": { + "type": "structure", + "members": { + "Hot": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Allow Hot (High Occupancy Toll) lanes while calculating the route.

" + } + }, + "Hov": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Allow Hov (High Occupancy vehicle) lanes while calculating the route.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Features that are allowed while calculating. a route

" + } + }, + "com.amazonaws.georoutes#IsolineAvoidanceArea": { + "type": "structure", + "members": { + "Except": { + "target": "com.amazonaws.georoutes#IsolineAvoidanceAreaGeometryList", + "traits": { + "smithy.api#documentation": "

Exceptions to the provided avoidance geometry, to be included while calculating the route.

" + } + }, + "Geometry": { + "target": "com.amazonaws.georoutes#IsolineAvoidanceAreaGeometry", + "traits": { + "smithy.api#documentation": "

Geometry of the area to be avoided.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The area to be avoided.

" + } + }, + "com.amazonaws.georoutes#IsolineAvoidanceAreaGeometry": { + "type": "structure", + "members": { + "BoundingBox": { + "target": "com.amazonaws.georoutes#BoundingBox", + "traits": { + "smithy.api#documentation": "

Geometry defined as a bounding box. The first pair represents the X and Y coordinates\n (longitude and latitude,) of the southwest corner of the bounding box; the second pair\n represents the X and Y coordinates (longitude and latitude) of the northeast corner.

" + } + }, + "Corridor": { + "target": "com.amazonaws.georoutes#Corridor", + "traits": { + "smithy.api#documentation": "

Geometry defined as a corridor - a LineString with a radius that defines the width of the corridor.

" + } + }, + "Polygon": { + "target": "com.amazonaws.georoutes#LinearRings", + "traits": { + "smithy.api#documentation": "

A list of Polygon will be excluded for calculating isolines, the list can only contain 1 polygon.

", + "smithy.api#length": { + "min": 1, + "max": 1 + } + } + }, + "PolylineCorridor": { + "target": "com.amazonaws.georoutes#PolylineCorridor", + "traits": { + "smithy.api#documentation": "

Geometry defined as an encoded corridor – a polyline with a radius that defines the width of the corridor. For more information on polyline \nencoding, see https://github.com/heremaps/flexiblepolyline/blob/master/README.md.

" + } + }, + "PolylinePolygon": { + "target": "com.amazonaws.georoutes#PolylineRingList", + "traits": { + "smithy.api#documentation": "

A list of PolylinePolygon's that are excluded for calculating isolines, the list can only contain 1 polygon. For more information on polyline encoding, see https://github.com/heremaps/flexiblepolyline/blob/master/README.md. \n

", + "smithy.api#length": { + "min": 1, + "max": 1 + } + } + } + }, + "traits": { + "smithy.api#documentation": "

The avoidance geometry, to be included while calculating the route.

" + } + }, + "com.amazonaws.georoutes#IsolineAvoidanceAreaGeometryList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#IsolineAvoidanceAreaGeometry" + } + }, + "com.amazonaws.georoutes#IsolineAvoidanceAreaList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#IsolineAvoidanceArea" + } + }, + "com.amazonaws.georoutes#IsolineAvoidanceOptions": { + "type": "structure", + "members": { + "Areas": { + "target": "com.amazonaws.georoutes#IsolineAvoidanceAreaList", + "traits": { + "smithy.api#documentation": "

Areas to be avoided.

" + } + }, + "CarShuttleTrains": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Avoid car-shuttle-trains while calculating the route.

" + } + }, + "ControlledAccessHighways": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Avoid controlled access highways while calculating the route.

" + } + }, + "DirtRoads": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Avoid dirt roads while calculating the route.

" + } + }, + "Ferries": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Avoid ferries while calculating the route.

" + } + }, + "SeasonalClosure": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Avoid roads that have seasonal closure while calculating the route.

" + } + }, + "TollRoads": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Avoids roads where the specified toll transponders are the only mode of payment.

" + } + }, + "TollTransponders": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Avoids roads where the specified toll transponders are the only mode of payment.

" + } + }, + "TruckRoadTypes": { + "target": "com.amazonaws.georoutes#TruckRoadTypeList", + "traits": { + "smithy.api#documentation": "

Truck road type identifiers. BK1 through BK4 apply only to Sweden. \nA2,A4,B2,B4,C,D,ET2,ET4 apply only to Mexico.

\n \n

There are currently no other supported values as of 26th April 2024.

\n
" + } + }, + "Tunnels": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Avoid tunnels while calculating the route.

" + } + }, + "UTurns": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Avoid U-turns for calculation on highways and motorways.

" + } + }, + "ZoneCategories": { + "target": "com.amazonaws.georoutes#IsolineAvoidanceZoneCategoryList", + "traits": { + "smithy.api#documentation": "

Zone categories to be avoided.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Features that are avoided while calculating a route. Avoidance is on a best-case basis. If an\n avoidance can't be satisfied for a particular case, it violates the avoidance and the\n returned response produces a notice for the violation.

" + } + }, + "com.amazonaws.georoutes#IsolineAvoidanceZoneCategory": { + "type": "structure", + "members": { + "Category": { + "target": "com.amazonaws.georoutes#IsolineZoneCategory", + "traits": { + "smithy.api#documentation": "

Zone category to be avoided.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Zone category to be avoided.

" + } + }, + "com.amazonaws.georoutes#IsolineAvoidanceZoneCategoryList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#IsolineAvoidanceZoneCategory" + }, + "traits": { + "smithy.api#length": { + "max": 3 + }, + "smithy.api#uniqueItems": {} + } + }, + "com.amazonaws.georoutes#IsolineCarOptions": { + "type": "structure", + "members": { + "EngineType": { + "target": "com.amazonaws.georoutes#IsolineEngineType", + "traits": { + "smithy.api#documentation": "

Engine type of the vehicle.

" + } + }, + "LicensePlate": { + "target": "com.amazonaws.georoutes#IsolineVehicleLicensePlate", + "traits": { + "smithy.api#documentation": "

The vehicle License Plate.

" + } + }, + "MaxSpeed": { + "target": "com.amazonaws.georoutes#SpeedKilometersPerHour", + "traits": { + "smithy.api#default": null, + "smithy.api#documentation": "

Maximum speed.

\n

\n Unit: KilometersPerHour\n

", + "smithy.api#range": { + "min": 3.6, + "max": 252.0 + } + } + }, + "Occupancy": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#default": null, + "smithy.api#documentation": "

The number of occupants in the vehicle.

\n

Default Value: 1\n

", + "smithy.api#range": { + "min": 1 + } + } + } + }, + "traits": { + "smithy.api#documentation": "

Options for vehicles.

" + } + }, + "com.amazonaws.georoutes#IsolineConnection": { + "type": "structure", + "members": { + "FromPolygonIndex": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

Index of the polygon corresponding to the \"from\" component of the connection. The polygon is available from Isoline[].Geometries.

", + "smithy.api#range": { + "min": 0 + }, + "smithy.api#required": {} + } + }, + "Geometry": { + "target": "com.amazonaws.georoutes#IsolineConnectionGeometry", + "traits": { + "smithy.api#documentation": "

The isoline geometry.

", + "smithy.api#required": {} + } + }, + "ToPolygonIndex": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

Index of the polygon corresponding to the \"to\" component of the connection. The polygon is available from Isoline[].Geometries.

", + "smithy.api#range": { + "min": 0 + }, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Isolines may contain multiple components, if these components are connected by ferry links. These components are returned as separate polygons while the ferry links are returned as connections.

" + } + }, + "com.amazonaws.georoutes#IsolineConnectionGeometry": { + "type": "structure", + "members": { + "LineString": { + "target": "com.amazonaws.georoutes#LineString", + "traits": { + "smithy.api#documentation": "

An ordered list of positions used to plot a route on a map.

\n \n

LineString and Polyline are mutually exclusive properties.

\n
" + } + }, + "Polyline": { + "target": "com.amazonaws.georoutes#Polyline", + "traits": { + "smithy.api#documentation": "

An ordered list of positions used to plot a route on a map in a lossy compression format.

\n \n

LineString and Polyline are mutually exclusive properties.

\n
" + } + } + }, + "traits": { + "smithy.api#documentation": "

Geometry of the connection between different Isoline components.

" + } + }, + "com.amazonaws.georoutes#IsolineConnectionList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#IsolineConnection" + } + }, + "com.amazonaws.georoutes#IsolineDestinationOptions": { + "type": "structure", + "members": { + "AvoidActionsForDistance": { + "target": "com.amazonaws.georoutes#DistanceMeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Avoids actions for the provided distance. This is typically to consider for users in moving vehicles who may not have sufficient time to make an action at an origin or a destination.

" + } + }, + "Heading": { + "target": "com.amazonaws.georoutes#Heading", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

GPS Heading at the position.

" + } + }, + "Matching": { + "target": "com.amazonaws.georoutes#IsolineMatchingOptions", + "traits": { + "smithy.api#documentation": "

Options to configure matching the provided position to the road network.

" + } + }, + "SideOfStreet": { + "target": "com.amazonaws.georoutes#IsolineSideOfStreetOptions", + "traits": { + "smithy.api#documentation": "

Options to configure matching the provided position to a side of the street.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Destination related options.

" + } + }, + "com.amazonaws.georoutes#IsolineEngineType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "ELECTRIC", + "value": "Electric" + }, + { + "name": "INTERNAL_COMBUSTION", + "value": "InternalCombustion" + }, + { + "name": "PLUGIN_HYBRID", + "value": "PluginHybrid" + } + ] + } + }, + "com.amazonaws.georoutes#IsolineGranularityOptions": { + "type": "structure", + "members": { + "MaxPoints": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#default": null, + "smithy.api#documentation": "

Maximum number of points of returned Isoline.

", + "smithy.api#range": { + "min": 31 + } + } + }, + "MaxResolution": { + "target": "com.amazonaws.georoutes#DistanceMeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Maximum resolution of the returned isoline.

\n

\n Unit: centimeters\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Isoline granularity related options.

" + } + }, + "com.amazonaws.georoutes#IsolineHazardousCargoType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "COMBUSTIBLE", + "value": "Combustible" + }, + { + "name": "CORROSIVE", + "value": "Corrosive" + }, + { + "name": "EXPLOSIVE", + "value": "Explosive" + }, + { + "name": "FLAMMABLE", + "value": "Flammable" + }, + { + "name": "GAS", + "value": "Gas" + }, + { + "name": "HARMFUL_TO_WATER", + "value": "HarmfulToWater" + }, + { + "name": "ORGANIC", + "value": "Organic" + }, + { + "name": "OTHER", + "value": "Other" + }, + { + "name": "POISON", + "value": "Poison" + }, + { + "name": "POISONOUS_INHALATION", + "value": "PoisonousInhalation" + }, + { + "name": "RADIOACTIVE", + "value": "Radioactive" + } + ] + } + }, + "com.amazonaws.georoutes#IsolineHazardousCargoTypeList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#IsolineHazardousCargoType" + }, + "traits": { + "smithy.api#length": { + "max": 11 + }, + "smithy.api#uniqueItems": {} + } + }, + "com.amazonaws.georoutes#IsolineList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#Isoline" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 5 + } + } + }, + "com.amazonaws.georoutes#IsolineMatchingOptions": { + "type": "structure", + "members": { + "NameHint": { + "target": "com.amazonaws.georoutes#SensitiveString", + "traits": { + "smithy.api#documentation": "

Attempts to match the provided position to a road similar to the provided name.

" + } + }, + "OnRoadThreshold": { + "target": "com.amazonaws.georoutes#DistanceMeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

If the distance to a highway/bridge/tunnel/sliproad is within threshold, the waypoint will be snapped to the highway/bridge/tunnel/sliproad.

\n

\n Unit: meters\n

" + } + }, + "Radius": { + "target": "com.amazonaws.georoutes#DistanceMeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Considers all roads within the provided radius to match the provided destination to. The roads that are considered are determined by the provided Strategy.

\n

\n Unit: Meters\n

" + } + }, + "Strategy": { + "target": "com.amazonaws.georoutes#MatchingStrategy", + "traits": { + "smithy.api#documentation": "

Strategy that defines matching of the position onto the road network. MatchAny considers all roads possible, whereas MatchMostSignificantRoad matches to the most significant road.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Isoline matching related options.

" + } + }, + "com.amazonaws.georoutes#IsolineOptimizationObjective": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "ACCURATE_CALCULATION", + "value": "AccurateCalculation" + }, + { + "name": "BALANCED_CALCULATION", + "value": "BalancedCalculation" + }, + { + "name": "FAST_CALCULATION", + "value": "FastCalculation" + } + ] + } + }, + "com.amazonaws.georoutes#IsolineOriginOptions": { + "type": "structure", + "members": { + "AvoidActionsForDistance": { + "target": "com.amazonaws.georoutes#DistanceMeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Avoids actions for the provided distance. This is typically to consider for users in moving vehicles who may not have sufficient time to make an action at an origin or a destination.

" + } + }, + "Heading": { + "target": "com.amazonaws.georoutes#Heading", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

GPS Heading at the position.

" + } + }, + "Matching": { + "target": "com.amazonaws.georoutes#IsolineMatchingOptions", + "traits": { + "smithy.api#documentation": "

Options to configure matching the provided position to the road network.

" + } + }, + "SideOfStreet": { + "target": "com.amazonaws.georoutes#IsolineSideOfStreetOptions", + "traits": { + "smithy.api#documentation": "

Options to configure matching the provided position to a side of the street.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Options for the property.

" + } + }, + "com.amazonaws.georoutes#IsolineScooterOptions": { + "type": "structure", + "members": { + "EngineType": { + "target": "com.amazonaws.georoutes#IsolineEngineType", + "traits": { + "smithy.api#documentation": "

Engine type of the vehicle.

" + } + }, + "LicensePlate": { + "target": "com.amazonaws.georoutes#IsolineVehicleLicensePlate", + "traits": { + "smithy.api#documentation": "

The vehicle License Plate.

" + } + }, + "MaxSpeed": { + "target": "com.amazonaws.georoutes#SpeedKilometersPerHour", + "traits": { + "smithy.api#default": null, + "smithy.api#documentation": "

Maximum speed specified.

\n

\n Unit: KilometersPerHour\n

", + "smithy.api#range": { + "min": 3.6, + "max": 252.0 + } + } + }, + "Occupancy": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#default": null, + "smithy.api#documentation": "

The number of occupants in the vehicle.

\n

Default Value: 1\n

", + "smithy.api#range": { + "min": 1 + } + } + } + }, + "traits": { + "smithy.api#documentation": "

Options for the property.

" + } + }, + "com.amazonaws.georoutes#IsolineShapeGeometry": { + "type": "structure", + "members": { + "Polygon": { + "target": "com.amazonaws.georoutes#LinearRings", + "traits": { + "smithy.api#documentation": "

A list of Isoline Polygons, for each isoline polygon, it contains polygons of the first linear ring (the outer ring) and from 2nd item to the last item (the inner rings).

" + } + }, + "PolylinePolygon": { + "target": "com.amazonaws.georoutes#PolylineRingList", + "traits": { + "smithy.api#documentation": "

A list of Isoline PolylinePolygon, for each isoline PolylinePolygon, it contains PolylinePolygon \n of the first linear ring (the outer ring) and from 2nd item to the last item (the inner rings). \n For more information on polyline encoding, see https://github.com/heremaps/flexiblepolyline/blob/master/README.md.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Geometry of the connection between different Isoline components.

" + } + }, + "com.amazonaws.georoutes#IsolineShapeGeometryList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#IsolineShapeGeometry" + } + }, + "com.amazonaws.georoutes#IsolineSideOfStreetOptions": { + "type": "structure", + "members": { + "Position": { + "target": "com.amazonaws.georoutes#Position", + "traits": { + "smithy.api#documentation": "

Position defined as [longitude, latitude].

", + "smithy.api#required": {} + } + }, + "UseWith": { + "target": "com.amazonaws.georoutes#SideOfStreetMatchingStrategy", + "traits": { + "smithy.api#documentation": "

Strategy that defines when the side of street position should be used. AnyStreet will always use the provided position.

\n

Default Value: DividedStreetOnly\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Options to configure matching the provided position to a side of the street.

" + } + }, + "com.amazonaws.georoutes#IsolineThresholds": { + "type": "structure", + "members": { + "Distance": { + "target": "com.amazonaws.georoutes#DistanceThresholdList", + "traits": { + "smithy.api#documentation": "

Distance to be used for the isoline calculation.

" + } + }, + "Time": { + "target": "com.amazonaws.georoutes#TimeThresholdList", + "traits": { + "smithy.api#documentation": "

Time to be used for the isoline calculation.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Threshold to be used for the isoline calculation. Up to 3 thresholds per provided type\n can be requested.

" + } + }, + "com.amazonaws.georoutes#IsolineTrafficOptions": { + "type": "structure", + "members": { + "FlowEventThresholdOverride": { + "target": "com.amazonaws.georoutes#DurationSeconds", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Duration for which flow traffic is considered valid. For this period, the flow traffic is used over historical traffic data. Flow traffic refers to congestion, which changes very quickly. Duration in seconds for which flow traffic event would be considered valid. While flow traffic event is valid it will be used over the historical traffic data.

\n

\n Unit: seconds\n

" + } + }, + "Usage": { + "target": "com.amazonaws.georoutes#TrafficUsage", + "traits": { + "smithy.api#documentation": "

Determines if traffic should be used or ignored while calculating the route.

\n

Default Value: UseTrafficData\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Options related to traffic.

" + } + }, + "com.amazonaws.georoutes#IsolineTrailerOptions": { + "type": "structure", + "members": { + "AxleCount": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#default": null, + "smithy.api#documentation": "

Total number of axles of the vehicle.

", + "smithy.api#range": { + "min": 1 + } + } + }, + "TrailerCount": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#default": null, + "smithy.api#documentation": "

Number of trailers attached to the vehicle.

\n

Default Value: 0\n

", + "smithy.api#range": { + "min": 1, + "max": 255 + } + } + } + }, + "traits": { + "smithy.api#documentation": "

Trailer options corresponding to the vehicle.

" + } + }, + "com.amazonaws.georoutes#IsolineTravelMode": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "CAR", + "value": "Car" + }, + { + "name": "PEDESTRIAN", + "value": "Pedestrian" + }, + { + "name": "SCOOTER", + "value": "Scooter" + }, + { + "name": "TRUCK", + "value": "Truck" + } + ] + } + }, + "com.amazonaws.georoutes#IsolineTravelModeOptions": { + "type": "structure", + "members": { + "Car": { + "target": "com.amazonaws.georoutes#IsolineCarOptions", + "traits": { + "smithy.api#documentation": "

Travel mode options when the provided travel mode is \"Car\"

" + } + }, + "Scooter": { + "target": "com.amazonaws.georoutes#IsolineScooterOptions", + "traits": { + "smithy.api#documentation": "

Travel mode options when the provided travel mode is \"Scooter\"

" + } + }, + "Truck": { + "target": "com.amazonaws.georoutes#IsolineTruckOptions", + "traits": { + "smithy.api#documentation": "

Travel mode options when the provided travel mode is \"Truck\"

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Travel mode related options for the provided travel mode.

" + } + }, + "com.amazonaws.georoutes#IsolineTruckOptions": { + "type": "structure", + "members": { + "AxleCount": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#default": null, + "smithy.api#documentation": "

Total number of axles of the vehicle.

", + "smithy.api#range": { + "min": 2, + "max": 255 + } + } + }, + "EngineType": { + "target": "com.amazonaws.georoutes#IsolineEngineType", + "traits": { + "smithy.api#documentation": "

Engine type of the vehicle.

" + } + }, + "GrossWeight": { + "target": "com.amazonaws.georoutes#WeightKilograms", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Gross weight of the vehicle including trailers, and goods at capacity.

\n

\n Unit: Kilograms\n

" + } + }, + "HazardousCargos": { + "target": "com.amazonaws.georoutes#IsolineHazardousCargoTypeList", + "traits": { + "smithy.api#documentation": "

List of Hazardous cargo contained in the vehicle.

" + } + }, + "Height": { + "target": "com.amazonaws.georoutes#DimensionCentimeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Height of the vehicle.

\n

\n Unit: centimeters\n

", + "smithy.api#range": { + "min": 0, + "max": 5000 + } + } + }, + "HeightAboveFirstAxle": { + "target": "com.amazonaws.georoutes#DimensionCentimeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Height of the vehicle above its first axle.

\n

\n Unit: centimeters\n

", + "smithy.api#range": { + "min": 0, + "max": 5000 + } + } + }, + "KpraLength": { + "target": "com.amazonaws.georoutes#DimensionCentimeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Kingpin to rear axle length of the vehicle.

\n

\n Unit: centimeters\n

" + } + }, + "Length": { + "target": "com.amazonaws.georoutes#DimensionCentimeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Length of the vehicle.

\n

\n Unit: centimeters\n

", + "smithy.api#range": { + "min": 0, + "max": 30000 + } + } + }, + "LicensePlate": { + "target": "com.amazonaws.georoutes#IsolineVehicleLicensePlate", + "traits": { + "smithy.api#documentation": "

The vehicle License Plate.

" + } + }, + "MaxSpeed": { + "target": "com.amazonaws.georoutes#SpeedKilometersPerHour", + "traits": { + "smithy.api#default": null, + "smithy.api#documentation": "

Maximum speed specified.

\n

\n Unit: KilometersPerHour\n

", + "smithy.api#range": { + "min": 3.6, + "max": 252.0 + } + } + }, + "Occupancy": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#default": null, + "smithy.api#documentation": "

The number of occupants in the vehicle.

\n

Default Value: 1\n

", + "smithy.api#range": { + "min": 1 + } + } + }, + "PayloadCapacity": { + "target": "com.amazonaws.georoutes#WeightKilograms", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Payload capacity of the vehicle and trailers attached.

\n

\n Unit: kilograms\n

" + } + }, + "TireCount": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#default": null, + "smithy.api#documentation": "

Number of tires on the vehicle.

", + "smithy.api#range": { + "min": 1, + "max": 255 + } + } + }, + "Trailer": { + "target": "com.amazonaws.georoutes#IsolineTrailerOptions", + "traits": { + "smithy.api#documentation": "

Trailer options corresponding to the vehicle.

" + } + }, + "TruckType": { + "target": "com.amazonaws.georoutes#IsolineTruckType", + "traits": { + "smithy.api#documentation": "

Type of the truck.

" + } + }, + "TunnelRestrictionCode": { + "target": "com.amazonaws.georoutes#TunnelRestrictionCode", + "traits": { + "smithy.api#documentation": "

The tunnel restriction code.

\n

Tunnel categories in this list indicate the restrictions which apply to certain tunnels in Great Britain. \n They relate to the types of dangerous goods that can be transported through them.

\n
    \n
  • \n

    \n Tunnel Category B\n

    \n
      \n
    • \n

      \n Risk Level: Limited risk

      \n
    • \n
    • \n

      \n Restrictions: Few restrictions

      \n
    • \n
    \n
  • \n
  • \n

    \n Tunnel Category C\n

    \n
      \n
    • \n

      \n Risk Level: Medium risk

      \n
    • \n
    • \n

      \n Restrictions: Some restrictions

      \n
    • \n
    \n
  • \n
  • \n

    \n Tunnel Category D\n

    \n
      \n
    • \n

      \n Risk Level: High risk

      \n
    • \n
    • \n

      \n Restrictions: Many restrictions occur

      \n
    • \n
    \n
  • \n
  • \n

    \n Tunnel Category E\n

    \n
      \n
    • \n

      \n Risk Level: Very high risk

      \n
    • \n
    • \n

      \n Restrictions: Restricted tunnel

      \n
    • \n
    \n
  • \n
" + } + }, + "WeightPerAxle": { + "target": "com.amazonaws.georoutes#WeightKilograms", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Heaviest weight per axle irrespective of the axle type or the axle group. Meant for usage in countries where the differences in axle types or axle groups are not distinguished.

\n

\n Unit: Kilograms\n

" + } + }, + "WeightPerAxleGroup": { + "target": "com.amazonaws.georoutes#WeightPerAxleGroup", + "traits": { + "smithy.api#documentation": "

Specifies the total weight for the specified axle group. Meant for usage in countries that have different regulations based on the axle group type.

\n

\n Unit: Kilograms\n

" + } + }, + "Width": { + "target": "com.amazonaws.georoutes#DimensionCentimeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Width of the vehicle.

\n

\n Unit: centimeters\n

", + "smithy.api#range": { + "min": 0, + "max": 5000 + } + } + } + }, + "traits": { + "smithy.api#documentation": "

Travel mode options when the provided travel mode is \"Truck\"

" + } + }, + "com.amazonaws.georoutes#IsolineTruckType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "LIGHT_TRUCK", + "value": "LightTruck" + }, + { + "name": "STRAIGHT_TRUCK", + "value": "StraightTruck" + }, + { + "name": "TRACTOR", + "value": "Tractor" + } + ] + } + }, + "com.amazonaws.georoutes#IsolineVehicleLicensePlate": { + "type": "structure", + "members": { + "LastCharacter": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The last character of the License Plate.

", + "smithy.api#length": { + "min": 1, + "max": 1 + } + } + } + }, + "traits": { + "smithy.api#documentation": "

The vehicle license plate.

" + } + }, + "com.amazonaws.georoutes#IsolineZoneCategory": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "CONGESTION_PRICING", + "value": "CongestionPricing" + }, + { + "name": "ENVIRONMENTAL", + "value": "Environmental" + }, + { + "name": "VIGNETTE", + "value": "Vignette" + } + ] + } + }, + "com.amazonaws.georoutes#LanguageTag": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 2, + "max": 35 + } + } + }, + "com.amazonaws.georoutes#LanguageTagList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#LanguageTag" + } + }, + "com.amazonaws.georoutes#LineString": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#Position" + }, + "traits": { + "smithy.api#externalDocumentation": { + "Documentation": "https://tools.ietf.org/html/rfc7946#section-3.1.4" + }, + "smithy.api#length": { + "min": 2 + } + } + }, + "com.amazonaws.georoutes#LinearRing": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#Position" + }, + "traits": { + "smithy.api#externalDocumentation": { + "Documentation": "https://tools.ietf.org/html/rfc7946#section-3.1.6" + }, + "smithy.api#length": { + "min": 4 + } + } + }, + "com.amazonaws.georoutes#LinearRings": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#LinearRing" + }, + "traits": { + "smithy.api#length": { + "min": 1 + } + } + }, + "com.amazonaws.georoutes#LocalizedString": { + "type": "structure", + "members": { + "Language": { + "target": "com.amazonaws.georoutes#LanguageTag", + "traits": { + "smithy.api#documentation": "

A list of BCP 47 compliant language codes for the results to be rendered in. The request\n uses the regional default as the fallback if the requested language can't be\n provided.

" + } + }, + "Value": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The value of the localized string.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The localized string.

" + } + }, + "com.amazonaws.georoutes#LocalizedStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#LocalizedString" + } + }, + "com.amazonaws.georoutes#MatchingStrategy": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "MATCH_ANY", + "value": "MatchAny" + }, + { + "name": "MATCH_MOST_SIGNIFICANT_ROAD", + "value": "MatchMostSignificantRoad" + } + ] + } + }, + "com.amazonaws.georoutes#MeasurementSystem": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "METRIC", + "value": "Metric" + }, + { + "name": "IMPERIAL", + "value": "Imperial" + } + ] + } + }, + "com.amazonaws.georoutes#OptimizeWaypoints": { + "type": "operation", + "input": { + "target": "com.amazonaws.georoutes#OptimizeWaypointsRequest" + }, + "output": { + "target": "com.amazonaws.georoutes#OptimizeWaypointsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.georoutes#AccessDeniedException" + }, + { + "target": "com.amazonaws.georoutes#InternalServerException" + }, + { + "target": "com.amazonaws.georoutes#ThrottlingException" + }, + { + "target": "com.amazonaws.georoutes#ValidationException" + } + ], + "traits": { + "aws.api#dataPlane": {}, + "smithy.api#documentation": "

Calculates the optimal order to travel between a set of waypoints to minimize either the\n travel time or the distance travelled during the journey, based on road network\n restrictions and the traffic pattern data.

", + "smithy.api#http": { + "uri": "/optimize-waypoints", + "method": "POST" + }, + "smithy.api#readonly": {}, + "smithy.test#smokeTests": [ + { + "id": "OptimizeWaypointsSuccess", + "params": { + "Origin": [-123.253374, 49.351673], + "Destination": [-123.930756, 49.1314] + }, + "expect": { + "success": {} + }, + "vendorParamsShape": "aws.test#AwsVendorParams", + "vendorParams": { + "region": "us-west-2" + } + } + ] + } + }, + "com.amazonaws.georoutes#OptimizeWaypointsRequest": { + "type": "structure", + "members": { + "Avoid": { + "target": "com.amazonaws.georoutes#WaypointOptimizationAvoidanceOptions", + "traits": { + "smithy.api#documentation": "

Features that are avoided while calculating a route. Avoidance is on a best-case basis. If an\n avoidance can't be satisfied for a particular case, this setting is ignored.

" + } + }, + "DepartureTime": { + "target": "com.amazonaws.georoutes#TimestampWithTimezoneOffset", + "traits": { + "smithy.api#documentation": "

Departure time from the waypoint.

\n

Time format:YYYY-MM-DDThh:mm:ss.sssZ | YYYY-MM-DDThh:mm:ss.sss+hh:mm\n

\n

Examples:

\n

\n 2020-04-22T17:57:24Z\n

\n

\n 2020-04-22T17:57:24+02:00\n

" + } + }, + "Destination": { + "target": "com.amazonaws.georoutes#Position", + "traits": { + "smithy.api#documentation": "

The final position for the route in the World Geodetic System (WGS 84) format:\n [longitude, latitude].

" + } + }, + "DestinationOptions": { + "target": "com.amazonaws.georoutes#WaypointOptimizationDestinationOptions", + "traits": { + "smithy.api#documentation": "

Destination related options.

" + } + }, + "Driver": { + "target": "com.amazonaws.georoutes#WaypointOptimizationDriverOptions", + "traits": { + "smithy.api#documentation": "

Driver related options.

" + } + }, + "Exclude": { + "target": "com.amazonaws.georoutes#WaypointOptimizationExclusionOptions", + "traits": { + "smithy.api#documentation": "

Features to be strictly excluded while calculating the route.

" + } + }, + "Key": { + "target": "com.amazonaws.georoutes#ApiKey", + "traits": { + "smithy.api#documentation": "

Optional: The API key to be used for authorization. Either an API key or valid SigV4\n signature must be provided when making a request.

", + "smithy.api#httpQuery": "key" + } + }, + "OptimizeSequencingFor": { + "target": "com.amazonaws.georoutes#WaypointOptimizationSequencingObjective", + "traits": { + "smithy.api#documentation": "

Specifies the optimization criteria for the calculated sequence.

\n

Default Value: FastestRoute.

" + } + }, + "Origin": { + "target": "com.amazonaws.georoutes#Position", + "traits": { + "smithy.api#documentation": "

The start position for the route.

", + "smithy.api#required": {} + } + }, + "OriginOptions": { + "target": "com.amazonaws.georoutes#WaypointOptimizationOriginOptions", + "traits": { + "smithy.api#documentation": "

Origin related options.

" + } + }, + "Traffic": { + "target": "com.amazonaws.georoutes#WaypointOptimizationTrafficOptions", + "traits": { + "smithy.api#documentation": "

Traffic-related options.

" + } + }, + "TravelMode": { + "target": "com.amazonaws.georoutes#WaypointOptimizationTravelMode", + "traits": { + "smithy.api#documentation": "

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

\n

Default Value: Car\n

" + } + }, + "TravelModeOptions": { + "target": "com.amazonaws.georoutes#WaypointOptimizationTravelModeOptions", + "traits": { + "smithy.api#documentation": "

Travel mode related options for the provided travel mode.

" + } + }, + "Waypoints": { + "target": "com.amazonaws.georoutes#WaypointOptimizationWaypointList", + "traits": { + "smithy.api#documentation": "

List of waypoints between the Origin and Destination.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.georoutes#OptimizeWaypointsResponse": { + "type": "structure", + "members": { + "Connections": { + "target": "com.amazonaws.georoutes#WaypointOptimizationConnectionList", + "traits": { + "smithy.api#documentation": "

Details about the connection from one waypoint to the next, within the optimized sequence.

", + "smithy.api#required": {} + } + }, + "Distance": { + "target": "com.amazonaws.georoutes#DistanceMeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Overall distance to travel the whole sequence.

", + "smithy.api#required": {} + } + }, + "Duration": { + "target": "com.amazonaws.georoutes#DurationSeconds", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Overall duration to travel the whole sequence.

\n

\n Unit: seconds\n

", + "smithy.api#required": {} + } + }, + "ImpedingWaypoints": { + "target": "com.amazonaws.georoutes#WaypointOptimizationImpedingWaypointList", + "traits": { + "smithy.api#documentation": "

Returns waypoints that caused the optimization problem to fail, and the constraints that were unsatisfied leading to the failure.

", + "smithy.api#required": {} + } + }, + "OptimizedWaypoints": { + "target": "com.amazonaws.georoutes#WaypointOptimizationOptimizedWaypointList", + "traits": { + "smithy.api#documentation": "

Waypoints in the order of the optimized sequence.

", + "smithy.api#required": {} + } + }, + "PricingBucket": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The pricing bucket for which the query is charged at.

", + "smithy.api#httpHeader": "x-amz-geo-pricing-bucket", + "smithy.api#required": {} + } + }, + "TimeBreakdown": { + "target": "com.amazonaws.georoutes#WaypointOptimizationTimeBreakdown", + "traits": { + "smithy.api#documentation": "

Time breakdown for the sequence.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.georoutes#Polyline": { + "type": "string", + "traits": { + "smithy.api#externalDocumentation": { + "Documentation": "https://developers.google.com/maps/documentation/utilities/polylinealgorithm" + }, + "smithy.api#length": { + "min": 1 + }, + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.georoutes#PolylineCorridor": { + "type": "structure", + "members": { + "Polyline": { + "target": "com.amazonaws.georoutes#Polyline", + "traits": { + "smithy.api#documentation": "

An ordered list of positions used to plot a route on a map in a lossy compression format.

\n \n

LineString and Polyline are mutually exclusive properties.

\n
", + "smithy.api#required": {} + } + }, + "Radius": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

Considers all roads within the provided radius to match the provided destination to. The roads that are considered are determined by the provided Strategy.

\n

\n Unit: Meters\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Geometry defined as an encoded corridor - an encoded polyline with a radius that defines\n the width of the corridor.

", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.georoutes#PolylineRing": { + "type": "string", + "traits": { + "smithy.api#externalDocumentation": { + "Documentation": "https://tools.ietf.org/html/rfc7946#section-3.1.6" + }, + "smithy.api#length": { + "min": 1 + }, + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.georoutes#PolylineRingList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#PolylineRing" + }, + "traits": { + "smithy.api#length": { + "min": 1 + } + } + }, + "com.amazonaws.georoutes#Position": { + "type": "list", + "member": { + "target": "smithy.api#Double" + }, + "traits": { + "smithy.api#externalDocumentation": { + "Documentation": "https://tools.ietf.org/html/rfc7946#section-3.1.1" + }, + "smithy.api#length": { + "min": 2, + "max": 2 + }, + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.georoutes#Position23": { + "type": "list", + "member": { + "target": "smithy.api#Double" + }, + "traits": { + "smithy.api#externalDocumentation": { + "Documentation": "https://tools.ietf.org/html/rfc7946#section-3.1.1" + }, + "smithy.api#length": { + "min": 2, + "max": 3 + }, + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.georoutes#ProviderResource": { + "type": "resource", + "operations": [ + { + "target": "com.amazonaws.georoutes#CalculateIsolines" + }, + { + "target": "com.amazonaws.georoutes#CalculateRouteMatrix" + }, + { + "target": "com.amazonaws.georoutes#CalculateRoutes" + }, + { + "target": "com.amazonaws.georoutes#OptimizeWaypoints" + }, + { + "target": "com.amazonaws.georoutes#SnapToRoads" + } + ] + }, + "com.amazonaws.georoutes#RoadSnapHazardousCargoType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "COMBUSTIBLE", + "value": "Combustible" + }, + { + "name": "CORROSIVE", + "value": "Corrosive" + }, + { + "name": "EXPLOSIVE", + "value": "Explosive" + }, + { + "name": "FLAMMABLE", + "value": "Flammable" + }, + { + "name": "GAS", + "value": "Gas" + }, + { + "name": "HARMFUL_TO_WATER", + "value": "HarmfulToWater" + }, + { + "name": "ORGANIC", + "value": "Organic" + }, + { + "name": "OTHER", + "value": "Other" + }, + { + "name": "POISON", + "value": "Poison" + }, + { + "name": "POISONOUS_INHALATION", + "value": "PoisonousInhalation" + }, + { + "name": "RADIOACTIVE", + "value": "Radioactive" + } + ] + } + }, + "com.amazonaws.georoutes#RoadSnapHazardousCargoTypeList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RoadSnapHazardousCargoType" + }, + "traits": { + "smithy.api#length": { + "max": 11 + }, + "smithy.api#uniqueItems": {} + } + }, + "com.amazonaws.georoutes#RoadSnapNotice": { + "type": "structure", + "members": { + "Code": { + "target": "com.amazonaws.georoutes#RoadSnapNoticeCode", + "traits": { + "smithy.api#documentation": "

Code corresponding to the issue.

", + "smithy.api#required": {} + } + }, + "Title": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The notice title.

", + "smithy.api#required": {} + } + }, + "TracePointIndexes": { + "target": "com.amazonaws.georoutes#RoadSnapTracePointIndexList", + "traits": { + "smithy.api#documentation": "

TracePoint indices for which the provided notice code corresponds to.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Notices provide information around factors that may have influenced snapping in a manner atypical to the standard use cases.

" + } + }, + "com.amazonaws.georoutes#RoadSnapNoticeCode": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "TRACE_POINTS_HEADING_IGNORED", + "value": "TracePointsHeadingIgnored" + }, + { + "name": "TRACE_POINTS_IGNORED", + "value": "TracePointsIgnored" + }, + { + "name": "TRACE_POINTS_MOVED_BY_LARGE_DISTANCE", + "value": "TracePointsMovedByLargeDistance" + }, + { + "name": "TRACE_POINTS_NOT_MATCHED", + "value": "TracePointsNotMatched" + }, + { + "name": "TRACE_POINTS_OUT_OF_SEQUENCE", + "value": "TracePointsOutOfSequence" + }, + { + "name": "TRACE_POINTS_SPEED_ESTIMATED", + "value": "TracePointsSpeedEstimated" + }, + { + "name": "TRACE_POINTS_SPEED_IGNORED", + "value": "TracePointsSpeedIgnored" + } + ] + } + }, + "com.amazonaws.georoutes#RoadSnapNoticeList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RoadSnapNotice" + } + }, + "com.amazonaws.georoutes#RoadSnapSnappedGeometry": { + "type": "structure", + "members": { + "LineString": { + "target": "com.amazonaws.georoutes#LineString", + "traits": { + "smithy.api#documentation": "

An ordered list of positions used to plot a route on a map.

\n \n

LineString and Polyline are mutually exclusive properties.

\n
" + } + }, + "Polyline": { + "target": "com.amazonaws.georoutes#Polyline", + "traits": { + "smithy.api#documentation": "

An ordered list of positions used to plot a route on a map in a lossy compression format.

\n \n

LineString and Polyline are mutually exclusive properties.

\n
" + } + } + }, + "traits": { + "smithy.api#documentation": "

Interpolated geometry for the snapped route that is overlay-able onto a map.

" + } + }, + "com.amazonaws.georoutes#RoadSnapSnappedTracePoint": { + "type": "structure", + "members": { + "Confidence": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#documentation": "

Confidence value for the correctness of this point match.

", + "smithy.api#range": { + "min": 0, + "max": 1 + }, + "smithy.api#required": {} + } + }, + "OriginalPosition": { + "target": "com.amazonaws.georoutes#Position", + "traits": { + "smithy.api#documentation": "

Position of the TracePoint provided within the request, at the same index.

", + "smithy.api#required": {} + } + }, + "SnappedPosition": { + "target": "com.amazonaws.georoutes#Position", + "traits": { + "smithy.api#documentation": "

Snapped position of the TracePoint provided within the request, at the same index.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

TracePoints snapped onto the road network.

" + } + }, + "com.amazonaws.georoutes#RoadSnapSnappedTracePointList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RoadSnapSnappedTracePoint" + } + }, + "com.amazonaws.georoutes#RoadSnapTracePoint": { + "type": "structure", + "members": { + "Heading": { + "target": "com.amazonaws.georoutes#Heading", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

GPS Heading at the position.

" + } + }, + "Position": { + "target": "com.amazonaws.georoutes#Position", + "traits": { + "smithy.api#documentation": "

Position defined as [longitude, latitude].

", + "smithy.api#required": {} + } + }, + "Speed": { + "target": "com.amazonaws.georoutes#SpeedKilometersPerHour", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Speed at the specified trace point .

\n

\n Unit: KilometersPerHour\n

" + } + }, + "Timestamp": { + "target": "com.amazonaws.georoutes#TimestampWithTimezoneOffset", + "traits": { + "smithy.api#documentation": "

Timestamp of the event.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

TracePoint indices for which the provided notice code corresponds to.

" + } + }, + "com.amazonaws.georoutes#RoadSnapTracePointIndexList": { + "type": "list", + "member": { + "target": "smithy.api#Integer" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1000 + } + } + }, + "com.amazonaws.georoutes#RoadSnapTracePointList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RoadSnapTracePoint" + } + }, + "com.amazonaws.georoutes#RoadSnapTrailerOptions": { + "type": "structure", + "members": { + "TrailerCount": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

Number of trailers attached to the vehicle.

\n

Default Value: 0\n

", + "smithy.api#range": { + "min": 0, + "max": 255 + } + } + } + }, + "traits": { + "smithy.api#documentation": "

Trailer options corresponding to the vehicle.

" + } + }, + "com.amazonaws.georoutes#RoadSnapTravelMode": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "CAR", + "value": "Car" + }, + { + "name": "PEDESTRIAN", + "value": "Pedestrian" + }, + { + "name": "SCOOTER", + "value": "Scooter" + }, + { + "name": "TRUCK", + "value": "Truck" + } + ] + } + }, + "com.amazonaws.georoutes#RoadSnapTravelModeOptions": { + "type": "structure", + "members": { + "Truck": { + "target": "com.amazonaws.georoutes#RoadSnapTruckOptions", + "traits": { + "smithy.api#documentation": "

Travel mode options when the provided travel mode is \"Truck\".

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Travel mode related options for the provided travel mode.

" + } + }, + "com.amazonaws.georoutes#RoadSnapTruckOptions": { + "type": "structure", + "members": { + "GrossWeight": { + "target": "com.amazonaws.georoutes#WeightKilograms", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Gross weight of the vehicle including trailers, and goods at capacity.

\n

\n Unit: Kilograms\n

" + } + }, + "HazardousCargos": { + "target": "com.amazonaws.georoutes#RoadSnapHazardousCargoTypeList", + "traits": { + "smithy.api#documentation": "

List of Hazardous cargos contained in the vehicle.

" + } + }, + "Height": { + "target": "com.amazonaws.georoutes#DimensionCentimeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Height of the vehicle.

\n

\n Unit: centimeters\n

", + "smithy.api#range": { + "min": 0, + "max": 5000 + } + } + }, + "Length": { + "target": "com.amazonaws.georoutes#DimensionCentimeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Length of the vehicle.

\n

\n Unit: centimeters\n

", + "smithy.api#range": { + "min": 0, + "max": 30000 + } + } + }, + "Trailer": { + "target": "com.amazonaws.georoutes#RoadSnapTrailerOptions", + "traits": { + "smithy.api#documentation": "

Trailer options corresponding to the vehicle.

" + } + }, + "TunnelRestrictionCode": { + "target": "com.amazonaws.georoutes#TunnelRestrictionCode", + "traits": { + "smithy.api#documentation": "

The tunnel restriction code.

\n

Tunnel categories in this list indicate the restrictions which apply to certain tunnels in Great Britain. \n They relate to the types of dangerous goods that can be transported through them.

\n
    \n
  • \n

    \n Tunnel Category B\n

    \n
      \n
    • \n

      \n Risk Level: Limited risk

      \n
    • \n
    • \n

      \n Restrictions: Few restrictions

      \n
    • \n
    \n
  • \n
  • \n

    \n Tunnel Category C\n

    \n
      \n
    • \n

      \n Risk Level: Medium risk

      \n
    • \n
    • \n

      \n Restrictions: Some restrictions

      \n
    • \n
    \n
  • \n
  • \n

    \n Tunnel Category D\n

    \n
      \n
    • \n

      \n Risk Level: High risk

      \n
    • \n
    • \n

      \n Restrictions: Many restrictions occur

      \n
    • \n
    \n
  • \n
  • \n

    \n Tunnel Category E\n

    \n
      \n
    • \n

      \n Risk Level: Very high risk

      \n
    • \n
    • \n

      \n Restrictions: Restricted tunnel

      \n
    • \n
    \n
  • \n
" + } + }, + "Width": { + "target": "com.amazonaws.georoutes#DimensionCentimeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Width of the vehicle in centimenters.

", + "smithy.api#range": { + "min": 0, + "max": 5000 + } + } + } + }, + "traits": { + "smithy.api#documentation": "

Travel mode options when the provided travel mode is \"Truck\".

" + } + }, + "com.amazonaws.georoutes#RoundaboutAngle": { + "type": "double", + "traits": { + "smithy.api#default": 0, + "smithy.api#range": { + "min": -360, + "max": 360 + } + } + }, + "com.amazonaws.georoutes#Route": { + "type": "structure", + "members": { + "Legs": { + "target": "com.amazonaws.georoutes#RouteLegList", + "traits": { + "smithy.api#documentation": "

A leg is a section of a route from one waypoint to the next. A leg could be of type Vehicle, Pedestrian or Ferry.\nLegs of different types could occur together within a single route. For example, a car employing the use of a Ferry will contain Vehicle legs corresponding to journey on land, and Ferry legs corresponding to the journey via Ferry.

", + "smithy.api#required": {} + } + }, + "MajorRoadLabels": { + "target": "com.amazonaws.georoutes#RouteMajorRoadLabelList", + "traits": { + "smithy.api#documentation": "

Important labels including names and route numbers that differentiate the current route from the alternatives presented.

", + "smithy.api#length": { + "min": 0, + "max": 2 + }, + "smithy.api#required": {} + } + }, + "Summary": { + "target": "com.amazonaws.georoutes#RouteSummary", + "traits": { + "smithy.api#documentation": "

Summarized details of the leg.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The route.

" + } + }, + "com.amazonaws.georoutes#RouteAllowOptions": { + "type": "structure", + "members": { + "Hot": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Allow Hot (High Occupancy Toll) lanes while calculating the route.

" + } + }, + "Hov": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Allow Hov (High Occupancy vehicle) lanes while calculating the route.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Features that are allowed while calculating. a route

" + } + }, + "com.amazonaws.georoutes#RouteAvoidanceArea": { + "type": "structure", + "members": { + "Except": { + "target": "com.amazonaws.georoutes#RouteAvoidanceAreaGeometryList", + "traits": { + "smithy.api#documentation": "

Exceptions to the provided avoidance geometry, to be included while calculating the route.

" + } + }, + "Geometry": { + "target": "com.amazonaws.georoutes#RouteAvoidanceAreaGeometry", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Areas to be avoided.

" + } + }, + "com.amazonaws.georoutes#RouteAvoidanceAreaGeometry": { + "type": "structure", + "members": { + "Corridor": { + "target": "com.amazonaws.georoutes#Corridor", + "traits": { + "smithy.api#documentation": "

Geometry defined as a corridor - a LineString with a radius that defines the width of the corridor.

" + } + }, + "BoundingBox": { + "target": "com.amazonaws.georoutes#BoundingBox", + "traits": { + "smithy.api#documentation": "

Geometry defined as a bounding box. The first pair represents the X and Y coordinates\n (longitude and latitude,) of the southwest corner of the bounding box; the second pair\n represents the X and Y coordinates (longitude and latitude) of the northeast corner.

" + } + }, + "Polygon": { + "target": "com.amazonaws.georoutes#LinearRings", + "traits": { + "smithy.api#documentation": "

Geometry defined as a polygon with only one linear ring.

", + "smithy.api#length": { + "min": 1, + "max": 1 + } + } + }, + "PolylineCorridor": { + "target": "com.amazonaws.georoutes#PolylineCorridor", + "traits": { + "smithy.api#documentation": "

Geometry defined as an encoded corridor - an encoded polyline with a radius that defines\n the width of the corridor.

" + } + }, + "PolylinePolygon": { + "target": "com.amazonaws.georoutes#PolylineRingList", + "traits": { + "smithy.api#documentation": "

A list of Isoline PolylinePolygon, for each isoline PolylinePolygon, it contains PolylinePolygon \n of the first linear ring (the outer ring) and from 2nd item to the last item (the inner rings). \n For more information on polyline encoding, see https://github.com/heremaps/flexiblepolyline/blob/master/README.md.

", + "smithy.api#length": { + "min": 1, + "max": 1 + } + } + } + }, + "traits": { + "smithy.api#documentation": "

Geometry of the area to be avoided.

" + } + }, + "com.amazonaws.georoutes#RouteAvoidanceAreaGeometryList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RouteAvoidanceAreaGeometry" + } + }, + "com.amazonaws.georoutes#RouteAvoidanceAreaList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RouteAvoidanceArea" + } + }, + "com.amazonaws.georoutes#RouteAvoidanceOptions": { + "type": "structure", + "members": { + "Areas": { + "target": "com.amazonaws.georoutes#RouteAvoidanceAreaList", + "traits": { + "smithy.api#documentation": "

Areas to be avoided.

" + } + }, + "CarShuttleTrains": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Avoid car-shuttle-trains while calculating the route.

" + } + }, + "ControlledAccessHighways": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Avoid controlled access highways while calculating the route.

" + } + }, + "DirtRoads": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Avoid dirt roads while calculating the route.

" + } + }, + "Ferries": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Avoid ferries while calculating the route.

" + } + }, + "SeasonalClosure": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Avoid roads that have seasonal closure while calculating the route.

" + } + }, + "TollRoads": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Avoids roads where the specified toll transponders are the only mode of payment.

" + } + }, + "TollTransponders": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Avoids roads where the specified toll transponders are the only mode of payment.

" + } + }, + "TruckRoadTypes": { + "target": "com.amazonaws.georoutes#TruckRoadTypeList", + "traits": { + "smithy.api#documentation": "

Truck road type identifiers. BK1 through BK4 apply only to Sweden. \n A2,A4,B2,B4,C,D,ET2,ET4 apply only to Mexico.

\n \n

There are currently no other supported values as of 26th April 2024.

\n
" + } + }, + "Tunnels": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Avoid tunnels while calculating the route.

" + } + }, + "UTurns": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Avoid U-turns for calculation on highways and motorways.

" + } + }, + "ZoneCategories": { + "target": "com.amazonaws.georoutes#RouteAvoidanceZoneCategoryList", + "traits": { + "smithy.api#documentation": "

Zone categories to be avoided.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Options related to areas to be avoided.

" + } + }, + "com.amazonaws.georoutes#RouteAvoidanceZoneCategory": { + "type": "structure", + "members": { + "Category": { + "target": "com.amazonaws.georoutes#RouteZoneCategory", + "traits": { + "smithy.api#documentation": "

Zone category to be avoided.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Zone categories to be avoided.

" + } + }, + "com.amazonaws.georoutes#RouteAvoidanceZoneCategoryList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RouteAvoidanceZoneCategory" + }, + "traits": { + "smithy.api#length": { + "max": 3 + } + } + }, + "com.amazonaws.georoutes#RouteCarOptions": { + "type": "structure", + "members": { + "EngineType": { + "target": "com.amazonaws.georoutes#RouteEngineType", + "traits": { + "smithy.api#documentation": "

Engine type of the vehicle.

" + } + }, + "LicensePlate": { + "target": "com.amazonaws.georoutes#RouteVehicleLicensePlate", + "traits": { + "smithy.api#documentation": "

The vehicle License Plate.

" + } + }, + "MaxSpeed": { + "target": "com.amazonaws.georoutes#SpeedKilometersPerHour", + "traits": { + "smithy.api#default": null, + "smithy.api#documentation": "

Maximum speed specified.

\n

\n Unit: KilometersPerHour\n

", + "smithy.api#range": { + "min": 3.6, + "max": 252.0 + } + } + }, + "Occupancy": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#default": null, + "smithy.api#documentation": "

The number of occupants in the vehicle.

\n

Default Value: 1\n

", + "smithy.api#range": { + "min": 1 + } + } + } + }, + "traits": { + "smithy.api#documentation": "

Travel mode options when the provided travel mode is \"Car\"

" + } + }, + "com.amazonaws.georoutes#RouteContinueHighwayStepDetails": { + "type": "structure", + "members": { + "Intersection": { + "target": "com.amazonaws.georoutes#LocalizedStringList", + "traits": { + "smithy.api#documentation": "

Name of the intersection, if applicable to the step.

", + "smithy.api#required": {} + } + }, + "SteeringDirection": { + "target": "com.amazonaws.georoutes#RouteSteeringDirection", + "traits": { + "smithy.api#documentation": "

Steering direction for the step.

" + } + }, + "TurnAngle": { + "target": "com.amazonaws.georoutes#TurnAngle", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Angle of the turn.

" + } + }, + "TurnIntensity": { + "target": "com.amazonaws.georoutes#RouteTurnIntensity", + "traits": { + "smithy.api#documentation": "

Intensity of the turn.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details related to the continue highway step.

" + } + }, + "com.amazonaws.georoutes#RouteContinueStepDetails": { + "type": "structure", + "members": { + "Intersection": { + "target": "com.amazonaws.georoutes#LocalizedStringList", + "traits": { + "smithy.api#documentation": "

Name of the intersection, if applicable to the step.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Details related to the continue step.

" + } + }, + "com.amazonaws.georoutes#RouteDestinationOptions": { + "type": "structure", + "members": { + "AvoidActionsForDistance": { + "target": "com.amazonaws.georoutes#DistanceMeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Avoids actions for the provided distance. This is typically to consider for users in moving vehicles who may not have sufficient time to make an action at an origin or a destination.

", + "smithy.api#range": { + "max": 2000 + } + } + }, + "AvoidUTurns": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Avoid U-turns for calculation on highways and motorways.

" + } + }, + "Heading": { + "target": "com.amazonaws.georoutes#Heading", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

GPS Heading at the position.

" + } + }, + "Matching": { + "target": "com.amazonaws.georoutes#RouteMatchingOptions", + "traits": { + "smithy.api#documentation": "

Options to configure matching the provided position to the road network.

" + } + }, + "SideOfStreet": { + "target": "com.amazonaws.georoutes#RouteSideOfStreetOptions", + "traits": { + "smithy.api#documentation": "

Options to configure matching the provided position to a side of the street.

" + } + }, + "StopDuration": { + "target": "com.amazonaws.georoutes#DurationSeconds", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Duration of the stop.

\n

\n Unit: seconds\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Options related to the destination.

" + } + }, + "com.amazonaws.georoutes#RouteDirection": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "EAST", + "value": "East" + }, + { + "name": "NORTH", + "value": "North" + }, + { + "name": "SOUTH", + "value": "South" + }, + { + "name": "WEST", + "value": "West" + } + ] + } + }, + "com.amazonaws.georoutes#RouteDriverOptions": { + "type": "structure", + "members": { + "Schedule": { + "target": "com.amazonaws.georoutes#RouteDriverScheduleIntervalList", + "traits": { + "smithy.api#documentation": "

Driver work-rest schedule. Stops are added to fulfil the provided rest schedule.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Driver related options.

" + } + }, + "com.amazonaws.georoutes#RouteDriverScheduleInterval": { + "type": "structure", + "members": { + "DriveDuration": { + "target": "com.amazonaws.georoutes#DurationSeconds", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Maximum allowed driving time before stopping to rest.

\n

\n Unit: seconds\n

", + "smithy.api#required": {} + } + }, + "RestDuration": { + "target": "com.amazonaws.georoutes#DurationSeconds", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Resting time before the driver can continue driving.

\n

\n Unit: seconds\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Interval of the driver work-rest schedule. \n Stops are added to fulfil the provided rest schedule.

" + } + }, + "com.amazonaws.georoutes#RouteDriverScheduleIntervalList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RouteDriverScheduleInterval" + } + }, + "com.amazonaws.georoutes#RouteEmissionType": { + "type": "structure", + "members": { + "Co2EmissionClass": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The CO 2 emission classes.

" + } + }, + "Type": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

Type of the emission.

\n

\n Valid values: Euro1, Euro2, Euro3, Euro4, Euro5, Euro6, EuroEev\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Type of the emission.

\n

\n Valid values: Euro1, Euro2, Euro3, Euro4, Euro5, Euro6, EuroEev\n

" + } + }, + "com.amazonaws.georoutes#RouteEngineType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "ELECTRIC", + "value": "Electric" + }, + { + "name": "INTERNAL_COMBUSTION", + "value": "InternalCombustion" + }, + { + "name": "PLUGIN_HYBRID", + "value": "PluginHybrid" + } + ] + } + }, + "com.amazonaws.georoutes#RouteEnterHighwayStepDetails": { + "type": "structure", + "members": { + "Intersection": { + "target": "com.amazonaws.georoutes#LocalizedStringList", + "traits": { + "smithy.api#documentation": "

Name of the intersection, if applicable to the step.

", + "smithy.api#required": {} + } + }, + "SteeringDirection": { + "target": "com.amazonaws.georoutes#RouteSteeringDirection", + "traits": { + "smithy.api#documentation": "

Steering direction for the step.

" + } + }, + "TurnAngle": { + "target": "com.amazonaws.georoutes#TurnAngle", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Angle of the turn.

" + } + }, + "TurnIntensity": { + "target": "com.amazonaws.georoutes#RouteTurnIntensity", + "traits": { + "smithy.api#documentation": "

Intensity of the turn.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details related to the enter highway step.

" + } + }, + "com.amazonaws.georoutes#RouteExclusionOptions": { + "type": "structure", + "members": { + "Countries": { + "target": "com.amazonaws.georoutes#CountryCodeList", + "traits": { + "smithy.api#documentation": "

List of countries to be avoided defined by two-letter or three-letter country codes.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Exclusion options for the route.

" + } + }, + "com.amazonaws.georoutes#RouteExitStepDetails": { + "type": "structure", + "members": { + "Intersection": { + "target": "com.amazonaws.georoutes#LocalizedStringList", + "traits": { + "smithy.api#documentation": "

Name of the intersection, if applicable to the step.

", + "smithy.api#required": {} + } + }, + "RelativeExit": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#default": null, + "smithy.api#documentation": "

Exit to be taken.

", + "smithy.api#range": { + "min": 1, + "max": 12 + } + } + }, + "SteeringDirection": { + "target": "com.amazonaws.georoutes#RouteSteeringDirection", + "traits": { + "smithy.api#documentation": "

Steering direction for the step.

" + } + }, + "TurnAngle": { + "target": "com.amazonaws.georoutes#TurnAngle", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Angle of the turn.

" + } + }, + "TurnIntensity": { + "target": "com.amazonaws.georoutes#RouteTurnIntensity", + "traits": { + "smithy.api#documentation": "

Intensity of the turn.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details related to the exit step.

" + } + }, + "com.amazonaws.georoutes#RouteFerryAfterTravelStep": { + "type": "structure", + "members": { + "Duration": { + "target": "com.amazonaws.georoutes#DurationSeconds", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Duration of the step.

\n

\n Unit: seconds\n

", + "smithy.api#required": {} + } + }, + "Instruction": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

Brief description of the step in the requested language.

\n \n

Only available when the TravelStepType is Default.

\n
" + } + }, + "Type": { + "target": "com.amazonaws.georoutes#RouteFerryAfterTravelStepType", + "traits": { + "smithy.api#documentation": "

Type of the step.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Steps of a leg that must be performed after the travel portion of the leg.

" + } + }, + "com.amazonaws.georoutes#RouteFerryAfterTravelStepList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RouteFerryAfterTravelStep" + } + }, + "com.amazonaws.georoutes#RouteFerryAfterTravelStepType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "DEBOARD", + "value": "Deboard" + } + ] + } + }, + "com.amazonaws.georoutes#RouteFerryArrival": { + "type": "structure", + "members": { + "Place": { + "target": "com.amazonaws.georoutes#RouteFerryPlace", + "traits": { + "smithy.api#documentation": "

The place details.

", + "smithy.api#required": {} + } + }, + "Time": { + "target": "com.amazonaws.georoutes#TimestampWithTimezoneOffset", + "traits": { + "smithy.api#documentation": "

The time.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details corresponding to the arrival for the leg.

" + } + }, + "com.amazonaws.georoutes#RouteFerryBeforeTravelStep": { + "type": "structure", + "members": { + "Duration": { + "target": "com.amazonaws.georoutes#DurationSeconds", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Duration of the step.

\n

\n Unit: seconds\n

", + "smithy.api#required": {} + } + }, + "Instruction": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

Brief description of the step in the requested language.

\n \n

Only available when the TravelStepType is Default.

\n
" + } + }, + "Type": { + "target": "com.amazonaws.georoutes#RouteFerryBeforeTravelStepType", + "traits": { + "smithy.api#documentation": "

Type of the step.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Steps of a leg that must be performed before the travel portion of the leg.

" + } + }, + "com.amazonaws.georoutes#RouteFerryBeforeTravelStepList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RouteFerryBeforeTravelStep" + } + }, + "com.amazonaws.georoutes#RouteFerryBeforeTravelStepType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "BOARD", + "value": "Board" + } + ] + } + }, + "com.amazonaws.georoutes#RouteFerryDeparture": { + "type": "structure", + "members": { + "Place": { + "target": "com.amazonaws.georoutes#RouteFerryPlace", + "traits": { + "smithy.api#documentation": "

The place details.

", + "smithy.api#required": {} + } + }, + "Time": { + "target": "com.amazonaws.georoutes#TimestampWithTimezoneOffset", + "traits": { + "smithy.api#documentation": "

The time.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details corresponding to the departure for the leg.

" + } + }, + "com.amazonaws.georoutes#RouteFerryLegDetails": { + "type": "structure", + "members": { + "AfterTravelSteps": { + "target": "com.amazonaws.georoutes#RouteFerryAfterTravelStepList", + "traits": { + "smithy.api#documentation": "

Steps of a leg that must be performed after the travel portion of the leg.

", + "smithy.api#required": {} + } + }, + "Arrival": { + "target": "com.amazonaws.georoutes#RouteFerryArrival", + "traits": { + "smithy.api#documentation": "

Details corresponding to the arrival for the leg.

", + "smithy.api#required": {} + } + }, + "BeforeTravelSteps": { + "target": "com.amazonaws.georoutes#RouteFerryBeforeTravelStepList", + "traits": { + "smithy.api#documentation": "

Steps of a leg that must be performed before the travel portion of the leg.

", + "smithy.api#required": {} + } + }, + "Departure": { + "target": "com.amazonaws.georoutes#RouteFerryDeparture", + "traits": { + "smithy.api#documentation": "

Details corresponding to the departure for the leg.

", + "smithy.api#required": {} + } + }, + "Notices": { + "target": "com.amazonaws.georoutes#RouteFerryNoticeList", + "traits": { + "smithy.api#documentation": "

Notices are additional information returned that indicate issues that occurred during route calculation.

", + "smithy.api#required": {} + } + }, + "PassThroughWaypoints": { + "target": "com.amazonaws.georoutes#RoutePassThroughWaypointList", + "traits": { + "smithy.api#documentation": "

Waypoints that were passed through during the leg. This includes the waypoints that were configured with the PassThrough option.

", + "smithy.api#required": {} + } + }, + "RouteName": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

Route name of the ferry line.

" + } + }, + "Spans": { + "target": "com.amazonaws.georoutes#RouteFerrySpanList", + "traits": { + "smithy.api#documentation": "

Spans that were computed for the requested SpanAdditionalFeatures.

", + "smithy.api#required": {} + } + }, + "Summary": { + "target": "com.amazonaws.georoutes#RouteFerrySummary", + "traits": { + "smithy.api#documentation": "

Summarized details of the leg.

" + } + }, + "TravelSteps": { + "target": "com.amazonaws.georoutes#RouteFerryTravelStepList", + "traits": { + "smithy.api#documentation": "

Steps of a leg that must be performed before the travel portion of the leg.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

FerryLegDetails is populated when the Leg type is Ferry, and provides additional\n information that is specific

" + } + }, + "com.amazonaws.georoutes#RouteFerryNotice": { + "type": "structure", + "members": { + "Code": { + "target": "com.amazonaws.georoutes#RouteFerryNoticeCode", + "traits": { + "smithy.api#documentation": "

Code corresponding to the issue.

", + "smithy.api#required": {} + } + }, + "Impact": { + "target": "com.amazonaws.georoutes#RouteNoticeImpact", + "traits": { + "smithy.api#documentation": "

Impact corresponding to the issue. While Low impact notices can be safely ignored, High impact notices must be evaluated further to determine the impact.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Notices are additional information returned that indicate issues that occurred during route calculation.

" + } + }, + "com.amazonaws.georoutes#RouteFerryNoticeCode": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "ACCURATE_POLYLINE_UNAVAILABLE", + "value": "AccuratePolylineUnavailable" + }, + { + "name": "NO_SCHEDULE", + "value": "NoSchedule" + }, + { + "name": "OTHER", + "value": "Other" + }, + { + "name": "VIOLATED_AVOID_FERRY", + "value": "ViolatedAvoidFerry" + }, + { + "name": "VIOLATED_AVOID_RAIL_FERRY", + "value": "ViolatedAvoidRailFerry" + } + ] + } + }, + "com.amazonaws.georoutes#RouteFerryNoticeList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RouteFerryNotice" + } + }, + "com.amazonaws.georoutes#RouteFerryOverviewSummary": { + "type": "structure", + "members": { + "Distance": { + "target": "com.amazonaws.georoutes#DistanceMeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Distance of the step.

", + "smithy.api#required": {} + } + }, + "Duration": { + "target": "com.amazonaws.georoutes#DurationSeconds", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Duration of the step.

\n

\n Unit: seconds\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Summarized details of the leg.

" + } + }, + "com.amazonaws.georoutes#RouteFerryPlace": { + "type": "structure", + "members": { + "Name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The name of the place.

" + } + }, + "OriginalPosition": { + "target": "com.amazonaws.georoutes#Position23", + "traits": { + "smithy.api#documentation": "

Position provided in the request.

" + } + }, + "Position": { + "target": "com.amazonaws.georoutes#Position23", + "traits": { + "smithy.api#documentation": "

Position defined as [longitude, latitude].

", + "smithy.api#required": {} + } + }, + "WaypointIndex": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

Index of the waypoint in the request.

", + "smithy.api#range": { + "min": 0 + } + } + } + }, + "traits": { + "smithy.api#documentation": "

Position provided in the request.

" + } + }, + "com.amazonaws.georoutes#RouteFerrySpan": { + "type": "structure", + "members": { + "Country": { + "target": "com.amazonaws.georoutes#CountryCode3", + "traits": { + "smithy.api#documentation": "

3 letter Country code corresponding to the Span.

" + } + }, + "Distance": { + "target": "com.amazonaws.georoutes#DistanceMeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Distance of the computed span. This feature doesn't split a span, but is always computed on a span split by other properties.

" + } + }, + "Duration": { + "target": "com.amazonaws.georoutes#DurationSeconds", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Duration of the computed span. This feature doesn't split a span, but is always computed on a span split by other properties.

\n

\n Unit: seconds\n

" + } + }, + "GeometryOffset": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

Offset in the leg geometry corresponding to the start of this span.

", + "smithy.api#range": { + "min": 0 + } + } + }, + "Names": { + "target": "com.amazonaws.georoutes#LocalizedStringList", + "traits": { + "smithy.api#documentation": "

Provides an array of names of the ferry span in available languages.

" + } + }, + "Region": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

2-3 letter Region code corresponding to the Span. This is either a province or a state.

", + "smithy.api#length": { + "min": 0, + "max": 3 + } + } + } + }, + "traits": { + "smithy.api#documentation": "

Span computed for the requested SpanAdditionalFeatures.

" + } + }, + "com.amazonaws.georoutes#RouteFerrySpanList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RouteFerrySpan" + } + }, + "com.amazonaws.georoutes#RouteFerrySummary": { + "type": "structure", + "members": { + "Overview": { + "target": "com.amazonaws.georoutes#RouteFerryOverviewSummary", + "traits": { + "smithy.api#documentation": "

Summarized details for the leg including before travel, travel and after travel steps.

" + } + }, + "TravelOnly": { + "target": "com.amazonaws.georoutes#RouteFerryTravelOnlySummary", + "traits": { + "smithy.api#documentation": "

Summarized details for the leg including travel steps only. The Distance for the travel only portion of the journey is in meters

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Summarized details for the leg including travel steps only. The Distance for the travel only portion of the journey is the same as the Distance within the Overview summary.

" + } + }, + "com.amazonaws.georoutes#RouteFerryTravelOnlySummary": { + "type": "structure", + "members": { + "Duration": { + "target": "com.amazonaws.georoutes#DurationSeconds", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Total duration in free flowing traffic, which is the best case or shortest duration possible to cover the leg.

\n

\n Unit: seconds\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Summarized details for the leg including travel steps only. The Distance for the travel only portion of the journey is the same as the Distance within the Overview summary.

" + } + }, + "com.amazonaws.georoutes#RouteFerryTravelStep": { + "type": "structure", + "members": { + "Distance": { + "target": "com.amazonaws.georoutes#DistanceMeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Distance of the step.

" + } + }, + "Duration": { + "target": "com.amazonaws.georoutes#DurationSeconds", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Duration of the step.

\n

\n Unit: seconds\n

", + "smithy.api#required": {} + } + }, + "GeometryOffset": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

Offset in the leg geometry corresponding to the start of this step.

", + "smithy.api#range": { + "min": 0 + } + } + }, + "Instruction": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

Brief description of the step in the requested language.

\n \n

Only available when the TravelStepType is Default.

\n
" + } + }, + "Type": { + "target": "com.amazonaws.georoutes#RouteFerryTravelStepType", + "traits": { + "smithy.api#documentation": "

Type of the step.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Steps of a leg that must be performed during the travel portion of the leg.

" + } + }, + "com.amazonaws.georoutes#RouteFerryTravelStepList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RouteFerryTravelStep" + } + }, + "com.amazonaws.georoutes#RouteFerryTravelStepType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "DEPART", + "value": "Depart" + }, + { + "name": "CONTINUE", + "value": "Continue" + }, + { + "name": "ARRIVE", + "value": "Arrive" + } + ] + } + }, + "com.amazonaws.georoutes#RouteHazardousCargoType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "COMBUSTIBLE", + "value": "Combustible" + }, + { + "name": "CORROSIVE", + "value": "Corrosive" + }, + { + "name": "EXPLOSIVE", + "value": "Explosive" + }, + { + "name": "FLAMMABLE", + "value": "Flammable" + }, + { + "name": "GAS", + "value": "Gas" + }, + { + "name": "HARMFUL_TO_WATER", + "value": "HarmfulToWater" + }, + { + "name": "ORGANIC", + "value": "Organic" + }, + { + "name": "OTHER", + "value": "Other" + }, + { + "name": "POISON", + "value": "Poison" + }, + { + "name": "POISONOUS_INHALATION", + "value": "PoisonousInhalation" + }, + { + "name": "RADIOACTIVE", + "value": "Radioactive" + } + ] + } + }, + "com.amazonaws.georoutes#RouteHazardousCargoTypeList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RouteHazardousCargoType" + }, + "traits": { + "smithy.api#length": { + "max": 11 + }, + "smithy.api#uniqueItems": {} + } + }, + "com.amazonaws.georoutes#RouteKeepStepDetails": { + "type": "structure", + "members": { + "Intersection": { + "target": "com.amazonaws.georoutes#LocalizedStringList", + "traits": { + "smithy.api#documentation": "

Name of the intersection, if applicable to the step.

", + "smithy.api#required": {} + } + }, + "SteeringDirection": { + "target": "com.amazonaws.georoutes#RouteSteeringDirection", + "traits": { + "smithy.api#documentation": "

Steering direction for the step.

" + } + }, + "TurnAngle": { + "target": "com.amazonaws.georoutes#TurnAngle", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Angle of the turn.

" + } + }, + "TurnIntensity": { + "target": "com.amazonaws.georoutes#RouteTurnIntensity", + "traits": { + "smithy.api#documentation": "

Intensity of the turn.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details that are specific to a Keep step.

" + } + }, + "com.amazonaws.georoutes#RouteLeg": { + "type": "structure", + "members": { + "FerryLegDetails": { + "target": "com.amazonaws.georoutes#RouteFerryLegDetails", + "traits": { + "smithy.api#documentation": "

FerryLegDetails is populated when the Leg type is Ferry, and provides additional\n information that is specific

" + } + }, + "Geometry": { + "target": "com.amazonaws.georoutes#RouteLegGeometry", + "traits": { + "smithy.api#documentation": "

Geometry of the area to be avoided.

", + "smithy.api#required": {} + } + }, + "Language": { + "target": "com.amazonaws.georoutes#LanguageTag", + "traits": { + "smithy.api#documentation": "

List of languages for instructions within steps in the response.

" + } + }, + "PedestrianLegDetails": { + "target": "com.amazonaws.georoutes#RoutePedestrianLegDetails", + "traits": { + "smithy.api#documentation": "

Details related to the pedestrian leg.

" + } + }, + "TravelMode": { + "target": "com.amazonaws.georoutes#RouteLegTravelMode", + "traits": { + "smithy.api#documentation": "

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

\n

Default Value: Car\n

", + "smithy.api#required": {} + } + }, + "Type": { + "target": "com.amazonaws.georoutes#RouteLegType", + "traits": { + "smithy.api#documentation": "

Type of the leg.

", + "smithy.api#required": {} + } + }, + "VehicleLegDetails": { + "target": "com.amazonaws.georoutes#RouteVehicleLegDetails", + "traits": { + "smithy.api#documentation": "

Details related to the vehicle leg.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

A leg is a section of a route from one waypoint to the next. A leg could be of type Vehicle, Pedestrian or Ferry.\nLegs of different types could occur together within a single route. For example, a car employing the use of a Ferry will contain Vehicle legs corresponding to journey on land, and Ferry legs corresponding to the journey via Ferry.

" + } + }, + "com.amazonaws.georoutes#RouteLegAdditionalFeature": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "ELEVATION", + "value": "Elevation" + }, + { + "name": "INCIDENTS", + "value": "Incidents" + }, + { + "name": "PASS_THROUGH_WAYPOINTS", + "value": "PassThroughWaypoints" + }, + { + "name": "SUMMARY", + "value": "Summary" + }, + { + "name": "TOLLS", + "value": "Tolls" + }, + { + "name": "TRAVEL_STEP_INSTRUCTIONS", + "value": "TravelStepInstructions" + }, + { + "name": "TRUCK_ROAD_TYPES", + "value": "TruckRoadTypes" + }, + { + "name": "TYPICAL_DURATION", + "value": "TypicalDuration" + }, + { + "name": "ZONES", + "value": "Zones" + } + ] + } + }, + "com.amazonaws.georoutes#RouteLegAdditionalFeatureList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RouteLegAdditionalFeature" + }, + "traits": { + "smithy.api#length": { + "max": 9 + }, + "smithy.api#uniqueItems": {} + } + }, + "com.amazonaws.georoutes#RouteLegGeometry": { + "type": "structure", + "members": { + "LineString": { + "target": "com.amazonaws.georoutes#LineString", + "traits": { + "smithy.api#documentation": "

An ordered list of positions used to plot a route on a map.

\n \n

LineString and Polyline are mutually exclusive properties.

\n
" + } + }, + "Polyline": { + "target": "com.amazonaws.georoutes#Polyline", + "traits": { + "smithy.api#documentation": "

An ordered list of positions used to plot a route on a map in a lossy compression format.

\n \n

LineString and Polyline are mutually exclusive properties.

\n
" + } + } + }, + "traits": { + "smithy.api#documentation": "

The returned Route leg geometry.

" + } + }, + "com.amazonaws.georoutes#RouteLegList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RouteLeg" + } + }, + "com.amazonaws.georoutes#RouteLegTravelMode": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "CAR", + "value": "Car" + }, + { + "name": "FERRY", + "value": "Ferry" + }, + { + "name": "PEDESTRIAN", + "value": "Pedestrian" + }, + { + "name": "SCOOTER", + "value": "Scooter" + }, + { + "name": "TRUCK", + "value": "Truck" + } + ] + } + }, + "com.amazonaws.georoutes#RouteLegType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "FERRY", + "value": "Ferry" + }, + { + "name": "PEDESTRIAN", + "value": "Pedestrian" + }, + { + "name": "VEHICLE", + "value": "Vehicle" + } + ] + } + }, + "com.amazonaws.georoutes#RouteList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#Route" + } + }, + "com.amazonaws.georoutes#RouteMajorRoadLabel": { + "type": "structure", + "members": { + "RoadName": { + "target": "com.amazonaws.georoutes#LocalizedString", + "traits": { + "smithy.api#documentation": "

Name of the road (localized).

" + } + }, + "RouteNumber": { + "target": "com.amazonaws.georoutes#RouteNumber", + "traits": { + "smithy.api#documentation": "

Route number of the road.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Important labels including names and route numbers that differentiate the current route from the alternatives presented.

" + } + }, + "com.amazonaws.georoutes#RouteMajorRoadLabelList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RouteMajorRoadLabel" + } + }, + "com.amazonaws.georoutes#RouteMatchingOptions": { + "type": "structure", + "members": { + "NameHint": { + "target": "com.amazonaws.georoutes#SensitiveString", + "traits": { + "smithy.api#documentation": "

Attempts to match the provided position to a road similar to the provided name.

", + "smithy.api#length": { + "max": 100 + } + } + }, + "OnRoadThreshold": { + "target": "com.amazonaws.georoutes#DistanceMeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

If the distance to a highway/bridge/tunnel/sliproad is within threshold, the waypoint will be snapped to the highway/bridge/tunnel/sliproad.

\n

\n Unit: meters\n

" + } + }, + "Radius": { + "target": "com.amazonaws.georoutes#DistanceMeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Considers all roads within the provided radius to match the provided destination to. The roads that are considered are determined by the provided Strategy.

\n

\n Unit: Meters\n

" + } + }, + "Strategy": { + "target": "com.amazonaws.georoutes#MatchingStrategy", + "traits": { + "smithy.api#documentation": "

Strategy that defines matching of the position onto the road network. MatchAny considers all roads possible, whereas MatchMostSignificantRoad matches to the most significant road.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Options related to route matching.

" + } + }, + "com.amazonaws.georoutes#RouteMatrix": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RouteMatrixRow" + } + }, + "com.amazonaws.georoutes#RouteMatrixAllowOptions": { + "type": "structure", + "members": { + "Hot": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Allow Hot (High Occupancy Toll) lanes while calculating the route.

" + } + }, + "Hov": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Allow Hov (High Occupancy vehicle) lanes while calculating the route.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Allow Options related to the route matrix.

" + } + }, + "com.amazonaws.georoutes#RouteMatrixAutoCircle": { + "type": "structure", + "members": { + "Margin": { + "target": "com.amazonaws.georoutes#DistanceMeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The margin provided for the calculation.

", + "smithy.api#range": { + "min": 0, + "max": 200000 + } + } + }, + "MaxRadius": { + "target": "com.amazonaws.georoutes#DistanceMeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The maximum size of the radius provided for the calculation.

", + "smithy.api#range": { + "min": 0, + "max": 200000 + } + } + } + }, + "traits": { + "smithy.api#documentation": "

Provides the circle that was used while calculating the route.

" + } + }, + "com.amazonaws.georoutes#RouteMatrixAvoidanceArea": { + "type": "structure", + "members": { + "Geometry": { + "target": "com.amazonaws.georoutes#RouteMatrixAvoidanceAreaGeometry", + "traits": { + "smithy.api#documentation": "

Geometry of the area to be avoided.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Area to be avoided.

" + } + }, + "com.amazonaws.georoutes#RouteMatrixAvoidanceAreaGeometry": { + "type": "structure", + "members": { + "BoundingBox": { + "target": "com.amazonaws.georoutes#BoundingBox", + "traits": { + "smithy.api#documentation": "

Geometry defined as a bounding box. The first pair represents the X and Y coordinates\n (longitude and latitude,) of the southwest corner of the bounding box; the second pair\n represents the X and Y coordinates (longitude and latitude) of the northeast corner.

" + } + }, + "Polygon": { + "target": "com.amazonaws.georoutes#LinearRings", + "traits": { + "smithy.api#documentation": "

Geometry defined as a polygon with only one linear ring.

", + "smithy.api#length": { + "min": 1, + "max": 1 + } + } + }, + "PolylinePolygon": { + "target": "com.amazonaws.georoutes#PolylineRingList", + "traits": { + "smithy.api#documentation": "

A list of Isoline PolylinePolygon, for each isoline PolylinePolygon, it contains\n PolylinePolygon of the first linear ring (the outer ring) and from second item to the last\n item (the inner rings). For more information on polyline encoding, see https://github.com/heremaps/flexiblepolyline/blob/master/README.md.

", + "smithy.api#length": { + "min": 1, + "max": 1 + } + } + } + }, + "traits": { + "smithy.api#documentation": "

Geometry of the area to be avoided.

" + } + }, + "com.amazonaws.georoutes#RouteMatrixAvoidanceAreaList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RouteMatrixAvoidanceArea" + } + }, + "com.amazonaws.georoutes#RouteMatrixAvoidanceOptions": { + "type": "structure", + "members": { + "Areas": { + "target": "com.amazonaws.georoutes#RouteMatrixAvoidanceAreaList", + "traits": { + "smithy.api#documentation": "

Areas to be avoided.

", + "smithy.api#length": { + "max": 250 + } + } + }, + "CarShuttleTrains": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Avoid car-shuttle-trains while calculating the route.

" + } + }, + "ControlledAccessHighways": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Avoid controlled access highways while calculating the route.

" + } + }, + "DirtRoads": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Avoid dirt roads while calculating the route.

" + } + }, + "Ferries": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Avoid ferries while calculating the route.

" + } + }, + "TollRoads": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Avoids roads where the specified toll transponders are the only mode of payment.

" + } + }, + "TollTransponders": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Avoids roads where the specified toll transponders are the only mode of payment.

" + } + }, + "TruckRoadTypes": { + "target": "com.amazonaws.georoutes#TruckRoadTypeList", + "traits": { + "smithy.api#documentation": "

Truck road type identifiers. BK1 through BK4 apply only to Sweden. \n A2,A4,B2,B4,C,D,ET2,ET4 apply only to Mexico.

\n \n

There are currently no other supported values as of 26th April 2024.

\n
" + } + }, + "Tunnels": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Avoid tunnels while calculating the route.

" + } + }, + "UTurns": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Avoid U-turns for calculation on highways and motorways.

" + } + }, + "ZoneCategories": { + "target": "com.amazonaws.georoutes#RouteMatrixAvoidanceZoneCategoryList", + "traits": { + "smithy.api#documentation": "

Zone categories to be avoided.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Options related to the route matrix.

" + } + }, + "com.amazonaws.georoutes#RouteMatrixAvoidanceZoneCategory": { + "type": "structure", + "members": { + "Category": { + "target": "com.amazonaws.georoutes#RouteMatrixZoneCategory", + "traits": { + "smithy.api#documentation": "

Zone category to be avoided.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Zone categories to be avoided.

" + } + }, + "com.amazonaws.georoutes#RouteMatrixAvoidanceZoneCategoryList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RouteMatrixAvoidanceZoneCategory" + }, + "traits": { + "smithy.api#length": { + "max": 3 + }, + "smithy.api#uniqueItems": {} + } + }, + "com.amazonaws.georoutes#RouteMatrixBoundary": { + "type": "structure", + "members": { + "Geometry": { + "target": "com.amazonaws.georoutes#RouteMatrixBoundaryGeometry", + "traits": { + "smithy.api#documentation": "

Geometry of the area to be avoided.

" + } + }, + "Unbounded": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

No restrictions in terms of a routing boundary, and is typically used for longer routes.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Boundary within which the matrix is to be calculated. All data, origins and destinations outside the boundary are considered invalid.

" + } + }, + "com.amazonaws.georoutes#RouteMatrixBoundaryGeometry": { + "type": "structure", + "members": { + "AutoCircle": { + "target": "com.amazonaws.georoutes#RouteMatrixAutoCircle", + "traits": { + "smithy.api#documentation": "

Provides the circle that was used while calculating the route.

" + } + }, + "Circle": { + "target": "com.amazonaws.georoutes#Circle", + "traits": { + "smithy.api#documentation": "

Geometry defined as a circle. When request routing boundary was set as AutoCircle, the response routing boundary will return Circle derived from the AutoCircle settings.

" + } + }, + "BoundingBox": { + "target": "com.amazonaws.georoutes#BoundingBox", + "traits": { + "smithy.api#documentation": "

Geometry defined as a bounding box. The first pair represents the X and Y coordinates\n (longitude and latitude,) of the southwest corner of the bounding box; the second pair\n represents the X and Y coordinates (longitude and latitude) of the northeast corner.

" + } + }, + "Polygon": { + "target": "com.amazonaws.georoutes#LinearRings", + "traits": { + "smithy.api#documentation": "

Geometry defined as a polygon with only one linear ring.

", + "smithy.api#length": { + "min": 1, + "max": 1 + } + } + } + }, + "traits": { + "smithy.api#documentation": "

Geometry of the routing boundary.

" + } + }, + "com.amazonaws.georoutes#RouteMatrixCarOptions": { + "type": "structure", + "members": { + "LicensePlate": { + "target": "com.amazonaws.georoutes#RouteMatrixVehicleLicensePlate", + "traits": { + "smithy.api#documentation": "

The vehicle License Plate.

" + } + }, + "MaxSpeed": { + "target": "com.amazonaws.georoutes#SpeedKilometersPerHour", + "traits": { + "smithy.api#default": null, + "smithy.api#documentation": "

Maximum speed

\n

\n Unit: KilometersPerHour\n

", + "smithy.api#range": { + "min": 3.6, + "max": 252.0 + } + } + }, + "Occupancy": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#default": null, + "smithy.api#documentation": "

The number of occupants in the vehicle.

\n

Default Value: 1\n

", + "smithy.api#range": { + "min": 1 + } + } + } + }, + "traits": { + "smithy.api#documentation": "

Options related to the car.

" + } + }, + "com.amazonaws.georoutes#RouteMatrixDestination": { + "type": "structure", + "members": { + "Options": { + "target": "com.amazonaws.georoutes#RouteMatrixDestinationOptions", + "traits": { + "smithy.api#documentation": "

Destination related options.

" + } + }, + "Position": { + "target": "com.amazonaws.georoutes#Position", + "traits": { + "smithy.api#documentation": "

Position defined as [longitude, latitude].

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The route destination.

" + } + }, + "com.amazonaws.georoutes#RouteMatrixDestinationList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RouteMatrixDestination" + } + }, + "com.amazonaws.georoutes#RouteMatrixDestinationOptions": { + "type": "structure", + "members": { + "AvoidActionsForDistance": { + "target": "com.amazonaws.georoutes#DistanceMeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Avoids actions for the provided distance. This is typically to consider for users in moving vehicles who may not have sufficient time to make an action at an origin or a destination.

", + "smithy.api#range": { + "min": 0 + } + } + }, + "Heading": { + "target": "com.amazonaws.georoutes#Heading", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

GPS Heading at the position.

" + } + }, + "Matching": { + "target": "com.amazonaws.georoutes#RouteMatrixMatchingOptions", + "traits": { + "smithy.api#documentation": "

Options to configure matching the provided position to the road network.

" + } + }, + "SideOfStreet": { + "target": "com.amazonaws.georoutes#RouteMatrixSideOfStreetOptions", + "traits": { + "smithy.api#documentation": "

Options to configure matching the provided position to a side of the street.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Options related to the destination.

" + } + }, + "com.amazonaws.georoutes#RouteMatrixEntry": { + "type": "structure", + "members": { + "Distance": { + "target": "com.amazonaws.georoutes#DistanceMeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The total distance of travel for the route.

", + "smithy.api#required": {} + } + }, + "Duration": { + "target": "com.amazonaws.georoutes#DurationSeconds", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The expected duration of travel for the route.

\n

\n Unit: seconds\n

", + "smithy.api#required": {} + } + }, + "Error": { + "target": "com.amazonaws.georoutes#RouteMatrixErrorCode", + "traits": { + "smithy.api#documentation": "

Error code that occurred during calculation of the route.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The calculated route matrix containing the results for all pairs of Origins to Destination positions. Each row corresponds to one entry in Origins. Each entry in the row corresponds to the route from that entry in Origins to an entry in Destination positions.

" + } + }, + "com.amazonaws.georoutes#RouteMatrixErrorCode": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "NO_MATCH", + "value": "NoMatch" + }, + { + "name": "NO_MATCH_DESTINATION", + "value": "NoMatchDestination" + }, + { + "name": "NO_MATCH_ORIGIN", + "value": "NoMatchOrigin" + }, + { + "name": "NO_ROUTE", + "value": "NoRoute" + }, + { + "name": "OUT_OF_BOUNDS", + "value": "OutOfBounds" + }, + { + "name": "OUT_OF_BOUNDS_DESTINATION", + "value": "OutOfBoundsDestination" + }, + { + "name": "OUT_OF_BOUNDS_ORIGIN", + "value": "OutOfBoundsOrigin" + }, + { + "name": "OTHER", + "value": "Other" + }, + { + "name": "VIOLATION", + "value": "Violation" + } + ] + } + }, + "com.amazonaws.georoutes#RouteMatrixExclusionOptions": { + "type": "structure", + "members": { + "Countries": { + "target": "com.amazonaws.georoutes#CountryCodeList", + "traits": { + "smithy.api#documentation": "

List of countries to be avoided defined by two-letter or three-letter country codes.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Exclusion options.

" + } + }, + "com.amazonaws.georoutes#RouteMatrixHazardousCargoType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "COMBUSTIBLE", + "value": "Combustible" + }, + { + "name": "CORROSIVE", + "value": "Corrosive" + }, + { + "name": "EXPLOSIVE", + "value": "Explosive" + }, + { + "name": "FLAMMABLE", + "value": "Flammable" + }, + { + "name": "GAS", + "value": "Gas" + }, + { + "name": "HARMFUL_TO_WATER", + "value": "HarmfulToWater" + }, + { + "name": "ORGANIC", + "value": "Organic" + }, + { + "name": "OTHER", + "value": "Other" + }, + { + "name": "POISON", + "value": "Poison" + }, + { + "name": "POISONOUS_INHALATION", + "value": "PoisonousInhalation" + }, + { + "name": "RADIOACTIVE", + "value": "Radioactive" + } + ] + } + }, + "com.amazonaws.georoutes#RouteMatrixHazardousCargoTypeList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RouteMatrixHazardousCargoType" + }, + "traits": { + "smithy.api#length": { + "max": 11 + }, + "smithy.api#uniqueItems": {} + } + }, + "com.amazonaws.georoutes#RouteMatrixMatchingOptions": { + "type": "structure", + "members": { + "NameHint": { + "target": "com.amazonaws.georoutes#SensitiveString", + "traits": { + "smithy.api#documentation": "

Attempts to match the provided position to a road similar to the provided name.

" + } + }, + "OnRoadThreshold": { + "target": "com.amazonaws.georoutes#DistanceMeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

If the distance to a highway/bridge/tunnel/sliproad is within threshold, the waypoint will be snapped to the highway/bridge/tunnel/sliproad.

\n

\n Unit: meters\n

", + "smithy.api#range": { + "min": 0 + } + } + }, + "Radius": { + "target": "com.amazonaws.georoutes#DistanceMeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Considers all roads within the provided radius to match the provided destination to. The roads that are considered are determined by the provided Strategy.

\n

\n Unit: Meters\n

" + } + }, + "Strategy": { + "target": "com.amazonaws.georoutes#MatchingStrategy", + "traits": { + "smithy.api#documentation": "

Strategy that defines matching of the position onto the road network. MatchAny considers all roads possible, whereas MatchMostSignificantRoad matches to the most significant road.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Matching options.

" + } + }, + "com.amazonaws.georoutes#RouteMatrixOrigin": { + "type": "structure", + "members": { + "Options": { + "target": "com.amazonaws.georoutes#RouteMatrixOriginOptions", + "traits": { + "smithy.api#documentation": "

Origin related options.

" + } + }, + "Position": { + "target": "com.amazonaws.georoutes#Position", + "traits": { + "smithy.api#documentation": "

Position defined as [longitude, latitude].

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The start position for the route.

" + } + }, + "com.amazonaws.georoutes#RouteMatrixOriginList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RouteMatrixOrigin" + } + }, + "com.amazonaws.georoutes#RouteMatrixOriginOptions": { + "type": "structure", + "members": { + "AvoidActionsForDistance": { + "target": "com.amazonaws.georoutes#DistanceMeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Avoids actions for the provided distance. This is typically to consider for users in moving vehicles who may not have sufficient time to make an action at an origin or a destination.

", + "smithy.api#range": { + "min": 0 + } + } + }, + "Heading": { + "target": "com.amazonaws.georoutes#Heading", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

GPS Heading at the position.

" + } + }, + "Matching": { + "target": "com.amazonaws.georoutes#RouteMatrixMatchingOptions", + "traits": { + "smithy.api#documentation": "

Options to configure matching the provided position to the road network.

" + } + }, + "SideOfStreet": { + "target": "com.amazonaws.georoutes#RouteMatrixSideOfStreetOptions", + "traits": { + "smithy.api#documentation": "

Options to configure matching the provided position to a side of the street.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Origin related options.

" + } + }, + "com.amazonaws.georoutes#RouteMatrixRow": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RouteMatrixEntry" + } + }, + "com.amazonaws.georoutes#RouteMatrixScooterOptions": { + "type": "structure", + "members": { + "LicensePlate": { + "target": "com.amazonaws.georoutes#RouteMatrixVehicleLicensePlate", + "traits": { + "smithy.api#documentation": "

The vehicle License Plate.

" + } + }, + "MaxSpeed": { + "target": "com.amazonaws.georoutes#SpeedKilometersPerHour", + "traits": { + "smithy.api#default": null, + "smithy.api#documentation": "

Maximum speed.

\n

\n Unit: KilometersPerHour\n

", + "smithy.api#range": { + "min": 3.6, + "max": 252.0 + } + } + }, + "Occupancy": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#default": null, + "smithy.api#documentation": "

The number of occupants in the vehicle.

\n

Default Value: 1\n

", + "smithy.api#range": { + "min": 1 + } + } + } + }, + "traits": { + "smithy.api#documentation": "

Travel mode options when the provided travel mode is \"Scooter\"

" + } + }, + "com.amazonaws.georoutes#RouteMatrixSideOfStreetOptions": { + "type": "structure", + "members": { + "Position": { + "target": "com.amazonaws.georoutes#Position", + "traits": { + "smithy.api#documentation": "

Position defined as [longitude, latitude].

", + "smithy.api#required": {} + } + }, + "UseWith": { + "target": "com.amazonaws.georoutes#SideOfStreetMatchingStrategy", + "traits": { + "smithy.api#documentation": "

Strategy that defines when the side of street position should be used. AnyStreet will always use the provided position.

\n

Default Value: DividedStreetOnly\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Options to configure matching the provided position to a side of the street.

" + } + }, + "com.amazonaws.georoutes#RouteMatrixTrafficOptions": { + "type": "structure", + "members": { + "FlowEventThresholdOverride": { + "target": "com.amazonaws.georoutes#DurationSeconds", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Duration for which flow traffic is considered valid. \n For this period, the flow traffic is used over historical traffic data. \n Flow traffic refers to congestion, which changes very quickly. \n Duration in seconds for which flow traffic event would be considered valid. \n While flow traffic event is valid it will be used over the historical traffic data.

" + } + }, + "Usage": { + "target": "com.amazonaws.georoutes#TrafficUsage", + "traits": { + "smithy.api#documentation": "

Determines if traffic should be used or ignored while calculating the route.

\n

Default Value: UseTrafficData\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Traffic related options.

" + } + }, + "com.amazonaws.georoutes#RouteMatrixTrailerOptions": { + "type": "structure", + "members": { + "TrailerCount": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

Number of trailers attached to the vehicle.

\n

Default Value: 0\n

", + "smithy.api#range": { + "min": 0, + "max": 255 + } + } + } + }, + "traits": { + "smithy.api#documentation": "

Trailer options corresponding to the vehicle.

" + } + }, + "com.amazonaws.georoutes#RouteMatrixTravelMode": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "CAR", + "value": "Car" + }, + { + "name": "PEDESTRIAN", + "value": "Pedestrian" + }, + { + "name": "SCOOTER", + "value": "Scooter" + }, + { + "name": "TRUCK", + "value": "Truck" + } + ] + } + }, + "com.amazonaws.georoutes#RouteMatrixTravelModeOptions": { + "type": "structure", + "members": { + "Car": { + "target": "com.amazonaws.georoutes#RouteMatrixCarOptions", + "traits": { + "smithy.api#documentation": "

Travel mode options when the provided travel mode is \"Car\"

" + } + }, + "Scooter": { + "target": "com.amazonaws.georoutes#RouteMatrixScooterOptions", + "traits": { + "smithy.api#documentation": "

Travel mode options when the provided travel mode is \"Scooter\"

" + } + }, + "Truck": { + "target": "com.amazonaws.georoutes#RouteMatrixTruckOptions", + "traits": { + "smithy.api#documentation": "

Travel mode options when the provided travel mode is \"Truck\"

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Travel mode related options for the provided travel mode.

" + } + }, + "com.amazonaws.georoutes#RouteMatrixTruckOptions": { + "type": "structure", + "members": { + "AxleCount": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#default": null, + "smithy.api#documentation": "

Total number of axles of the vehicle.

", + "smithy.api#range": { + "min": 2, + "max": 255 + } + } + }, + "GrossWeight": { + "target": "com.amazonaws.georoutes#WeightKilograms", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Gross weight of the vehicle including trailers, and goods at capacity.

\n

\n Unit: Kilograms\n

" + } + }, + "HazardousCargos": { + "target": "com.amazonaws.georoutes#RouteMatrixHazardousCargoTypeList", + "traits": { + "smithy.api#documentation": "

List of Hazardous cargo contained in the vehicle.

" + } + }, + "Height": { + "target": "com.amazonaws.georoutes#DimensionCentimeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Height of the vehicle.

\n

\n Unit: centimeters\n

", + "smithy.api#range": { + "min": 0, + "max": 5000 + } + } + }, + "KpraLength": { + "target": "com.amazonaws.georoutes#DimensionCentimeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Kingpin to rear axle length of the vehicle

\n

\n Unit: centimeters\n

" + } + }, + "Length": { + "target": "com.amazonaws.georoutes#DimensionCentimeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Length of the vehicle.

\n

\n Unit: centimeters\n

", + "smithy.api#range": { + "min": 0, + "max": 30000 + } + } + }, + "LicensePlate": { + "target": "com.amazonaws.georoutes#RouteMatrixVehicleLicensePlate", + "traits": { + "smithy.api#documentation": "

The vehicle License Plate.

" + } + }, + "MaxSpeed": { + "target": "com.amazonaws.georoutes#SpeedKilometersPerHour", + "traits": { + "smithy.api#default": null, + "smithy.api#documentation": "

Maximum speed

\n

\n Unit: KilometersPerHour\n

", + "smithy.api#range": { + "min": 3.6, + "max": 252.0 + } + } + }, + "Occupancy": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#default": null, + "smithy.api#documentation": "

The number of occupants in the vehicle.

\n

Default Value: 1\n

", + "smithy.api#range": { + "min": 1 + } + } + }, + "PayloadCapacity": { + "target": "com.amazonaws.georoutes#WeightKilograms", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Payload capacity of the vehicle and trailers attached.

\n

\n Unit: kilograms\n

" + } + }, + "Trailer": { + "target": "com.amazonaws.georoutes#RouteMatrixTrailerOptions", + "traits": { + "smithy.api#documentation": "

Trailer options corresponding to the vehicle.

" + } + }, + "TruckType": { + "target": "com.amazonaws.georoutes#RouteMatrixTruckType", + "traits": { + "smithy.api#documentation": "

Type of the truck.

" + } + }, + "TunnelRestrictionCode": { + "target": "com.amazonaws.georoutes#TunnelRestrictionCode", + "traits": { + "smithy.api#documentation": "

The tunnel restriction code.

\n

Tunnel categories in this list indicate the restrictions which apply to certain tunnels in Great Britain. \n They relate to the types of dangerous goods that can be transported through them.

\n
    \n
  • \n

    \n Tunnel Category B\n

    \n
      \n
    • \n

      \n Risk Level: Limited risk

      \n
    • \n
    • \n

      \n Restrictions: Few restrictions

      \n
    • \n
    \n
  • \n
  • \n

    \n Tunnel Category C\n

    \n
      \n
    • \n

      \n Risk Level: Medium risk

      \n
    • \n
    • \n

      \n Restrictions: Some restrictions

      \n
    • \n
    \n
  • \n
  • \n

    \n Tunnel Category D\n

    \n
      \n
    • \n

      \n Risk Level: High risk

      \n
    • \n
    • \n

      \n Restrictions: Many restrictions occur

      \n
    • \n
    \n
  • \n
  • \n

    \n Tunnel Category E\n

    \n
      \n
    • \n

      \n Risk Level: Very high risk

      \n
    • \n
    • \n

      \n Restrictions: Restricted tunnel

      \n
    • \n
    \n
  • \n
" + } + }, + "WeightPerAxle": { + "target": "com.amazonaws.georoutes#WeightKilograms", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Heaviest weight per axle irrespective of the axle type or the axle group. Meant for usage in countries where the differences in axle types or axle groups are not distinguished.

\n

\n Unit: Kilograms\n

" + } + }, + "WeightPerAxleGroup": { + "target": "com.amazonaws.georoutes#WeightPerAxleGroup", + "traits": { + "smithy.api#documentation": "

Specifies the total weight for the specified axle group. Meant for usage in countries that have different regulations based on the axle group type.

" + } + }, + "Width": { + "target": "com.amazonaws.georoutes#DimensionCentimeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Width of the vehicle.

\n

\n Unit: centimeters\n

", + "smithy.api#range": { + "min": 0, + "max": 5000 + } + } + } + }, + "traits": { + "smithy.api#documentation": "

Travel mode options when the provided travel mode is \"Truck\"

" + } + }, + "com.amazonaws.georoutes#RouteMatrixTruckType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "LIGHT_TRUCK", + "value": "LightTruck" + }, + { + "name": "STRAIGHT_TRUCK", + "value": "StraightTruck" + }, + { + "name": "TRACTOR", + "value": "Tractor" + } + ] + } + }, + "com.amazonaws.georoutes#RouteMatrixVehicleLicensePlate": { + "type": "structure", + "members": { + "LastCharacter": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The last character of the License Plate.

", + "smithy.api#length": { + "min": 1, + "max": 1 + } + } + } + }, + "traits": { + "smithy.api#documentation": "

The vehicle License Plate.

" + } + }, + "com.amazonaws.georoutes#RouteMatrixZoneCategory": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "CONGESTION_PRICING", + "value": "CongestionPricing" + }, + { + "name": "ENVIRONMENTAL", + "value": "Environmental" + }, + { + "name": "VIGNETTE", + "value": "Vignette" + } + ] + } + }, + "com.amazonaws.georoutes#RouteNoticeDetailRange": { + "type": "structure", + "members": { + "Min": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

Minimum value for the range.

", + "smithy.api#range": { + "min": 0 + } + } + }, + "Max": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

Maximum value for the range.

", + "smithy.api#range": { + "min": 0 + } + } + } + }, + "traits": { + "smithy.api#documentation": "

Notice Detail that is a range.

" + } + }, + "com.amazonaws.georoutes#RouteNoticeImpact": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "HIGH", + "value": "High" + }, + { + "name": "LOW", + "value": "Low" + } + ] + } + }, + "com.amazonaws.georoutes#RouteNumber": { + "type": "structure", + "members": { + "Direction": { + "target": "com.amazonaws.georoutes#RouteDirection", + "traits": { + "smithy.api#documentation": "

Directional identifier of the route.

" + } + }, + "Language": { + "target": "com.amazonaws.georoutes#LanguageTag", + "traits": { + "smithy.api#documentation": "

List of languages for instructions corresponding to the route number.

" + } + }, + "Value": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The route number.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The route number.

" + } + }, + "com.amazonaws.georoutes#RouteNumberList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RouteNumber" + } + }, + "com.amazonaws.georoutes#RouteOriginOptions": { + "type": "structure", + "members": { + "AvoidActionsForDistance": { + "target": "com.amazonaws.georoutes#DistanceMeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Avoids actions for the provided distance. This is typically to consider for users in moving vehicles who may not have sufficient time to make an action at an origin or a destination.

", + "smithy.api#range": { + "max": 2000 + } + } + }, + "AvoidUTurns": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Avoid U-turns for calculation on highways and motorways.

" + } + }, + "Heading": { + "target": "com.amazonaws.georoutes#Heading", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

GPS Heading at the position.

" + } + }, + "Matching": { + "target": "com.amazonaws.georoutes#RouteMatchingOptions", + "traits": { + "smithy.api#documentation": "

Options to configure matching the provided position to the road network.

" + } + }, + "SideOfStreet": { + "target": "com.amazonaws.georoutes#RouteSideOfStreetOptions", + "traits": { + "smithy.api#documentation": "

Options to configure matching the provided position to a side of the street.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Origin related options.

" + } + }, + "com.amazonaws.georoutes#RoutePassThroughPlace": { + "type": "structure", + "members": { + "OriginalPosition": { + "target": "com.amazonaws.georoutes#Position23", + "traits": { + "smithy.api#documentation": "

Position provided in the request.

" + } + }, + "Position": { + "target": "com.amazonaws.georoutes#Position23", + "traits": { + "smithy.api#documentation": "

Position defined as [longitude, latitude].

", + "smithy.api#required": {} + } + }, + "WaypointIndex": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

Index of the waypoint in the request.

", + "smithy.api#range": { + "min": 0 + } + } + } + }, + "traits": { + "smithy.api#documentation": "

The place where the waypoint is passed through and not treated as a stop.

" + } + }, + "com.amazonaws.georoutes#RoutePassThroughWaypoint": { + "type": "structure", + "members": { + "GeometryOffset": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

Offset in the leg geometry corresponding to the start of this step.

", + "smithy.api#range": { + "min": 0 + } + } + }, + "Place": { + "target": "com.amazonaws.georoutes#RoutePassThroughPlace", + "traits": { + "smithy.api#documentation": "

The place details.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

If the waypoint should be treated as a stop. If yes, the route is split up into different legs around the stop.

" + } + }, + "com.amazonaws.georoutes#RoutePassThroughWaypointList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RoutePassThroughWaypoint" + } + }, + "com.amazonaws.georoutes#RoutePedestrianArrival": { + "type": "structure", + "members": { + "Place": { + "target": "com.amazonaws.georoutes#RoutePedestrianPlace", + "traits": { + "smithy.api#documentation": "

The place details.

", + "smithy.api#required": {} + } + }, + "Time": { + "target": "com.amazonaws.georoutes#TimestampWithTimezoneOffset", + "traits": { + "smithy.api#documentation": "

The time.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details corresponding to the arrival for a leg.

\n

Time format:YYYY-MM-DDThh:mm:ss.sssZ | YYYY-MM-DDThh:mm:ss.sss+hh:mm\n

\n

Examples:

\n

\n 2020-04-22T17:57:24Z\n

\n

\n 2020-04-22T17:57:24+02:00\n

" + } + }, + "com.amazonaws.georoutes#RoutePedestrianDeparture": { + "type": "structure", + "members": { + "Place": { + "target": "com.amazonaws.georoutes#RoutePedestrianPlace", + "traits": { + "smithy.api#documentation": "

The place details.

", + "smithy.api#required": {} + } + }, + "Time": { + "target": "com.amazonaws.georoutes#TimestampWithTimezoneOffset", + "traits": { + "smithy.api#documentation": "

The time.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details corresponding to the departure for a leg.

\n

Time format:YYYY-MM-DDThh:mm:ss.sssZ | YYYY-MM-DDThh:mm:ss.sss+hh:mm\n

\n

Examples:

\n

\n 2020-04-22T17:57:24Z\n

\n

\n 2020-04-22T17:57:24+02:00\n

" + } + }, + "com.amazonaws.georoutes#RoutePedestrianLegDetails": { + "type": "structure", + "members": { + "Arrival": { + "target": "com.amazonaws.georoutes#RoutePedestrianArrival", + "traits": { + "smithy.api#documentation": "

Details corresponding to the arrival for the leg.

", + "smithy.api#required": {} + } + }, + "Departure": { + "target": "com.amazonaws.georoutes#RoutePedestrianDeparture", + "traits": { + "smithy.api#documentation": "

Details corresponding to the departure for the leg.

", + "smithy.api#required": {} + } + }, + "Notices": { + "target": "com.amazonaws.georoutes#RoutePedestrianNoticeList", + "traits": { + "smithy.api#documentation": "

Notices are additional information returned that indicate issues that occurred during route calculation.

", + "smithy.api#required": {} + } + }, + "PassThroughWaypoints": { + "target": "com.amazonaws.georoutes#RoutePassThroughWaypointList", + "traits": { + "smithy.api#documentation": "

Waypoints that were passed through during the leg. This includes the waypoints that were configured with the PassThrough option.

", + "smithy.api#required": {} + } + }, + "Spans": { + "target": "com.amazonaws.georoutes#RoutePedestrianSpanList", + "traits": { + "smithy.api#documentation": "

Spans that were computed for the requested SpanAdditionalFeatures.

", + "smithy.api#required": {} + } + }, + "Summary": { + "target": "com.amazonaws.georoutes#RoutePedestrianSummary", + "traits": { + "smithy.api#documentation": "

Summarized details of the leg.

" + } + }, + "TravelSteps": { + "target": "com.amazonaws.georoutes#RoutePedestrianTravelStepList", + "traits": { + "smithy.api#documentation": "

Steps of a leg that must be performed before the travel portion of the leg.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Details that are specific to a pedestrian leg.

" + } + }, + "com.amazonaws.georoutes#RoutePedestrianNotice": { + "type": "structure", + "members": { + "Code": { + "target": "com.amazonaws.georoutes#RoutePedestrianNoticeCode", + "traits": { + "smithy.api#documentation": "

Code corresponding to the issue.

", + "smithy.api#required": {} + } + }, + "Impact": { + "target": "com.amazonaws.georoutes#RouteNoticeImpact", + "traits": { + "smithy.api#documentation": "

Impact corresponding to the issue. While Low impact notices can be safely ignored, High impact notices must be evaluated further to determine the impact.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Notices are additional information returned that indicate issues that occurred during route calculation.

" + } + }, + "com.amazonaws.georoutes#RoutePedestrianNoticeCode": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "ACCURATE_POLYLINE_UNAVAILABLE", + "value": "AccuratePolylineUnavailable" + }, + { + "name": "OTHER", + "value": "Other" + }, + { + "name": "VIOLATED_AVOID_DIRT_ROAD", + "value": "ViolatedAvoidDirtRoad" + }, + { + "name": "VIOLATED_AVOID_TUNNEL", + "value": "ViolatedAvoidTunnel" + }, + { + "name": "VIOLATED_PEDESTRIAN_OPTION", + "value": "ViolatedPedestrianOption" + } + ] + } + }, + "com.amazonaws.georoutes#RoutePedestrianNoticeList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RoutePedestrianNotice" + } + }, + "com.amazonaws.georoutes#RoutePedestrianOptions": { + "type": "structure", + "members": { + "Speed": { + "target": "com.amazonaws.georoutes#SpeedKilometersPerHour", + "traits": { + "smithy.api#default": null, + "smithy.api#documentation": "

Walking speed in Kilometers per hour.

", + "smithy.api#range": { + "min": 1.8, + "max": 7.2 + } + } + } + }, + "traits": { + "smithy.api#documentation": "

Options related to the pedestrian.

" + } + }, + "com.amazonaws.georoutes#RoutePedestrianOverviewSummary": { + "type": "structure", + "members": { + "Distance": { + "target": "com.amazonaws.georoutes#DistanceMeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Distance of the step.

", + "smithy.api#required": {} + } + }, + "Duration": { + "target": "com.amazonaws.georoutes#DurationSeconds", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Duration of the step.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Provides a summary of a pedestrian route step.

" + } + }, + "com.amazonaws.georoutes#RoutePedestrianPlace": { + "type": "structure", + "members": { + "Name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The name of the place.

" + } + }, + "OriginalPosition": { + "target": "com.amazonaws.georoutes#Position23", + "traits": { + "smithy.api#documentation": "

Position provided in the request.

" + } + }, + "Position": { + "target": "com.amazonaws.georoutes#Position23", + "traits": { + "smithy.api#documentation": "

Position defined as [longitude, latitude].

", + "smithy.api#required": {} + } + }, + "SideOfStreet": { + "target": "com.amazonaws.georoutes#RouteSideOfStreet", + "traits": { + "smithy.api#documentation": "

Options to configure matching the provided position to a side of the street.

" + } + }, + "WaypointIndex": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

Index of the waypoint in the request.

", + "smithy.api#range": { + "min": 0 + } + } + } + }, + "traits": { + "smithy.api#documentation": "

Place details corresponding to the arrival or departure.

" + } + }, + "com.amazonaws.georoutes#RoutePedestrianSpan": { + "type": "structure", + "members": { + "BestCaseDuration": { + "target": "com.amazonaws.georoutes#DurationSeconds", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Duration of the computed span without traffic congestion.

\n

\n Unit: seconds\n

" + } + }, + "Country": { + "target": "com.amazonaws.georoutes#CountryCode3", + "traits": { + "smithy.api#documentation": "

3 letter Country code corresponding to the Span.

" + } + }, + "Distance": { + "target": "com.amazonaws.georoutes#DistanceMeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Distance of the computed span. This feature doesn't split a span, but is always computed on a span split by other properties.

" + } + }, + "Duration": { + "target": "com.amazonaws.georoutes#DurationSeconds", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Duration of the computed span. This feature doesn't split a span, but is always computed on a span split by other properties.

\n

\n Unit: seconds\n

" + } + }, + "DynamicSpeed": { + "target": "com.amazonaws.georoutes#RouteSpanDynamicSpeedDetails", + "traits": { + "smithy.api#documentation": "

Dynamic speed details corresponding to the span.

\n

\n Unit: KilometersPerHour\n

" + } + }, + "FunctionalClassification": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

Functional classification of the road segment corresponding to the span.

", + "smithy.api#range": { + "min": 1, + "max": 5 + } + } + }, + "GeometryOffset": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

Offset in the leg geometry corresponding to the start of this span.

", + "smithy.api#range": { + "min": 0 + } + } + }, + "Incidents": { + "target": "com.amazonaws.georoutes#IndexList", + "traits": { + "smithy.api#documentation": "

Incidents corresponding to the span. These index into the Incidents in the parent Leg.

" + } + }, + "Names": { + "target": "com.amazonaws.georoutes#LocalizedStringList", + "traits": { + "smithy.api#documentation": "

Provides an array of names of the pedestrian span in available languages.

" + } + }, + "PedestrianAccess": { + "target": "com.amazonaws.georoutes#RouteSpanPedestrianAccessAttributeList", + "traits": { + "smithy.api#documentation": "

Access attributes for a pedestrian corresponding to the span.

" + } + }, + "Region": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

2-3 letter Region code corresponding to the Span. This is either a province or a state.

", + "smithy.api#length": { + "min": 0, + "max": 3 + } + } + }, + "RoadAttributes": { + "target": "com.amazonaws.georoutes#RouteSpanRoadAttributeList", + "traits": { + "smithy.api#documentation": "

Attributes for the road segment corresponding to the span.

" + } + }, + "RouteNumbers": { + "target": "com.amazonaws.georoutes#RouteNumberList", + "traits": { + "smithy.api#documentation": "

Designated route name or number corresponding to the span.

" + } + }, + "SpeedLimit": { + "target": "com.amazonaws.georoutes#RouteSpanSpeedLimitDetails", + "traits": { + "smithy.api#documentation": "

Speed limit details corresponding to the span.

\n

\n Unit: KilometersPerHour\n

" + } + }, + "TypicalDuration": { + "target": "com.amazonaws.georoutes#DurationSeconds", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Duration of the computed span under typical traffic congestion.

\n

\n Unit: seconds\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Span computed for the requested SpanAdditionalFeatures.

" + } + }, + "com.amazonaws.georoutes#RoutePedestrianSpanList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RoutePedestrianSpan" + } + }, + "com.amazonaws.georoutes#RoutePedestrianSummary": { + "type": "structure", + "members": { + "Overview": { + "target": "com.amazonaws.georoutes#RoutePedestrianOverviewSummary", + "traits": { + "smithy.api#documentation": "

Summarized details for the leg including before travel, travel and after travel steps.

" + } + }, + "TravelOnly": { + "target": "com.amazonaws.georoutes#RoutePedestrianTravelOnlySummary", + "traits": { + "smithy.api#documentation": "

Summarized details for the leg including travel steps only. The Distance for the travel only portion of the journey is in meters

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Summarized details for the leg including before travel, travel and after travel steps.

" + } + }, + "com.amazonaws.georoutes#RoutePedestrianTravelOnlySummary": { + "type": "structure", + "members": { + "Duration": { + "target": "com.amazonaws.georoutes#DurationSeconds", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Duration of the step.

\n

\n Unit: seconds\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Summarized details for the leg including travel steps.

" + } + }, + "com.amazonaws.georoutes#RoutePedestrianTravelStep": { + "type": "structure", + "members": { + "ContinueStepDetails": { + "target": "com.amazonaws.georoutes#RouteContinueStepDetails", + "traits": { + "smithy.api#documentation": "

Details related to the continue step.

" + } + }, + "CurrentRoad": { + "target": "com.amazonaws.georoutes#RouteRoad", + "traits": { + "smithy.api#documentation": "

Details of the current road. See RouteRoad for details of sub-attributes.

" + } + }, + "Distance": { + "target": "com.amazonaws.georoutes#DistanceMeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Distance of the step.

" + } + }, + "Duration": { + "target": "com.amazonaws.georoutes#DurationSeconds", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Duration of the step.

\n

\n Unit: seconds\n

", + "smithy.api#required": {} + } + }, + "ExitNumber": { + "target": "com.amazonaws.georoutes#LocalizedStringList", + "traits": { + "smithy.api#documentation": "

Exit number of the road exit, if applicable.

" + } + }, + "GeometryOffset": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

Offset in the leg geometry corresponding to the start of this step.

", + "smithy.api#range": { + "min": 0 + } + } + }, + "Instruction": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

Brief description of the step in the requested language.

\n \n

Only available when the TravelStepType is Default.

\n
" + } + }, + "KeepStepDetails": { + "target": "com.amazonaws.georoutes#RouteKeepStepDetails", + "traits": { + "smithy.api#documentation": "

Details that are specific to a Keep step.

" + } + }, + "NextRoad": { + "target": "com.amazonaws.georoutes#RouteRoad", + "traits": { + "smithy.api#documentation": "

Details of the next road. See RouteRoad for details of sub-attributes.

" + } + }, + "RoundaboutEnterStepDetails": { + "target": "com.amazonaws.georoutes#RouteRoundaboutEnterStepDetails", + "traits": { + "smithy.api#documentation": "

Details that are specific to a Roundabout Enter step.

" + } + }, + "RoundaboutExitStepDetails": { + "target": "com.amazonaws.georoutes#RouteRoundaboutExitStepDetails", + "traits": { + "smithy.api#documentation": "

Details that are specific to a Roundabout Exit step.

" + } + }, + "RoundaboutPassStepDetails": { + "target": "com.amazonaws.georoutes#RouteRoundaboutPassStepDetails", + "traits": { + "smithy.api#documentation": "

Details that are specific to a Roundabout Pass step.

" + } + }, + "Signpost": { + "target": "com.amazonaws.georoutes#RouteSignpost", + "traits": { + "smithy.api#documentation": "

Sign post information of the action, applicable only for TurnByTurn steps. See RouteSignpost for details of sub-attributes.

" + } + }, + "TurnStepDetails": { + "target": "com.amazonaws.georoutes#RouteTurnStepDetails", + "traits": { + "smithy.api#documentation": "

Details that are specific to a turn step.

" + } + }, + "Type": { + "target": "com.amazonaws.georoutes#RoutePedestrianTravelStepType", + "traits": { + "smithy.api#documentation": "

Type of the step.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Steps of a leg that must be performed during the travel portion of the leg.

" + } + }, + "com.amazonaws.georoutes#RoutePedestrianTravelStepList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RoutePedestrianTravelStep" + } + }, + "com.amazonaws.georoutes#RoutePedestrianTravelStepType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "ARRIVE", + "value": "Arrive" + }, + { + "name": "CONTINUE", + "value": "Continue" + }, + { + "name": "DEPART", + "value": "Depart" + }, + { + "name": "KEEP", + "value": "Keep" + }, + { + "name": "ROUNDABOUT_ENTER", + "value": "RoundaboutEnter" + }, + { + "name": "ROUNDABOUT_EXIT", + "value": "RoundaboutExit" + }, + { + "name": "ROUNDABOUT_PASS", + "value": "RoundaboutPass" + }, + { + "name": "TURN", + "value": "Turn" + }, + { + "name": "EXIT", + "value": "Exit" + }, + { + "name": "RAMP", + "value": "Ramp" + }, + { + "name": "U_TURN", + "value": "UTurn" + } + ] + } + }, + "com.amazonaws.georoutes#RouteRampStepDetails": { + "type": "structure", + "members": { + "Intersection": { + "target": "com.amazonaws.georoutes#LocalizedStringList", + "traits": { + "smithy.api#documentation": "

Name of the intersection, if applicable to the step.

", + "smithy.api#required": {} + } + }, + "SteeringDirection": { + "target": "com.amazonaws.georoutes#RouteSteeringDirection", + "traits": { + "smithy.api#documentation": "

Steering direction for the step.

" + } + }, + "TurnAngle": { + "target": "com.amazonaws.georoutes#TurnAngle", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Angle of the turn.

" + } + }, + "TurnIntensity": { + "target": "com.amazonaws.georoutes#RouteTurnIntensity", + "traits": { + "smithy.api#documentation": "

Intensity of the turn.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details that are specific to a ramp step.

" + } + }, + "com.amazonaws.georoutes#RouteResponseNotice": { + "type": "structure", + "members": { + "Code": { + "target": "com.amazonaws.georoutes#RouteResponseNoticeCode", + "traits": { + "smithy.api#documentation": "

Code corresponding to the issue.

", + "smithy.api#required": {} + } + }, + "Impact": { + "target": "com.amazonaws.georoutes#RouteNoticeImpact", + "traits": { + "smithy.api#documentation": "

Impact corresponding to the issue. While Low impact notices can be safely ignored, High impact notices must be evaluated further to determine the impact.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Notices are additional information returned that indicate issues that occurred during route calculation.

" + } + }, + "com.amazonaws.georoutes#RouteResponseNoticeCode": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "MAIN_LANGUAGE_NOT_FOUND", + "value": "MainLanguageNotFound" + }, + { + "name": "OTHER", + "value": "Other" + }, + { + "name": "TRAVEL_TIME_EXCEEDS_DRIVER_WORK_HOURS", + "value": "TravelTimeExceedsDriverWorkHours" + } + ] + } + }, + "com.amazonaws.georoutes#RouteResponseNoticeList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RouteResponseNotice" + } + }, + "com.amazonaws.georoutes#RouteRoad": { + "type": "structure", + "members": { + "RoadName": { + "target": "com.amazonaws.georoutes#LocalizedStringList", + "traits": { + "smithy.api#documentation": "

Name of the road (localized).

", + "smithy.api#required": {} + } + }, + "RouteNumber": { + "target": "com.amazonaws.georoutes#RouteNumberList", + "traits": { + "smithy.api#documentation": "

Route number of the road.

", + "smithy.api#required": {} + } + }, + "Towards": { + "target": "com.amazonaws.georoutes#LocalizedStringList", + "traits": { + "smithy.api#documentation": "

Names of destinations that can be reached when traveling on the road.

", + "smithy.api#required": {} + } + }, + "Type": { + "target": "com.amazonaws.georoutes#RouteRoadType", + "traits": { + "smithy.api#documentation": "

The type of road.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The road on the route.

" + } + }, + "com.amazonaws.georoutes#RouteRoadType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "HIGHWAY", + "value": "Highway" + }, + { + "name": "RURAL", + "value": "Rural" + }, + { + "name": "URBAN", + "value": "Urban" + } + ] + } + }, + "com.amazonaws.georoutes#RouteRoundaboutEnterStepDetails": { + "type": "structure", + "members": { + "Intersection": { + "target": "com.amazonaws.georoutes#LocalizedStringList", + "traits": { + "smithy.api#documentation": "

Name of the intersection, if applicable to the step.

", + "smithy.api#required": {} + } + }, + "SteeringDirection": { + "target": "com.amazonaws.georoutes#RouteSteeringDirection", + "traits": { + "smithy.api#documentation": "

Steering direction for the step.

" + } + }, + "TurnAngle": { + "target": "com.amazonaws.georoutes#TurnAngle", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Angle of the turn.

" + } + }, + "TurnIntensity": { + "target": "com.amazonaws.georoutes#RouteTurnIntensity", + "traits": { + "smithy.api#documentation": "

Intensity of the turn.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details about the roundabout leg.

" + } + }, + "com.amazonaws.georoutes#RouteRoundaboutExitStepDetails": { + "type": "structure", + "members": { + "Intersection": { + "target": "com.amazonaws.georoutes#LocalizedStringList", + "traits": { + "smithy.api#documentation": "

Name of the intersection, if applicable to the step.

", + "smithy.api#required": {} + } + }, + "RelativeExit": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#default": null, + "smithy.api#documentation": "

Exit to be taken.

", + "smithy.api#range": { + "min": 1, + "max": 12 + } + } + }, + "RoundaboutAngle": { + "target": "com.amazonaws.georoutes#RoundaboutAngle", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Angle of the roundabout.

" + } + }, + "SteeringDirection": { + "target": "com.amazonaws.georoutes#RouteSteeringDirection", + "traits": { + "smithy.api#documentation": "

Steering direction for the step.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details about the roundabout step.

" + } + }, + "com.amazonaws.georoutes#RouteRoundaboutPassStepDetails": { + "type": "structure", + "members": { + "Intersection": { + "target": "com.amazonaws.georoutes#LocalizedStringList", + "traits": { + "smithy.api#documentation": "

Name of the intersection, if applicable to the step.

", + "smithy.api#required": {} + } + }, + "SteeringDirection": { + "target": "com.amazonaws.georoutes#RouteSteeringDirection", + "traits": { + "smithy.api#documentation": "

Steering direction for the step.

" + } + }, + "TurnAngle": { + "target": "com.amazonaws.georoutes#TurnAngle", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Angle of the turn.

" + } + }, + "TurnIntensity": { + "target": "com.amazonaws.georoutes#RouteTurnIntensity", + "traits": { + "smithy.api#documentation": "

Intensity of the turn.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details about the step.

" + } + }, + "com.amazonaws.georoutes#RouteScooterOptions": { + "type": "structure", + "members": { + "EngineType": { + "target": "com.amazonaws.georoutes#RouteEngineType", + "traits": { + "smithy.api#documentation": "

Engine type of the vehicle.

" + } + }, + "LicensePlate": { + "target": "com.amazonaws.georoutes#RouteVehicleLicensePlate", + "traits": { + "smithy.api#documentation": "

The vehicle License Plate.

" + } + }, + "MaxSpeed": { + "target": "com.amazonaws.georoutes#SpeedKilometersPerHour", + "traits": { + "smithy.api#default": null, + "smithy.api#documentation": "

Maximum speed

\n

\n Unit: KilometersPerHour\n

", + "smithy.api#range": { + "min": 3.6, + "max": 252.0 + } + } + }, + "Occupancy": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#default": null, + "smithy.api#documentation": "

The number of occupants in the vehicle.

\n

Default Value: 1\n

", + "smithy.api#range": { + "min": 1 + } + } + } + }, + "traits": { + "smithy.api#documentation": "

Travel mode options when the provided travel mode is \"Scooter\"

" + } + }, + "com.amazonaws.georoutes#RouteSideOfStreet": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "LEFT", + "value": "Left" + }, + { + "name": "RIGHT", + "value": "Right" + } + ] + } + }, + "com.amazonaws.georoutes#RouteSideOfStreetOptions": { + "type": "structure", + "members": { + "Position": { + "target": "com.amazonaws.georoutes#Position", + "traits": { + "smithy.api#documentation": "

Position defined as [longitude, latitude].

", + "smithy.api#required": {} + } + }, + "UseWith": { + "target": "com.amazonaws.georoutes#SideOfStreetMatchingStrategy", + "traits": { + "smithy.api#documentation": "

Strategy that defines when the side of street position should be used.

\n

Default Value: DividedStreetOnly\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Options to configure matching the provided position to a side of the street.

" + } + }, + "com.amazonaws.georoutes#RouteSignpost": { + "type": "structure", + "members": { + "Labels": { + "target": "com.amazonaws.georoutes#RouteSignpostLabelList", + "traits": { + "smithy.api#documentation": "

Labels present on the sign post.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Sign post information of the action, applicable only for TurnByTurn steps. See RouteSignpost for details of sub-attributes.

" + } + }, + "com.amazonaws.georoutes#RouteSignpostLabel": { + "type": "structure", + "members": { + "RouteNumber": { + "target": "com.amazonaws.georoutes#RouteNumber", + "traits": { + "smithy.api#documentation": "

Route number of the road.

" + } + }, + "Text": { + "target": "com.amazonaws.georoutes#LocalizedString", + "traits": { + "smithy.api#documentation": "

The Signpost text.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Labels presented on the sign post.

" + } + }, + "com.amazonaws.georoutes#RouteSignpostLabelList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RouteSignpostLabel" + } + }, + "com.amazonaws.georoutes#RouteSpanAdditionalFeature": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "BEST_CASE_DURATION", + "value": "BestCaseDuration" + }, + { + "name": "CAR_ACCESS", + "value": "CarAccess" + }, + { + "name": "COUNTRY", + "value": "Country" + }, + { + "name": "DISTANCE", + "value": "Distance" + }, + { + "name": "DURATION", + "value": "Duration" + }, + { + "name": "DYNAMIC_SPEED", + "value": "DynamicSpeed" + }, + { + "name": "FUNCTIONAL_CLASSIFICATION", + "value": "FunctionalClassification" + }, + { + "name": "GATES", + "value": "Gates" + }, + { + "name": "INCIDENTS", + "value": "Incidents" + }, + { + "name": "NAMES", + "value": "Names" + }, + { + "name": "NOTICES", + "value": "Notices" + }, + { + "name": "PEDESTRIAN_ACCESS", + "value": "PedestrianAccess" + }, + { + "name": "RAILWAY_CROSSINGS", + "value": "RailwayCrossings" + }, + { + "name": "REGION", + "value": "Region" + }, + { + "name": "ROAD_ATTRIBUTES", + "value": "RoadAttributes" + }, + { + "name": "ROUTE_NUMBERS", + "value": "RouteNumbers" + }, + { + "name": "SCOOTER_ACCESS", + "value": "ScooterAccess" + }, + { + "name": "SPEED_LIMIT", + "value": "SpeedLimit" + }, + { + "name": "TOLL_SYSTEMS", + "value": "TollSystems" + }, + { + "name": "TRUCK_ACCESS", + "value": "TruckAccess" + }, + { + "name": "TRUCK_ROAD_TYPES", + "value": "TruckRoadTypes" + }, + { + "name": "TYPICAL_DURATION", + "value": "TypicalDuration" + }, + { + "name": "ZONES", + "value": "Zones" + }, + { + "name": "CONSUMPTION", + "value": "Consumption" + } + ] + } + }, + "com.amazonaws.georoutes#RouteSpanAdditionalFeatureList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RouteSpanAdditionalFeature" + }, + "traits": { + "smithy.api#length": { + "max": 24 + }, + "smithy.api#uniqueItems": {} + } + }, + "com.amazonaws.georoutes#RouteSpanCarAccessAttribute": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "ALLOWED", + "value": "Allowed" + }, + { + "name": "NO_THROUGH_TRAFFIC", + "value": "NoThroughTraffic" + }, + { + "name": "TOLL_ROAD", + "value": "TollRoad" + } + ] + } + }, + "com.amazonaws.georoutes#RouteSpanCarAccessAttributeList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RouteSpanCarAccessAttribute" + }, + "traits": { + "smithy.api#length": { + "max": 3 + }, + "smithy.api#uniqueItems": {} + } + }, + "com.amazonaws.georoutes#RouteSpanDynamicSpeedDetails": { + "type": "structure", + "members": { + "BestCaseSpeed": { + "target": "com.amazonaws.georoutes#SpeedKilometersPerHour", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Estimated speed while traversing the span without traffic congestion.

\n

\n Unit: KilometersPerHour\n

" + } + }, + "TurnDuration": { + "target": "com.amazonaws.georoutes#DurationSeconds", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Estimated time to turn from this span into the next.

\n

\n Unit: seconds\n

" + } + }, + "TypicalSpeed": { + "target": "com.amazonaws.georoutes#SpeedKilometersPerHour", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Estimated speed while traversing the span under typical traffic congestion.

\n

\n Unit: KilometersPerHour\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details about the dynamic speed.

\n

\n Unit: KilometersPerHour\n

" + } + }, + "com.amazonaws.georoutes#RouteSpanGateAttribute": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "EMERGENCY", + "value": "Emergency" + }, + { + "name": "KEY_ACCESS", + "value": "KeyAccess" + }, + { + "name": "PERMISSION_REQUIRED", + "value": "PermissionRequired" + } + ] + } + }, + "com.amazonaws.georoutes#RouteSpanPedestrianAccessAttribute": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "ALLOWED", + "value": "Allowed" + }, + { + "name": "INDOORS", + "value": "Indoors" + }, + { + "name": "NO_THROUGH_TRAFFIC", + "value": "NoThroughTraffic" + }, + { + "name": "PARK", + "value": "Park" + }, + { + "name": "STAIRS", + "value": "Stairs" + }, + { + "name": "TOLL_ROAD", + "value": "TollRoad" + } + ] + } + }, + "com.amazonaws.georoutes#RouteSpanPedestrianAccessAttributeList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RouteSpanPedestrianAccessAttribute" + }, + "traits": { + "smithy.api#length": { + "max": 6 + }, + "smithy.api#uniqueItems": {} + } + }, + "com.amazonaws.georoutes#RouteSpanRailwayCrossingAttribute": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "PROTECTED", + "value": "Protected" + }, + { + "name": "UNPROTECTED", + "value": "Unprotected" + } + ] + } + }, + "com.amazonaws.georoutes#RouteSpanRoadAttribute": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "BRIDGE", + "value": "Bridge" + }, + { + "name": "BUILT_UP_AREA", + "value": "BuiltUpArea" + }, + { + "name": "CONTROLLED_ACCESS_HIGHWAY", + "value": "ControlledAccessHighway" + }, + { + "name": "DIRT_ROAD", + "value": "DirtRoad" + }, + { + "name": "DIVIDED_ROAD", + "value": "DividedRoad" + }, + { + "name": "MOTORWAY", + "value": "Motorway" + }, + { + "name": "PRIVATE_ROAD", + "value": "PrivateRoad" + }, + { + "name": "RAMP", + "value": "Ramp" + }, + { + "name": "RIGHT_HAND_TRAFFIC", + "value": "RightHandTraffic" + }, + { + "name": "ROUNDABOUT", + "value": "Roundabout" + }, + { + "name": "TUNNEL", + "value": "Tunnel" + }, + { + "name": "UNDER_CONSTRUCTION", + "value": "UnderConstruction" + } + ] + } + }, + "com.amazonaws.georoutes#RouteSpanRoadAttributeList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RouteSpanRoadAttribute" + }, + "traits": { + "smithy.api#length": { + "max": 12 + }, + "smithy.api#uniqueItems": {} + } + }, + "com.amazonaws.georoutes#RouteSpanScooterAccessAttribute": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "ALLOWED", + "value": "Allowed" + }, + { + "name": "NO_THROUGH_TRAFFIC", + "value": "NoThroughTraffic" + }, + { + "name": "TOLL_ROAD", + "value": "TollRoad" + } + ] + } + }, + "com.amazonaws.georoutes#RouteSpanScooterAccessAttributeList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RouteSpanScooterAccessAttribute" + }, + "traits": { + "smithy.api#length": { + "max": 3 + }, + "smithy.api#uniqueItems": {} + } + }, + "com.amazonaws.georoutes#RouteSpanSpeedLimitDetails": { + "type": "structure", + "members": { + "MaxSpeed": { + "target": "com.amazonaws.georoutes#SpeedKilometersPerHour", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Maximum speed.

\n

\n Unit: KilometersPerHour\n

" + } + }, + "Unlimited": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

If the span doesn't have a speed limit like the Autobahn.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details about the speed limit corresponding to the span.

\n

\n Unit: KilometersPerHour\n

" + } + }, + "com.amazonaws.georoutes#RouteSpanTruckAccessAttribute": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "ALLOWED", + "value": "Allowed" + }, + { + "name": "NO_THROUGH_TRAFFIC", + "value": "NoThroughTraffic" + }, + { + "name": "TOLL_ROAD", + "value": "TollRoad" + } + ] + } + }, + "com.amazonaws.georoutes#RouteSpanTruckAccessAttributeList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RouteSpanTruckAccessAttribute" + }, + "traits": { + "smithy.api#length": { + "max": 3 + }, + "smithy.api#uniqueItems": {} + } + }, + "com.amazonaws.georoutes#RouteSteeringDirection": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "LEFT", + "value": "Left" + }, + { + "name": "RIGHT", + "value": "Right" + }, + { + "name": "STRAIGHT", + "value": "Straight" + } + ] + } + }, + "com.amazonaws.georoutes#RouteSummary": { + "type": "structure", + "members": { + "Distance": { + "target": "com.amazonaws.georoutes#DistanceMeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Distance of the route.

" + } + }, + "Duration": { + "target": "com.amazonaws.georoutes#DurationSeconds", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Duration of the route.

\n

\n Unit: seconds\n

" + } + }, + "Tolls": { + "target": "com.amazonaws.georoutes#RouteTollSummary", + "traits": { + "smithy.api#documentation": "

Toll summary for the complete route.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Summarized details for the leg including travel steps only. The Distance for the travel only portion of the journey is the same as the Distance within the Overview summary.

" + } + }, + "com.amazonaws.georoutes#RouteToll": { + "type": "structure", + "members": { + "Country": { + "target": "com.amazonaws.georoutes#CountryCode3", + "traits": { + "smithy.api#documentation": "

The alpha-2 or alpha-3 character code for the country.

" + } + }, + "PaymentSites": { + "target": "com.amazonaws.georoutes#RouteTollPaymentSiteList", + "traits": { + "smithy.api#documentation": "

Locations or sites where the toll fare is collected.

", + "smithy.api#required": {} + } + }, + "Rates": { + "target": "com.amazonaws.georoutes#RouteTollRateList", + "traits": { + "smithy.api#documentation": "

Toll rates that need to be paid to travel this leg of the route.

", + "smithy.api#required": {} + } + }, + "Systems": { + "target": "com.amazonaws.georoutes#IndexList", + "traits": { + "smithy.api#documentation": "

Toll systems are authorities that collect payments for the toll.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Provides details about toll information along a route, including the payment sites, applicable toll rates, toll systems, and the country associated with the toll collection.

" + } + }, + "com.amazonaws.georoutes#RouteTollList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RouteToll" + } + }, + "com.amazonaws.georoutes#RouteTollOptions": { + "type": "structure", + "members": { + "AllTransponders": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies if the user has valid transponder with access to all toll systems. This\n impacts toll calculation, and if true the price with transponders is used.

" + } + }, + "AllVignettes": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Specifies if the user has valid vignettes with access for all toll roads. If a user has a vignette for a toll road, then toll cost for that road is omitted since no further payment is necessary.

" + } + }, + "Currency": { + "target": "com.amazonaws.georoutes#CurrencyCode", + "traits": { + "smithy.api#documentation": "

Currency code corresponding to the price. This is the same as Currency specified in the request.

" + } + }, + "EmissionType": { + "target": "com.amazonaws.georoutes#RouteEmissionType", + "traits": { + "smithy.api#documentation": "

Emission type of the vehicle for toll cost calculation.

\n

\n Valid values: Euro1, Euro2, Euro3, Euro4, Euro5, Euro6, EuroEev\n

" + } + }, + "VehicleCategory": { + "target": "com.amazonaws.georoutes#RouteTollVehicleCategory", + "traits": { + "smithy.api#documentation": "

Vehicle category for toll cost calculation.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Options related to Tolls on a route.

" + } + }, + "com.amazonaws.georoutes#RouteTollPass": { + "type": "structure", + "members": { + "IncludesReturnTrip": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

If the pass includes the rate for the return leg of the trip.

" + } + }, + "SeniorPass": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

If the pass is only valid for senior persons.

" + } + }, + "TransferCount": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

If the toll pass can be transferred, and how many times.

", + "smithy.api#range": { + "min": 0 + } + } + }, + "TripCount": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

Number of trips the pass is valid for.

", + "smithy.api#range": { + "min": 0 + } + } + }, + "ValidityPeriod": { + "target": "com.amazonaws.georoutes#RouteTollPassValidityPeriod", + "traits": { + "smithy.api#documentation": "

Period for which the pass is valid.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details if the toll rate can be a pass that supports multiple trips.

" + } + }, + "com.amazonaws.georoutes#RouteTollPassValidityPeriod": { + "type": "structure", + "members": { + "Period": { + "target": "com.amazonaws.georoutes#RouteTollPassValidityPeriodType", + "traits": { + "smithy.api#documentation": "

Validity period.

", + "smithy.api#required": {} + } + }, + "PeriodCount": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

Counts for the validity period.

", + "smithy.api#range": { + "min": 0 + } + } + } + }, + "traits": { + "smithy.api#documentation": "

Period for which the pass is valid.

" + } + }, + "com.amazonaws.georoutes#RouteTollPassValidityPeriodType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "ANNUAL", + "value": "Annual" + }, + { + "name": "DAYS", + "value": "Days" + }, + { + "name": "EXTENDED_ANNUAL", + "value": "ExtendedAnnual" + }, + { + "name": "MINUTES", + "value": "Minutes" + }, + { + "name": "MONTHS", + "value": "Months" + } + ] + } + }, + "com.amazonaws.georoutes#RouteTollPaymentMethod": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "BANK_CARD", + "value": "BankCard" + }, + { + "name": "CASH", + "value": "Cash" + }, + { + "name": "CASH_EXACT", + "value": "CashExact" + }, + { + "name": "CREDIT_CARD", + "value": "CreditCard" + }, + { + "name": "PASS_SUBSCRIPTION", + "value": "PassSubscription" + }, + { + "name": "TRAVEL_CARD", + "value": "TravelCard" + }, + { + "name": "TRANSPONDER", + "value": "Transponder" + }, + { + "name": "VIDEO_TOLL", + "value": "VideoToll" + } + ] + } + }, + "com.amazonaws.georoutes#RouteTollPaymentMethodList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RouteTollPaymentMethod" + }, + "traits": { + "smithy.api#length": { + "max": 8 + }, + "smithy.api#uniqueItems": {} + } + }, + "com.amazonaws.georoutes#RouteTollPaymentSite": { + "type": "structure", + "members": { + "Name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

Name of the payment site.

" + } + }, + "Position": { + "target": "com.amazonaws.georoutes#Position23", + "traits": { + "smithy.api#documentation": "

Position defined as [longitude, latitude].

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Locations or sites where the toll fare is collected.

" + } + }, + "com.amazonaws.georoutes#RouteTollPaymentSiteList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RouteTollPaymentSite" + } + }, + "com.amazonaws.georoutes#RouteTollPrice": { + "type": "structure", + "members": { + "Currency": { + "target": "com.amazonaws.georoutes#CurrencyCode", + "traits": { + "smithy.api#documentation": "

Currency code corresponding to the price. This is the same as Currency specified in the request.

", + "smithy.api#required": {} + } + }, + "Estimate": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

If the price is an estimate or an exact value.

", + "smithy.api#required": {} + } + }, + "PerDuration": { + "target": "com.amazonaws.georoutes#DurationSeconds", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Duration for which the price corresponds to.

\n

\n Unit: seconds\n

" + } + }, + "Range": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

If the price is a range or an exact value. If any of the toll fares making up the route is a range, the overall price is also a range.

", + "smithy.api#required": {} + } + }, + "RangeValue": { + "target": "com.amazonaws.georoutes#RouteTollPriceValueRange", + "traits": { + "smithy.api#documentation": "

Price range with a minimum and maximum value, if a range.

" + } + }, + "Value": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#documentation": "

Exact price, if not a range.

", + "smithy.api#range": { + "min": 0.0 + }, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The toll price.

" + } + }, + "com.amazonaws.georoutes#RouteTollPriceSummary": { + "type": "structure", + "members": { + "Currency": { + "target": "com.amazonaws.georoutes#CurrencyCode", + "traits": { + "smithy.api#documentation": "

Currency code corresponding to the price. This is the same as Currency specified in the request.

", + "smithy.api#required": {} + } + }, + "Estimate": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

If the price is an estimate or an exact value.

", + "smithy.api#required": {} + } + }, + "Range": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

If the price is a range or an exact value. If any of the toll fares making up the route is a range, the overall price is also a range.

", + "smithy.api#required": {} + } + }, + "RangeValue": { + "target": "com.amazonaws.georoutes#RouteTollPriceValueRange", + "traits": { + "smithy.api#documentation": "

Price range with a minimum and maximum value, if a range.

" + } + }, + "Value": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#documentation": "

Exact price, if not a range.

", + "smithy.api#range": { + "min": 0.0 + }, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Summary of the route and toll price.

" + } + }, + "com.amazonaws.georoutes#RouteTollPriceValueRange": { + "type": "structure", + "members": { + "Min": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#documentation": "

Minimum price.

", + "smithy.api#range": { + "min": 0.0 + }, + "smithy.api#required": {} + } + }, + "Max": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#documentation": "

Maximum price.

", + "smithy.api#range": { + "min": 0.0 + }, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Price range with a minimum and maximum value, if a range.

" + } + }, + "com.amazonaws.georoutes#RouteTollRate": { + "type": "structure", + "members": { + "ApplicableTimes": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

Time when the rate is valid.

" + } + }, + "ConvertedPrice": { + "target": "com.amazonaws.georoutes#RouteTollPrice", + "traits": { + "smithy.api#documentation": "

Price in the converted currency as specified in the request.

" + } + }, + "Id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The Toll rate Id.

", + "smithy.api#required": {} + } + }, + "LocalPrice": { + "target": "com.amazonaws.georoutes#RouteTollPrice", + "traits": { + "smithy.api#documentation": "

Price in the local regional currency.

", + "smithy.api#required": {} + } + }, + "Name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The name of the toll.

", + "smithy.api#required": {} + } + }, + "Pass": { + "target": "com.amazonaws.georoutes#RouteTollPass", + "traits": { + "smithy.api#documentation": "

Details if the toll rate can be a pass that supports multiple trips.

" + } + }, + "PaymentMethods": { + "target": "com.amazonaws.georoutes#RouteTollPaymentMethodList", + "traits": { + "smithy.api#documentation": "

Accepted payment methods at the toll.

", + "smithy.api#required": {} + } + }, + "Transponders": { + "target": "com.amazonaws.georoutes#RouteTransponderList", + "traits": { + "smithy.api#documentation": "

Transponders for which this toll can be applied.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The toll rate.

" + } + }, + "com.amazonaws.georoutes#RouteTollRateList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RouteTollRate" + } + }, + "com.amazonaws.georoutes#RouteTollSummary": { + "type": "structure", + "members": { + "Total": { + "target": "com.amazonaws.georoutes#RouteTollPriceSummary", + "traits": { + "smithy.api#documentation": "

Total toll summary for the complete route. Total is the only summary available\n today.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The toll summary for the complete route.

" + } + }, + "com.amazonaws.georoutes#RouteTollSystem": { + "type": "structure", + "members": { + "Name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The toll system name.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Toll systems are authorities that collect payments for the toll.

" + } + }, + "com.amazonaws.georoutes#RouteTollSystemList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RouteTollSystem" + } + }, + "com.amazonaws.georoutes#RouteTollVehicleCategory": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "MINIBUS", + "value": "Minibus" + } + ] + } + }, + "com.amazonaws.georoutes#RouteTrafficOptions": { + "type": "structure", + "members": { + "FlowEventThresholdOverride": { + "target": "com.amazonaws.georoutes#DurationSeconds", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Duration for which flow \n traffic is considered valid. \n For this period, the flow traffic is used over historical traffic data. \n Flow traffic refers to congestion, which changes very quickly. \n Duration in seconds for which flow traffic event would be considered valid. \n While flow traffic event is valid it will be used over the historical traffic data.

" + } + }, + "Usage": { + "target": "com.amazonaws.georoutes#TrafficUsage", + "traits": { + "smithy.api#documentation": "

Determines if traffic should be used or ignored while calculating the route.

\n

Default Value: UseTrafficData\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Traffic options for the route.

" + } + }, + "com.amazonaws.georoutes#RouteTrailerOptions": { + "type": "structure", + "members": { + "AxleCount": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#default": null, + "smithy.api#documentation": "

Total number of axles of the vehicle.

", + "smithy.api#range": { + "min": 1 + } + } + }, + "TrailerCount": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#default": null, + "smithy.api#documentation": "

Number of trailers attached to the vehicle.

\n

Default Value: 0\n

", + "smithy.api#range": { + "min": 1, + "max": 255 + } + } + } + }, + "traits": { + "smithy.api#documentation": "

Trailer options corresponding to the vehicle.

" + } + }, + "com.amazonaws.georoutes#RouteTransponder": { + "type": "structure", + "members": { + "SystemName": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

Names of the toll system collecting the toll.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Transponders for which this toll can be applied.

" + } + }, + "com.amazonaws.georoutes#RouteTransponderList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RouteTransponder" + } + }, + "com.amazonaws.georoutes#RouteTravelMode": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "CAR", + "value": "Car" + }, + { + "name": "PEDESTRIAN", + "value": "Pedestrian" + }, + { + "name": "SCOOTER", + "value": "Scooter" + }, + { + "name": "TRUCK", + "value": "Truck" + } + ] + } + }, + "com.amazonaws.georoutes#RouteTravelModeOptions": { + "type": "structure", + "members": { + "Car": { + "target": "com.amazonaws.georoutes#RouteCarOptions", + "traits": { + "smithy.api#documentation": "

Travel mode options when the provided travel mode is \"Car\"

" + } + }, + "Pedestrian": { + "target": "com.amazonaws.georoutes#RoutePedestrianOptions", + "traits": { + "smithy.api#documentation": "

Travel mode options when the provided travel mode is \"Pedestrian\"

" + } + }, + "Scooter": { + "target": "com.amazonaws.georoutes#RouteScooterOptions", + "traits": { + "smithy.api#documentation": "

Travel mode options when the provided travel mode is \"Scooter\"

" + } + }, + "Truck": { + "target": "com.amazonaws.georoutes#RouteTruckOptions", + "traits": { + "smithy.api#documentation": "

Travel mode options when the provided travel mode is \"Truck\"

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Travel mode related options for the provided travel mode.

" + } + }, + "com.amazonaws.georoutes#RouteTravelStepType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "DEFAULT", + "value": "Default" + }, + { + "name": "TURN_BY_TURN", + "value": "TurnByTurn" + } + ] + } + }, + "com.amazonaws.georoutes#RouteTruckOptions": { + "type": "structure", + "members": { + "AxleCount": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#default": null, + "smithy.api#documentation": "

Total number of axles of the vehicle.

", + "smithy.api#range": { + "min": 2, + "max": 255 + } + } + }, + "EngineType": { + "target": "com.amazonaws.georoutes#RouteEngineType", + "traits": { + "smithy.api#documentation": "

Engine type of the vehicle.

" + } + }, + "GrossWeight": { + "target": "com.amazonaws.georoutes#WeightKilograms", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Gross weight of the vehicle including trailers, and goods at capacity.

\n

\n Unit: Kilograms\n

" + } + }, + "HazardousCargos": { + "target": "com.amazonaws.georoutes#RouteHazardousCargoTypeList", + "traits": { + "smithy.api#documentation": "

List of Hazardous cargo contained in the vehicle.

" + } + }, + "Height": { + "target": "com.amazonaws.georoutes#DimensionCentimeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Height of the vehicle.

\n

\n Unit: centimeters\n

", + "smithy.api#range": { + "min": 0, + "max": 5000 + } + } + }, + "HeightAboveFirstAxle": { + "target": "com.amazonaws.georoutes#DimensionCentimeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Height of the vehicle above its first axle.

\n

\n Unit: centimeters\n

", + "smithy.api#range": { + "min": 0, + "max": 5000 + } + } + }, + "KpraLength": { + "target": "com.amazonaws.georoutes#DimensionCentimeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Kingpin to rear axle length of the vehicle.

\n

\n Unit: centimeters\n

" + } + }, + "Length": { + "target": "com.amazonaws.georoutes#DimensionCentimeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Length of the vehicle.

\n

\n Unit: c\n

", + "smithy.api#range": { + "min": 0, + "max": 30000 + } + } + }, + "LicensePlate": { + "target": "com.amazonaws.georoutes#RouteVehicleLicensePlate", + "traits": { + "smithy.api#documentation": "

The vehicle License Plate.

" + } + }, + "MaxSpeed": { + "target": "com.amazonaws.georoutes#SpeedKilometersPerHour", + "traits": { + "smithy.api#default": null, + "smithy.api#documentation": "

Maximum speed

\n

\n Unit: KilometersPerHour\n

", + "smithy.api#range": { + "min": 3.6, + "max": 252.0 + } + } + }, + "Occupancy": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#default": null, + "smithy.api#documentation": "

The number of occupants in the vehicle.

\n

Default Value: 1\n

", + "smithy.api#range": { + "min": 1 + } + } + }, + "PayloadCapacity": { + "target": "com.amazonaws.georoutes#WeightKilograms", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Payload capacity of the vehicle and trailers attached.

\n

\n Unit: kilograms\n

" + } + }, + "TireCount": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#default": null, + "smithy.api#documentation": "

Number of tires on the vehicle.

", + "smithy.api#range": { + "min": 1, + "max": 255 + } + } + }, + "Trailer": { + "target": "com.amazonaws.georoutes#RouteTrailerOptions", + "traits": { + "smithy.api#documentation": "

Trailer options corresponding to the vehicle.

" + } + }, + "TruckType": { + "target": "com.amazonaws.georoutes#RouteTruckType", + "traits": { + "smithy.api#documentation": "

Type of the truck.

" + } + }, + "TunnelRestrictionCode": { + "target": "com.amazonaws.georoutes#TunnelRestrictionCode", + "traits": { + "smithy.api#documentation": "

The tunnel restriction code.

\n

Tunnel categories in this list indicate the restrictions which apply to certain tunnels in Great Britain. \n They relate to the types of dangerous goods that can be transported through them.

\n
    \n
  • \n

    \n Tunnel Category B\n

    \n
      \n
    • \n

      \n Risk Level: Limited risk

      \n
    • \n
    • \n

      \n Restrictions: Few restrictions

      \n
    • \n
    \n
  • \n
  • \n

    \n Tunnel Category C\n

    \n
      \n
    • \n

      \n Risk Level: Medium risk

      \n
    • \n
    • \n

      \n Restrictions: Some restrictions

      \n
    • \n
    \n
  • \n
  • \n

    \n Tunnel Category D\n

    \n
      \n
    • \n

      \n Risk Level: High risk

      \n
    • \n
    • \n

      \n Restrictions: Many restrictions occur

      \n
    • \n
    \n
  • \n
  • \n

    \n Tunnel Category E\n

    \n
      \n
    • \n

      \n Risk Level: Very high risk

      \n
    • \n
    • \n

      \n Restrictions: Restricted tunnel

      \n
    • \n
    \n
  • \n
", + "smithy.api#length": { + "max": 20 + } + } + }, + "WeightPerAxle": { + "target": "com.amazonaws.georoutes#WeightKilograms", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Heaviest weight per axle irrespective of the axle type or the axle group. Meant for usage in countries where the differences in axle types or axle groups are not distinguished.

\n

\n Unit: Kilograms\n

" + } + }, + "WeightPerAxleGroup": { + "target": "com.amazonaws.georoutes#WeightPerAxleGroup", + "traits": { + "smithy.api#documentation": "

Specifies the total weight for the specified axle group. Meant for usage in countries that have different regulations based on the axle group type.

\n

\n Unit: Kilograms\n

" + } + }, + "Width": { + "target": "com.amazonaws.georoutes#DimensionCentimeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Width of the vehicle.

\n

\n Unit: centimeters\n

", + "smithy.api#range": { + "min": 0, + "max": 5000 + } + } + } + }, + "traits": { + "smithy.api#documentation": "

Travel mode options when the provided travel mode is \"Truck\"

" + } + }, + "com.amazonaws.georoutes#RouteTruckType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "LIGHT_TRUCK", + "value": "LightTruck" + }, + { + "name": "STRAIGHT_TRUCK", + "value": "StraightTruck" + }, + { + "name": "TRACTOR", + "value": "Tractor" + } + ] + } + }, + "com.amazonaws.georoutes#RouteTurnIntensity": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "SHARP", + "value": "Sharp" + }, + { + "name": "SLIGHT", + "value": "Slight" + }, + { + "name": "TYPICAL", + "value": "Typical" + } + ] + } + }, + "com.amazonaws.georoutes#RouteTurnStepDetails": { + "type": "structure", + "members": { + "Intersection": { + "target": "com.amazonaws.georoutes#LocalizedStringList", + "traits": { + "smithy.api#documentation": "

Name of the intersection, if applicable to the step.

", + "smithy.api#required": {} + } + }, + "SteeringDirection": { + "target": "com.amazonaws.georoutes#RouteSteeringDirection", + "traits": { + "smithy.api#documentation": "

Steering direction for the step.

" + } + }, + "TurnAngle": { + "target": "com.amazonaws.georoutes#TurnAngle", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Angle of the turn.

" + } + }, + "TurnIntensity": { + "target": "com.amazonaws.georoutes#RouteTurnIntensity", + "traits": { + "smithy.api#documentation": "

Intensity of the turn.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details related to the turn step.

" + } + }, + "com.amazonaws.georoutes#RouteUTurnStepDetails": { + "type": "structure", + "members": { + "Intersection": { + "target": "com.amazonaws.georoutes#LocalizedStringList", + "traits": { + "smithy.api#documentation": "

Name of the intersection, if applicable to the step.

", + "smithy.api#required": {} + } + }, + "SteeringDirection": { + "target": "com.amazonaws.georoutes#RouteSteeringDirection", + "traits": { + "smithy.api#documentation": "

Steering direction for the step.

" + } + }, + "TurnAngle": { + "target": "com.amazonaws.georoutes#TurnAngle", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Angle of the turn.

" + } + }, + "TurnIntensity": { + "target": "com.amazonaws.georoutes#RouteTurnIntensity", + "traits": { + "smithy.api#documentation": "

Intensity of the turn.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details related to the U-turn step.

" + } + }, + "com.amazonaws.georoutes#RouteVehicleArrival": { + "type": "structure", + "members": { + "Place": { + "target": "com.amazonaws.georoutes#RouteVehiclePlace", + "traits": { + "smithy.api#documentation": "

The place details.

", + "smithy.api#required": {} + } + }, + "Time": { + "target": "com.amazonaws.georoutes#TimestampWithTimezoneOffset", + "traits": { + "smithy.api#documentation": "

The time.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details corresponding to the arrival for a leg.

" + } + }, + "com.amazonaws.georoutes#RouteVehicleDeparture": { + "type": "structure", + "members": { + "Place": { + "target": "com.amazonaws.georoutes#RouteVehiclePlace", + "traits": { + "smithy.api#documentation": "

The place details.

", + "smithy.api#required": {} + } + }, + "Time": { + "target": "com.amazonaws.georoutes#TimestampWithTimezoneOffset", + "traits": { + "smithy.api#documentation": "

The departure time.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Details corresponding to the departure for the leg.

" + } + }, + "com.amazonaws.georoutes#RouteVehicleIncident": { + "type": "structure", + "members": { + "Description": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

Brief readable description of the incident.

" + } + }, + "EndTime": { + "target": "com.amazonaws.georoutes#TimestampWithTimezoneOffset", + "traits": { + "smithy.api#documentation": "

End timestamp of the incident.

" + } + }, + "Severity": { + "target": "com.amazonaws.georoutes#RouteVehicleIncidentSeverity", + "traits": { + "smithy.api#documentation": "

Severity of the incident\nCritical - The part of the route the incident affects is unusable.\nMajor- Major impact on the leg duration, for example stop and go\nMinor- Minor impact on the leg duration, for example traffic jam\nLow - Low on duration, for example slightly increased traffic

" + } + }, + "StartTime": { + "target": "com.amazonaws.georoutes#TimestampWithTimezoneOffset", + "traits": { + "smithy.api#documentation": "

Start time of the incident.

" + } + }, + "Type": { + "target": "com.amazonaws.georoutes#RouteVehicleIncidentType", + "traits": { + "smithy.api#documentation": "

Type of the incident.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Incidents corresponding to this leg of the route.

" + } + }, + "com.amazonaws.georoutes#RouteVehicleIncidentList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RouteVehicleIncident" + } + }, + "com.amazonaws.georoutes#RouteVehicleIncidentSeverity": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "CRITICAL", + "value": "Critical" + }, + { + "name": "HIGH", + "value": "High" + }, + { + "name": "MEDIUM", + "value": "Medium" + }, + { + "name": "LOW", + "value": "Low" + } + ] + } + }, + "com.amazonaws.georoutes#RouteVehicleIncidentType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "ACCIDENT", + "value": "Accident" + }, + { + "name": "CONGESTION", + "value": "Congestion" + }, + { + "name": "CONSTRUCTION", + "value": "Construction" + }, + { + "name": "DISABLED_VEHICLE", + "value": "DisabledVehicle" + }, + { + "name": "LANE_RESTRICTION", + "value": "LaneRestriction" + }, + { + "name": "MASS_TRANSIT", + "value": "MassTransit" + }, + { + "name": "OTHER", + "value": "Other" + }, + { + "name": "PLANNED_EVENT", + "value": "PlannedEvent" + }, + { + "name": "ROAD_CLOSURE", + "value": "RoadClosure" + }, + { + "name": "ROAD_HAZARD", + "value": "RoadHazard" + }, + { + "name": "WEATHER", + "value": "Weather" + } + ] + } + }, + "com.amazonaws.georoutes#RouteVehicleLegDetails": { + "type": "structure", + "members": { + "Arrival": { + "target": "com.amazonaws.georoutes#RouteVehicleArrival", + "traits": { + "smithy.api#documentation": "

Details corresponding to the arrival for the leg.

", + "smithy.api#required": {} + } + }, + "Departure": { + "target": "com.amazonaws.georoutes#RouteVehicleDeparture", + "traits": { + "smithy.api#documentation": "

Details corresponding to the departure for the leg.

", + "smithy.api#required": {} + } + }, + "Incidents": { + "target": "com.amazonaws.georoutes#RouteVehicleIncidentList", + "traits": { + "smithy.api#documentation": "

Incidents corresponding to this leg of the route.

", + "smithy.api#required": {} + } + }, + "Notices": { + "target": "com.amazonaws.georoutes#RouteVehicleNoticeList", + "traits": { + "smithy.api#documentation": "

Notices are additional information returned that indicate issues that occurred during route calculation.

", + "smithy.api#required": {} + } + }, + "PassThroughWaypoints": { + "target": "com.amazonaws.georoutes#RoutePassThroughWaypointList", + "traits": { + "smithy.api#documentation": "

Waypoints that were passed through during the leg. This includes the waypoints that were configured with the PassThrough option.

", + "smithy.api#required": {} + } + }, + "Spans": { + "target": "com.amazonaws.georoutes#RouteVehicleSpanList", + "traits": { + "smithy.api#documentation": "

Spans that were computed for the requested SpanAdditionalFeatures.

", + "smithy.api#required": {} + } + }, + "Summary": { + "target": "com.amazonaws.georoutes#RouteVehicleSummary", + "traits": { + "smithy.api#documentation": "

Summarized details of the leg.

" + } + }, + "Tolls": { + "target": "com.amazonaws.georoutes#RouteTollList", + "traits": { + "smithy.api#documentation": "

Toll related options.

", + "smithy.api#required": {} + } + }, + "TollSystems": { + "target": "com.amazonaws.georoutes#RouteTollSystemList", + "traits": { + "smithy.api#documentation": "

Toll systems are authorities that collect payments for the toll.

", + "smithy.api#required": {} + } + }, + "TravelSteps": { + "target": "com.amazonaws.georoutes#RouteVehicleTravelStepList", + "traits": { + "smithy.api#documentation": "

Steps of a leg that must be performed before the travel portion of the leg.

", + "smithy.api#required": {} + } + }, + "TruckRoadTypes": { + "target": "com.amazonaws.georoutes#TruckRoadTypeList", + "traits": { + "smithy.api#documentation": "

Truck road type identifiers. BK1 through BK4 apply only to Sweden. \n A2,A4,B2,B4,C,D,ET2,ET4 apply only to Mexico.

\n \n

There are currently no other supported values as of 26th April 2024.

\n
", + "smithy.api#required": {} + } + }, + "Zones": { + "target": "com.amazonaws.georoutes#RouteZoneList", + "traits": { + "smithy.api#documentation": "

Zones corresponding to this leg of the route.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Steps of a leg that correspond to the travel portion of the leg.

" + } + }, + "com.amazonaws.georoutes#RouteVehicleLicensePlate": { + "type": "structure", + "members": { + "LastCharacter": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The last character of the License Plate.

", + "smithy.api#length": { + "min": 1, + "max": 1 + } + } + } + }, + "traits": { + "smithy.api#documentation": "

License plate information of the vehicle. Currently, only the last character is used\n where license plate based controlled access is enforced.

" + } + }, + "com.amazonaws.georoutes#RouteVehicleNotice": { + "type": "structure", + "members": { + "Code": { + "target": "com.amazonaws.georoutes#RouteVehicleNoticeCode", + "traits": { + "smithy.api#documentation": "

Code corresponding to the issue.

", + "smithy.api#required": {} + } + }, + "Details": { + "target": "com.amazonaws.georoutes#RouteVehicleNoticeDetailList", + "traits": { + "smithy.api#documentation": "

Additional details of the notice.

", + "smithy.api#required": {} + } + }, + "Impact": { + "target": "com.amazonaws.georoutes#RouteNoticeImpact", + "traits": { + "smithy.api#documentation": "

Impact corresponding to the issue. While Low impact notices can be safely ignored, High impact notices must be evaluated further to determine the impact.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Notices are additional information returned that indicate issues that occurred during route calculation.

" + } + }, + "com.amazonaws.georoutes#RouteVehicleNoticeCode": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "ACCURATE_POLYLINE_UNAVAILABLE", + "value": "AccuratePolylineUnavailable" + }, + { + "name": "OTHER", + "value": "Other" + }, + { + "name": "POTENTIAL_VIOLATED_AVOID_TOLL_ROAD_USAGE", + "value": "PotentialViolatedAvoidTollRoadUsage" + }, + { + "name": "POTENTIAL_VIOLATED_CARPOOL_USAGE", + "value": "PotentialViolatedCarpoolUsage" + }, + { + "name": "POTENTIAL_VIOLATED_TURN_RESTRICTION_USAGE", + "value": "PotentialViolatedTurnRestrictionUsage" + }, + { + "name": "POTENTIAL_VIOLATED_VEHICLE_RESTRICTION_USAGE", + "value": "PotentialViolatedVehicleRestrictionUsage" + }, + { + "name": "POTENTIAL_VIOLATED_ZONE_RESTRICTION_USAGE", + "value": "PotentialViolatedZoneRestrictionUsage" + }, + { + "name": "SEASONAL_CLOSURE", + "value": "SeasonalClosure" + }, + { + "name": "TOLLS_DATA_TEMPORARILY_UNAVAILABLE", + "value": "TollsDataTemporarilyUnavailable" + }, + { + "name": "TOLLS_DATA_UNAVAILABLE", + "value": "TollsDataUnavailable" + }, + { + "name": "TOLL_TRANSPONDER", + "value": "TollTransponder" + }, + { + "name": "VIOLATED_AVOID_CONTROLLED_ACCESS_HIGHWAY", + "value": "ViolatedAvoidControlledAccessHighway" + }, + { + "name": "VIOLATED_AVOID_DIFFICULT_TURNS", + "value": "ViolatedAvoidDifficultTurns" + }, + { + "name": "VIOLATED_AVOID_DIRT_ROAD", + "value": "ViolatedAvoidDirtRoad" + }, + { + "name": "VIOLATED_AVOID_SEASONAL_CLOSURE", + "value": "ViolatedAvoidSeasonalClosure" + }, + { + "name": "VIOLATED_AVOID_TOLL_ROAD", + "value": "ViolatedAvoidTollRoad" + }, + { + "name": "VIOLATED_AVOID_TOLL_TRANSPONDER", + "value": "ViolatedAvoidTollTransponder" + }, + { + "name": "VIOLATED_AVOID_TRUCK_ROAD_TYPE", + "value": "ViolatedAvoidTruckRoadType" + }, + { + "name": "VIOLATED_AVOID_TUNNEL", + "value": "ViolatedAvoidTunnel" + }, + { + "name": "VIOLATED_AVOID_U_TURNS", + "value": "ViolatedAvoidUTurns" + }, + { + "name": "VIOLATED_BLOCKED_ROAD", + "value": "ViolatedBlockedRoad" + }, + { + "name": "VIOLATED_CARPOOL", + "value": "ViolatedCarpool" + }, + { + "name": "VIOLATED_EMERGENCY_GATE", + "value": "ViolatedEmergencyGate" + }, + { + "name": "VIOLATED_START_DIRECTION", + "value": "ViolatedStartDirection" + }, + { + "name": "VIOLATED_TURN_RESTRICTION", + "value": "ViolatedTurnRestriction" + }, + { + "name": "VIOLATED_VEHICLE_RESTRICTION", + "value": "ViolatedVehicleRestriction" + }, + { + "name": "VIOLATED_ZONE_RESTRICTION", + "value": "ViolatedZoneRestriction" + } + ] + } + }, + "com.amazonaws.georoutes#RouteVehicleNoticeDetail": { + "type": "structure", + "members": { + "Title": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The notice title.

" + } + }, + "ViolatedConstraints": { + "target": "com.amazonaws.georoutes#RouteViolatedConstraints", + "traits": { + "smithy.api#documentation": "

Any violated constraints.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Additional details of the notice.

" + } + }, + "com.amazonaws.georoutes#RouteVehicleNoticeDetailList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RouteVehicleNoticeDetail" + } + }, + "com.amazonaws.georoutes#RouteVehicleNoticeList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RouteVehicleNotice" + } + }, + "com.amazonaws.georoutes#RouteVehicleOverviewSummary": { + "type": "structure", + "members": { + "BestCaseDuration": { + "target": "com.amazonaws.georoutes#DurationSeconds", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Total duration in free flowing traffic, which is the best case or shortest duration possible to cover the leg.

\n

\n Unit: seconds\n

" + } + }, + "Distance": { + "target": "com.amazonaws.georoutes#DistanceMeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Distance of the step.

", + "smithy.api#required": {} + } + }, + "Duration": { + "target": "com.amazonaws.georoutes#DurationSeconds", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Duration of the step.

\n

\n Unit: seconds\n

", + "smithy.api#required": {} + } + }, + "TypicalDuration": { + "target": "com.amazonaws.georoutes#DurationSeconds", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Duration of the computed span under typical traffic congestion.

\n

\n Unit: seconds\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Summarized details of the leg.

" + } + }, + "com.amazonaws.georoutes#RouteVehiclePlace": { + "type": "structure", + "members": { + "Name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The name of the place.

" + } + }, + "OriginalPosition": { + "target": "com.amazonaws.georoutes#Position23", + "traits": { + "smithy.api#documentation": "

Position provided in the request.

" + } + }, + "Position": { + "target": "com.amazonaws.georoutes#Position23", + "traits": { + "smithy.api#documentation": "

Position defined as [longitude, latitude].

", + "smithy.api#required": {} + } + }, + "SideOfStreet": { + "target": "com.amazonaws.georoutes#RouteSideOfStreet", + "traits": { + "smithy.api#documentation": "

Options to configure matching the provided position to a side of the street.

" + } + }, + "WaypointIndex": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

Index of the waypoint in the request.

", + "smithy.api#range": { + "min": 0 + } + } + } + }, + "traits": { + "smithy.api#documentation": "

Place details corresponding to the arrival or departure.

" + } + }, + "com.amazonaws.georoutes#RouteVehicleSpan": { + "type": "structure", + "members": { + "BestCaseDuration": { + "target": "com.amazonaws.georoutes#DurationSeconds", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Duration of the computed span without traffic congestion.

\n

\n Unit: seconds\n

" + } + }, + "CarAccess": { + "target": "com.amazonaws.georoutes#RouteSpanCarAccessAttributeList", + "traits": { + "smithy.api#documentation": "

Access attributes for a car corresponding to the span.

" + } + }, + "Country": { + "target": "com.amazonaws.georoutes#CountryCode3", + "traits": { + "smithy.api#documentation": "

3 letter Country code corresponding to the Span.

" + } + }, + "Distance": { + "target": "com.amazonaws.georoutes#DistanceMeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Distance of the computed span. This feature doesn't split a span, but is always computed on a span split by other properties.

" + } + }, + "Duration": { + "target": "com.amazonaws.georoutes#DurationSeconds", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Duration of the computed span. This feature doesn't split a span, but is always computed on a span split by other properties.

\n

\n Unit: seconds\n

" + } + }, + "DynamicSpeed": { + "target": "com.amazonaws.georoutes#RouteSpanDynamicSpeedDetails", + "traits": { + "smithy.api#documentation": "

Dynamic speed details corresponding to the span.

\n

\n Unit: KilometersPerHour\n

" + } + }, + "FunctionalClassification": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

Functional classification of the road segment corresponding to the span.

", + "smithy.api#range": { + "min": 1, + "max": 5 + } + } + }, + "Gate": { + "target": "com.amazonaws.georoutes#RouteSpanGateAttribute", + "traits": { + "smithy.api#documentation": "

Attributes corresponding to a gate. The gate is present at the end of the returned span.

" + } + }, + "GeometryOffset": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

Offset in the leg geometry corresponding to the start of this span.

", + "smithy.api#range": { + "min": 0 + } + } + }, + "Incidents": { + "target": "com.amazonaws.georoutes#IndexList", + "traits": { + "smithy.api#documentation": "

Incidents corresponding to the span. These index into the Incidents in the parent Leg.

" + } + }, + "Names": { + "target": "com.amazonaws.georoutes#LocalizedStringList", + "traits": { + "smithy.api#documentation": "

Provides an array of names of the vehicle span in available languages.

" + } + }, + "Notices": { + "target": "com.amazonaws.georoutes#IndexList", + "traits": { + "smithy.api#documentation": "

Notices are additional information returned that indicate issues that occurred during route calculation.

" + } + }, + "RailwayCrossing": { + "target": "com.amazonaws.georoutes#RouteSpanRailwayCrossingAttribute", + "traits": { + "smithy.api#documentation": "

Attributes corresponding to a railway crossing. The gate is present at the end of the returned span.

" + } + }, + "Region": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

2-3 letter Region code corresponding to the Span. This is either a province or a state.

", + "smithy.api#length": { + "min": 0, + "max": 3 + } + } + }, + "RoadAttributes": { + "target": "com.amazonaws.georoutes#RouteSpanRoadAttributeList", + "traits": { + "smithy.api#documentation": "

Attributes for the road segment corresponding to the span.

" + } + }, + "RouteNumbers": { + "target": "com.amazonaws.georoutes#RouteNumberList", + "traits": { + "smithy.api#documentation": "

Designated route name or number corresponding to the span.

" + } + }, + "ScooterAccess": { + "target": "com.amazonaws.georoutes#RouteSpanScooterAccessAttributeList", + "traits": { + "smithy.api#documentation": "

Access attributes for a scooter corresponding to the span.

" + } + }, + "SpeedLimit": { + "target": "com.amazonaws.georoutes#RouteSpanSpeedLimitDetails", + "traits": { + "smithy.api#documentation": "

Speed limit details corresponding to the span.

\n

\n Unit: KilometersPerHour\n

" + } + }, + "TollSystems": { + "target": "com.amazonaws.georoutes#IndexList", + "traits": { + "smithy.api#documentation": "

Toll systems are authorities that collect payments for the toll.

" + } + }, + "TruckAccess": { + "target": "com.amazonaws.georoutes#RouteSpanTruckAccessAttributeList", + "traits": { + "smithy.api#documentation": "

Access attributes for a truck corresponding to the span.

" + } + }, + "TruckRoadTypes": { + "target": "com.amazonaws.georoutes#IndexList", + "traits": { + "smithy.api#documentation": "

Truck road type identifiers. BK1 through BK4 apply only to Sweden. \n A2,A4,B2,B4,C,D,ET2,ET4 apply only to Mexico.

\n \n

There are currently no other supported values as of 26th April 2024.

\n
" + } + }, + "TypicalDuration": { + "target": "com.amazonaws.georoutes#DurationSeconds", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Duration of the computed span under typical traffic congestion.

\n

\n Unit: seconds\n

" + } + }, + "Zones": { + "target": "com.amazonaws.georoutes#IndexList", + "traits": { + "smithy.api#documentation": "

Zones corresponding to this leg of the route.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Span computed for the requested SpanAdditionalFeatures.

" + } + }, + "com.amazonaws.georoutes#RouteVehicleSpanList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RouteVehicleSpan" + } + }, + "com.amazonaws.georoutes#RouteVehicleSummary": { + "type": "structure", + "members": { + "Overview": { + "target": "com.amazonaws.georoutes#RouteVehicleOverviewSummary", + "traits": { + "smithy.api#documentation": "

Summarized details for the leg including before travel, travel and after travel steps.

" + } + }, + "TravelOnly": { + "target": "com.amazonaws.georoutes#RouteVehicleTravelOnlySummary", + "traits": { + "smithy.api#documentation": "

Summarized details for the leg including travel steps only. The Distance for the travel only portion of the journey is in meters

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Summarized details of the route.

" + } + }, + "com.amazonaws.georoutes#RouteVehicleTravelOnlySummary": { + "type": "structure", + "members": { + "BestCaseDuration": { + "target": "com.amazonaws.georoutes#DurationSeconds", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Total duration in free flowing traffic, which is the best case or shortest duration possible to cover the leg.

\n

\n Unit: seconds\n

" + } + }, + "Duration": { + "target": "com.amazonaws.georoutes#DurationSeconds", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Duration of the step.

\n

\n Unit: seconds\n

", + "smithy.api#required": {} + } + }, + "TypicalDuration": { + "target": "com.amazonaws.georoutes#DurationSeconds", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Duration of the computed span under typical traffic congestion.

\n

\n Unit: seconds\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Summarized details of the route.

" + } + }, + "com.amazonaws.georoutes#RouteVehicleTravelStep": { + "type": "structure", + "members": { + "ContinueHighwayStepDetails": { + "target": "com.amazonaws.georoutes#RouteContinueHighwayStepDetails", + "traits": { + "smithy.api#documentation": "

Details that are specific to a Continue Highway step.

" + } + }, + "ContinueStepDetails": { + "target": "com.amazonaws.georoutes#RouteContinueStepDetails", + "traits": { + "smithy.api#documentation": "

Details that are specific to a Continue step.

" + } + }, + "CurrentRoad": { + "target": "com.amazonaws.georoutes#RouteRoad", + "traits": { + "smithy.api#documentation": "

Details of the current road.

" + } + }, + "Distance": { + "target": "com.amazonaws.georoutes#DistanceMeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Distance of the step.

" + } + }, + "Duration": { + "target": "com.amazonaws.georoutes#DurationSeconds", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Duration of the step.

\n

\n Unit: seconds\n

", + "smithy.api#required": {} + } + }, + "EnterHighwayStepDetails": { + "target": "com.amazonaws.georoutes#RouteEnterHighwayStepDetails", + "traits": { + "smithy.api#documentation": "

Details that are specific to a Enter Highway step.

" + } + }, + "ExitNumber": { + "target": "com.amazonaws.georoutes#LocalizedStringList", + "traits": { + "smithy.api#documentation": "

Exit number of the road exit, if applicable.

" + } + }, + "ExitStepDetails": { + "target": "com.amazonaws.georoutes#RouteExitStepDetails", + "traits": { + "smithy.api#documentation": "

Details that are specific to a Roundabout Exit step.

" + } + }, + "GeometryOffset": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

Offset in the leg geometry corresponding to the start of this step.

", + "smithy.api#range": { + "min": 0 + } + } + }, + "Instruction": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

Brief description of the step in the requested language.

\n \n

Only available when the TravelStepType is Default.

\n
" + } + }, + "KeepStepDetails": { + "target": "com.amazonaws.georoutes#RouteKeepStepDetails", + "traits": { + "smithy.api#documentation": "

Details that are specific to a Keep step.

" + } + }, + "NextRoad": { + "target": "com.amazonaws.georoutes#RouteRoad", + "traits": { + "smithy.api#documentation": "

Details of the next road. See RouteRoad for details of sub-attributes.

" + } + }, + "RampStepDetails": { + "target": "com.amazonaws.georoutes#RouteRampStepDetails", + "traits": { + "smithy.api#documentation": "

Details that are specific to a Ramp step.

" + } + }, + "RoundaboutEnterStepDetails": { + "target": "com.amazonaws.georoutes#RouteRoundaboutEnterStepDetails", + "traits": { + "smithy.api#documentation": "

Details that are specific to a Roundabout Enter step.

" + } + }, + "RoundaboutExitStepDetails": { + "target": "com.amazonaws.georoutes#RouteRoundaboutExitStepDetails", + "traits": { + "smithy.api#documentation": "

Details that are specific to a Roundabout Exit step.

" + } + }, + "RoundaboutPassStepDetails": { + "target": "com.amazonaws.georoutes#RouteRoundaboutPassStepDetails", + "traits": { + "smithy.api#documentation": "

Details that are specific to a Roundabout Pass step.

" + } + }, + "Signpost": { + "target": "com.amazonaws.georoutes#RouteSignpost", + "traits": { + "smithy.api#documentation": "

Sign post information of the action, applicable only for TurnByTurn steps. See RouteSignpost for details of sub-attributes.

" + } + }, + "TurnStepDetails": { + "target": "com.amazonaws.georoutes#RouteTurnStepDetails", + "traits": { + "smithy.api#documentation": "

Details that are specific to a Turn step.

" + } + }, + "Type": { + "target": "com.amazonaws.georoutes#RouteVehicleTravelStepType", + "traits": { + "smithy.api#documentation": "

Type of the step.

", + "smithy.api#required": {} + } + }, + "UTurnStepDetails": { + "target": "com.amazonaws.georoutes#RouteUTurnStepDetails", + "traits": { + "smithy.api#documentation": "

Details that are specific to a Turn step.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Steps of a leg that correspond to the travel portion of the leg.

" + } + }, + "com.amazonaws.georoutes#RouteVehicleTravelStepList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RouteVehicleTravelStep" + } + }, + "com.amazonaws.georoutes#RouteVehicleTravelStepType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "ARRIVE", + "value": "Arrive" + }, + { + "name": "CONTINUE", + "value": "Continue" + }, + { + "name": "CONTINUE_HIGHWAY", + "value": "ContinueHighway" + }, + { + "name": "DEPART", + "value": "Depart" + }, + { + "name": "ENTER_HIGHWAY", + "value": "EnterHighway" + }, + { + "name": "EXIT", + "value": "Exit" + }, + { + "name": "KEEP", + "value": "Keep" + }, + { + "name": "RAMP", + "value": "Ramp" + }, + { + "name": "ROUNDABOUT_ENTER", + "value": "RoundaboutEnter" + }, + { + "name": "ROUNDABOUT_EXIT", + "value": "RoundaboutExit" + }, + { + "name": "ROUNDABOUT_PASS", + "value": "RoundaboutPass" + }, + { + "name": "TURN", + "value": "Turn" + }, + { + "name": "U_TURN", + "value": "UTurn" + } + ] + } + }, + "com.amazonaws.georoutes#RouteViolatedConstraints": { + "type": "structure", + "members": { + "AllHazardsRestricted": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

This restriction applies to truck cargo, where the resulting route excludes roads on which hazardous materials are prohibited from being transported.

" + } + }, + "AxleCount": { + "target": "com.amazonaws.georoutes#RouteNoticeDetailRange", + "traits": { + "smithy.api#documentation": "

Total number of axles of the vehicle.

" + } + }, + "HazardousCargos": { + "target": "com.amazonaws.georoutes#RouteHazardousCargoTypeList", + "traits": { + "smithy.api#documentation": "

List of Hazardous cargo contained in the vehicle.

", + "smithy.api#required": {} + } + }, + "MaxHeight": { + "target": "com.amazonaws.georoutes#DimensionCentimeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The maximum height of the vehicle.

" + } + }, + "MaxKpraLength": { + "target": "com.amazonaws.georoutes#DimensionCentimeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The maximum Kpra length of the vehicle.

\n

\n Unit: centimeters\n

" + } + }, + "MaxLength": { + "target": "com.amazonaws.georoutes#DimensionCentimeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The maximum length of the vehicle.

" + } + }, + "MaxPayloadCapacity": { + "target": "com.amazonaws.georoutes#WeightKilograms", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The maximum load capacity of the vehicle.

\n

\n Unit: kilograms\n

" + } + }, + "MaxWeight": { + "target": "com.amazonaws.georoutes#RouteWeightConstraint", + "traits": { + "smithy.api#documentation": "

The maximum weight of the route.

\n

\n Unit: Kilograms\n

" + } + }, + "MaxWeightPerAxle": { + "target": "com.amazonaws.georoutes#WeightKilograms", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The maximum weight per axle of the vehicle.

\n

\n Unit: Kilograms\n

" + } + }, + "MaxWeightPerAxleGroup": { + "target": "com.amazonaws.georoutes#WeightPerAxleGroup", + "traits": { + "smithy.api#documentation": "

The maximum weight per axle group of the vehicle.

\n

\n Unit: Kilograms\n

" + } + }, + "MaxWidth": { + "target": "com.amazonaws.georoutes#DimensionCentimeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The maximum width of the vehicle.

" + } + }, + "Occupancy": { + "target": "com.amazonaws.georoutes#RouteNoticeDetailRange", + "traits": { + "smithy.api#documentation": "

The number of occupants in the vehicle.

\n

Default Value: 1\n

" + } + }, + "RestrictedTimes": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

Access radius restrictions based on time.

" + } + }, + "TimeDependent": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

The time dependent constraint.

" + } + }, + "TrailerCount": { + "target": "com.amazonaws.georoutes#RouteNoticeDetailRange", + "traits": { + "smithy.api#documentation": "

Number of trailers attached to the vehicle.

\n

Default Value: 0\n

" + } + }, + "TravelMode": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Travel mode corresponding to the leg.

" + } + }, + "TruckRoadType": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

Truck road type identifiers. BK1 through BK4 apply only to Sweden. \n A2,A4,B2,B4,C,D,ET2,ET4 apply only to Mexico.

\n \n

There are currently no other supported values as of 26th April 2024.

\n
" + } + }, + "TruckType": { + "target": "com.amazonaws.georoutes#RouteTruckType", + "traits": { + "smithy.api#documentation": "

Type of the truck.

" + } + }, + "TunnelRestrictionCode": { + "target": "com.amazonaws.georoutes#TunnelRestrictionCode", + "traits": { + "smithy.api#documentation": "

The tunnel restriction code.

\n

Tunnel categories in this list indicate the restrictions which apply to certain tunnels in Great Britain. \n They relate to the types of dangerous goods that can be transported through them.

\n
    \n
  • \n

    \n Tunnel Category B\n

    \n
      \n
    • \n

      \n Risk Level: Limited risk

      \n
    • \n
    • \n

      \n Restrictions: Few restrictions

      \n
    • \n
    \n
  • \n
  • \n

    \n Tunnel Category C\n

    \n
      \n
    • \n

      \n Risk Level: Medium risk

      \n
    • \n
    • \n

      \n Restrictions: Some restrictions

      \n
    • \n
    \n
  • \n
  • \n

    \n Tunnel Category D\n

    \n
      \n
    • \n

      \n Risk Level: High risk

      \n
    • \n
    • \n

      \n Restrictions: Many restrictions occur

      \n
    • \n
    \n
  • \n
  • \n

    \n Tunnel Category E\n

    \n
      \n
    • \n

      \n Risk Level: Very high risk

      \n
    • \n
    • \n

      \n Restrictions: Restricted tunnel

      \n
    • \n
    \n
  • \n
" + } + } + }, + "traits": { + "smithy.api#documentation": "

This property contains a \n summary of violated constraints.

" + } + }, + "com.amazonaws.georoutes#RouteWaypoint": { + "type": "structure", + "members": { + "AvoidActionsForDistance": { + "target": "com.amazonaws.georoutes#DistanceMeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Avoids actions for the provided distance. This is typically to consider for users in moving vehicles who may not have sufficient time to make an action at an origin or a destination.

", + "smithy.api#range": { + "max": 2000 + } + } + }, + "AvoidUTurns": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Avoid U-turns for calculation on highways and motorways.

" + } + }, + "Heading": { + "target": "com.amazonaws.georoutes#Heading", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

GPS Heading at the position.

" + } + }, + "Matching": { + "target": "com.amazonaws.georoutes#RouteMatchingOptions", + "traits": { + "smithy.api#documentation": "

Options to configure matching the provided position to the road network.

" + } + }, + "PassThrough": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

If the waypoint should not be treated as a stop. If yes, the waypoint is passed through and doesn't split the route into different legs.

" + } + }, + "Position": { + "target": "com.amazonaws.georoutes#Position", + "traits": { + "smithy.api#documentation": "

Position defined as [longitude, latitude].

", + "smithy.api#required": {} + } + }, + "SideOfStreet": { + "target": "com.amazonaws.georoutes#RouteSideOfStreetOptions", + "traits": { + "smithy.api#documentation": "

Options to configure matching the provided position to a side of the street.

" + } + }, + "StopDuration": { + "target": "com.amazonaws.georoutes#DurationSeconds", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Duration of the stop.

\n

\n Unit: seconds\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Waypoint between the Origin and Destination.

" + } + }, + "com.amazonaws.georoutes#RouteWaypointList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RouteWaypoint" + } + }, + "com.amazonaws.georoutes#RouteWeightConstraint": { + "type": "structure", + "members": { + "Type": { + "target": "com.amazonaws.georoutes#RouteWeightConstraintType", + "traits": { + "smithy.api#documentation": "

The type of constraint.

", + "smithy.api#required": {} + } + }, + "Value": { + "target": "com.amazonaws.georoutes#WeightKilograms", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The constraint value.

\n

\n Unit: Kilograms\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The weight constraint for the route.

\n

\n Unit: Kilograms\n

" + } + }, + "com.amazonaws.georoutes#RouteWeightConstraintType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "CURRENT", + "value": "Current" + }, + { + "name": "GROSS", + "value": "Gross" + }, + { + "name": "UNKNOWN", + "value": "Unknown" + } + ] + } + }, + "com.amazonaws.georoutes#RouteZone": { + "type": "structure", + "members": { + "Category": { + "target": "com.amazonaws.georoutes#RouteZoneCategory", + "traits": { + "smithy.api#documentation": "

The zone category.

" + } + }, + "Name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The name of the zone.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The zone.

" + } + }, + "com.amazonaws.georoutes#RouteZoneCategory": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "CONGESTION_PRICING", + "value": "CongestionPricing" + }, + { + "name": "ENVIRONMENTAL", + "value": "Environmental" + }, + { + "name": "VIGNETTE", + "value": "Vignette" + } + ] + } + }, + "com.amazonaws.georoutes#RouteZoneList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#RouteZone" + } + }, + "com.amazonaws.georoutes#RoutesService": { + "type": "service", + "version": "2020-11-19", + "resources": [ + { + "target": "com.amazonaws.georoutes#ProviderResource" + } + ], + "traits": { + "aws.api#service": { + "sdkId": "Geo Routes", + "arnNamespace": "geo-routes", + "cloudTrailEventSource": "geo-routes.amazonaws.com" + }, + "aws.auth#sigv4": { + "name": "geo-routes" + }, + "aws.endpoints#standardRegionalEndpoints": { + "partitionSpecialCases": { + "aws": [ + { + "endpoint": "https://routes.geo.{region}.{dnsSuffix}/v2" + }, + { + "endpoint": "https://routes.geo-fips.{region}.{dualStackDnsSuffix}/v2", + "fips": true, + "dualStack": true + }, + { + "endpoint": "https://routes.geo-fips.{region}.{dnsSuffix}/v2", + "fips": true, + "dualStack": false + }, + { + "endpoint": "https://routes.geo.{region}.{dualStackDnsSuffix}/v2", + "fips": false, + "dualStack": true + } + ], + "aws-us-gov": [ + { + "endpoint": "https://routes.geo.{region}.us-gov.{dnsSuffix}/v2" + }, + { + "endpoint": "https://routes.geo-fips.{region}.us-gov.{dualStackDnsSuffix}/v2", + "fips": true, + "dualStack": true + }, + { + "endpoint": "https://routes.geo-fips.{region}.us-gov.{dnsSuffix}/v2", + "fips": true, + "dualStack": false + }, + { + "endpoint": "https://routes.geo.{region}.us-gov.{dualStackDnsSuffix}/v2", + "fips": false, + "dualStack": true + } + ] + } + }, + "aws.protocols#restJson1": {}, + "smithy.api#cors": { + "additionalAllowedHeaders": ["x-amz-content-sha256", "x-amz-user-agent", "content-type"] + }, + "smithy.api#documentation": "

With the Amazon Location Routes API you can calculate\n routes and estimate travel time based on up-to-date road network and live \n traffic information.

\n

Calculate optimal travel routes and estimate travel times using up-to-date road network and traffic data. Key features include:

\n
    \n
  • \n

    Point-to-point routing with estimated travel time, distance, and turn-by-turn directions

    \n
  • \n
  • \n

    Multi-point route optimization to minimize travel time or distance

    \n
  • \n
  • \n

    Route matrices for efficient multi-destination planning

    \n
  • \n
  • \n

    Isoline calculations to determine reachable areas within specified time or distance thresholds

    \n
  • \n
  • \n

    Map-matching to align GPS traces with the road network

    \n
  • \n
", + "smithy.api#title": "Amazon Location Service Routes V2", + "smithy.rules#endpointRuleSet": { + "version": "1.0", + "parameters": { + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + }, + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://routes.geo.{Region}.{PartitionResult#dnsSuffix}/v2", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://routes.geo-fips.{Region}.{PartitionResult#dualStackDnsSuffix}/v2", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://routes.geo-fips.{Region}.{PartitionResult#dnsSuffix}/v2", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://routes.geo.{Region}.{PartitionResult#dualStackDnsSuffix}/v2", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-us-gov" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://routes.geo.{Region}.us-gov.{PartitionResult#dnsSuffix}/v2", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-us-gov" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://routes.geo-fips.{Region}.us-gov.{PartitionResult#dualStackDnsSuffix}/v2", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-us-gov" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://routes.geo-fips.{Region}.us-gov.{PartitionResult#dnsSuffix}/v2", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-us-gov" + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://routes.geo.{Region}.us-gov.{PartitionResult#dualStackDnsSuffix}/v2", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://geo-routes-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://geo-routes-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://geo-routes.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "endpoint": { + "url": "https://geo-routes.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ], + "type": "tree" + } + ] + }, + "smithy.rules#endpointTests": { + "testCases": [ + { + "documentation": "For custom endpoint with region not set and fips disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Endpoint": "https://example.com", + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips enabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Endpoint": "https://example.com", + "UseFIPS": true + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Endpoint": "https://example.com", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://routes.geo-fips.us-east-1.api.aws/v2" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://routes.geo-fips.us-east-1.amazonaws.com/v2" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://routes.geo.us-east-1.api.aws/v2" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://routes.geo.us-east-1.amazonaws.com/v2" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://geo-routes-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://geo-routes-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://geo-routes.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://geo-routes.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://routes.geo-fips.us-gov-west-1.us-gov.api.aws/v2" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://routes.geo-fips.us-gov-west-1.us-gov.amazonaws.com/v2" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://routes.geo.us-gov-west-1.us-gov.api.aws/v2" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://routes.geo.us-gov-west-1.us-gov.amazonaws.com/v2" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://geo-routes-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://geo-routes.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://geo-routes-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://geo-routes.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-isoe-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "eu-isoe-west-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-isoe-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://geo-routes-fips.eu-isoe-west-1.cloud.adc-e.uk" + } + }, + "params": { + "Region": "eu-isoe-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-isoe-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "eu-isoe-west-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-isoe-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://geo-routes.eu-isoe-west-1.cloud.adc-e.uk" + } + }, + "params": { + "Region": "eu-isoe-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isof-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isof-south-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isof-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://geo-routes-fips.us-isof-south-1.csp.hci.ic.gov" + } + }, + "params": { + "Region": "us-isof-south-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isof-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isof-south-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isof-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://geo-routes.us-isof-south-1.csp.hci.ic.gov" + } + }, + "params": { + "Region": "us-isof-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } + } + ], + "version": "1.0" + } + } + }, + "com.amazonaws.georoutes#RoutingObjective": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "FASTEST_ROUTE", + "value": "FastestRoute" + }, + { + "name": "SHORTEST_ROUTE", + "value": "ShortestRoute" + } + ] + } + }, + "com.amazonaws.georoutes#SensitiveString": { + "type": "string", + "traits": { + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.georoutes#SideOfStreetMatchingStrategy": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "ANY_STREET", + "value": "AnyStreet" + }, + { + "name": "DIVIDED_STREET_ONLY", + "value": "DividedStreetOnly" + } + ] + } + }, + "com.amazonaws.georoutes#SnapToRoads": { + "type": "operation", + "input": { + "target": "com.amazonaws.georoutes#SnapToRoadsRequest" + }, + "output": { + "target": "com.amazonaws.georoutes#SnapToRoadsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.georoutes#AccessDeniedException" + }, + { + "target": "com.amazonaws.georoutes#InternalServerException" + }, + { + "target": "com.amazonaws.georoutes#ThrottlingException" + }, + { + "target": "com.amazonaws.georoutes#ValidationException" + } + ], + "traits": { + "aws.api#dataPlane": {}, + "smithy.api#documentation": "

The SnapToRoads action matches GPS trace to roads most likely traveled on.

", + "smithy.api#http": { + "uri": "/snap-to-roads", + "method": "POST" + }, + "smithy.api#readonly": {}, + "smithy.test#smokeTests": [ + { + "id": "SnapToRoadsSuccess", + "params": { + "TracePoints": [ + { + "Position": [8.53404, 50.16364] + }, + { + "Position": [8.53379056, 50.16352417] + } + ] + }, + "expect": { + "success": {} + }, + "vendorParamsShape": "aws.test#AwsVendorParams", + "vendorParams": { + "region": "us-west-2" + } + } + ] + } + }, + "com.amazonaws.georoutes#SnapToRoadsRequest": { + "type": "structure", + "members": { + "Key": { + "target": "com.amazonaws.georoutes#ApiKey", + "traits": { + "smithy.api#documentation": "

Optional: The API key to be used for authorization. Either an API key or valid SigV4\n signature must be provided when making a request.

", + "smithy.api#httpQuery": "key" + } + }, + "SnappedGeometryFormat": { + "target": "com.amazonaws.georoutes#GeometryFormat", + "traits": { + "smithy.api#documentation": "

Chooses what the returned SnappedGeometry format should be.

\n

Default Value: FlexiblePolyline\n

" + } + }, + "SnapRadius": { + "target": "com.amazonaws.georoutes#DistanceMeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The radius around the provided tracepoint that is considered for snapping.

\n

\n Unit: meters\n

\n

Default value: 300\n

", + "smithy.api#range": { + "min": 0, + "max": 10000 + } + } + }, + "TracePoints": { + "target": "com.amazonaws.georoutes#RoadSnapTracePointList", + "traits": { + "smithy.api#documentation": "

List of trace points to be snapped onto the road network.

", + "smithy.api#length": { + "min": 2, + "max": 5000 + }, + "smithy.api#required": {} + } + }, + "TravelMode": { + "target": "com.amazonaws.georoutes#RoadSnapTravelMode", + "traits": { + "smithy.api#documentation": "

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

\n

Default Value: Car\n

" + } + }, + "TravelModeOptions": { + "target": "com.amazonaws.georoutes#RoadSnapTravelModeOptions", + "traits": { + "smithy.api#documentation": "

Travel mode related options for the provided travel mode.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.georoutes#SnapToRoadsResponse": { + "type": "structure", + "members": { + "Notices": { + "target": "com.amazonaws.georoutes#RoadSnapNoticeList", + "traits": { + "smithy.api#documentation": "

Notices are additional information returned that indicate issues that occurred during route calculation.

", + "smithy.api#required": {} + } + }, + "PricingBucket": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The pricing bucket for which the query is charged at.

", + "smithy.api#httpHeader": "x-amz-geo-pricing-bucket", + "smithy.api#required": {} + } + }, + "SnappedGeometry": { + "target": "com.amazonaws.georoutes#RoadSnapSnappedGeometry", + "traits": { + "smithy.api#documentation": "

The interpolated geometry for the snapped route onto the road network.

" + } + }, + "SnappedGeometryFormat": { + "target": "com.amazonaws.georoutes#GeometryFormat", + "traits": { + "smithy.api#documentation": "

Specifies the format of the geometry returned for each leg of the route.

", + "smithy.api#required": {} + } + }, + "SnappedTracePoints": { + "target": "com.amazonaws.georoutes#RoadSnapSnappedTracePointList", + "traits": { + "smithy.api#documentation": "

The trace points snapped onto the road network.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.georoutes#SpeedKilometersPerHour": { + "type": "double", + "traits": { + "smithy.api#default": 0, + "smithy.api#range": { + "min": 0.0 + } + } + }, + "com.amazonaws.georoutes#ThrottlingException": { + "type": "structure", + "members": { + "Message": { + "target": "smithy.api#String", + "traits": { + "smithy.api#jsonName": "message", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The request was denied due to request throttling.

", + "smithy.api#error": "client", + "smithy.api#httpError": 429, + "smithy.api#retryable": {} + } + }, + "com.amazonaws.georoutes#TimeOfDay": { + "type": "string", + "traits": { + "smithy.api#pattern": "^([0-1]?[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](Z|[+-]([0-1]?[0-9]|2[0-3]):[0-5][0-9])$" + } + }, + "com.amazonaws.georoutes#TimeThresholdList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#DurationSeconds", + "traits": { + "smithy.api#range": { + "min": 0, + "max": 10800 + } + } + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 5 + } + } + }, + "com.amazonaws.georoutes#TimestampWithTimezoneOffset": { + "type": "string", + "traits": { + "smithy.api#pattern": "^([1-2][0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)(\\.[0-9]{0,9})?(Z|[+-]([01][0-9]|2[0-3]):[0-5][0-9])$" + } + }, + "com.amazonaws.georoutes#TrafficUsage": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "IGNORE_TRAFFIC_DATA", + "value": "IgnoreTrafficData" + }, + { + "name": "USE_TRAFFIC_DATA", + "value": "UseTrafficData" + } + ] + } + }, + "com.amazonaws.georoutes#TruckRoadType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 3 + } + } + }, + "com.amazonaws.georoutes#TruckRoadTypeList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#TruckRoadType" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 12 + }, + "smithy.api#uniqueItems": {} + } + }, + "com.amazonaws.georoutes#TunnelRestrictionCode": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1 + } + } + }, + "com.amazonaws.georoutes#TurnAngle": { + "type": "double", + "traits": { + "smithy.api#default": 0, + "smithy.api#range": { + "min": -180, + "max": 180 + } + } + }, + "com.amazonaws.georoutes#ValidationException": { + "type": "structure", + "members": { + "Message": { + "target": "smithy.api#String", + "traits": { + "smithy.api#jsonName": "message", + "smithy.api#required": {} + } + }, + "Reason": { + "target": "com.amazonaws.georoutes#ValidationExceptionReason", + "traits": { + "smithy.api#documentation": "

A message with the reason for the validation exception error.

", + "smithy.api#jsonName": "reason", + "smithy.api#required": {} + } + }, + "FieldList": { + "target": "com.amazonaws.georoutes#ValidationExceptionFieldList", + "traits": { + "smithy.api#documentation": "

The field where the invalid entry was detected.

", + "smithy.api#jsonName": "fieldList", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The input fails to satisfy the constraints specified by an AWS service.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.georoutes#ValidationExceptionField": { + "type": "structure", + "members": { + "Name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The name of the Validation Exception Field.

", + "smithy.api#jsonName": "name", + "smithy.api#required": {} + } + }, + "Message": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The error message.

", + "smithy.api#jsonName": "message", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The input fails to satisfy the constraints specified by the Amazon Location service.

" + } + }, + "com.amazonaws.georoutes#ValidationExceptionFieldList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#ValidationExceptionField" + } + }, + "com.amazonaws.georoutes#ValidationExceptionReason": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "UNKNOWN_OPERATION", + "value": "UnknownOperation", + "documentation": "No such operation is supported." + }, + { + "name": "MISSING", + "value": "Missing", + "documentation": "The required input is missing." + }, + { + "name": "CANNOT_PARSE", + "value": "CannotParse", + "documentation": " The input cannot be parsed. For example a required JSON document, ARN identifier,\n date value, or numeric field cannot be parsed.\n" + }, + { + "name": "FIELD_VALIDATION_FAILED", + "value": "FieldValidationFailed", + "documentation": " The input is present and parsable, but it is otherwise invalid. For example, a\n required numeric argument is outside the allowed range.\n" + }, + { + "name": "OTHER", + "value": "Other", + "documentation": "The input is invalid but no more specific reason is applicable." + }, + { + "name": "UNKNOWN_FIELD", + "value": "UnknownField", + "documentation": "No such field is supported." + } + ] + } + }, + "com.amazonaws.georoutes#WaypointId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.georoutes#WaypointIndex": { + "type": "integer", + "traits": { + "smithy.api#default": 0 + } + }, + "com.amazonaws.georoutes#WaypointOptimizationAccessHours": { + "type": "structure", + "members": { + "From": { + "target": "com.amazonaws.georoutes#WaypointOptimizationAccessHoursEntry", + "traits": { + "smithy.api#documentation": "

Contains the ID of the starting waypoint in this connection.

", + "smithy.api#required": {} + } + }, + "To": { + "target": "com.amazonaws.georoutes#WaypointOptimizationAccessHoursEntry", + "traits": { + "smithy.api#documentation": "

Contains the ID of the ending waypoint in this connection.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Access hours corresponding to when a destination can be visited.

" + } + }, + "com.amazonaws.georoutes#WaypointOptimizationAccessHoursEntry": { + "type": "structure", + "members": { + "DayOfWeek": { + "target": "com.amazonaws.georoutes#DayOfWeek", + "traits": { + "smithy.api#documentation": "

Day of the week.

", + "smithy.api#required": {} + } + }, + "TimeOfDay": { + "target": "com.amazonaws.georoutes#TimeOfDay", + "traits": { + "smithy.api#documentation": "

Time of the day.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Hours of entry.

" + } + }, + "com.amazonaws.georoutes#WaypointOptimizationAvoidanceArea": { + "type": "structure", + "members": { + "Geometry": { + "target": "com.amazonaws.georoutes#WaypointOptimizationAvoidanceAreaGeometry", + "traits": { + "smithy.api#documentation": "

Geometry of the area to be avoided.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The area to be avoided.

" + } + }, + "com.amazonaws.georoutes#WaypointOptimizationAvoidanceAreaGeometry": { + "type": "structure", + "members": { + "BoundingBox": { + "target": "com.amazonaws.georoutes#BoundingBox", + "traits": { + "smithy.api#documentation": "

Geometry defined as a bounding box. The first pair represents the X and Y coordinates\n (longitude and latitude,) of the southwest corner of the bounding box; the second pair\n represents the X and Y coordinates (longitude and latitude) of the northeast corner.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Geometry of the area to be avoided.

" + } + }, + "com.amazonaws.georoutes#WaypointOptimizationAvoidanceAreaList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#WaypointOptimizationAvoidanceArea" + } + }, + "com.amazonaws.georoutes#WaypointOptimizationAvoidanceOptions": { + "type": "structure", + "members": { + "Areas": { + "target": "com.amazonaws.georoutes#WaypointOptimizationAvoidanceAreaList", + "traits": { + "smithy.api#documentation": "

Areas to be avoided.

", + "smithy.api#length": { + "max": 20 + } + } + }, + "CarShuttleTrains": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Avoidance options for cars-shuttles-trains.

" + } + }, + "ControlledAccessHighways": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Avoid controlled access highways while calculating the route.

" + } + }, + "DirtRoads": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Avoid dirt roads while calculating the route.

" + } + }, + "Ferries": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Avoidance options for ferries.

" + } + }, + "TollRoads": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Avoids roads where the specified toll transponders are the only mode of payment.

" + } + }, + "Tunnels": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Avoid tunnels while calculating the route.

" + } + }, + "UTurns": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Avoid U-turns for calculation on highways and motorways.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Options for WaypointOptimizationAvoidance.

" + } + }, + "com.amazonaws.georoutes#WaypointOptimizationConnection": { + "type": "structure", + "members": { + "Distance": { + "target": "com.amazonaws.georoutes#DistanceMeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Distance of the step.

", + "smithy.api#required": {} + } + }, + "From": { + "target": "com.amazonaws.georoutes#WaypointId", + "traits": { + "smithy.api#documentation": "

contains the ID of the starting waypoint in this connection.

", + "smithy.api#required": {} + } + }, + "RestDuration": { + "target": "com.amazonaws.georoutes#DurationSeconds", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Resting time before the driver can continue driving.

", + "smithy.api#required": {} + } + }, + "To": { + "target": "com.amazonaws.georoutes#WaypointId", + "traits": { + "smithy.api#documentation": "

Contains the ID of the ending waypoint in this connection.

", + "smithy.api#required": {} + } + }, + "TravelDuration": { + "target": "com.amazonaws.georoutes#DurationSeconds", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Total duration.

\n

\n Unit: seconds\n

", + "smithy.api#required": {} + } + }, + "WaitDuration": { + "target": "com.amazonaws.georoutes#DurationSeconds", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Duration of a wait step.

\n

\n Unit: seconds\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

This contains information such as distance and duration from one waypoint to the next waypoint in the sequence.

" + } + }, + "com.amazonaws.georoutes#WaypointOptimizationConnectionList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#WaypointOptimizationConnection" + } + }, + "com.amazonaws.georoutes#WaypointOptimizationConstraint": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "ACCESS_HOURS", + "value": "AccessHours" + }, + { + "name": "APPOINTMENT_TIME", + "value": "AppointmentTime" + }, + { + "name": "BEFORE", + "value": "Before" + }, + { + "name": "HEADING", + "value": "Heading" + }, + { + "name": "SERVICE_DURATION", + "value": "ServiceDuration" + }, + { + "name": "SIDE_OF_STREET", + "value": "SideOfStreet" + } + ] + } + }, + "com.amazonaws.georoutes#WaypointOptimizationDestinationOptions": { + "type": "structure", + "members": { + "AccessHours": { + "target": "com.amazonaws.georoutes#WaypointOptimizationAccessHours", + "traits": { + "smithy.api#documentation": "

Access hours corresponding to when a waypoint can be visited.

" + } + }, + "AppointmentTime": { + "target": "com.amazonaws.georoutes#TimestampWithTimezoneOffset", + "traits": { + "smithy.api#documentation": "

Appointment time at the destination.

" + } + }, + "Heading": { + "target": "com.amazonaws.georoutes#Heading", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

GPS Heading at the position.

" + } + }, + "Id": { + "target": "com.amazonaws.georoutes#WaypointId", + "traits": { + "smithy.api#documentation": "

The waypoint Id.

" + } + }, + "ServiceDuration": { + "target": "com.amazonaws.georoutes#DurationSeconds", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Service time spent at the destination. At an appointment, the service time should be the appointment duration.

\n

\n Unit: seconds\n

" + } + }, + "SideOfStreet": { + "target": "com.amazonaws.georoutes#WaypointOptimizationSideOfStreetOptions", + "traits": { + "smithy.api#documentation": "

Options to configure matching the provided position to a side of the street.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Destination related options.

" + } + }, + "com.amazonaws.georoutes#WaypointOptimizationDriverOptions": { + "type": "structure", + "members": { + "RestCycles": { + "target": "com.amazonaws.georoutes#WaypointOptimizationRestCycles", + "traits": { + "smithy.api#documentation": "

Driver work-rest schedules defined by a short and long cycle. A rest needs to be taken after the short work duration. The short cycle can be repeated until you hit the long work duration, at which point the long rest duration should be taken before restarting.

" + } + }, + "RestProfile": { + "target": "com.amazonaws.georoutes#WaypointOptimizationRestProfile", + "traits": { + "smithy.api#documentation": "

Pre defined rest profiles for a driver schedule. The only currently supported profile is\n EU.

" + } + }, + "TreatServiceTimeAs": { + "target": "com.amazonaws.georoutes#WaypointOptimizationServiceTimeTreatment", + "traits": { + "smithy.api#documentation": "

If the service time provided at a waypoint/destination should be considered as rest or work. This contributes to the total time breakdown returned within the response.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Driver related options.

" + } + }, + "com.amazonaws.georoutes#WaypointOptimizationExclusionOptions": { + "type": "structure", + "members": { + "Countries": { + "target": "com.amazonaws.georoutes#CountryCodeList", + "traits": { + "smithy.api#documentation": "

List of countries to be avoided defined by two-letter or three-letter country codes.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Exclusion options.

" + } + }, + "com.amazonaws.georoutes#WaypointOptimizationFailedConstraint": { + "type": "structure", + "members": { + "Constraint": { + "target": "com.amazonaws.georoutes#WaypointOptimizationConstraint", + "traits": { + "smithy.api#documentation": "

The failed constraint.

" + } + }, + "Reason": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

Reason for the failed constraint.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The failed constraint.

" + } + }, + "com.amazonaws.georoutes#WaypointOptimizationFailedConstraintList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#WaypointOptimizationFailedConstraint" + } + }, + "com.amazonaws.georoutes#WaypointOptimizationHazardousCargoType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "COMBUSTIBLE", + "value": "Combustible" + }, + { + "name": "CORROSIVE", + "value": "Corrosive" + }, + { + "name": "EXPLOSIVE", + "value": "Explosive" + }, + { + "name": "FLAMMABLE", + "value": "Flammable" + }, + { + "name": "GAS", + "value": "Gas" + }, + { + "name": "HARMFUL_TO_WATER", + "value": "HarmfulToWater" + }, + { + "name": "ORGANIC", + "value": "Organic" + }, + { + "name": "OTHER", + "value": "Other" + }, + { + "name": "POISON", + "value": "Poison" + }, + { + "name": "POISONOUS_INHALATION", + "value": "PoisonousInhalation" + }, + { + "name": "RADIOACTIVE", + "value": "Radioactive" + } + ] + } + }, + "com.amazonaws.georoutes#WaypointOptimizationHazardousCargoTypeList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#WaypointOptimizationHazardousCargoType" + }, + "traits": { + "smithy.api#uniqueItems": {} + } + }, + "com.amazonaws.georoutes#WaypointOptimizationImpedingWaypoint": { + "type": "structure", + "members": { + "FailedConstraints": { + "target": "com.amazonaws.georoutes#WaypointOptimizationFailedConstraintList", + "traits": { + "smithy.api#documentation": "

Failed constraints for an impeding waypoint.

", + "smithy.api#required": {} + } + }, + "Id": { + "target": "com.amazonaws.georoutes#WaypointId", + "traits": { + "smithy.api#documentation": "

The waypoint Id.

", + "smithy.api#required": {} + } + }, + "Position": { + "target": "com.amazonaws.georoutes#Position", + "traits": { + "smithy.api#documentation": "

Position defined as [longitude, latitude].

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The impeding waypoint.

" + } + }, + "com.amazonaws.georoutes#WaypointOptimizationImpedingWaypointList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#WaypointOptimizationImpedingWaypoint" + } + }, + "com.amazonaws.georoutes#WaypointOptimizationOptimizedWaypoint": { + "type": "structure", + "members": { + "ArrivalTime": { + "target": "com.amazonaws.georoutes#TimestampWithTimezoneOffset", + "traits": { + "smithy.api#documentation": "

Estimated time of arrival at the destination.

\n

Time format:YYYY-MM-DDThh:mm:ss.sssZ | YYYY-MM-DDThh:mm:ss.sss+hh:mm\n

\n

Examples:

\n

\n 2020-04-22T17:57:24Z\n

\n

\n 2020-04-22T17:57:24+02:00\n

" + } + }, + "DepartureTime": { + "target": "com.amazonaws.georoutes#TimestampWithTimezoneOffset", + "traits": { + "smithy.api#documentation": "

Estimated time of departure from thr origin.

\n

Time format:YYYY-MM-DDThh:mm:ss.sssZ | YYYY-MM-DDThh:mm:ss.sss+hh:mm\n

\n

Examples:

\n

\n 2020-04-22T17:57:24Z\n

\n

\n 2020-04-22T17:57:24+02:00\n

", + "smithy.api#required": {} + } + }, + "Id": { + "target": "com.amazonaws.georoutes#WaypointId", + "traits": { + "smithy.api#documentation": "

The waypoint Id.

", + "smithy.api#required": {} + } + }, + "Position": { + "target": "com.amazonaws.georoutes#Position", + "traits": { + "smithy.api#documentation": "

Position defined as [longitude, latitude].

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The optimized waypoint.

" + } + }, + "com.amazonaws.georoutes#WaypointOptimizationOptimizedWaypointList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#WaypointOptimizationOptimizedWaypoint" + } + }, + "com.amazonaws.georoutes#WaypointOptimizationOriginOptions": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.georoutes#WaypointId", + "traits": { + "smithy.api#documentation": "

The Origin Id.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Options related to the origin.

" + } + }, + "com.amazonaws.georoutes#WaypointOptimizationPedestrianOptions": { + "type": "structure", + "members": { + "Speed": { + "target": "com.amazonaws.georoutes#SpeedKilometersPerHour", + "traits": { + "smithy.api#default": null, + "smithy.api#documentation": "

Walking speed.

\n

\n Unit: KilometersPerHour\n

", + "smithy.api#range": { + "min": 1.8, + "max": 7.2 + } + } + } + }, + "traits": { + "smithy.api#documentation": "

Options related to a pedestrian.

" + } + }, + "com.amazonaws.georoutes#WaypointOptimizationRestCycleDurations": { + "type": "structure", + "members": { + "RestDuration": { + "target": "com.amazonaws.georoutes#DurationSeconds", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Resting phase of the cycle.

\n

\n Unit: seconds\n

", + "smithy.api#required": {} + } + }, + "WorkDuration": { + "target": "com.amazonaws.georoutes#DurationSeconds", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Working phase of the cycle.

\n

\n Unit: seconds\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Driver work-rest schedules defined by a short and long cycle. A rest needs to be taken after the short work duration. The short cycle can be repeated until you hit the long work duration, at which point the long rest duration should be taken before restarting.

\n

\n Unit: seconds\n

" + } + }, + "com.amazonaws.georoutes#WaypointOptimizationRestCycles": { + "type": "structure", + "members": { + "LongCycle": { + "target": "com.amazonaws.georoutes#WaypointOptimizationRestCycleDurations", + "traits": { + "smithy.api#documentation": "

Long cycle for a driver work-rest schedule.

", + "smithy.api#required": {} + } + }, + "ShortCycle": { + "target": "com.amazonaws.georoutes#WaypointOptimizationRestCycleDurations", + "traits": { + "smithy.api#documentation": "

Short cycle for a driver work-rest schedule

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Resting phase of the cycle.

" + } + }, + "com.amazonaws.georoutes#WaypointOptimizationRestProfile": { + "type": "structure", + "members": { + "Profile": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

Pre defined rest profiles for a driver schedule. The only currently supported profile is\n EU.

", + "smithy.api#length": { + "min": 2, + "max": 2 + }, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Pre defined rest profiles for a driver schedule. The only currently supported profile is\n EU.

" + } + }, + "com.amazonaws.georoutes#WaypointOptimizationSequencingObjective": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "FASTEST_ROUTE", + "value": "FastestRoute" + }, + { + "name": "SHORTEST_ROUTE", + "value": "ShortestRoute" + } + ] + } + }, + "com.amazonaws.georoutes#WaypointOptimizationServiceTimeTreatment": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "REST", + "value": "Rest" + }, + { + "name": "WORK", + "value": "Work" + } + ] + } + }, + "com.amazonaws.georoutes#WaypointOptimizationSideOfStreetOptions": { + "type": "structure", + "members": { + "Position": { + "target": "com.amazonaws.georoutes#Position", + "traits": { + "smithy.api#documentation": "

Position defined as [longitude, latitude].

", + "smithy.api#required": {} + } + }, + "UseWith": { + "target": "com.amazonaws.georoutes#SideOfStreetMatchingStrategy", + "traits": { + "smithy.api#documentation": "

Strategy that defines when the side of street position should be used. AnyStreet will always use the provided position.

\n

Default Value: DividedStreetOnly\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Options to configure matching the provided position to a side of the street.

" + } + }, + "com.amazonaws.georoutes#WaypointOptimizationTimeBreakdown": { + "type": "structure", + "members": { + "RestDuration": { + "target": "com.amazonaws.georoutes#DurationSeconds", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Resting phase of the cycle.

\n

\n Unit: seconds\n

", + "smithy.api#required": {} + } + }, + "ServiceDuration": { + "target": "com.amazonaws.georoutes#DurationSeconds", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Service time spent at the destination. At an appointment, the service time should be the appointment duration.

\n

\n Unit: seconds\n

", + "smithy.api#required": {} + } + }, + "TravelDuration": { + "target": "com.amazonaws.georoutes#DurationSeconds", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Traveling phase of the cycle.

\n

\n Unit: seconds\n

", + "smithy.api#required": {} + } + }, + "WaitDuration": { + "target": "com.amazonaws.georoutes#DurationSeconds", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Waiting phase of the cycle.

\n

\n Unit: seconds\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

Time breakdown for the sequence.

" + } + }, + "com.amazonaws.georoutes#WaypointOptimizationTrafficOptions": { + "type": "structure", + "members": { + "Usage": { + "target": "com.amazonaws.georoutes#TrafficUsage", + "traits": { + "smithy.api#documentation": "

Determines if traffic should be used or ignored while calculating the route.

\n

Default Value: UseTrafficData\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Options related to traffic.

" + } + }, + "com.amazonaws.georoutes#WaypointOptimizationTrailerOptions": { + "type": "structure", + "members": { + "TrailerCount": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

Number of trailers attached to the vehicle.

\n

Default Value: 0\n

", + "smithy.api#range": { + "min": 0, + "max": 255 + } + } + } + }, + "traits": { + "smithy.api#documentation": "

Trailer options corresponding to the vehicle.

" + } + }, + "com.amazonaws.georoutes#WaypointOptimizationTravelMode": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "CAR", + "value": "Car" + }, + { + "name": "PEDESTRIAN", + "value": "Pedestrian" + }, + { + "name": "SCOOTER", + "value": "Scooter" + }, + { + "name": "TRUCK", + "value": "Truck" + } + ] + } + }, + "com.amazonaws.georoutes#WaypointOptimizationTravelModeOptions": { + "type": "structure", + "members": { + "Pedestrian": { + "target": "com.amazonaws.georoutes#WaypointOptimizationPedestrianOptions", + "traits": { + "smithy.api#documentation": "

Travel mode options when the provided travel mode is \"Pedestrian\"

" + } + }, + "Truck": { + "target": "com.amazonaws.georoutes#WaypointOptimizationTruckOptions", + "traits": { + "smithy.api#documentation": "

Travel mode options when the provided travel mode is \"Truck\"

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Travel mode related options for the provided travel mode.

" + } + }, + "com.amazonaws.georoutes#WaypointOptimizationTruckOptions": { + "type": "structure", + "members": { + "GrossWeight": { + "target": "com.amazonaws.georoutes#WeightKilograms", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Gross weight of the vehicle including trailers, and goods at capacity.

\n

\n Unit: Kilograms\n

" + } + }, + "HazardousCargos": { + "target": "com.amazonaws.georoutes#WaypointOptimizationHazardousCargoTypeList", + "traits": { + "smithy.api#documentation": "

List of Hazardous cargo contained in the vehicle.

" + } + }, + "Height": { + "target": "com.amazonaws.georoutes#DimensionCentimeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Height of the vehicle.

\n

\n Unit: centimeters\n

", + "smithy.api#range": { + "min": 0, + "max": 5000 + } + } + }, + "Length": { + "target": "com.amazonaws.georoutes#DimensionCentimeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Length of the vehicle.

\n

\n Unit: centimeters\n

", + "smithy.api#range": { + "min": 0, + "max": 30000 + } + } + }, + "Trailer": { + "target": "com.amazonaws.georoutes#WaypointOptimizationTrailerOptions", + "traits": { + "smithy.api#documentation": "

Trailer options corresponding to the vehicle.

" + } + }, + "TruckType": { + "target": "com.amazonaws.georoutes#WaypointOptimizationTruckType", + "traits": { + "smithy.api#documentation": "

Type of the truck.

" + } + }, + "TunnelRestrictionCode": { + "target": "com.amazonaws.georoutes#TunnelRestrictionCode", + "traits": { + "smithy.api#documentation": "

The tunnel restriction code.

\n

Tunnel categories in this list indicate the restrictions which apply to certain tunnels in Great Britain. \n They relate to the types of dangerous goods that can be transported through them.

\n
    \n
  • \n

    \n Tunnel Category B\n

    \n
      \n
    • \n

      \n Risk Level: Limited risk

      \n
    • \n
    • \n

      \n Restrictions: Few restrictions

      \n
    • \n
    \n
  • \n
  • \n

    \n Tunnel Category C\n

    \n
      \n
    • \n

      \n Risk Level: Medium risk

      \n
    • \n
    • \n

      \n Restrictions: Some restrictions

      \n
    • \n
    \n
  • \n
  • \n

    \n Tunnel Category D\n

    \n
      \n
    • \n

      \n Risk Level: High risk

      \n
    • \n
    • \n

      \n Restrictions: Many restrictions occur

      \n
    • \n
    \n
  • \n
  • \n

    \n Tunnel Category E\n

    \n
      \n
    • \n

      \n Risk Level: Very high risk

      \n
    • \n
    • \n

      \n Restrictions: Restricted tunnel

      \n
    • \n
    \n
  • \n
" + } + }, + "WeightPerAxle": { + "target": "com.amazonaws.georoutes#WeightKilograms", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Heaviest weight per axle irrespective of the axle type or the axle group. Meant for usage in countries where the differences in axle types or axle groups are not distinguished.

\n

\n Unit: Kilograms\n

" + } + }, + "Width": { + "target": "com.amazonaws.georoutes#DimensionCentimeters", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Width of the vehicle.

\n

\n Unit: centimeters\n

", + "smithy.api#range": { + "min": 0, + "max": 5000 + } + } + } + }, + "traits": { + "smithy.api#documentation": "

Travel mode options when the provided travel mode is \"Truck\"

" + } + }, + "com.amazonaws.georoutes#WaypointOptimizationTruckType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "STRAIGHT_TRUCK", + "value": "StraightTruck" + }, + { + "name": "TRACTOR", + "value": "Tractor" + } + ] + } + }, + "com.amazonaws.georoutes#WaypointOptimizationWaypoint": { + "type": "structure", + "members": { + "AccessHours": { + "target": "com.amazonaws.georoutes#WaypointOptimizationAccessHours", + "traits": { + "smithy.api#documentation": "

Access hours corresponding to when a waypoint can be visited.

" + } + }, + "AppointmentTime": { + "target": "com.amazonaws.georoutes#TimestampWithTimezoneOffset", + "traits": { + "smithy.api#documentation": "

Appointment time at the waypoint.

" + } + }, + "Before": { + "target": "com.amazonaws.georoutes#BeforeWaypointsList", + "traits": { + "smithy.api#documentation": "

Constraint defining what waypoints are to be visited after this waypoint.

" + } + }, + "Heading": { + "target": "com.amazonaws.georoutes#Heading", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

GPS Heading at the position.

" + } + }, + "Id": { + "target": "com.amazonaws.georoutes#WaypointId", + "traits": { + "smithy.api#documentation": "

The waypoint Id.

" + } + }, + "Position": { + "target": "com.amazonaws.georoutes#Position", + "traits": { + "smithy.api#documentation": "

Position defined as [longitude, latitude].

", + "smithy.api#required": {} + } + }, + "ServiceDuration": { + "target": "com.amazonaws.georoutes#DurationSeconds", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Service time spent at the waypoint. At an appointment, the service time should be the appointment duration.

\n

\n Unit: seconds\n

" + } + }, + "SideOfStreet": { + "target": "com.amazonaws.georoutes#WaypointOptimizationSideOfStreetOptions", + "traits": { + "smithy.api#documentation": "

Options to configure matching the provided position to a side of the street.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Waypoint between the Origin and Destination.

" + } + }, + "com.amazonaws.georoutes#WaypointOptimizationWaypointList": { + "type": "list", + "member": { + "target": "com.amazonaws.georoutes#WaypointOptimizationWaypoint" + } + }, + "com.amazonaws.georoutes#WeightKilograms": { + "type": "long", + "traits": { + "smithy.api#default": 0, + "smithy.api#range": { + "min": 0, + "max": 4294967295 + } + } + }, + "com.amazonaws.georoutes#WeightPerAxleGroup": { + "type": "structure", + "members": { + "Single": { + "target": "com.amazonaws.georoutes#WeightKilograms", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Weight for single axle group.

\n

\n Unit: Kilograms\n

" + } + }, + "Tandem": { + "target": "com.amazonaws.georoutes#WeightKilograms", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Weight for tandem axle group.

\n

\n Unit: Kilograms\n

" + } + }, + "Triple": { + "target": "com.amazonaws.georoutes#WeightKilograms", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Weight for triple axle group.

\n

\n Unit: Kilograms\n

" + } + }, + "Quad": { + "target": "com.amazonaws.georoutes#WeightKilograms", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Weight for quad axle group.

\n

\n Unit: Kilograms\n

" + } + }, + "Quint": { + "target": "com.amazonaws.georoutes#WeightKilograms", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

Weight for quad quint group.

\n

\n Unit: Kilograms\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Specifies the total weight for the specified axle group. Meant for usage in countries that have different regulations based on the axle group type.

\n

\n Unit: Kilograms\n

" + } + } + } +}