aws-sdk-georoutes 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2234 @@
1
+ # frozen_string_literal: true
2
+
3
+ # WARNING ABOUT GENERATED CODE
4
+ #
5
+ # This file is generated. See the contributing guide for more information:
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
+ #
8
+ # WARNING ABOUT GENERATED CODE
9
+
10
+ require 'seahorse/client/plugins/content_length.rb'
11
+ require 'aws-sdk-core/plugins/credentials_configuration.rb'
12
+ require 'aws-sdk-core/plugins/logging.rb'
13
+ require 'aws-sdk-core/plugins/param_converter.rb'
14
+ require 'aws-sdk-core/plugins/param_validator.rb'
15
+ require 'aws-sdk-core/plugins/user_agent.rb'
16
+ require 'aws-sdk-core/plugins/helpful_socket_errors.rb'
17
+ require 'aws-sdk-core/plugins/retry_errors.rb'
18
+ require 'aws-sdk-core/plugins/global_configuration.rb'
19
+ require 'aws-sdk-core/plugins/regional_endpoint.rb'
20
+ require 'aws-sdk-core/plugins/endpoint_discovery.rb'
21
+ require 'aws-sdk-core/plugins/endpoint_pattern.rb'
22
+ require 'aws-sdk-core/plugins/response_paging.rb'
23
+ require 'aws-sdk-core/plugins/stub_responses.rb'
24
+ require 'aws-sdk-core/plugins/idempotency_token.rb'
25
+ require 'aws-sdk-core/plugins/invocation_id.rb'
26
+ require 'aws-sdk-core/plugins/jsonvalue_converter.rb'
27
+ require 'aws-sdk-core/plugins/client_metrics_plugin.rb'
28
+ require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb'
29
+ require 'aws-sdk-core/plugins/transfer_encoding.rb'
30
+ require 'aws-sdk-core/plugins/http_checksum.rb'
31
+ require 'aws-sdk-core/plugins/checksum_algorithm.rb'
32
+ require 'aws-sdk-core/plugins/request_compression.rb'
33
+ require 'aws-sdk-core/plugins/defaults_mode.rb'
34
+ require 'aws-sdk-core/plugins/recursion_detection.rb'
35
+ require 'aws-sdk-core/plugins/telemetry.rb'
36
+ require 'aws-sdk-core/plugins/sign.rb'
37
+ require 'aws-sdk-core/plugins/protocols/rest_json.rb'
38
+
39
+ module Aws::GeoRoutes
40
+ # An API client for GeoRoutes. To construct a client, you need to configure a `:region` and `:credentials`.
41
+ #
42
+ # client = Aws::GeoRoutes::Client.new(
43
+ # region: region_name,
44
+ # credentials: credentials,
45
+ # # ...
46
+ # )
47
+ #
48
+ # For details on configuring region and credentials see
49
+ # the [developer guide](/sdk-for-ruby/v3/developer-guide/setup-config.html).
50
+ #
51
+ # See {#initialize} for a full list of supported configuration options.
52
+ class Client < Seahorse::Client::Base
53
+
54
+ include Aws::ClientStubs
55
+
56
+ @identifier = :georoutes
57
+
58
+ set_api(ClientApi::API)
59
+
60
+ add_plugin(Seahorse::Client::Plugins::ContentLength)
61
+ add_plugin(Aws::Plugins::CredentialsConfiguration)
62
+ add_plugin(Aws::Plugins::Logging)
63
+ add_plugin(Aws::Plugins::ParamConverter)
64
+ add_plugin(Aws::Plugins::ParamValidator)
65
+ add_plugin(Aws::Plugins::UserAgent)
66
+ add_plugin(Aws::Plugins::HelpfulSocketErrors)
67
+ add_plugin(Aws::Plugins::RetryErrors)
68
+ add_plugin(Aws::Plugins::GlobalConfiguration)
69
+ add_plugin(Aws::Plugins::RegionalEndpoint)
70
+ add_plugin(Aws::Plugins::EndpointDiscovery)
71
+ add_plugin(Aws::Plugins::EndpointPattern)
72
+ add_plugin(Aws::Plugins::ResponsePaging)
73
+ add_plugin(Aws::Plugins::StubResponses)
74
+ add_plugin(Aws::Plugins::IdempotencyToken)
75
+ add_plugin(Aws::Plugins::InvocationId)
76
+ add_plugin(Aws::Plugins::JsonvalueConverter)
77
+ add_plugin(Aws::Plugins::ClientMetricsPlugin)
78
+ add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
79
+ add_plugin(Aws::Plugins::TransferEncoding)
80
+ add_plugin(Aws::Plugins::HttpChecksum)
81
+ add_plugin(Aws::Plugins::ChecksumAlgorithm)
82
+ add_plugin(Aws::Plugins::RequestCompression)
83
+ add_plugin(Aws::Plugins::DefaultsMode)
84
+ add_plugin(Aws::Plugins::RecursionDetection)
85
+ add_plugin(Aws::Plugins::Telemetry)
86
+ add_plugin(Aws::Plugins::Sign)
87
+ add_plugin(Aws::Plugins::Protocols::RestJson)
88
+ add_plugin(Aws::GeoRoutes::Plugins::Endpoints)
89
+
90
+ # @overload initialize(options)
91
+ # @param [Hash] options
92
+ #
93
+ # @option options [Array<Seahorse::Client::Plugin>] :plugins ([]])
94
+ # A list of plugins to apply to the client. Each plugin is either a
95
+ # class name or an instance of a plugin class.
96
+ #
97
+ # @option options [required, Aws::CredentialProvider] :credentials
98
+ # Your AWS credentials. This can be an instance of any one of the
99
+ # following classes:
100
+ #
101
+ # * `Aws::Credentials` - Used for configuring static, non-refreshing
102
+ # credentials.
103
+ #
104
+ # * `Aws::SharedCredentials` - Used for loading static credentials from a
105
+ # shared file, such as `~/.aws/config`.
106
+ #
107
+ # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
108
+ #
109
+ # * `Aws::AssumeRoleWebIdentityCredentials` - Used when you need to
110
+ # assume a role after providing credentials via the web.
111
+ #
112
+ # * `Aws::SSOCredentials` - Used for loading credentials from AWS SSO using an
113
+ # access token generated from `aws login`.
114
+ #
115
+ # * `Aws::ProcessCredentials` - Used for loading credentials from a
116
+ # process that outputs to stdout.
117
+ #
118
+ # * `Aws::InstanceProfileCredentials` - Used for loading credentials
119
+ # from an EC2 IMDS on an EC2 instance.
120
+ #
121
+ # * `Aws::ECSCredentials` - Used for loading credentials from
122
+ # instances running in ECS.
123
+ #
124
+ # * `Aws::CognitoIdentityCredentials` - Used for loading credentials
125
+ # from the Cognito Identity service.
126
+ #
127
+ # When `:credentials` are not configured directly, the following
128
+ # locations will be searched for credentials:
129
+ #
130
+ # * `Aws.config[:credentials]`
131
+ # * The `:access_key_id`, `:secret_access_key`, `:session_token`, and
132
+ # `:account_id` options.
133
+ # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY'],
134
+ # ENV['AWS_SESSION_TOKEN'], and ENV['AWS_ACCOUNT_ID']
135
+ # * `~/.aws/credentials`
136
+ # * `~/.aws/config`
137
+ # * EC2/ECS IMDS instance profile - When used by default, the timeouts
138
+ # are very aggressive. Construct and pass an instance of
139
+ # `Aws::InstanceProfileCredentials` or `Aws::ECSCredentials` to
140
+ # enable retries and extended timeouts. Instance profile credential
141
+ # fetching can be disabled by setting ENV['AWS_EC2_METADATA_DISABLED']
142
+ # to true.
143
+ #
144
+ # @option options [required, String] :region
145
+ # The AWS region to connect to. The configured `:region` is
146
+ # used to determine the service `:endpoint`. When not passed,
147
+ # a default `:region` is searched for in the following locations:
148
+ #
149
+ # * `Aws.config[:region]`
150
+ # * `ENV['AWS_REGION']`
151
+ # * `ENV['AMAZON_REGION']`
152
+ # * `ENV['AWS_DEFAULT_REGION']`
153
+ # * `~/.aws/credentials`
154
+ # * `~/.aws/config`
155
+ #
156
+ # @option options [String] :access_key_id
157
+ #
158
+ # @option options [String] :account_id
159
+ #
160
+ # @option options [Boolean] :active_endpoint_cache (false)
161
+ # When set to `true`, a thread polling for endpoints will be running in
162
+ # the background every 60 secs (default). Defaults to `false`.
163
+ #
164
+ # @option options [Boolean] :adaptive_retry_wait_to_fill (true)
165
+ # Used only in `adaptive` retry mode. When true, the request will sleep
166
+ # until there is sufficent client side capacity to retry the request.
167
+ # When false, the request will raise a `RetryCapacityNotAvailableError` and will
168
+ # not retry instead of sleeping.
169
+ #
170
+ # @option options [Boolean] :client_side_monitoring (false)
171
+ # When `true`, client-side metrics will be collected for all API requests from
172
+ # this client.
173
+ #
174
+ # @option options [String] :client_side_monitoring_client_id ("")
175
+ # Allows you to provide an identifier for this client which will be attached to
176
+ # all generated client side metrics. Defaults to an empty string.
177
+ #
178
+ # @option options [String] :client_side_monitoring_host ("127.0.0.1")
179
+ # Allows you to specify the DNS hostname or IPv4 or IPv6 address that the client
180
+ # side monitoring agent is running on, where client metrics will be published via UDP.
181
+ #
182
+ # @option options [Integer] :client_side_monitoring_port (31000)
183
+ # Required for publishing client metrics. The port that the client side monitoring
184
+ # agent is running on, where client metrics will be published via UDP.
185
+ #
186
+ # @option options [Aws::ClientSideMonitoring::Publisher] :client_side_monitoring_publisher (Aws::ClientSideMonitoring::Publisher)
187
+ # Allows you to provide a custom client-side monitoring publisher class. By default,
188
+ # will use the Client Side Monitoring Agent Publisher.
189
+ #
190
+ # @option options [Boolean] :convert_params (true)
191
+ # When `true`, an attempt is made to coerce request parameters into
192
+ # the required types.
193
+ #
194
+ # @option options [Boolean] :correct_clock_skew (true)
195
+ # Used only in `standard` and adaptive retry modes. Specifies whether to apply
196
+ # a clock skew correction and retry requests with skewed client clocks.
197
+ #
198
+ # @option options [String] :defaults_mode ("legacy")
199
+ # See {Aws::DefaultsModeConfiguration} for a list of the
200
+ # accepted modes and the configuration defaults that are included.
201
+ #
202
+ # @option options [Boolean] :disable_host_prefix_injection (false)
203
+ # Set to true to disable SDK automatically adding host prefix
204
+ # to default service endpoint when available.
205
+ #
206
+ # @option options [Boolean] :disable_request_compression (false)
207
+ # When set to 'true' the request body will not be compressed
208
+ # for supported operations.
209
+ #
210
+ # @option options [String, URI::HTTPS, URI::HTTP] :endpoint
211
+ # Normally you should not configure the `:endpoint` option
212
+ # directly. This is normally constructed from the `:region`
213
+ # option. Configuring `:endpoint` is normally reserved for
214
+ # connecting to test or custom endpoints. The endpoint should
215
+ # be a URI formatted like:
216
+ #
217
+ # 'http://example.com'
218
+ # 'https://example.com'
219
+ # 'http://example.com:123'
220
+ #
221
+ # @option options [Integer] :endpoint_cache_max_entries (1000)
222
+ # Used for the maximum size limit of the LRU cache storing endpoints data
223
+ # for endpoint discovery enabled operations. Defaults to 1000.
224
+ #
225
+ # @option options [Integer] :endpoint_cache_max_threads (10)
226
+ # Used for the maximum threads in use for polling endpoints to be cached, defaults to 10.
227
+ #
228
+ # @option options [Integer] :endpoint_cache_poll_interval (60)
229
+ # When :endpoint_discovery and :active_endpoint_cache is enabled,
230
+ # Use this option to config the time interval in seconds for making
231
+ # requests fetching endpoints information. Defaults to 60 sec.
232
+ #
233
+ # @option options [Boolean] :endpoint_discovery (false)
234
+ # When set to `true`, endpoint discovery will be enabled for operations when available.
235
+ #
236
+ # @option options [Boolean] :ignore_configured_endpoint_urls
237
+ # Setting to true disables use of endpoint URLs provided via environment
238
+ # variables and the shared configuration file.
239
+ #
240
+ # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
241
+ # The log formatter.
242
+ #
243
+ # @option options [Symbol] :log_level (:info)
244
+ # The log level to send messages to the `:logger` at.
245
+ #
246
+ # @option options [Logger] :logger
247
+ # The Logger instance to send log messages to. If this option
248
+ # is not set, logging will be disabled.
249
+ #
250
+ # @option options [Integer] :max_attempts (3)
251
+ # An integer representing the maximum number attempts that will be made for
252
+ # a single request, including the initial attempt. For example,
253
+ # setting this value to 5 will result in a request being retried up to
254
+ # 4 times. Used in `standard` and `adaptive` retry modes.
255
+ #
256
+ # @option options [String] :profile ("default")
257
+ # Used when loading credentials from the shared credentials file
258
+ # at HOME/.aws/credentials. When not specified, 'default' is used.
259
+ #
260
+ # @option options [Integer] :request_min_compression_size_bytes (10240)
261
+ # The minimum size in bytes that triggers compression for request
262
+ # bodies. The value must be non-negative integer value between 0
263
+ # and 10485780 bytes inclusive.
264
+ #
265
+ # @option options [Proc] :retry_backoff
266
+ # A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay.
267
+ # This option is only used in the `legacy` retry mode.
268
+ #
269
+ # @option options [Float] :retry_base_delay (0.3)
270
+ # The base delay in seconds used by the default backoff function. This option
271
+ # is only used in the `legacy` retry mode.
272
+ #
273
+ # @option options [Symbol] :retry_jitter (:none)
274
+ # A delay randomiser function used by the default backoff function.
275
+ # Some predefined functions can be referenced by name - :none, :equal, :full,
276
+ # otherwise a Proc that takes and returns a number. This option is only used
277
+ # in the `legacy` retry mode.
278
+ #
279
+ # @see https://www.awsarchitectureblog.com/2015/03/backoff.html
280
+ #
281
+ # @option options [Integer] :retry_limit (3)
282
+ # The maximum number of times to retry failed requests. Only
283
+ # ~ 500 level server errors and certain ~ 400 level client errors
284
+ # are retried. Generally, these are throttling errors, data
285
+ # checksum errors, networking errors, timeout errors, auth errors,
286
+ # endpoint discovery, and errors from expired credentials.
287
+ # This option is only used in the `legacy` retry mode.
288
+ #
289
+ # @option options [Integer] :retry_max_delay (0)
290
+ # The maximum number of seconds to delay between retries (0 for no limit)
291
+ # used by the default backoff function. This option is only used in the
292
+ # `legacy` retry mode.
293
+ #
294
+ # @option options [String] :retry_mode ("legacy")
295
+ # Specifies which retry algorithm to use. Values are:
296
+ #
297
+ # * `legacy` - The pre-existing retry behavior. This is default value if
298
+ # no retry mode is provided.
299
+ #
300
+ # * `standard` - A standardized set of retry rules across the AWS SDKs.
301
+ # This includes support for retry quotas, which limit the number of
302
+ # unsuccessful retries a client can make.
303
+ #
304
+ # * `adaptive` - An experimental retry mode that includes all the
305
+ # functionality of `standard` mode along with automatic client side
306
+ # throttling. This is a provisional mode that may change behavior
307
+ # in the future.
308
+ #
309
+ # @option options [String] :sdk_ua_app_id
310
+ # A unique and opaque application ID that is appended to the
311
+ # User-Agent header as app/sdk_ua_app_id. It should have a
312
+ # maximum length of 50. This variable is sourced from environment
313
+ # variable AWS_SDK_UA_APP_ID or the shared config profile attribute sdk_ua_app_id.
314
+ #
315
+ # @option options [String] :secret_access_key
316
+ #
317
+ # @option options [String] :session_token
318
+ #
319
+ # @option options [Array] :sigv4a_signing_region_set
320
+ # A list of regions that should be signed with SigV4a signing. When
321
+ # not passed, a default `:sigv4a_signing_region_set` is searched for
322
+ # in the following locations:
323
+ #
324
+ # * `Aws.config[:sigv4a_signing_region_set]`
325
+ # * `ENV['AWS_SIGV4A_SIGNING_REGION_SET']`
326
+ # * `~/.aws/config`
327
+ #
328
+ # @option options [Boolean] :stub_responses (false)
329
+ # Causes the client to return stubbed responses. By default
330
+ # fake responses are generated and returned. You can specify
331
+ # the response data to return or errors to raise by calling
332
+ # {ClientStubs#stub_responses}. See {ClientStubs} for more information.
333
+ #
334
+ # ** Please note ** When response stubbing is enabled, no HTTP
335
+ # requests are made, and retries are disabled.
336
+ #
337
+ # @option options [Aws::Telemetry::TelemetryProviderBase] :telemetry_provider (Aws::Telemetry::NoOpTelemetryProvider)
338
+ # Allows you to provide a telemetry provider, which is used to
339
+ # emit telemetry data. By default, uses `NoOpTelemetryProvider` which
340
+ # will not record or emit any telemetry data. The SDK supports the
341
+ # following telemetry providers:
342
+ #
343
+ # * OpenTelemetry (OTel) - To use the OTel provider, install and require the
344
+ # `opentelemetry-sdk` gem and then, pass in an instance of a
345
+ # `Aws::Telemetry::OTelProvider` for telemetry provider.
346
+ #
347
+ # @option options [Aws::TokenProvider] :token_provider
348
+ # A Bearer Token Provider. This can be an instance of any one of the
349
+ # following classes:
350
+ #
351
+ # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
352
+ # tokens.
353
+ #
354
+ # * `Aws::SSOTokenProvider` - Used for loading tokens from AWS SSO using an
355
+ # access token generated from `aws login`.
356
+ #
357
+ # When `:token_provider` is not configured directly, the `Aws::TokenProviderChain`
358
+ # will be used to search for tokens configured for your profile in shared configuration files.
359
+ #
360
+ # @option options [Boolean] :use_dualstack_endpoint
361
+ # When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
362
+ # will be used if available.
363
+ #
364
+ # @option options [Boolean] :use_fips_endpoint
365
+ # When set to `true`, fips compatible endpoints will be used if available.
366
+ # When a `fips` region is used, the region is normalized and this config
367
+ # is set to `true`.
368
+ #
369
+ # @option options [Boolean] :validate_params (true)
370
+ # When `true`, request parameters are validated before
371
+ # sending the request.
372
+ #
373
+ # @option options [Aws::GeoRoutes::EndpointProvider] :endpoint_provider
374
+ # The endpoint provider used to resolve endpoints. Any object that responds to
375
+ # `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to
376
+ # `Aws::GeoRoutes::EndpointParameters`.
377
+ #
378
+ # @option options [Float] :http_continue_timeout (1)
379
+ # The number of seconds to wait for a 100-continue response before sending the
380
+ # request body. This option has no effect unless the request has "Expect"
381
+ # header set to "100-continue". Defaults to `nil` which disables this
382
+ # behaviour. This value can safely be set per request on the session.
383
+ #
384
+ # @option options [Float] :http_idle_timeout (5)
385
+ # The number of seconds a connection is allowed to sit idle before it
386
+ # is considered stale. Stale connections are closed and removed from the
387
+ # pool before making a request.
388
+ #
389
+ # @option options [Float] :http_open_timeout (15)
390
+ # The default number of seconds to wait for response data.
391
+ # This value can safely be set per-request on the session.
392
+ #
393
+ # @option options [URI::HTTP,String] :http_proxy
394
+ # A proxy to send requests through. Formatted like 'http://proxy.com:123'.
395
+ #
396
+ # @option options [Float] :http_read_timeout (60)
397
+ # The default number of seconds to wait for response data.
398
+ # This value can safely be set per-request on the session.
399
+ #
400
+ # @option options [Boolean] :http_wire_trace (false)
401
+ # When `true`, HTTP debug output will be sent to the `:logger`.
402
+ #
403
+ # @option options [Proc] :on_chunk_received
404
+ # When a Proc object is provided, it will be used as callback when each chunk
405
+ # of the response body is received. It provides three arguments: the chunk,
406
+ # the number of bytes received, and the total number of
407
+ # bytes in the response (or nil if the server did not send a `content-length`).
408
+ #
409
+ # @option options [Proc] :on_chunk_sent
410
+ # When a Proc object is provided, it will be used as callback when each chunk
411
+ # of the request body is sent. It provides three arguments: the chunk,
412
+ # the number of bytes read from the body, and the total number of
413
+ # bytes in the body.
414
+ #
415
+ # @option options [Boolean] :raise_response_errors (true)
416
+ # When `true`, response errors are raised.
417
+ #
418
+ # @option options [String] :ssl_ca_bundle
419
+ # Full path to the SSL certificate authority bundle file that should be used when
420
+ # verifying peer certificates. If you do not pass `:ssl_ca_bundle` or
421
+ # `:ssl_ca_directory` the the system default will be used if available.
422
+ #
423
+ # @option options [String] :ssl_ca_directory
424
+ # Full path of the directory that contains the unbundled SSL certificate
425
+ # authority files for verifying peer certificates. If you do
426
+ # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the system
427
+ # default will be used if available.
428
+ #
429
+ # @option options [String] :ssl_ca_store
430
+ # Sets the X509::Store to verify peer certificate.
431
+ #
432
+ # @option options [OpenSSL::X509::Certificate] :ssl_cert
433
+ # Sets a client certificate when creating http connections.
434
+ #
435
+ # @option options [OpenSSL::PKey] :ssl_key
436
+ # Sets a client key when creating http connections.
437
+ #
438
+ # @option options [Float] :ssl_timeout
439
+ # Sets the SSL timeout in seconds
440
+ #
441
+ # @option options [Boolean] :ssl_verify_peer (true)
442
+ # When `true`, SSL peer certificates are verified when establishing a connection.
443
+ #
444
+ def initialize(*args)
445
+ super
446
+ end
447
+
448
+ # @!group API Operations
449
+
450
+ # Use the `CalculateIsolines` action to find service areas that can be
451
+ # reached in a given threshold of time, distance.
452
+ #
453
+ # @option params [Types::IsolineAllowOptions] :allow
454
+ # Features that are allowed while calculating. a route
455
+ #
456
+ # @option params [String] :arrival_time
457
+ # Time of arrival at the destination.
458
+ #
459
+ # Time format: `YYYY-MM-DDThh:mm:ss.sssZ |
460
+ # YYYY-MM-DDThh:mm:ss.sss+hh:mm`
461
+ #
462
+ # Examples:
463
+ #
464
+ # `2020-04-22T17:57:24Z`
465
+ #
466
+ # `2020-04-22T17:57:24+02:00`
467
+ #
468
+ # @option params [Types::IsolineAvoidanceOptions] :avoid
469
+ # Features that are avoided while calculating a route. Avoidance is on a
470
+ # best-case basis. If an avoidance can't be satisfied for a particular
471
+ # case, it violates the avoidance and the returned response produces a
472
+ # notice for the violation.
473
+ #
474
+ # @option params [Boolean] :depart_now
475
+ # Uses the current time as the time of departure.
476
+ #
477
+ # @option params [String] :departure_time
478
+ # Time of departure from thr origin.
479
+ #
480
+ # Time format:`YYYY-MM-DDThh:mm:ss.sssZ | YYYY-MM-DDThh:mm:ss.sss+hh:mm`
481
+ #
482
+ # Examples:
483
+ #
484
+ # `2020-04-22T17:57:24Z`
485
+ #
486
+ # `2020-04-22T17:57:24+02:00`
487
+ #
488
+ # @option params [Array<Float>] :destination
489
+ # The final position for the route. In the World Geodetic System (WGS
490
+ # 84) format: `[longitude, latitude]`.
491
+ #
492
+ # @option params [Types::IsolineDestinationOptions] :destination_options
493
+ # Destination related options.
494
+ #
495
+ # @option params [String] :isoline_geometry_format
496
+ # The format of the returned IsolineGeometry.
497
+ #
498
+ # Default Value:`FlexiblePolyline`
499
+ #
500
+ # @option params [Types::IsolineGranularityOptions] :isoline_granularity
501
+ # Defines the granularity of the returned Isoline
502
+ #
503
+ # @option params [String] :key
504
+ # Optional: The API key to be used for authorization. Either an API key
505
+ # or valid SigV4 signature must be provided when making a request.
506
+ #
507
+ # @option params [String] :optimize_isoline_for
508
+ # Specifies the optimization criteria for when calculating an isoline.
509
+ # AccurateCalculation generates an isoline of higher granularity that is
510
+ # more precise. FastCalculation generates an isoline faster by reducing
511
+ # the granularity, and in turn the quality of the isoline.
512
+ # BalancedCalculation generates an isoline by balancing between quality
513
+ # and performance.
514
+ #
515
+ # Default Value: `BalancedCalculation`
516
+ #
517
+ # @option params [String] :optimize_routing_for
518
+ # Specifies the optimization criteria for calculating a route.
519
+ #
520
+ # Default Value: `FastestRoute`
521
+ #
522
+ # @option params [Array<Float>] :origin
523
+ # The start position for the route.
524
+ #
525
+ # @option params [Types::IsolineOriginOptions] :origin_options
526
+ # Origin related options.
527
+ #
528
+ # @option params [required, Types::IsolineThresholds] :thresholds
529
+ # Threshold to be used for the isoline calculation. Up to 3 thresholds
530
+ # per provided type can be requested.
531
+ #
532
+ # @option params [Types::IsolineTrafficOptions] :traffic
533
+ # Traffic related options.
534
+ #
535
+ # @option params [String] :travel_mode
536
+ # Specifies the mode of transport when calculating a route. Used in
537
+ # estimating the speed of travel and road compatibility.
538
+ #
539
+ # <note markdown="1"> The mode `Scooter` also applies to motorcycles, set to `Scooter` when
540
+ # wanted to calculate options for motorcycles.
541
+ #
542
+ # </note>
543
+ #
544
+ # Default Value: `Car`
545
+ #
546
+ # @option params [Types::IsolineTravelModeOptions] :travel_mode_options
547
+ # Travel mode related options for the provided travel mode.
548
+ #
549
+ # @return [Types::CalculateIsolinesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
550
+ #
551
+ # * {Types::CalculateIsolinesResponse#arrival_time #arrival_time} => String
552
+ # * {Types::CalculateIsolinesResponse#departure_time #departure_time} => String
553
+ # * {Types::CalculateIsolinesResponse#isoline_geometry_format #isoline_geometry_format} => String
554
+ # * {Types::CalculateIsolinesResponse#isolines #isolines} => Array&lt;Types::Isoline&gt;
555
+ # * {Types::CalculateIsolinesResponse#pricing_bucket #pricing_bucket} => String
556
+ # * {Types::CalculateIsolinesResponse#snapped_destination #snapped_destination} => Array&lt;Float&gt;
557
+ # * {Types::CalculateIsolinesResponse#snapped_origin #snapped_origin} => Array&lt;Float&gt;
558
+ #
559
+ # @example Request syntax with placeholder values
560
+ #
561
+ # resp = client.calculate_isolines({
562
+ # allow: {
563
+ # hot: false,
564
+ # hov: false,
565
+ # },
566
+ # arrival_time: "TimestampWithTimezoneOffset",
567
+ # avoid: {
568
+ # areas: [
569
+ # {
570
+ # except: [
571
+ # {
572
+ # bounding_box: [1.0],
573
+ # corridor: {
574
+ # line_string: [ # required
575
+ # [1.0],
576
+ # ],
577
+ # radius: 1, # required
578
+ # },
579
+ # polygon: [
580
+ # [
581
+ # [1.0],
582
+ # ],
583
+ # ],
584
+ # polyline_corridor: {
585
+ # polyline: "Polyline", # required
586
+ # radius: 1, # required
587
+ # },
588
+ # polyline_polygon: ["PolylineRing"],
589
+ # },
590
+ # ],
591
+ # geometry: { # required
592
+ # bounding_box: [1.0],
593
+ # corridor: {
594
+ # line_string: [ # required
595
+ # [1.0],
596
+ # ],
597
+ # radius: 1, # required
598
+ # },
599
+ # polygon: [
600
+ # [
601
+ # [1.0],
602
+ # ],
603
+ # ],
604
+ # polyline_corridor: {
605
+ # polyline: "Polyline", # required
606
+ # radius: 1, # required
607
+ # },
608
+ # polyline_polygon: ["PolylineRing"],
609
+ # },
610
+ # },
611
+ # ],
612
+ # car_shuttle_trains: false,
613
+ # controlled_access_highways: false,
614
+ # dirt_roads: false,
615
+ # ferries: false,
616
+ # seasonal_closure: false,
617
+ # toll_roads: false,
618
+ # toll_transponders: false,
619
+ # truck_road_types: ["TruckRoadType"],
620
+ # tunnels: false,
621
+ # u_turns: false,
622
+ # zone_categories: [
623
+ # {
624
+ # category: "CongestionPricing", # accepts CongestionPricing, Environmental, Vignette
625
+ # },
626
+ # ],
627
+ # },
628
+ # depart_now: false,
629
+ # departure_time: "TimestampWithTimezoneOffset",
630
+ # destination: [1.0],
631
+ # destination_options: {
632
+ # avoid_actions_for_distance: 1,
633
+ # heading: 1.0,
634
+ # matching: {
635
+ # name_hint: "SensitiveString",
636
+ # on_road_threshold: 1,
637
+ # radius: 1,
638
+ # strategy: "MatchAny", # accepts MatchAny, MatchMostSignificantRoad
639
+ # },
640
+ # side_of_street: {
641
+ # position: [1.0], # required
642
+ # use_with: "AnyStreet", # accepts AnyStreet, DividedStreetOnly
643
+ # },
644
+ # },
645
+ # isoline_geometry_format: "FlexiblePolyline", # accepts FlexiblePolyline, Simple
646
+ # isoline_granularity: {
647
+ # max_points: 1,
648
+ # max_resolution: 1,
649
+ # },
650
+ # key: "ApiKey",
651
+ # optimize_isoline_for: "AccurateCalculation", # accepts AccurateCalculation, BalancedCalculation, FastCalculation
652
+ # optimize_routing_for: "FastestRoute", # accepts FastestRoute, ShortestRoute
653
+ # origin: [1.0],
654
+ # origin_options: {
655
+ # avoid_actions_for_distance: 1,
656
+ # heading: 1.0,
657
+ # matching: {
658
+ # name_hint: "SensitiveString",
659
+ # on_road_threshold: 1,
660
+ # radius: 1,
661
+ # strategy: "MatchAny", # accepts MatchAny, MatchMostSignificantRoad
662
+ # },
663
+ # side_of_street: {
664
+ # position: [1.0], # required
665
+ # use_with: "AnyStreet", # accepts AnyStreet, DividedStreetOnly
666
+ # },
667
+ # },
668
+ # thresholds: { # required
669
+ # distance: [1],
670
+ # time: [1],
671
+ # },
672
+ # traffic: {
673
+ # flow_event_threshold_override: 1,
674
+ # usage: "IgnoreTrafficData", # accepts IgnoreTrafficData, UseTrafficData
675
+ # },
676
+ # travel_mode: "Car", # accepts Car, Pedestrian, Scooter, Truck
677
+ # travel_mode_options: {
678
+ # car: {
679
+ # engine_type: "Electric", # accepts Electric, InternalCombustion, PluginHybrid
680
+ # license_plate: {
681
+ # last_character: "IsolineVehicleLicensePlateLastCharacterString",
682
+ # },
683
+ # max_speed: 1.0,
684
+ # occupancy: 1,
685
+ # },
686
+ # scooter: {
687
+ # engine_type: "Electric", # accepts Electric, InternalCombustion, PluginHybrid
688
+ # license_plate: {
689
+ # last_character: "IsolineVehicleLicensePlateLastCharacterString",
690
+ # },
691
+ # max_speed: 1.0,
692
+ # occupancy: 1,
693
+ # },
694
+ # truck: {
695
+ # axle_count: 1,
696
+ # engine_type: "Electric", # accepts Electric, InternalCombustion, PluginHybrid
697
+ # gross_weight: 1,
698
+ # hazardous_cargos: ["Combustible"], # accepts Combustible, Corrosive, Explosive, Flammable, Gas, HarmfulToWater, Organic, Other, Poison, PoisonousInhalation, Radioactive
699
+ # height: 1,
700
+ # height_above_first_axle: 1,
701
+ # kpra_length: 1,
702
+ # length: 1,
703
+ # license_plate: {
704
+ # last_character: "IsolineVehicleLicensePlateLastCharacterString",
705
+ # },
706
+ # max_speed: 1.0,
707
+ # occupancy: 1,
708
+ # payload_capacity: 1,
709
+ # tire_count: 1,
710
+ # trailer: {
711
+ # axle_count: 1,
712
+ # trailer_count: 1,
713
+ # },
714
+ # truck_type: "LightTruck", # accepts LightTruck, StraightTruck, Tractor
715
+ # tunnel_restriction_code: "TunnelRestrictionCode",
716
+ # weight_per_axle: 1,
717
+ # weight_per_axle_group: {
718
+ # single: 1,
719
+ # tandem: 1,
720
+ # triple: 1,
721
+ # quad: 1,
722
+ # quint: 1,
723
+ # },
724
+ # width: 1,
725
+ # },
726
+ # },
727
+ # })
728
+ #
729
+ # @example Response structure
730
+ #
731
+ # resp.arrival_time #=> String
732
+ # resp.departure_time #=> String
733
+ # resp.isoline_geometry_format #=> String, one of "FlexiblePolyline", "Simple"
734
+ # resp.isolines #=> Array
735
+ # resp.isolines[0].connections #=> Array
736
+ # resp.isolines[0].connections[0].from_polygon_index #=> Integer
737
+ # resp.isolines[0].connections[0].geometry.line_string #=> Array
738
+ # resp.isolines[0].connections[0].geometry.line_string[0] #=> Array
739
+ # resp.isolines[0].connections[0].geometry.line_string[0][0] #=> Float
740
+ # resp.isolines[0].connections[0].geometry.polyline #=> String
741
+ # resp.isolines[0].connections[0].to_polygon_index #=> Integer
742
+ # resp.isolines[0].distance_threshold #=> Integer
743
+ # resp.isolines[0].geometries #=> Array
744
+ # resp.isolines[0].geometries[0].polygon #=> Array
745
+ # resp.isolines[0].geometries[0].polygon[0] #=> Array
746
+ # resp.isolines[0].geometries[0].polygon[0][0] #=> Array
747
+ # resp.isolines[0].geometries[0].polygon[0][0][0] #=> Float
748
+ # resp.isolines[0].geometries[0].polyline_polygon #=> Array
749
+ # resp.isolines[0].geometries[0].polyline_polygon[0] #=> String
750
+ # resp.isolines[0].time_threshold #=> Integer
751
+ # resp.pricing_bucket #=> String
752
+ # resp.snapped_destination #=> Array
753
+ # resp.snapped_destination[0] #=> Float
754
+ # resp.snapped_origin #=> Array
755
+ # resp.snapped_origin[0] #=> Float
756
+ #
757
+ # @see http://docs.aws.amazon.com/goto/WebAPI/geo-routes-2020-11-19/CalculateIsolines AWS API Documentation
758
+ #
759
+ # @overload calculate_isolines(params = {})
760
+ # @param [Hash] params ({})
761
+ def calculate_isolines(params = {}, options = {})
762
+ req = build_request(:calculate_isolines, params)
763
+ req.send_request(options)
764
+ end
765
+
766
+ # Calculates route matrix containing the results for all pairs of
767
+ # Origins to Destinations. Each row corresponds to one entry in Origins.
768
+ # Each entry in the row corresponds to the route from that entry in
769
+ # Origins to an entry in Destinations positions.
770
+ #
771
+ # @option params [Types::RouteMatrixAllowOptions] :allow
772
+ # Features that are allowed while calculating. a route
773
+ #
774
+ # @option params [Types::RouteMatrixAvoidanceOptions] :avoid
775
+ # Features that are avoided while calculating a route. Avoidance is on a
776
+ # best-case basis. If an avoidance can't be satisfied for a particular
777
+ # case, it violates the avoidance and the returned response produces a
778
+ # notice for the violation.
779
+ #
780
+ # @option params [Boolean] :depart_now
781
+ # Uses the current time as the time of departure.
782
+ #
783
+ # @option params [String] :departure_time
784
+ # Time of departure from thr origin.
785
+ #
786
+ # Time format:`YYYY-MM-DDThh:mm:ss.sssZ | YYYY-MM-DDThh:mm:ss.sss+hh:mm`
787
+ #
788
+ # Examples:
789
+ #
790
+ # `2020-04-22T17:57:24Z`
791
+ #
792
+ # `2020-04-22T17:57:24+02:00`
793
+ #
794
+ # @option params [required, Array<Types::RouteMatrixDestination>] :destinations
795
+ # List of destinations for the route.
796
+ #
797
+ # @option params [Types::RouteMatrixExclusionOptions] :exclude
798
+ # Features to be strictly excluded while calculating the route.
799
+ #
800
+ # @option params [String] :key
801
+ # Optional: The API key to be used for authorization. Either an API key
802
+ # or valid SigV4 signature must be provided when making a request.
803
+ #
804
+ # @option params [String] :optimize_routing_for
805
+ # Specifies the optimization criteria for calculating a route.
806
+ #
807
+ # Default Value: `FastestRoute`
808
+ #
809
+ # @option params [required, Array<Types::RouteMatrixOrigin>] :origins
810
+ # The position in longitude and latitude for the origin.
811
+ #
812
+ # @option params [required, Types::RouteMatrixBoundary] :routing_boundary
813
+ # Boundary within which the matrix is to be calculated. All data,
814
+ # origins and destinations outside the boundary are considered invalid.
815
+ #
816
+ # <note markdown="1"> When request routing boundary was set as AutoCircle, the response
817
+ # routing boundary will return Circle derived from the AutoCircle
818
+ # settings.
819
+ #
820
+ # </note>
821
+ #
822
+ # @option params [Types::RouteMatrixTrafficOptions] :traffic
823
+ # Traffic related options.
824
+ #
825
+ # @option params [String] :travel_mode
826
+ # Specifies the mode of transport when calculating a route. Used in
827
+ # estimating the speed of travel and road compatibility.
828
+ #
829
+ # Default Value: `Car`
830
+ #
831
+ # @option params [Types::RouteMatrixTravelModeOptions] :travel_mode_options
832
+ # Travel mode related options for the provided travel mode.
833
+ #
834
+ # @return [Types::CalculateRouteMatrixResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
835
+ #
836
+ # * {Types::CalculateRouteMatrixResponse#error_count #error_count} => Integer
837
+ # * {Types::CalculateRouteMatrixResponse#pricing_bucket #pricing_bucket} => String
838
+ # * {Types::CalculateRouteMatrixResponse#route_matrix #route_matrix} => Array&lt;Array&lt;Types::RouteMatrixEntry&gt;&gt;
839
+ # * {Types::CalculateRouteMatrixResponse#routing_boundary #routing_boundary} => Types::RouteMatrixBoundary
840
+ #
841
+ # @example Request syntax with placeholder values
842
+ #
843
+ # resp = client.calculate_route_matrix({
844
+ # allow: {
845
+ # hot: false,
846
+ # hov: false,
847
+ # },
848
+ # avoid: {
849
+ # areas: [
850
+ # {
851
+ # geometry: { # required
852
+ # bounding_box: [1.0],
853
+ # polygon: [
854
+ # [
855
+ # [1.0],
856
+ # ],
857
+ # ],
858
+ # polyline_polygon: ["PolylineRing"],
859
+ # },
860
+ # },
861
+ # ],
862
+ # car_shuttle_trains: false,
863
+ # controlled_access_highways: false,
864
+ # dirt_roads: false,
865
+ # ferries: false,
866
+ # toll_roads: false,
867
+ # toll_transponders: false,
868
+ # truck_road_types: ["TruckRoadType"],
869
+ # tunnels: false,
870
+ # u_turns: false,
871
+ # zone_categories: [
872
+ # {
873
+ # category: "CongestionPricing", # accepts CongestionPricing, Environmental, Vignette
874
+ # },
875
+ # ],
876
+ # },
877
+ # depart_now: false,
878
+ # departure_time: "TimestampWithTimezoneOffset",
879
+ # destinations: [ # required
880
+ # {
881
+ # options: {
882
+ # avoid_actions_for_distance: 1,
883
+ # heading: 1.0,
884
+ # matching: {
885
+ # name_hint: "SensitiveString",
886
+ # on_road_threshold: 1,
887
+ # radius: 1,
888
+ # strategy: "MatchAny", # accepts MatchAny, MatchMostSignificantRoad
889
+ # },
890
+ # side_of_street: {
891
+ # position: [1.0], # required
892
+ # use_with: "AnyStreet", # accepts AnyStreet, DividedStreetOnly
893
+ # },
894
+ # },
895
+ # position: [1.0], # required
896
+ # },
897
+ # ],
898
+ # exclude: {
899
+ # countries: ["CountryCode"], # required
900
+ # },
901
+ # key: "ApiKey",
902
+ # optimize_routing_for: "FastestRoute", # accepts FastestRoute, ShortestRoute
903
+ # origins: [ # required
904
+ # {
905
+ # options: {
906
+ # avoid_actions_for_distance: 1,
907
+ # heading: 1.0,
908
+ # matching: {
909
+ # name_hint: "SensitiveString",
910
+ # on_road_threshold: 1,
911
+ # radius: 1,
912
+ # strategy: "MatchAny", # accepts MatchAny, MatchMostSignificantRoad
913
+ # },
914
+ # side_of_street: {
915
+ # position: [1.0], # required
916
+ # use_with: "AnyStreet", # accepts AnyStreet, DividedStreetOnly
917
+ # },
918
+ # },
919
+ # position: [1.0], # required
920
+ # },
921
+ # ],
922
+ # routing_boundary: { # required
923
+ # geometry: {
924
+ # auto_circle: {
925
+ # margin: 1,
926
+ # max_radius: 1,
927
+ # },
928
+ # circle: {
929
+ # center: [1.0], # required
930
+ # radius: 1.0, # required
931
+ # },
932
+ # bounding_box: [1.0],
933
+ # polygon: [
934
+ # [
935
+ # [1.0],
936
+ # ],
937
+ # ],
938
+ # },
939
+ # unbounded: false,
940
+ # },
941
+ # traffic: {
942
+ # flow_event_threshold_override: 1,
943
+ # usage: "IgnoreTrafficData", # accepts IgnoreTrafficData, UseTrafficData
944
+ # },
945
+ # travel_mode: "Car", # accepts Car, Pedestrian, Scooter, Truck
946
+ # travel_mode_options: {
947
+ # car: {
948
+ # license_plate: {
949
+ # last_character: "RouteMatrixVehicleLicensePlateLastCharacterString",
950
+ # },
951
+ # max_speed: 1.0,
952
+ # occupancy: 1,
953
+ # },
954
+ # scooter: {
955
+ # license_plate: {
956
+ # last_character: "RouteMatrixVehicleLicensePlateLastCharacterString",
957
+ # },
958
+ # max_speed: 1.0,
959
+ # occupancy: 1,
960
+ # },
961
+ # truck: {
962
+ # axle_count: 1,
963
+ # gross_weight: 1,
964
+ # hazardous_cargos: ["Combustible"], # accepts Combustible, Corrosive, Explosive, Flammable, Gas, HarmfulToWater, Organic, Other, Poison, PoisonousInhalation, Radioactive
965
+ # height: 1,
966
+ # kpra_length: 1,
967
+ # length: 1,
968
+ # license_plate: {
969
+ # last_character: "RouteMatrixVehicleLicensePlateLastCharacterString",
970
+ # },
971
+ # max_speed: 1.0,
972
+ # occupancy: 1,
973
+ # payload_capacity: 1,
974
+ # trailer: {
975
+ # trailer_count: 1,
976
+ # },
977
+ # truck_type: "LightTruck", # accepts LightTruck, StraightTruck, Tractor
978
+ # tunnel_restriction_code: "TunnelRestrictionCode",
979
+ # weight_per_axle: 1,
980
+ # weight_per_axle_group: {
981
+ # single: 1,
982
+ # tandem: 1,
983
+ # triple: 1,
984
+ # quad: 1,
985
+ # quint: 1,
986
+ # },
987
+ # width: 1,
988
+ # },
989
+ # },
990
+ # })
991
+ #
992
+ # @example Response structure
993
+ #
994
+ # resp.error_count #=> Integer
995
+ # resp.pricing_bucket #=> String
996
+ # resp.route_matrix #=> Array
997
+ # resp.route_matrix[0] #=> Array
998
+ # resp.route_matrix[0][0].distance #=> Integer
999
+ # resp.route_matrix[0][0].duration #=> Integer
1000
+ # resp.route_matrix[0][0].error #=> String, one of "NoMatch", "NoMatchDestination", "NoMatchOrigin", "NoRoute", "OutOfBounds", "OutOfBoundsDestination", "OutOfBoundsOrigin", "Other", "Violation"
1001
+ # resp.routing_boundary.geometry.auto_circle.margin #=> Integer
1002
+ # resp.routing_boundary.geometry.auto_circle.max_radius #=> Integer
1003
+ # resp.routing_boundary.geometry.circle.center #=> Array
1004
+ # resp.routing_boundary.geometry.circle.center[0] #=> Float
1005
+ # resp.routing_boundary.geometry.circle.radius #=> Float
1006
+ # resp.routing_boundary.geometry.bounding_box #=> Array
1007
+ # resp.routing_boundary.geometry.bounding_box[0] #=> Float
1008
+ # resp.routing_boundary.geometry.polygon #=> Array
1009
+ # resp.routing_boundary.geometry.polygon[0] #=> Array
1010
+ # resp.routing_boundary.geometry.polygon[0][0] #=> Array
1011
+ # resp.routing_boundary.geometry.polygon[0][0][0] #=> Float
1012
+ # resp.routing_boundary.unbounded #=> Boolean
1013
+ #
1014
+ # @see http://docs.aws.amazon.com/goto/WebAPI/geo-routes-2020-11-19/CalculateRouteMatrix AWS API Documentation
1015
+ #
1016
+ # @overload calculate_route_matrix(params = {})
1017
+ # @param [Hash] params ({})
1018
+ def calculate_route_matrix(params = {}, options = {})
1019
+ req = build_request(:calculate_route_matrix, params)
1020
+ req.send_request(options)
1021
+ end
1022
+
1023
+ # Calculates a route given the following required parameters: `Origin`
1024
+ # and `Destination`.
1025
+ #
1026
+ # @option params [Types::RouteAllowOptions] :allow
1027
+ # Features that are allowed while calculating. a route
1028
+ #
1029
+ # @option params [String] :arrival_time
1030
+ # Time of arrival at the destination.
1031
+ #
1032
+ # Time format:`YYYY-MM-DDThh:mm:ss.sssZ | YYYY-MM-DDThh:mm:ss.sss+hh:mm`
1033
+ #
1034
+ # Examples:
1035
+ #
1036
+ # `2020-04-22T17:57:24Z`
1037
+ #
1038
+ # `2020-04-22T17:57:24+02:00`
1039
+ #
1040
+ # @option params [Types::RouteAvoidanceOptions] :avoid
1041
+ # Features that are avoided while calculating a route. Avoidance is on a
1042
+ # best-case basis. If an avoidance can't be satisfied for a particular
1043
+ # case, it violates the avoidance and the returned response produces a
1044
+ # notice for the violation.
1045
+ #
1046
+ # @option params [Boolean] :depart_now
1047
+ # Uses the current time as the time of departure.
1048
+ #
1049
+ # @option params [String] :departure_time
1050
+ # Time of departure from thr origin.
1051
+ #
1052
+ # Time format:`YYYY-MM-DDThh:mm:ss.sssZ | YYYY-MM-DDThh:mm:ss.sss+hh:mm`
1053
+ #
1054
+ # Examples:
1055
+ #
1056
+ # `2020-04-22T17:57:24Z`
1057
+ #
1058
+ # `2020-04-22T17:57:24+02:00`
1059
+ #
1060
+ # @option params [required, Array<Float>] :destination
1061
+ # The final position for the route. In the World Geodetic System (WGS
1062
+ # 84) format: `[longitude, latitude]`.
1063
+ #
1064
+ # @option params [Types::RouteDestinationOptions] :destination_options
1065
+ # Destination related options.
1066
+ #
1067
+ # @option params [Types::RouteDriverOptions] :driver
1068
+ # Driver related options.
1069
+ #
1070
+ # @option params [Types::RouteExclusionOptions] :exclude
1071
+ # Features to be strictly excluded while calculating the route.
1072
+ #
1073
+ # @option params [String] :instructions_measurement_system
1074
+ # Measurement system to be used for instructions within steps in the
1075
+ # response.
1076
+ #
1077
+ # @option params [String] :key
1078
+ # Optional: The API key to be used for authorization. Either an API key
1079
+ # or valid SigV4 signature must be provided when making a request.
1080
+ #
1081
+ # @option params [Array<String>] :languages
1082
+ # List of languages for instructions within steps in the response.
1083
+ #
1084
+ # <note markdown="1"> Instructions in the requested language are returned only if they are
1085
+ # available.
1086
+ #
1087
+ # </note>
1088
+ #
1089
+ # @option params [Array<String>] :leg_additional_features
1090
+ # A list of optional additional parameters such as timezone that can be
1091
+ # requested for each result.
1092
+ #
1093
+ # * `Elevation`: Retrieves the elevation information for each location.
1094
+ #
1095
+ # * `Incidents`: Provides information on traffic incidents along the
1096
+ # route.
1097
+ #
1098
+ # * `PassThroughWaypoints`: Indicates waypoints that are passed through
1099
+ # without stopping.
1100
+ #
1101
+ # * `Summary`: Returns a summary of the route, including distance and
1102
+ # duration.
1103
+ #
1104
+ # * `Tolls`: Supplies toll cost information along the route.
1105
+ #
1106
+ # * `TravelStepInstructions`: Provides step-by-step instructions for
1107
+ # travel along the route.
1108
+ #
1109
+ # * `TruckRoadTypes`: Returns information about road types suitable for
1110
+ # trucks.
1111
+ #
1112
+ # * `TypicalDuration`: Gives typical travel duration based on historical
1113
+ # data.
1114
+ #
1115
+ # * `Zones`: Specifies the time zone information for each waypoint.
1116
+ #
1117
+ # @option params [String] :leg_geometry_format
1118
+ # Specifies the format of the geometry returned for each leg of the
1119
+ # route. You can choose between two different geometry encoding formats.
1120
+ #
1121
+ # `FlexiblePolyline`: A compact and precise encoding format for the leg
1122
+ # geometry. For more information on the format, see the GitHub
1123
+ # repository for [ `FlexiblePolyline` ][1].
1124
+ #
1125
+ # `Simple`: A less compact encoding, which is easier to decode but may
1126
+ # be less precise and result in larger payloads.
1127
+ #
1128
+ #
1129
+ #
1130
+ # [1]: https://github.com/heremaps/flexible-polyline
1131
+ #
1132
+ # @option params [Integer] :max_alternatives
1133
+ # Maximum number of alternative routes to be provided in the response,
1134
+ # if available.
1135
+ #
1136
+ # @option params [String] :optimize_routing_for
1137
+ # Specifies the optimization criteria for calculating a route.
1138
+ #
1139
+ # Default Value: `FastestRoute`
1140
+ #
1141
+ # @option params [required, Array<Float>] :origin
1142
+ # The start position for the route.
1143
+ #
1144
+ # @option params [Types::RouteOriginOptions] :origin_options
1145
+ # Origin related options.
1146
+ #
1147
+ # @option params [Array<String>] :span_additional_features
1148
+ # A list of optional features such as SpeedLimit that can be requested
1149
+ # for a Span. A span is a section of a Leg for which the requested
1150
+ # features have the same values.
1151
+ #
1152
+ # @option params [Types::RouteTollOptions] :tolls
1153
+ # Toll related options.
1154
+ #
1155
+ # @option params [Types::RouteTrafficOptions] :traffic
1156
+ # Traffic related options.
1157
+ #
1158
+ # @option params [String] :travel_mode
1159
+ # Specifies the mode of transport when calculating a route. Used in
1160
+ # estimating the speed of travel and road compatibility.
1161
+ #
1162
+ # Default Value: `Car`
1163
+ #
1164
+ # @option params [Types::RouteTravelModeOptions] :travel_mode_options
1165
+ # Travel mode related options for the provided travel mode.
1166
+ #
1167
+ # @option params [String] :travel_step_type
1168
+ # Type of step returned by the response. Default provides basic steps
1169
+ # intended for web based applications. TurnByTurn provides detailed
1170
+ # instructions with more granularity intended for a turn based
1171
+ # naviagtion system.
1172
+ #
1173
+ # @option params [Array<Types::RouteWaypoint>] :waypoints
1174
+ # List of waypoints between the Origin and Destination.
1175
+ #
1176
+ # @return [Types::CalculateRoutesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1177
+ #
1178
+ # * {Types::CalculateRoutesResponse#leg_geometry_format #leg_geometry_format} => String
1179
+ # * {Types::CalculateRoutesResponse#notices #notices} => Array&lt;Types::RouteResponseNotice&gt;
1180
+ # * {Types::CalculateRoutesResponse#pricing_bucket #pricing_bucket} => String
1181
+ # * {Types::CalculateRoutesResponse#routes #routes} => Array&lt;Types::Route&gt;
1182
+ #
1183
+ # @example Request syntax with placeholder values
1184
+ #
1185
+ # resp = client.calculate_routes({
1186
+ # allow: {
1187
+ # hot: false,
1188
+ # hov: false,
1189
+ # },
1190
+ # arrival_time: "TimestampWithTimezoneOffset",
1191
+ # avoid: {
1192
+ # areas: [
1193
+ # {
1194
+ # except: [
1195
+ # {
1196
+ # corridor: {
1197
+ # line_string: [ # required
1198
+ # [1.0],
1199
+ # ],
1200
+ # radius: 1, # required
1201
+ # },
1202
+ # bounding_box: [1.0],
1203
+ # polygon: [
1204
+ # [
1205
+ # [1.0],
1206
+ # ],
1207
+ # ],
1208
+ # polyline_corridor: {
1209
+ # polyline: "Polyline", # required
1210
+ # radius: 1, # required
1211
+ # },
1212
+ # polyline_polygon: ["PolylineRing"],
1213
+ # },
1214
+ # ],
1215
+ # geometry: { # required
1216
+ # corridor: {
1217
+ # line_string: [ # required
1218
+ # [1.0],
1219
+ # ],
1220
+ # radius: 1, # required
1221
+ # },
1222
+ # bounding_box: [1.0],
1223
+ # polygon: [
1224
+ # [
1225
+ # [1.0],
1226
+ # ],
1227
+ # ],
1228
+ # polyline_corridor: {
1229
+ # polyline: "Polyline", # required
1230
+ # radius: 1, # required
1231
+ # },
1232
+ # polyline_polygon: ["PolylineRing"],
1233
+ # },
1234
+ # },
1235
+ # ],
1236
+ # car_shuttle_trains: false,
1237
+ # controlled_access_highways: false,
1238
+ # dirt_roads: false,
1239
+ # ferries: false,
1240
+ # seasonal_closure: false,
1241
+ # toll_roads: false,
1242
+ # toll_transponders: false,
1243
+ # truck_road_types: ["TruckRoadType"],
1244
+ # tunnels: false,
1245
+ # u_turns: false,
1246
+ # zone_categories: [
1247
+ # {
1248
+ # category: "CongestionPricing", # required, accepts CongestionPricing, Environmental, Vignette
1249
+ # },
1250
+ # ],
1251
+ # },
1252
+ # depart_now: false,
1253
+ # departure_time: "TimestampWithTimezoneOffset",
1254
+ # destination: [1.0], # required
1255
+ # destination_options: {
1256
+ # avoid_actions_for_distance: 1,
1257
+ # avoid_u_turns: false,
1258
+ # heading: 1.0,
1259
+ # matching: {
1260
+ # name_hint: "RouteMatchingOptionsNameHintString",
1261
+ # on_road_threshold: 1,
1262
+ # radius: 1,
1263
+ # strategy: "MatchAny", # accepts MatchAny, MatchMostSignificantRoad
1264
+ # },
1265
+ # side_of_street: {
1266
+ # position: [1.0], # required
1267
+ # use_with: "AnyStreet", # accepts AnyStreet, DividedStreetOnly
1268
+ # },
1269
+ # stop_duration: 1,
1270
+ # },
1271
+ # driver: {
1272
+ # schedule: [
1273
+ # {
1274
+ # drive_duration: 1, # required
1275
+ # rest_duration: 1, # required
1276
+ # },
1277
+ # ],
1278
+ # },
1279
+ # exclude: {
1280
+ # countries: ["CountryCode"], # required
1281
+ # },
1282
+ # instructions_measurement_system: "Metric", # accepts Metric, Imperial
1283
+ # key: "ApiKey",
1284
+ # languages: ["LanguageTag"],
1285
+ # leg_additional_features: ["Elevation"], # accepts Elevation, Incidents, PassThroughWaypoints, Summary, Tolls, TravelStepInstructions, TruckRoadTypes, TypicalDuration, Zones
1286
+ # leg_geometry_format: "FlexiblePolyline", # accepts FlexiblePolyline, Simple
1287
+ # max_alternatives: 1,
1288
+ # optimize_routing_for: "FastestRoute", # accepts FastestRoute, ShortestRoute
1289
+ # origin: [1.0], # required
1290
+ # origin_options: {
1291
+ # avoid_actions_for_distance: 1,
1292
+ # avoid_u_turns: false,
1293
+ # heading: 1.0,
1294
+ # matching: {
1295
+ # name_hint: "RouteMatchingOptionsNameHintString",
1296
+ # on_road_threshold: 1,
1297
+ # radius: 1,
1298
+ # strategy: "MatchAny", # accepts MatchAny, MatchMostSignificantRoad
1299
+ # },
1300
+ # side_of_street: {
1301
+ # position: [1.0], # required
1302
+ # use_with: "AnyStreet", # accepts AnyStreet, DividedStreetOnly
1303
+ # },
1304
+ # },
1305
+ # span_additional_features: ["BestCaseDuration"], # accepts BestCaseDuration, CarAccess, Country, Distance, Duration, DynamicSpeed, FunctionalClassification, Gates, Incidents, Names, Notices, PedestrianAccess, RailwayCrossings, Region, RoadAttributes, RouteNumbers, ScooterAccess, SpeedLimit, TollSystems, TruckAccess, TruckRoadTypes, TypicalDuration, Zones, Consumption
1306
+ # tolls: {
1307
+ # all_transponders: false,
1308
+ # all_vignettes: false,
1309
+ # currency: "CurrencyCode",
1310
+ # emission_type: {
1311
+ # co_2_emission_class: "String",
1312
+ # type: "String", # required
1313
+ # },
1314
+ # vehicle_category: "Minibus", # accepts Minibus
1315
+ # },
1316
+ # traffic: {
1317
+ # flow_event_threshold_override: 1,
1318
+ # usage: "IgnoreTrafficData", # accepts IgnoreTrafficData, UseTrafficData
1319
+ # },
1320
+ # travel_mode: "Car", # accepts Car, Pedestrian, Scooter, Truck
1321
+ # travel_mode_options: {
1322
+ # car: {
1323
+ # engine_type: "Electric", # accepts Electric, InternalCombustion, PluginHybrid
1324
+ # license_plate: {
1325
+ # last_character: "RouteVehicleLicensePlateLastCharacterString",
1326
+ # },
1327
+ # max_speed: 1.0,
1328
+ # occupancy: 1,
1329
+ # },
1330
+ # pedestrian: {
1331
+ # speed: 1.0,
1332
+ # },
1333
+ # scooter: {
1334
+ # engine_type: "Electric", # accepts Electric, InternalCombustion, PluginHybrid
1335
+ # license_plate: {
1336
+ # last_character: "RouteVehicleLicensePlateLastCharacterString",
1337
+ # },
1338
+ # max_speed: 1.0,
1339
+ # occupancy: 1,
1340
+ # },
1341
+ # truck: {
1342
+ # axle_count: 1,
1343
+ # engine_type: "Electric", # accepts Electric, InternalCombustion, PluginHybrid
1344
+ # gross_weight: 1,
1345
+ # hazardous_cargos: ["Combustible"], # accepts Combustible, Corrosive, Explosive, Flammable, Gas, HarmfulToWater, Organic, Other, Poison, PoisonousInhalation, Radioactive
1346
+ # height: 1,
1347
+ # height_above_first_axle: 1,
1348
+ # kpra_length: 1,
1349
+ # length: 1,
1350
+ # license_plate: {
1351
+ # last_character: "RouteVehicleLicensePlateLastCharacterString",
1352
+ # },
1353
+ # max_speed: 1.0,
1354
+ # occupancy: 1,
1355
+ # payload_capacity: 1,
1356
+ # tire_count: 1,
1357
+ # trailer: {
1358
+ # axle_count: 1,
1359
+ # trailer_count: 1,
1360
+ # },
1361
+ # truck_type: "LightTruck", # accepts LightTruck, StraightTruck, Tractor
1362
+ # tunnel_restriction_code: "RouteTruckOptionsTunnelRestrictionCodeString",
1363
+ # weight_per_axle: 1,
1364
+ # weight_per_axle_group: {
1365
+ # single: 1,
1366
+ # tandem: 1,
1367
+ # triple: 1,
1368
+ # quad: 1,
1369
+ # quint: 1,
1370
+ # },
1371
+ # width: 1,
1372
+ # },
1373
+ # },
1374
+ # travel_step_type: "Default", # accepts Default, TurnByTurn
1375
+ # waypoints: [
1376
+ # {
1377
+ # avoid_actions_for_distance: 1,
1378
+ # avoid_u_turns: false,
1379
+ # heading: 1.0,
1380
+ # matching: {
1381
+ # name_hint: "RouteMatchingOptionsNameHintString",
1382
+ # on_road_threshold: 1,
1383
+ # radius: 1,
1384
+ # strategy: "MatchAny", # accepts MatchAny, MatchMostSignificantRoad
1385
+ # },
1386
+ # pass_through: false,
1387
+ # position: [1.0], # required
1388
+ # side_of_street: {
1389
+ # position: [1.0], # required
1390
+ # use_with: "AnyStreet", # accepts AnyStreet, DividedStreetOnly
1391
+ # },
1392
+ # stop_duration: 1,
1393
+ # },
1394
+ # ],
1395
+ # })
1396
+ #
1397
+ # @example Response structure
1398
+ #
1399
+ # resp.leg_geometry_format #=> String, one of "FlexiblePolyline", "Simple"
1400
+ # resp.notices #=> Array
1401
+ # resp.notices[0].code #=> String, one of "MainLanguageNotFound", "Other", "TravelTimeExceedsDriverWorkHours"
1402
+ # resp.notices[0].impact #=> String, one of "High", "Low"
1403
+ # resp.pricing_bucket #=> String
1404
+ # resp.routes #=> Array
1405
+ # resp.routes[0].legs #=> Array
1406
+ # resp.routes[0].legs[0].ferry_leg_details.after_travel_steps #=> Array
1407
+ # resp.routes[0].legs[0].ferry_leg_details.after_travel_steps[0].duration #=> Integer
1408
+ # resp.routes[0].legs[0].ferry_leg_details.after_travel_steps[0].instruction #=> String
1409
+ # resp.routes[0].legs[0].ferry_leg_details.after_travel_steps[0].type #=> String, one of "Deboard"
1410
+ # resp.routes[0].legs[0].ferry_leg_details.arrival.place.name #=> String
1411
+ # resp.routes[0].legs[0].ferry_leg_details.arrival.place.original_position #=> Array
1412
+ # resp.routes[0].legs[0].ferry_leg_details.arrival.place.original_position[0] #=> Float
1413
+ # resp.routes[0].legs[0].ferry_leg_details.arrival.place.position #=> Array
1414
+ # resp.routes[0].legs[0].ferry_leg_details.arrival.place.position[0] #=> Float
1415
+ # resp.routes[0].legs[0].ferry_leg_details.arrival.place.waypoint_index #=> Integer
1416
+ # resp.routes[0].legs[0].ferry_leg_details.arrival.time #=> String
1417
+ # resp.routes[0].legs[0].ferry_leg_details.before_travel_steps #=> Array
1418
+ # resp.routes[0].legs[0].ferry_leg_details.before_travel_steps[0].duration #=> Integer
1419
+ # resp.routes[0].legs[0].ferry_leg_details.before_travel_steps[0].instruction #=> String
1420
+ # resp.routes[0].legs[0].ferry_leg_details.before_travel_steps[0].type #=> String, one of "Board"
1421
+ # resp.routes[0].legs[0].ferry_leg_details.departure.place.name #=> String
1422
+ # resp.routes[0].legs[0].ferry_leg_details.departure.place.original_position #=> Array
1423
+ # resp.routes[0].legs[0].ferry_leg_details.departure.place.original_position[0] #=> Float
1424
+ # resp.routes[0].legs[0].ferry_leg_details.departure.place.position #=> Array
1425
+ # resp.routes[0].legs[0].ferry_leg_details.departure.place.position[0] #=> Float
1426
+ # resp.routes[0].legs[0].ferry_leg_details.departure.place.waypoint_index #=> Integer
1427
+ # resp.routes[0].legs[0].ferry_leg_details.departure.time #=> String
1428
+ # resp.routes[0].legs[0].ferry_leg_details.notices #=> Array
1429
+ # resp.routes[0].legs[0].ferry_leg_details.notices[0].code #=> String, one of "AccuratePolylineUnavailable", "NoSchedule", "Other", "ViolatedAvoidFerry", "ViolatedAvoidRailFerry"
1430
+ # resp.routes[0].legs[0].ferry_leg_details.notices[0].impact #=> String, one of "High", "Low"
1431
+ # resp.routes[0].legs[0].ferry_leg_details.pass_through_waypoints #=> Array
1432
+ # resp.routes[0].legs[0].ferry_leg_details.pass_through_waypoints[0].geometry_offset #=> Integer
1433
+ # resp.routes[0].legs[0].ferry_leg_details.pass_through_waypoints[0].place.original_position #=> Array
1434
+ # resp.routes[0].legs[0].ferry_leg_details.pass_through_waypoints[0].place.original_position[0] #=> Float
1435
+ # resp.routes[0].legs[0].ferry_leg_details.pass_through_waypoints[0].place.position #=> Array
1436
+ # resp.routes[0].legs[0].ferry_leg_details.pass_through_waypoints[0].place.position[0] #=> Float
1437
+ # resp.routes[0].legs[0].ferry_leg_details.pass_through_waypoints[0].place.waypoint_index #=> Integer
1438
+ # resp.routes[0].legs[0].ferry_leg_details.route_name #=> String
1439
+ # resp.routes[0].legs[0].ferry_leg_details.spans #=> Array
1440
+ # resp.routes[0].legs[0].ferry_leg_details.spans[0].country #=> String
1441
+ # resp.routes[0].legs[0].ferry_leg_details.spans[0].distance #=> Integer
1442
+ # resp.routes[0].legs[0].ferry_leg_details.spans[0].duration #=> Integer
1443
+ # resp.routes[0].legs[0].ferry_leg_details.spans[0].geometry_offset #=> Integer
1444
+ # resp.routes[0].legs[0].ferry_leg_details.spans[0].names #=> Array
1445
+ # resp.routes[0].legs[0].ferry_leg_details.spans[0].names[0].language #=> String
1446
+ # resp.routes[0].legs[0].ferry_leg_details.spans[0].names[0].value #=> String
1447
+ # resp.routes[0].legs[0].ferry_leg_details.spans[0].region #=> String
1448
+ # resp.routes[0].legs[0].ferry_leg_details.summary.overview.distance #=> Integer
1449
+ # resp.routes[0].legs[0].ferry_leg_details.summary.overview.duration #=> Integer
1450
+ # resp.routes[0].legs[0].ferry_leg_details.summary.travel_only.duration #=> Integer
1451
+ # resp.routes[0].legs[0].ferry_leg_details.travel_steps #=> Array
1452
+ # resp.routes[0].legs[0].ferry_leg_details.travel_steps[0].distance #=> Integer
1453
+ # resp.routes[0].legs[0].ferry_leg_details.travel_steps[0].duration #=> Integer
1454
+ # resp.routes[0].legs[0].ferry_leg_details.travel_steps[0].geometry_offset #=> Integer
1455
+ # resp.routes[0].legs[0].ferry_leg_details.travel_steps[0].instruction #=> String
1456
+ # resp.routes[0].legs[0].ferry_leg_details.travel_steps[0].type #=> String, one of "Depart", "Continue", "Arrive"
1457
+ # resp.routes[0].legs[0].geometry.line_string #=> Array
1458
+ # resp.routes[0].legs[0].geometry.line_string[0] #=> Array
1459
+ # resp.routes[0].legs[0].geometry.line_string[0][0] #=> Float
1460
+ # resp.routes[0].legs[0].geometry.polyline #=> String
1461
+ # resp.routes[0].legs[0].language #=> String
1462
+ # resp.routes[0].legs[0].pedestrian_leg_details.arrival.place.name #=> String
1463
+ # resp.routes[0].legs[0].pedestrian_leg_details.arrival.place.original_position #=> Array
1464
+ # resp.routes[0].legs[0].pedestrian_leg_details.arrival.place.original_position[0] #=> Float
1465
+ # resp.routes[0].legs[0].pedestrian_leg_details.arrival.place.position #=> Array
1466
+ # resp.routes[0].legs[0].pedestrian_leg_details.arrival.place.position[0] #=> Float
1467
+ # resp.routes[0].legs[0].pedestrian_leg_details.arrival.place.side_of_street #=> String, one of "Left", "Right"
1468
+ # resp.routes[0].legs[0].pedestrian_leg_details.arrival.place.waypoint_index #=> Integer
1469
+ # resp.routes[0].legs[0].pedestrian_leg_details.arrival.time #=> String
1470
+ # resp.routes[0].legs[0].pedestrian_leg_details.departure.place.name #=> String
1471
+ # resp.routes[0].legs[0].pedestrian_leg_details.departure.place.original_position #=> Array
1472
+ # resp.routes[0].legs[0].pedestrian_leg_details.departure.place.original_position[0] #=> Float
1473
+ # resp.routes[0].legs[0].pedestrian_leg_details.departure.place.position #=> Array
1474
+ # resp.routes[0].legs[0].pedestrian_leg_details.departure.place.position[0] #=> Float
1475
+ # resp.routes[0].legs[0].pedestrian_leg_details.departure.place.side_of_street #=> String, one of "Left", "Right"
1476
+ # resp.routes[0].legs[0].pedestrian_leg_details.departure.place.waypoint_index #=> Integer
1477
+ # resp.routes[0].legs[0].pedestrian_leg_details.departure.time #=> String
1478
+ # resp.routes[0].legs[0].pedestrian_leg_details.notices #=> Array
1479
+ # resp.routes[0].legs[0].pedestrian_leg_details.notices[0].code #=> String, one of "AccuratePolylineUnavailable", "Other", "ViolatedAvoidDirtRoad", "ViolatedAvoidTunnel", "ViolatedPedestrianOption"
1480
+ # resp.routes[0].legs[0].pedestrian_leg_details.notices[0].impact #=> String, one of "High", "Low"
1481
+ # resp.routes[0].legs[0].pedestrian_leg_details.pass_through_waypoints #=> Array
1482
+ # resp.routes[0].legs[0].pedestrian_leg_details.pass_through_waypoints[0].geometry_offset #=> Integer
1483
+ # resp.routes[0].legs[0].pedestrian_leg_details.pass_through_waypoints[0].place.original_position #=> Array
1484
+ # resp.routes[0].legs[0].pedestrian_leg_details.pass_through_waypoints[0].place.original_position[0] #=> Float
1485
+ # resp.routes[0].legs[0].pedestrian_leg_details.pass_through_waypoints[0].place.position #=> Array
1486
+ # resp.routes[0].legs[0].pedestrian_leg_details.pass_through_waypoints[0].place.position[0] #=> Float
1487
+ # resp.routes[0].legs[0].pedestrian_leg_details.pass_through_waypoints[0].place.waypoint_index #=> Integer
1488
+ # resp.routes[0].legs[0].pedestrian_leg_details.spans #=> Array
1489
+ # resp.routes[0].legs[0].pedestrian_leg_details.spans[0].best_case_duration #=> Integer
1490
+ # resp.routes[0].legs[0].pedestrian_leg_details.spans[0].country #=> String
1491
+ # resp.routes[0].legs[0].pedestrian_leg_details.spans[0].distance #=> Integer
1492
+ # resp.routes[0].legs[0].pedestrian_leg_details.spans[0].duration #=> Integer
1493
+ # resp.routes[0].legs[0].pedestrian_leg_details.spans[0].dynamic_speed.best_case_speed #=> Float
1494
+ # resp.routes[0].legs[0].pedestrian_leg_details.spans[0].dynamic_speed.turn_duration #=> Integer
1495
+ # resp.routes[0].legs[0].pedestrian_leg_details.spans[0].dynamic_speed.typical_speed #=> Float
1496
+ # resp.routes[0].legs[0].pedestrian_leg_details.spans[0].functional_classification #=> Integer
1497
+ # resp.routes[0].legs[0].pedestrian_leg_details.spans[0].geometry_offset #=> Integer
1498
+ # resp.routes[0].legs[0].pedestrian_leg_details.spans[0].incidents #=> Array
1499
+ # resp.routes[0].legs[0].pedestrian_leg_details.spans[0].incidents[0] #=> Integer
1500
+ # resp.routes[0].legs[0].pedestrian_leg_details.spans[0].names #=> Array
1501
+ # resp.routes[0].legs[0].pedestrian_leg_details.spans[0].names[0].language #=> String
1502
+ # resp.routes[0].legs[0].pedestrian_leg_details.spans[0].names[0].value #=> String
1503
+ # resp.routes[0].legs[0].pedestrian_leg_details.spans[0].pedestrian_access #=> Array
1504
+ # resp.routes[0].legs[0].pedestrian_leg_details.spans[0].pedestrian_access[0] #=> String, one of "Allowed", "Indoors", "NoThroughTraffic", "Park", "Stairs", "TollRoad"
1505
+ # resp.routes[0].legs[0].pedestrian_leg_details.spans[0].region #=> String
1506
+ # resp.routes[0].legs[0].pedestrian_leg_details.spans[0].road_attributes #=> Array
1507
+ # resp.routes[0].legs[0].pedestrian_leg_details.spans[0].road_attributes[0] #=> String, one of "Bridge", "BuiltUpArea", "ControlledAccessHighway", "DirtRoad", "DividedRoad", "Motorway", "PrivateRoad", "Ramp", "RightHandTraffic", "Roundabout", "Tunnel", "UnderConstruction"
1508
+ # resp.routes[0].legs[0].pedestrian_leg_details.spans[0].route_numbers #=> Array
1509
+ # resp.routes[0].legs[0].pedestrian_leg_details.spans[0].route_numbers[0].direction #=> String, one of "East", "North", "South", "West"
1510
+ # resp.routes[0].legs[0].pedestrian_leg_details.spans[0].route_numbers[0].language #=> String
1511
+ # resp.routes[0].legs[0].pedestrian_leg_details.spans[0].route_numbers[0].value #=> String
1512
+ # resp.routes[0].legs[0].pedestrian_leg_details.spans[0].speed_limit.max_speed #=> Float
1513
+ # resp.routes[0].legs[0].pedestrian_leg_details.spans[0].speed_limit.unlimited #=> Boolean
1514
+ # resp.routes[0].legs[0].pedestrian_leg_details.spans[0].typical_duration #=> Integer
1515
+ # resp.routes[0].legs[0].pedestrian_leg_details.summary.overview.distance #=> Integer
1516
+ # resp.routes[0].legs[0].pedestrian_leg_details.summary.overview.duration #=> Integer
1517
+ # resp.routes[0].legs[0].pedestrian_leg_details.summary.travel_only.duration #=> Integer
1518
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps #=> Array
1519
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].continue_step_details.intersection #=> Array
1520
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].continue_step_details.intersection[0].language #=> String
1521
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].continue_step_details.intersection[0].value #=> String
1522
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].current_road.road_name #=> Array
1523
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].current_road.road_name[0].language #=> String
1524
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].current_road.road_name[0].value #=> String
1525
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].current_road.route_number #=> Array
1526
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].current_road.route_number[0].direction #=> String, one of "East", "North", "South", "West"
1527
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].current_road.route_number[0].language #=> String
1528
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].current_road.route_number[0].value #=> String
1529
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].current_road.towards #=> Array
1530
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].current_road.towards[0].language #=> String
1531
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].current_road.towards[0].value #=> String
1532
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].current_road.type #=> String, one of "Highway", "Rural", "Urban"
1533
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].distance #=> Integer
1534
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].duration #=> Integer
1535
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].exit_number #=> Array
1536
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].exit_number[0].language #=> String
1537
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].exit_number[0].value #=> String
1538
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].geometry_offset #=> Integer
1539
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].instruction #=> String
1540
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].keep_step_details.intersection #=> Array
1541
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].keep_step_details.intersection[0].language #=> String
1542
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].keep_step_details.intersection[0].value #=> String
1543
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].keep_step_details.steering_direction #=> String, one of "Left", "Right", "Straight"
1544
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].keep_step_details.turn_angle #=> Float
1545
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].keep_step_details.turn_intensity #=> String, one of "Sharp", "Slight", "Typical"
1546
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].next_road.road_name #=> Array
1547
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].next_road.road_name[0].language #=> String
1548
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].next_road.road_name[0].value #=> String
1549
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].next_road.route_number #=> Array
1550
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].next_road.route_number[0].direction #=> String, one of "East", "North", "South", "West"
1551
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].next_road.route_number[0].language #=> String
1552
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].next_road.route_number[0].value #=> String
1553
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].next_road.towards #=> Array
1554
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].next_road.towards[0].language #=> String
1555
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].next_road.towards[0].value #=> String
1556
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].next_road.type #=> String, one of "Highway", "Rural", "Urban"
1557
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].roundabout_enter_step_details.intersection #=> Array
1558
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].roundabout_enter_step_details.intersection[0].language #=> String
1559
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].roundabout_enter_step_details.intersection[0].value #=> String
1560
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].roundabout_enter_step_details.steering_direction #=> String, one of "Left", "Right", "Straight"
1561
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].roundabout_enter_step_details.turn_angle #=> Float
1562
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].roundabout_enter_step_details.turn_intensity #=> String, one of "Sharp", "Slight", "Typical"
1563
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].roundabout_exit_step_details.intersection #=> Array
1564
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].roundabout_exit_step_details.intersection[0].language #=> String
1565
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].roundabout_exit_step_details.intersection[0].value #=> String
1566
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].roundabout_exit_step_details.relative_exit #=> Integer
1567
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].roundabout_exit_step_details.roundabout_angle #=> Float
1568
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].roundabout_exit_step_details.steering_direction #=> String, one of "Left", "Right", "Straight"
1569
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].roundabout_pass_step_details.intersection #=> Array
1570
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].roundabout_pass_step_details.intersection[0].language #=> String
1571
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].roundabout_pass_step_details.intersection[0].value #=> String
1572
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].roundabout_pass_step_details.steering_direction #=> String, one of "Left", "Right", "Straight"
1573
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].roundabout_pass_step_details.turn_angle #=> Float
1574
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].roundabout_pass_step_details.turn_intensity #=> String, one of "Sharp", "Slight", "Typical"
1575
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].signpost.labels #=> Array
1576
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].signpost.labels[0].route_number.direction #=> String, one of "East", "North", "South", "West"
1577
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].signpost.labels[0].route_number.language #=> String
1578
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].signpost.labels[0].route_number.value #=> String
1579
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].signpost.labels[0].text.language #=> String
1580
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].signpost.labels[0].text.value #=> String
1581
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].turn_step_details.intersection #=> Array
1582
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].turn_step_details.intersection[0].language #=> String
1583
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].turn_step_details.intersection[0].value #=> String
1584
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].turn_step_details.steering_direction #=> String, one of "Left", "Right", "Straight"
1585
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].turn_step_details.turn_angle #=> Float
1586
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].turn_step_details.turn_intensity #=> String, one of "Sharp", "Slight", "Typical"
1587
+ # resp.routes[0].legs[0].pedestrian_leg_details.travel_steps[0].type #=> String, one of "Arrive", "Continue", "Depart", "Keep", "RoundaboutEnter", "RoundaboutExit", "RoundaboutPass", "Turn", "Exit", "Ramp", "UTurn"
1588
+ # resp.routes[0].legs[0].travel_mode #=> String, one of "Car", "Ferry", "Pedestrian", "Scooter", "Truck"
1589
+ # resp.routes[0].legs[0].type #=> String, one of "Ferry", "Pedestrian", "Vehicle"
1590
+ # resp.routes[0].legs[0].vehicle_leg_details.arrival.place.name #=> String
1591
+ # resp.routes[0].legs[0].vehicle_leg_details.arrival.place.original_position #=> Array
1592
+ # resp.routes[0].legs[0].vehicle_leg_details.arrival.place.original_position[0] #=> Float
1593
+ # resp.routes[0].legs[0].vehicle_leg_details.arrival.place.position #=> Array
1594
+ # resp.routes[0].legs[0].vehicle_leg_details.arrival.place.position[0] #=> Float
1595
+ # resp.routes[0].legs[0].vehicle_leg_details.arrival.place.side_of_street #=> String, one of "Left", "Right"
1596
+ # resp.routes[0].legs[0].vehicle_leg_details.arrival.place.waypoint_index #=> Integer
1597
+ # resp.routes[0].legs[0].vehicle_leg_details.arrival.time #=> String
1598
+ # resp.routes[0].legs[0].vehicle_leg_details.departure.place.name #=> String
1599
+ # resp.routes[0].legs[0].vehicle_leg_details.departure.place.original_position #=> Array
1600
+ # resp.routes[0].legs[0].vehicle_leg_details.departure.place.original_position[0] #=> Float
1601
+ # resp.routes[0].legs[0].vehicle_leg_details.departure.place.position #=> Array
1602
+ # resp.routes[0].legs[0].vehicle_leg_details.departure.place.position[0] #=> Float
1603
+ # resp.routes[0].legs[0].vehicle_leg_details.departure.place.side_of_street #=> String, one of "Left", "Right"
1604
+ # resp.routes[0].legs[0].vehicle_leg_details.departure.place.waypoint_index #=> Integer
1605
+ # resp.routes[0].legs[0].vehicle_leg_details.departure.time #=> String
1606
+ # resp.routes[0].legs[0].vehicle_leg_details.incidents #=> Array
1607
+ # resp.routes[0].legs[0].vehicle_leg_details.incidents[0].description #=> String
1608
+ # resp.routes[0].legs[0].vehicle_leg_details.incidents[0].end_time #=> String
1609
+ # resp.routes[0].legs[0].vehicle_leg_details.incidents[0].severity #=> String, one of "Critical", "High", "Medium", "Low"
1610
+ # resp.routes[0].legs[0].vehicle_leg_details.incidents[0].start_time #=> String
1611
+ # resp.routes[0].legs[0].vehicle_leg_details.incidents[0].type #=> String, one of "Accident", "Congestion", "Construction", "DisabledVehicle", "LaneRestriction", "MassTransit", "Other", "PlannedEvent", "RoadClosure", "RoadHazard", "Weather"
1612
+ # resp.routes[0].legs[0].vehicle_leg_details.notices #=> Array
1613
+ # resp.routes[0].legs[0].vehicle_leg_details.notices[0].code #=> String, one of "AccuratePolylineUnavailable", "Other", "PotentialViolatedAvoidTollRoadUsage", "PotentialViolatedCarpoolUsage", "PotentialViolatedTurnRestrictionUsage", "PotentialViolatedVehicleRestrictionUsage", "PotentialViolatedZoneRestrictionUsage", "SeasonalClosure", "TollsDataTemporarilyUnavailable", "TollsDataUnavailable", "TollTransponder", "ViolatedAvoidControlledAccessHighway", "ViolatedAvoidDifficultTurns", "ViolatedAvoidDirtRoad", "ViolatedAvoidSeasonalClosure", "ViolatedAvoidTollRoad", "ViolatedAvoidTollTransponder", "ViolatedAvoidTruckRoadType", "ViolatedAvoidTunnel", "ViolatedAvoidUTurns", "ViolatedBlockedRoad", "ViolatedCarpool", "ViolatedEmergencyGate", "ViolatedStartDirection", "ViolatedTurnRestriction", "ViolatedVehicleRestriction", "ViolatedZoneRestriction"
1614
+ # resp.routes[0].legs[0].vehicle_leg_details.notices[0].details #=> Array
1615
+ # resp.routes[0].legs[0].vehicle_leg_details.notices[0].details[0].title #=> String
1616
+ # resp.routes[0].legs[0].vehicle_leg_details.notices[0].details[0].violated_constraints.all_hazards_restricted #=> Boolean
1617
+ # resp.routes[0].legs[0].vehicle_leg_details.notices[0].details[0].violated_constraints.axle_count.min #=> Integer
1618
+ # resp.routes[0].legs[0].vehicle_leg_details.notices[0].details[0].violated_constraints.axle_count.max #=> Integer
1619
+ # resp.routes[0].legs[0].vehicle_leg_details.notices[0].details[0].violated_constraints.hazardous_cargos #=> Array
1620
+ # resp.routes[0].legs[0].vehicle_leg_details.notices[0].details[0].violated_constraints.hazardous_cargos[0] #=> String, one of "Combustible", "Corrosive", "Explosive", "Flammable", "Gas", "HarmfulToWater", "Organic", "Other", "Poison", "PoisonousInhalation", "Radioactive"
1621
+ # resp.routes[0].legs[0].vehicle_leg_details.notices[0].details[0].violated_constraints.max_height #=> Integer
1622
+ # resp.routes[0].legs[0].vehicle_leg_details.notices[0].details[0].violated_constraints.max_kpra_length #=> Integer
1623
+ # resp.routes[0].legs[0].vehicle_leg_details.notices[0].details[0].violated_constraints.max_length #=> Integer
1624
+ # resp.routes[0].legs[0].vehicle_leg_details.notices[0].details[0].violated_constraints.max_payload_capacity #=> Integer
1625
+ # resp.routes[0].legs[0].vehicle_leg_details.notices[0].details[0].violated_constraints.max_weight.type #=> String, one of "Current", "Gross", "Unknown"
1626
+ # resp.routes[0].legs[0].vehicle_leg_details.notices[0].details[0].violated_constraints.max_weight.value #=> Integer
1627
+ # resp.routes[0].legs[0].vehicle_leg_details.notices[0].details[0].violated_constraints.max_weight_per_axle #=> Integer
1628
+ # resp.routes[0].legs[0].vehicle_leg_details.notices[0].details[0].violated_constraints.max_weight_per_axle_group.single #=> Integer
1629
+ # resp.routes[0].legs[0].vehicle_leg_details.notices[0].details[0].violated_constraints.max_weight_per_axle_group.tandem #=> Integer
1630
+ # resp.routes[0].legs[0].vehicle_leg_details.notices[0].details[0].violated_constraints.max_weight_per_axle_group.triple #=> Integer
1631
+ # resp.routes[0].legs[0].vehicle_leg_details.notices[0].details[0].violated_constraints.max_weight_per_axle_group.quad #=> Integer
1632
+ # resp.routes[0].legs[0].vehicle_leg_details.notices[0].details[0].violated_constraints.max_weight_per_axle_group.quint #=> Integer
1633
+ # resp.routes[0].legs[0].vehicle_leg_details.notices[0].details[0].violated_constraints.max_width #=> Integer
1634
+ # resp.routes[0].legs[0].vehicle_leg_details.notices[0].details[0].violated_constraints.occupancy.min #=> Integer
1635
+ # resp.routes[0].legs[0].vehicle_leg_details.notices[0].details[0].violated_constraints.occupancy.max #=> Integer
1636
+ # resp.routes[0].legs[0].vehicle_leg_details.notices[0].details[0].violated_constraints.restricted_times #=> String
1637
+ # resp.routes[0].legs[0].vehicle_leg_details.notices[0].details[0].violated_constraints.time_dependent #=> Boolean
1638
+ # resp.routes[0].legs[0].vehicle_leg_details.notices[0].details[0].violated_constraints.trailer_count.min #=> Integer
1639
+ # resp.routes[0].legs[0].vehicle_leg_details.notices[0].details[0].violated_constraints.trailer_count.max #=> Integer
1640
+ # resp.routes[0].legs[0].vehicle_leg_details.notices[0].details[0].violated_constraints.travel_mode #=> Boolean
1641
+ # resp.routes[0].legs[0].vehicle_leg_details.notices[0].details[0].violated_constraints.truck_road_type #=> String
1642
+ # resp.routes[0].legs[0].vehicle_leg_details.notices[0].details[0].violated_constraints.truck_type #=> String, one of "LightTruck", "StraightTruck", "Tractor"
1643
+ # resp.routes[0].legs[0].vehicle_leg_details.notices[0].details[0].violated_constraints.tunnel_restriction_code #=> String
1644
+ # resp.routes[0].legs[0].vehicle_leg_details.notices[0].impact #=> String, one of "High", "Low"
1645
+ # resp.routes[0].legs[0].vehicle_leg_details.pass_through_waypoints #=> Array
1646
+ # resp.routes[0].legs[0].vehicle_leg_details.pass_through_waypoints[0].geometry_offset #=> Integer
1647
+ # resp.routes[0].legs[0].vehicle_leg_details.pass_through_waypoints[0].place.original_position #=> Array
1648
+ # resp.routes[0].legs[0].vehicle_leg_details.pass_through_waypoints[0].place.original_position[0] #=> Float
1649
+ # resp.routes[0].legs[0].vehicle_leg_details.pass_through_waypoints[0].place.position #=> Array
1650
+ # resp.routes[0].legs[0].vehicle_leg_details.pass_through_waypoints[0].place.position[0] #=> Float
1651
+ # resp.routes[0].legs[0].vehicle_leg_details.pass_through_waypoints[0].place.waypoint_index #=> Integer
1652
+ # resp.routes[0].legs[0].vehicle_leg_details.spans #=> Array
1653
+ # resp.routes[0].legs[0].vehicle_leg_details.spans[0].best_case_duration #=> Integer
1654
+ # resp.routes[0].legs[0].vehicle_leg_details.spans[0].car_access #=> Array
1655
+ # resp.routes[0].legs[0].vehicle_leg_details.spans[0].car_access[0] #=> String, one of "Allowed", "NoThroughTraffic", "TollRoad"
1656
+ # resp.routes[0].legs[0].vehicle_leg_details.spans[0].country #=> String
1657
+ # resp.routes[0].legs[0].vehicle_leg_details.spans[0].distance #=> Integer
1658
+ # resp.routes[0].legs[0].vehicle_leg_details.spans[0].duration #=> Integer
1659
+ # resp.routes[0].legs[0].vehicle_leg_details.spans[0].dynamic_speed.best_case_speed #=> Float
1660
+ # resp.routes[0].legs[0].vehicle_leg_details.spans[0].dynamic_speed.turn_duration #=> Integer
1661
+ # resp.routes[0].legs[0].vehicle_leg_details.spans[0].dynamic_speed.typical_speed #=> Float
1662
+ # resp.routes[0].legs[0].vehicle_leg_details.spans[0].functional_classification #=> Integer
1663
+ # resp.routes[0].legs[0].vehicle_leg_details.spans[0].gate #=> String, one of "Emergency", "KeyAccess", "PermissionRequired"
1664
+ # resp.routes[0].legs[0].vehicle_leg_details.spans[0].geometry_offset #=> Integer
1665
+ # resp.routes[0].legs[0].vehicle_leg_details.spans[0].incidents #=> Array
1666
+ # resp.routes[0].legs[0].vehicle_leg_details.spans[0].incidents[0] #=> Integer
1667
+ # resp.routes[0].legs[0].vehicle_leg_details.spans[0].names #=> Array
1668
+ # resp.routes[0].legs[0].vehicle_leg_details.spans[0].names[0].language #=> String
1669
+ # resp.routes[0].legs[0].vehicle_leg_details.spans[0].names[0].value #=> String
1670
+ # resp.routes[0].legs[0].vehicle_leg_details.spans[0].notices #=> Array
1671
+ # resp.routes[0].legs[0].vehicle_leg_details.spans[0].notices[0] #=> Integer
1672
+ # resp.routes[0].legs[0].vehicle_leg_details.spans[0].railway_crossing #=> String, one of "Protected", "Unprotected"
1673
+ # resp.routes[0].legs[0].vehicle_leg_details.spans[0].region #=> String
1674
+ # resp.routes[0].legs[0].vehicle_leg_details.spans[0].road_attributes #=> Array
1675
+ # resp.routes[0].legs[0].vehicle_leg_details.spans[0].road_attributes[0] #=> String, one of "Bridge", "BuiltUpArea", "ControlledAccessHighway", "DirtRoad", "DividedRoad", "Motorway", "PrivateRoad", "Ramp", "RightHandTraffic", "Roundabout", "Tunnel", "UnderConstruction"
1676
+ # resp.routes[0].legs[0].vehicle_leg_details.spans[0].route_numbers #=> Array
1677
+ # resp.routes[0].legs[0].vehicle_leg_details.spans[0].route_numbers[0].direction #=> String, one of "East", "North", "South", "West"
1678
+ # resp.routes[0].legs[0].vehicle_leg_details.spans[0].route_numbers[0].language #=> String
1679
+ # resp.routes[0].legs[0].vehicle_leg_details.spans[0].route_numbers[0].value #=> String
1680
+ # resp.routes[0].legs[0].vehicle_leg_details.spans[0].scooter_access #=> Array
1681
+ # resp.routes[0].legs[0].vehicle_leg_details.spans[0].scooter_access[0] #=> String, one of "Allowed", "NoThroughTraffic", "TollRoad"
1682
+ # resp.routes[0].legs[0].vehicle_leg_details.spans[0].speed_limit.max_speed #=> Float
1683
+ # resp.routes[0].legs[0].vehicle_leg_details.spans[0].speed_limit.unlimited #=> Boolean
1684
+ # resp.routes[0].legs[0].vehicle_leg_details.spans[0].toll_systems #=> Array
1685
+ # resp.routes[0].legs[0].vehicle_leg_details.spans[0].toll_systems[0] #=> Integer
1686
+ # resp.routes[0].legs[0].vehicle_leg_details.spans[0].truck_access #=> Array
1687
+ # resp.routes[0].legs[0].vehicle_leg_details.spans[0].truck_access[0] #=> String, one of "Allowed", "NoThroughTraffic", "TollRoad"
1688
+ # resp.routes[0].legs[0].vehicle_leg_details.spans[0].truck_road_types #=> Array
1689
+ # resp.routes[0].legs[0].vehicle_leg_details.spans[0].truck_road_types[0] #=> Integer
1690
+ # resp.routes[0].legs[0].vehicle_leg_details.spans[0].typical_duration #=> Integer
1691
+ # resp.routes[0].legs[0].vehicle_leg_details.spans[0].zones #=> Array
1692
+ # resp.routes[0].legs[0].vehicle_leg_details.spans[0].zones[0] #=> Integer
1693
+ # resp.routes[0].legs[0].vehicle_leg_details.summary.overview.best_case_duration #=> Integer
1694
+ # resp.routes[0].legs[0].vehicle_leg_details.summary.overview.distance #=> Integer
1695
+ # resp.routes[0].legs[0].vehicle_leg_details.summary.overview.duration #=> Integer
1696
+ # resp.routes[0].legs[0].vehicle_leg_details.summary.overview.typical_duration #=> Integer
1697
+ # resp.routes[0].legs[0].vehicle_leg_details.summary.travel_only.best_case_duration #=> Integer
1698
+ # resp.routes[0].legs[0].vehicle_leg_details.summary.travel_only.duration #=> Integer
1699
+ # resp.routes[0].legs[0].vehicle_leg_details.summary.travel_only.typical_duration #=> Integer
1700
+ # resp.routes[0].legs[0].vehicle_leg_details.tolls #=> Array
1701
+ # resp.routes[0].legs[0].vehicle_leg_details.tolls[0].country #=> String
1702
+ # resp.routes[0].legs[0].vehicle_leg_details.tolls[0].payment_sites #=> Array
1703
+ # resp.routes[0].legs[0].vehicle_leg_details.tolls[0].payment_sites[0].name #=> String
1704
+ # resp.routes[0].legs[0].vehicle_leg_details.tolls[0].payment_sites[0].position #=> Array
1705
+ # resp.routes[0].legs[0].vehicle_leg_details.tolls[0].payment_sites[0].position[0] #=> Float
1706
+ # resp.routes[0].legs[0].vehicle_leg_details.tolls[0].rates #=> Array
1707
+ # resp.routes[0].legs[0].vehicle_leg_details.tolls[0].rates[0].applicable_times #=> String
1708
+ # resp.routes[0].legs[0].vehicle_leg_details.tolls[0].rates[0].converted_price.currency #=> String
1709
+ # resp.routes[0].legs[0].vehicle_leg_details.tolls[0].rates[0].converted_price.estimate #=> Boolean
1710
+ # resp.routes[0].legs[0].vehicle_leg_details.tolls[0].rates[0].converted_price.per_duration #=> Integer
1711
+ # resp.routes[0].legs[0].vehicle_leg_details.tolls[0].rates[0].converted_price.range #=> Boolean
1712
+ # resp.routes[0].legs[0].vehicle_leg_details.tolls[0].rates[0].converted_price.range_value.min #=> Float
1713
+ # resp.routes[0].legs[0].vehicle_leg_details.tolls[0].rates[0].converted_price.range_value.max #=> Float
1714
+ # resp.routes[0].legs[0].vehicle_leg_details.tolls[0].rates[0].converted_price.value #=> Float
1715
+ # resp.routes[0].legs[0].vehicle_leg_details.tolls[0].rates[0].id #=> String
1716
+ # resp.routes[0].legs[0].vehicle_leg_details.tolls[0].rates[0].local_price.currency #=> String
1717
+ # resp.routes[0].legs[0].vehicle_leg_details.tolls[0].rates[0].local_price.estimate #=> Boolean
1718
+ # resp.routes[0].legs[0].vehicle_leg_details.tolls[0].rates[0].local_price.per_duration #=> Integer
1719
+ # resp.routes[0].legs[0].vehicle_leg_details.tolls[0].rates[0].local_price.range #=> Boolean
1720
+ # resp.routes[0].legs[0].vehicle_leg_details.tolls[0].rates[0].local_price.range_value.min #=> Float
1721
+ # resp.routes[0].legs[0].vehicle_leg_details.tolls[0].rates[0].local_price.range_value.max #=> Float
1722
+ # resp.routes[0].legs[0].vehicle_leg_details.tolls[0].rates[0].local_price.value #=> Float
1723
+ # resp.routes[0].legs[0].vehicle_leg_details.tolls[0].rates[0].name #=> String
1724
+ # resp.routes[0].legs[0].vehicle_leg_details.tolls[0].rates[0].pass.includes_return_trip #=> Boolean
1725
+ # resp.routes[0].legs[0].vehicle_leg_details.tolls[0].rates[0].pass.senior_pass #=> Boolean
1726
+ # resp.routes[0].legs[0].vehicle_leg_details.tolls[0].rates[0].pass.transfer_count #=> Integer
1727
+ # resp.routes[0].legs[0].vehicle_leg_details.tolls[0].rates[0].pass.trip_count #=> Integer
1728
+ # resp.routes[0].legs[0].vehicle_leg_details.tolls[0].rates[0].pass.validity_period.period #=> String, one of "Annual", "Days", "ExtendedAnnual", "Minutes", "Months"
1729
+ # resp.routes[0].legs[0].vehicle_leg_details.tolls[0].rates[0].pass.validity_period.period_count #=> Integer
1730
+ # resp.routes[0].legs[0].vehicle_leg_details.tolls[0].rates[0].payment_methods #=> Array
1731
+ # resp.routes[0].legs[0].vehicle_leg_details.tolls[0].rates[0].payment_methods[0] #=> String, one of "BankCard", "Cash", "CashExact", "CreditCard", "PassSubscription", "TravelCard", "Transponder", "VideoToll"
1732
+ # resp.routes[0].legs[0].vehicle_leg_details.tolls[0].rates[0].transponders #=> Array
1733
+ # resp.routes[0].legs[0].vehicle_leg_details.tolls[0].rates[0].transponders[0].system_name #=> String
1734
+ # resp.routes[0].legs[0].vehicle_leg_details.tolls[0].systems #=> Array
1735
+ # resp.routes[0].legs[0].vehicle_leg_details.tolls[0].systems[0] #=> Integer
1736
+ # resp.routes[0].legs[0].vehicle_leg_details.toll_systems #=> Array
1737
+ # resp.routes[0].legs[0].vehicle_leg_details.toll_systems[0].name #=> String
1738
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps #=> Array
1739
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].continue_highway_step_details.intersection #=> Array
1740
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].continue_highway_step_details.intersection[0].language #=> String
1741
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].continue_highway_step_details.intersection[0].value #=> String
1742
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].continue_highway_step_details.steering_direction #=> String, one of "Left", "Right", "Straight"
1743
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].continue_highway_step_details.turn_angle #=> Float
1744
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].continue_highway_step_details.turn_intensity #=> String, one of "Sharp", "Slight", "Typical"
1745
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].continue_step_details.intersection #=> Array
1746
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].continue_step_details.intersection[0].language #=> String
1747
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].continue_step_details.intersection[0].value #=> String
1748
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].current_road.road_name #=> Array
1749
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].current_road.road_name[0].language #=> String
1750
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].current_road.road_name[0].value #=> String
1751
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].current_road.route_number #=> Array
1752
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].current_road.route_number[0].direction #=> String, one of "East", "North", "South", "West"
1753
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].current_road.route_number[0].language #=> String
1754
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].current_road.route_number[0].value #=> String
1755
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].current_road.towards #=> Array
1756
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].current_road.towards[0].language #=> String
1757
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].current_road.towards[0].value #=> String
1758
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].current_road.type #=> String, one of "Highway", "Rural", "Urban"
1759
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].distance #=> Integer
1760
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].duration #=> Integer
1761
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].enter_highway_step_details.intersection #=> Array
1762
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].enter_highway_step_details.intersection[0].language #=> String
1763
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].enter_highway_step_details.intersection[0].value #=> String
1764
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].enter_highway_step_details.steering_direction #=> String, one of "Left", "Right", "Straight"
1765
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].enter_highway_step_details.turn_angle #=> Float
1766
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].enter_highway_step_details.turn_intensity #=> String, one of "Sharp", "Slight", "Typical"
1767
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].exit_number #=> Array
1768
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].exit_number[0].language #=> String
1769
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].exit_number[0].value #=> String
1770
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].exit_step_details.intersection #=> Array
1771
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].exit_step_details.intersection[0].language #=> String
1772
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].exit_step_details.intersection[0].value #=> String
1773
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].exit_step_details.relative_exit #=> Integer
1774
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].exit_step_details.steering_direction #=> String, one of "Left", "Right", "Straight"
1775
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].exit_step_details.turn_angle #=> Float
1776
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].exit_step_details.turn_intensity #=> String, one of "Sharp", "Slight", "Typical"
1777
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].geometry_offset #=> Integer
1778
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].instruction #=> String
1779
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].keep_step_details.intersection #=> Array
1780
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].keep_step_details.intersection[0].language #=> String
1781
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].keep_step_details.intersection[0].value #=> String
1782
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].keep_step_details.steering_direction #=> String, one of "Left", "Right", "Straight"
1783
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].keep_step_details.turn_angle #=> Float
1784
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].keep_step_details.turn_intensity #=> String, one of "Sharp", "Slight", "Typical"
1785
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].next_road.road_name #=> Array
1786
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].next_road.road_name[0].language #=> String
1787
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].next_road.road_name[0].value #=> String
1788
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].next_road.route_number #=> Array
1789
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].next_road.route_number[0].direction #=> String, one of "East", "North", "South", "West"
1790
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].next_road.route_number[0].language #=> String
1791
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].next_road.route_number[0].value #=> String
1792
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].next_road.towards #=> Array
1793
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].next_road.towards[0].language #=> String
1794
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].next_road.towards[0].value #=> String
1795
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].next_road.type #=> String, one of "Highway", "Rural", "Urban"
1796
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].ramp_step_details.intersection #=> Array
1797
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].ramp_step_details.intersection[0].language #=> String
1798
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].ramp_step_details.intersection[0].value #=> String
1799
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].ramp_step_details.steering_direction #=> String, one of "Left", "Right", "Straight"
1800
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].ramp_step_details.turn_angle #=> Float
1801
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].ramp_step_details.turn_intensity #=> String, one of "Sharp", "Slight", "Typical"
1802
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].roundabout_enter_step_details.intersection #=> Array
1803
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].roundabout_enter_step_details.intersection[0].language #=> String
1804
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].roundabout_enter_step_details.intersection[0].value #=> String
1805
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].roundabout_enter_step_details.steering_direction #=> String, one of "Left", "Right", "Straight"
1806
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].roundabout_enter_step_details.turn_angle #=> Float
1807
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].roundabout_enter_step_details.turn_intensity #=> String, one of "Sharp", "Slight", "Typical"
1808
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].roundabout_exit_step_details.intersection #=> Array
1809
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].roundabout_exit_step_details.intersection[0].language #=> String
1810
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].roundabout_exit_step_details.intersection[0].value #=> String
1811
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].roundabout_exit_step_details.relative_exit #=> Integer
1812
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].roundabout_exit_step_details.roundabout_angle #=> Float
1813
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].roundabout_exit_step_details.steering_direction #=> String, one of "Left", "Right", "Straight"
1814
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].roundabout_pass_step_details.intersection #=> Array
1815
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].roundabout_pass_step_details.intersection[0].language #=> String
1816
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].roundabout_pass_step_details.intersection[0].value #=> String
1817
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].roundabout_pass_step_details.steering_direction #=> String, one of "Left", "Right", "Straight"
1818
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].roundabout_pass_step_details.turn_angle #=> Float
1819
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].roundabout_pass_step_details.turn_intensity #=> String, one of "Sharp", "Slight", "Typical"
1820
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].signpost.labels #=> Array
1821
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].signpost.labels[0].route_number.direction #=> String, one of "East", "North", "South", "West"
1822
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].signpost.labels[0].route_number.language #=> String
1823
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].signpost.labels[0].route_number.value #=> String
1824
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].signpost.labels[0].text.language #=> String
1825
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].signpost.labels[0].text.value #=> String
1826
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].turn_step_details.intersection #=> Array
1827
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].turn_step_details.intersection[0].language #=> String
1828
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].turn_step_details.intersection[0].value #=> String
1829
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].turn_step_details.steering_direction #=> String, one of "Left", "Right", "Straight"
1830
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].turn_step_details.turn_angle #=> Float
1831
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].turn_step_details.turn_intensity #=> String, one of "Sharp", "Slight", "Typical"
1832
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].type #=> String, one of "Arrive", "Continue", "ContinueHighway", "Depart", "EnterHighway", "Exit", "Keep", "Ramp", "RoundaboutEnter", "RoundaboutExit", "RoundaboutPass", "Turn", "UTurn"
1833
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].u_turn_step_details.intersection #=> Array
1834
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].u_turn_step_details.intersection[0].language #=> String
1835
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].u_turn_step_details.intersection[0].value #=> String
1836
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].u_turn_step_details.steering_direction #=> String, one of "Left", "Right", "Straight"
1837
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].u_turn_step_details.turn_angle #=> Float
1838
+ # resp.routes[0].legs[0].vehicle_leg_details.travel_steps[0].u_turn_step_details.turn_intensity #=> String, one of "Sharp", "Slight", "Typical"
1839
+ # resp.routes[0].legs[0].vehicle_leg_details.truck_road_types #=> Array
1840
+ # resp.routes[0].legs[0].vehicle_leg_details.truck_road_types[0] #=> String
1841
+ # resp.routes[0].legs[0].vehicle_leg_details.zones #=> Array
1842
+ # resp.routes[0].legs[0].vehicle_leg_details.zones[0].category #=> String, one of "CongestionPricing", "Environmental", "Vignette"
1843
+ # resp.routes[0].legs[0].vehicle_leg_details.zones[0].name #=> String
1844
+ # resp.routes[0].major_road_labels #=> Array
1845
+ # resp.routes[0].major_road_labels[0].road_name.language #=> String
1846
+ # resp.routes[0].major_road_labels[0].road_name.value #=> String
1847
+ # resp.routes[0].major_road_labels[0].route_number.direction #=> String, one of "East", "North", "South", "West"
1848
+ # resp.routes[0].major_road_labels[0].route_number.language #=> String
1849
+ # resp.routes[0].major_road_labels[0].route_number.value #=> String
1850
+ # resp.routes[0].summary.distance #=> Integer
1851
+ # resp.routes[0].summary.duration #=> Integer
1852
+ # resp.routes[0].summary.tolls.total.currency #=> String
1853
+ # resp.routes[0].summary.tolls.total.estimate #=> Boolean
1854
+ # resp.routes[0].summary.tolls.total.range #=> Boolean
1855
+ # resp.routes[0].summary.tolls.total.range_value.min #=> Float
1856
+ # resp.routes[0].summary.tolls.total.range_value.max #=> Float
1857
+ # resp.routes[0].summary.tolls.total.value #=> Float
1858
+ #
1859
+ # @see http://docs.aws.amazon.com/goto/WebAPI/geo-routes-2020-11-19/CalculateRoutes AWS API Documentation
1860
+ #
1861
+ # @overload calculate_routes(params = {})
1862
+ # @param [Hash] params ({})
1863
+ def calculate_routes(params = {}, options = {})
1864
+ req = build_request(:calculate_routes, params)
1865
+ req.send_request(options)
1866
+ end
1867
+
1868
+ # Calculates the optimal order to travel between a set of waypoints to
1869
+ # minimize either the travel time or the distance travelled during the
1870
+ # journey, based on road network restrictions and the traffic pattern
1871
+ # data.
1872
+ #
1873
+ # @option params [Types::WaypointOptimizationAvoidanceOptions] :avoid
1874
+ # Features that are avoided while calculating a route. Avoidance is on a
1875
+ # best-case basis. If an avoidance can't be satisfied for a particular
1876
+ # case, this setting is ignored.
1877
+ #
1878
+ # @option params [String] :departure_time
1879
+ # Departure time from the waypoint.
1880
+ #
1881
+ # Time format:`YYYY-MM-DDThh:mm:ss.sssZ | YYYY-MM-DDThh:mm:ss.sss+hh:mm`
1882
+ #
1883
+ # Examples:
1884
+ #
1885
+ # `2020-04-22T17:57:24Z`
1886
+ #
1887
+ # `2020-04-22T17:57:24+02:00`
1888
+ #
1889
+ # @option params [Array<Float>] :destination
1890
+ # The final position for the route in the World Geodetic System (WGS 84)
1891
+ # format: `[longitude, latitude]`.
1892
+ #
1893
+ # @option params [Types::WaypointOptimizationDestinationOptions] :destination_options
1894
+ # Destination related options.
1895
+ #
1896
+ # @option params [Types::WaypointOptimizationDriverOptions] :driver
1897
+ # Driver related options.
1898
+ #
1899
+ # @option params [Types::WaypointOptimizationExclusionOptions] :exclude
1900
+ # Features to be strictly excluded while calculating the route.
1901
+ #
1902
+ # @option params [String] :key
1903
+ # Optional: The API key to be used for authorization. Either an API key
1904
+ # or valid SigV4 signature must be provided when making a request.
1905
+ #
1906
+ # @option params [String] :optimize_sequencing_for
1907
+ # Specifies the optimization criteria for the calculated sequence.
1908
+ #
1909
+ # Default Value: `FastestRoute`.
1910
+ #
1911
+ # @option params [required, Array<Float>] :origin
1912
+ # The start position for the route.
1913
+ #
1914
+ # @option params [Types::WaypointOptimizationOriginOptions] :origin_options
1915
+ # Origin related options.
1916
+ #
1917
+ # @option params [Types::WaypointOptimizationTrafficOptions] :traffic
1918
+ # Traffic-related options.
1919
+ #
1920
+ # @option params [String] :travel_mode
1921
+ # Specifies the mode of transport when calculating a route. Used in
1922
+ # estimating the speed of travel and road compatibility.
1923
+ #
1924
+ # Default Value: `Car`
1925
+ #
1926
+ # @option params [Types::WaypointOptimizationTravelModeOptions] :travel_mode_options
1927
+ # Travel mode related options for the provided travel mode.
1928
+ #
1929
+ # @option params [Array<Types::WaypointOptimizationWaypoint>] :waypoints
1930
+ # List of waypoints between the `Origin` and `Destination`.
1931
+ #
1932
+ # @return [Types::OptimizeWaypointsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1933
+ #
1934
+ # * {Types::OptimizeWaypointsResponse#connections #connections} => Array&lt;Types::WaypointOptimizationConnection&gt;
1935
+ # * {Types::OptimizeWaypointsResponse#distance #distance} => Integer
1936
+ # * {Types::OptimizeWaypointsResponse#duration #duration} => Integer
1937
+ # * {Types::OptimizeWaypointsResponse#impeding_waypoints #impeding_waypoints} => Array&lt;Types::WaypointOptimizationImpedingWaypoint&gt;
1938
+ # * {Types::OptimizeWaypointsResponse#optimized_waypoints #optimized_waypoints} => Array&lt;Types::WaypointOptimizationOptimizedWaypoint&gt;
1939
+ # * {Types::OptimizeWaypointsResponse#pricing_bucket #pricing_bucket} => String
1940
+ # * {Types::OptimizeWaypointsResponse#time_breakdown #time_breakdown} => Types::WaypointOptimizationTimeBreakdown
1941
+ #
1942
+ # @example Request syntax with placeholder values
1943
+ #
1944
+ # resp = client.optimize_waypoints({
1945
+ # avoid: {
1946
+ # areas: [
1947
+ # {
1948
+ # geometry: { # required
1949
+ # bounding_box: [1.0],
1950
+ # },
1951
+ # },
1952
+ # ],
1953
+ # car_shuttle_trains: false,
1954
+ # controlled_access_highways: false,
1955
+ # dirt_roads: false,
1956
+ # ferries: false,
1957
+ # toll_roads: false,
1958
+ # tunnels: false,
1959
+ # u_turns: false,
1960
+ # },
1961
+ # departure_time: "TimestampWithTimezoneOffset",
1962
+ # destination: [1.0],
1963
+ # destination_options: {
1964
+ # access_hours: {
1965
+ # from: { # required
1966
+ # day_of_week: "Monday", # required, accepts Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday
1967
+ # time_of_day: "TimeOfDay", # required
1968
+ # },
1969
+ # to: { # required
1970
+ # day_of_week: "Monday", # required, accepts Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday
1971
+ # time_of_day: "TimeOfDay", # required
1972
+ # },
1973
+ # },
1974
+ # appointment_time: "TimestampWithTimezoneOffset",
1975
+ # heading: 1.0,
1976
+ # id: "WaypointId",
1977
+ # service_duration: 1,
1978
+ # side_of_street: {
1979
+ # position: [1.0], # required
1980
+ # use_with: "AnyStreet", # accepts AnyStreet, DividedStreetOnly
1981
+ # },
1982
+ # },
1983
+ # driver: {
1984
+ # rest_cycles: {
1985
+ # long_cycle: { # required
1986
+ # rest_duration: 1, # required
1987
+ # work_duration: 1, # required
1988
+ # },
1989
+ # short_cycle: { # required
1990
+ # rest_duration: 1, # required
1991
+ # work_duration: 1, # required
1992
+ # },
1993
+ # },
1994
+ # rest_profile: {
1995
+ # profile: "WaypointOptimizationRestProfileProfileString", # required
1996
+ # },
1997
+ # treat_service_time_as: "Rest", # accepts Rest, Work
1998
+ # },
1999
+ # exclude: {
2000
+ # countries: ["CountryCode"], # required
2001
+ # },
2002
+ # key: "ApiKey",
2003
+ # optimize_sequencing_for: "FastestRoute", # accepts FastestRoute, ShortestRoute
2004
+ # origin: [1.0], # required
2005
+ # origin_options: {
2006
+ # id: "WaypointId",
2007
+ # },
2008
+ # traffic: {
2009
+ # usage: "IgnoreTrafficData", # accepts IgnoreTrafficData, UseTrafficData
2010
+ # },
2011
+ # travel_mode: "Car", # accepts Car, Pedestrian, Scooter, Truck
2012
+ # travel_mode_options: {
2013
+ # pedestrian: {
2014
+ # speed: 1.0,
2015
+ # },
2016
+ # truck: {
2017
+ # gross_weight: 1,
2018
+ # hazardous_cargos: ["Combustible"], # accepts Combustible, Corrosive, Explosive, Flammable, Gas, HarmfulToWater, Organic, Other, Poison, PoisonousInhalation, Radioactive
2019
+ # height: 1,
2020
+ # length: 1,
2021
+ # trailer: {
2022
+ # trailer_count: 1,
2023
+ # },
2024
+ # truck_type: "StraightTruck", # accepts StraightTruck, Tractor
2025
+ # tunnel_restriction_code: "TunnelRestrictionCode",
2026
+ # weight_per_axle: 1,
2027
+ # width: 1,
2028
+ # },
2029
+ # },
2030
+ # waypoints: [
2031
+ # {
2032
+ # access_hours: {
2033
+ # from: { # required
2034
+ # day_of_week: "Monday", # required, accepts Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday
2035
+ # time_of_day: "TimeOfDay", # required
2036
+ # },
2037
+ # to: { # required
2038
+ # day_of_week: "Monday", # required, accepts Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday
2039
+ # time_of_day: "TimeOfDay", # required
2040
+ # },
2041
+ # },
2042
+ # appointment_time: "TimestampWithTimezoneOffset",
2043
+ # before: [1],
2044
+ # heading: 1.0,
2045
+ # id: "WaypointId",
2046
+ # position: [1.0], # required
2047
+ # service_duration: 1,
2048
+ # side_of_street: {
2049
+ # position: [1.0], # required
2050
+ # use_with: "AnyStreet", # accepts AnyStreet, DividedStreetOnly
2051
+ # },
2052
+ # },
2053
+ # ],
2054
+ # })
2055
+ #
2056
+ # @example Response structure
2057
+ #
2058
+ # resp.connections #=> Array
2059
+ # resp.connections[0].distance #=> Integer
2060
+ # resp.connections[0].from #=> String
2061
+ # resp.connections[0].rest_duration #=> Integer
2062
+ # resp.connections[0].to #=> String
2063
+ # resp.connections[0].travel_duration #=> Integer
2064
+ # resp.connections[0].wait_duration #=> Integer
2065
+ # resp.distance #=> Integer
2066
+ # resp.duration #=> Integer
2067
+ # resp.impeding_waypoints #=> Array
2068
+ # resp.impeding_waypoints[0].failed_constraints #=> Array
2069
+ # resp.impeding_waypoints[0].failed_constraints[0].constraint #=> String, one of "AccessHours", "AppointmentTime", "Before", "Heading", "ServiceDuration", "SideOfStreet"
2070
+ # resp.impeding_waypoints[0].failed_constraints[0].reason #=> String
2071
+ # resp.impeding_waypoints[0].id #=> String
2072
+ # resp.impeding_waypoints[0].position #=> Array
2073
+ # resp.impeding_waypoints[0].position[0] #=> Float
2074
+ # resp.optimized_waypoints #=> Array
2075
+ # resp.optimized_waypoints[0].arrival_time #=> String
2076
+ # resp.optimized_waypoints[0].departure_time #=> String
2077
+ # resp.optimized_waypoints[0].id #=> String
2078
+ # resp.optimized_waypoints[0].position #=> Array
2079
+ # resp.optimized_waypoints[0].position[0] #=> Float
2080
+ # resp.pricing_bucket #=> String
2081
+ # resp.time_breakdown.rest_duration #=> Integer
2082
+ # resp.time_breakdown.service_duration #=> Integer
2083
+ # resp.time_breakdown.travel_duration #=> Integer
2084
+ # resp.time_breakdown.wait_duration #=> Integer
2085
+ #
2086
+ # @see http://docs.aws.amazon.com/goto/WebAPI/geo-routes-2020-11-19/OptimizeWaypoints AWS API Documentation
2087
+ #
2088
+ # @overload optimize_waypoints(params = {})
2089
+ # @param [Hash] params ({})
2090
+ def optimize_waypoints(params = {}, options = {})
2091
+ req = build_request(:optimize_waypoints, params)
2092
+ req.send_request(options)
2093
+ end
2094
+
2095
+ # The SnapToRoads action matches GPS trace to roads most likely traveled
2096
+ # on.
2097
+ #
2098
+ # @option params [String] :key
2099
+ # Optional: The API key to be used for authorization. Either an API key
2100
+ # or valid SigV4 signature must be provided when making a request.
2101
+ #
2102
+ # @option params [String] :snapped_geometry_format
2103
+ # Chooses what the returned SnappedGeometry format should be.
2104
+ #
2105
+ # Default Value: `FlexiblePolyline`
2106
+ #
2107
+ # @option params [Integer] :snap_radius
2108
+ # The radius around the provided tracepoint that is considered for
2109
+ # snapping.
2110
+ #
2111
+ # **Unit**: `meters`
2112
+ #
2113
+ # Default value: `300`
2114
+ #
2115
+ # @option params [required, Array<Types::RoadSnapTracePoint>] :trace_points
2116
+ # List of trace points to be snapped onto the road network.
2117
+ #
2118
+ # @option params [String] :travel_mode
2119
+ # Specifies the mode of transport when calculating a route. Used in
2120
+ # estimating the speed of travel and road compatibility.
2121
+ #
2122
+ # Default Value: `Car`
2123
+ #
2124
+ # @option params [Types::RoadSnapTravelModeOptions] :travel_mode_options
2125
+ # Travel mode related options for the provided travel mode.
2126
+ #
2127
+ # @return [Types::SnapToRoadsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2128
+ #
2129
+ # * {Types::SnapToRoadsResponse#notices #notices} => Array&lt;Types::RoadSnapNotice&gt;
2130
+ # * {Types::SnapToRoadsResponse#pricing_bucket #pricing_bucket} => String
2131
+ # * {Types::SnapToRoadsResponse#snapped_geometry #snapped_geometry} => Types::RoadSnapSnappedGeometry
2132
+ # * {Types::SnapToRoadsResponse#snapped_geometry_format #snapped_geometry_format} => String
2133
+ # * {Types::SnapToRoadsResponse#snapped_trace_points #snapped_trace_points} => Array&lt;Types::RoadSnapSnappedTracePoint&gt;
2134
+ #
2135
+ # @example Request syntax with placeholder values
2136
+ #
2137
+ # resp = client.snap_to_roads({
2138
+ # key: "ApiKey",
2139
+ # snapped_geometry_format: "FlexiblePolyline", # accepts FlexiblePolyline, Simple
2140
+ # snap_radius: 1,
2141
+ # trace_points: [ # required
2142
+ # {
2143
+ # heading: 1.0,
2144
+ # position: [1.0], # required
2145
+ # speed: 1.0,
2146
+ # timestamp: "TimestampWithTimezoneOffset",
2147
+ # },
2148
+ # ],
2149
+ # travel_mode: "Car", # accepts Car, Pedestrian, Scooter, Truck
2150
+ # travel_mode_options: {
2151
+ # truck: {
2152
+ # gross_weight: 1,
2153
+ # hazardous_cargos: ["Combustible"], # accepts Combustible, Corrosive, Explosive, Flammable, Gas, HarmfulToWater, Organic, Other, Poison, PoisonousInhalation, Radioactive
2154
+ # height: 1,
2155
+ # length: 1,
2156
+ # trailer: {
2157
+ # trailer_count: 1,
2158
+ # },
2159
+ # tunnel_restriction_code: "TunnelRestrictionCode",
2160
+ # width: 1,
2161
+ # },
2162
+ # },
2163
+ # })
2164
+ #
2165
+ # @example Response structure
2166
+ #
2167
+ # resp.notices #=> Array
2168
+ # resp.notices[0].code #=> String, one of "TracePointsHeadingIgnored", "TracePointsIgnored", "TracePointsMovedByLargeDistance", "TracePointsNotMatched", "TracePointsOutOfSequence", "TracePointsSpeedEstimated", "TracePointsSpeedIgnored"
2169
+ # resp.notices[0].title #=> String
2170
+ # resp.notices[0].trace_point_indexes #=> Array
2171
+ # resp.notices[0].trace_point_indexes[0] #=> Integer
2172
+ # resp.pricing_bucket #=> String
2173
+ # resp.snapped_geometry.line_string #=> Array
2174
+ # resp.snapped_geometry.line_string[0] #=> Array
2175
+ # resp.snapped_geometry.line_string[0][0] #=> Float
2176
+ # resp.snapped_geometry.polyline #=> String
2177
+ # resp.snapped_geometry_format #=> String, one of "FlexiblePolyline", "Simple"
2178
+ # resp.snapped_trace_points #=> Array
2179
+ # resp.snapped_trace_points[0].confidence #=> Float
2180
+ # resp.snapped_trace_points[0].original_position #=> Array
2181
+ # resp.snapped_trace_points[0].original_position[0] #=> Float
2182
+ # resp.snapped_trace_points[0].snapped_position #=> Array
2183
+ # resp.snapped_trace_points[0].snapped_position[0] #=> Float
2184
+ #
2185
+ # @see http://docs.aws.amazon.com/goto/WebAPI/geo-routes-2020-11-19/SnapToRoads AWS API Documentation
2186
+ #
2187
+ # @overload snap_to_roads(params = {})
2188
+ # @param [Hash] params ({})
2189
+ def snap_to_roads(params = {}, options = {})
2190
+ req = build_request(:snap_to_roads, params)
2191
+ req.send_request(options)
2192
+ end
2193
+
2194
+ # @!endgroup
2195
+
2196
+ # @param params ({})
2197
+ # @api private
2198
+ def build_request(operation_name, params = {})
2199
+ handlers = @handlers.for(operation_name)
2200
+ tracer = config.telemetry_provider.tracer_provider.tracer(
2201
+ Aws::Telemetry.module_to_tracer_name('Aws::GeoRoutes')
2202
+ )
2203
+ context = Seahorse::Client::RequestContext.new(
2204
+ operation_name: operation_name,
2205
+ operation: config.api.operation(operation_name),
2206
+ client: self,
2207
+ params: params,
2208
+ config: config,
2209
+ tracer: tracer
2210
+ )
2211
+ context[:gem_name] = 'aws-sdk-georoutes'
2212
+ context[:gem_version] = '1.0.0'
2213
+ Seahorse::Client::Request.new(handlers, context)
2214
+ end
2215
+
2216
+ # @api private
2217
+ # @deprecated
2218
+ def waiter_names
2219
+ []
2220
+ end
2221
+
2222
+ class << self
2223
+
2224
+ # @api private
2225
+ attr_reader :identifier
2226
+
2227
+ # @api private
2228
+ def errors_module
2229
+ Errors
2230
+ end
2231
+
2232
+ end
2233
+ end
2234
+ end