swagger: '2.0' info: version: 2023-03-01-preview title: Microsoft Azure Azure Maps Wayfinding Service description: Azure Maps Wayfinding REST APIs schemes: - https consumes: [] produces: - application/json securityDefinitions: AADToken: type: oauth2 authorizationUrl: https://login.microsoftonline.com/common/oauth2/authorize flow: implicit description: >- These are the [Azure Active Directory OAuth2](https://docs.microsoft.com/azure/active-directory/develop/v1-overview) Flows. When paired with [Azure role-based access](https://docs.microsoft.com/azure/role-based-access-control/overview) control it can be used to control access to Azure Maps REST APIs. Azure role-based access controls are used to designate access to one or more Azure Maps resource account or sub-resources. Any user, group, or service principal can be granted access via a built-in role or a custom role composed of one or more permissions to Azure Maps REST APIs. To implement scenarios, we recommend viewing [authentication concepts](https://aka.ms/amauth). In summary, this security definition provides a solution for modeling application(s) via objects capable of access control on specific APIs and scopes. #### Notes * This security definition **requires** the use of the `x-ms-client-id` header to indicate which Azure Maps resource the application is requesting access to. This can be acquired from the [Maps management API](https://aka.ms/amauthdetails). * The `Authorization URL` is specific to the Azure public cloud instance. Sovereign clouds have unique Authorization URLs and Azure Active directory configurations. * The Azure role-based access control is configured from the [Azure management plane](https://aka.ms/amrbac) via Azure portal, PowerShell, CLI, Azure SDKs, or REST APIs. * Usage of the [Azure Maps Web SDK](https://aka.ms/amaadmc) allows for configuration based setup of an application for multiple use cases. * Currently, Azure Active Directory [v1.0 or v2.0](https://docs.microsoft.com/azure/active-directory/develop/azure-ad-endpoint-comparison) supports Work, School, and Guests but does not support Personal accounts. scopes: https://atlas.microsoft.com/.default: https://atlas.microsoft.com/.default SharedKey: type: apiKey description: >- This is a shared key that is provisioned when you [Create an Azure Maps account](https://docs.microsoft.com/azure/azure-maps/quick-demo-map-app#create-an-azure-maps-account) in the Azure portal or using PowerShell, CLI, Azure SDKs, or REST API. With this key, any application can access all REST API. In other words, this key can be used as a master key in the account that they are issued in. For publicly exposed applications, our recommendation is to use the [confidential client applications](https://docs.microsoft.com/azure/azure-maps/authentication-best-practices#confidential-client-applications) approach to access Azure Maps REST APIs so your key can be securely stored. name: subscription-key in: query SasToken: type: apiKey description: >- This is a shared access signature token is created from the List SAS operation on the [Azure Maps resource](https://aka.ms/amauth) through the Azure management plane via Azure portal, PowerShell, CLI, Azure SDKs, or REST APIs. With this token, any application is authorized to access with Azure role-based access controls and fine-grain control to the expiration, rate, and region(s) of use for the particular token. In other words, the SAS Token can be used to allow applications to control access in a more secured way than the shared key. For publicly exposed applications, our recommendation is to configure a specific list of allowed origins on the [Map account resource](https://aka.ms/amauth) to limit rendering abuse and regularly renew the SAS Token. name: SAS Token in: header security: - AADToken: - https://atlas.microsoft.com/.default - SharedKey: [] - SasToken: [] definitions: Point: description: A point within the facility. type: object properties: latitude: description: the point latitude type: number longitude: description: the point longitude type: number required: - latitude - longitude Leg: description: A section of the overall path. type: object properties: mode: type: string description: >- The leg mode of traversal for this leg. It can be default (all on the same level), elevators or stairs when moving vertically between levels. lengthInMeters: type: number description: The leg length, in meters, of this leg. timeInSeconds: type: integer format: int64 description: >- The leg travel time, in seconds, to travel between the first and last point of this leg. startLevel: type: integer format: int32 description: The floor where this leg starts. endLevel: type: integer format: int32 description: The floor where this leg ends. points: description: >- The leg shape points. Their vertical position is determined as follows: all the points are at the same height when startLevel and endLevel are the same, otherwise the array will contain only two points: the first at startLevel and the second at endLevel. type: array items: $ref: '#/definitions/Point' x-ms-identifiers: [] Path: description: >- The details about a particular path between the origin and destination. It can be made up of one or more legs. type: object properties: lengthInMeters: type: number description: The path length, in meters, of the entire path. timeInSeconds: type: integer format: int64 description: >- The path total time, in seconds, to travel between the origin and the destination when following this path. legs: description: The different travel sections of this path. type: array items: $ref: '#/definitions/Leg' x-ms-identifiers: [] WayfindResult: description: The object returned by this Wayfinding Path request. type: object properties: noResultExplanation: type: string description: >- In the event that no paths are found, the `paths` array will be empty. If the reason no paths were found can be determined, this property will provide an explanation why. enum: - NoExplanation x-ms-enum: name: NoResultExplanation modelAsString: true values: - value: NoExplanation description: >- Default value provided when a result is returned or it wasn't possible to determine why a path wasn't found. readOnly: true paths: description: >- An array of wayfinding path results. An empty array will be returned if no results were found. type: array items: $ref: '#/definitions/Path' x-ms-identifiers: [] parameters: ApiVersion: name: api-version description: Version number of Azure Maps API. type: string in: query required: true x-ms-parameter-location: client RoutesetId: name: routesetId description: The ID of the routeset to query from. type: string in: query required: true x-ms-parameter-location: client FacilityId: name: facilityId type: string in: query description: The identifier of the facility within the routeset where to find the path. required: true x-ms-parameter-location: client FromPoint: name: fromPoint type: string in: query description: 'The path origin point in the following format: {latitude},{longitude}.' required: true x-ms-parameter-location: client FromLevel: name: fromLevel type: integer format: int32 in: query description: The path origin level. required: true x-ms-parameter-location: client ToPoint: name: toPoint type: string in: query description: 'The path destination in the following format: {latitude},{longitude}.' required: true x-ms-parameter-location: client ToLevel: name: toLevel type: integer format: int32 in: query description: The path destination level. required: true x-ms-parameter-location: client AvoidFeatures: name: avoidFeatures description: >- To avoid certain types of connectors in the resulting path. Multiple values can be specified. type: array items: type: string enum: - stairs - elevators x-ms-enum: name: avoidFeatures modelAsString: true values: - value: stairs description: Avoid stairs. - value: elevators description: Avoid elevators. in: query x-ms-parameter-location: client MinWidth: name: minWidth description: >- The minimum width (in meters) of openings in the searched path. For example, if you specified a minimum width of 0.85, the searched path will avoid openings less than 85 centimeters wide. Note: by using this value, the resulting path points will be buffered from walls and other vertical obstacles by half of the width provided. type: number in: query default: '0.55' x-ms-parameter-location: client paths: /wayfinding/path: get: summary: 'Microsoft Azure Use To Calculate The Best Path Between Two Locations Within A Facility' description: >-

The Wayfinding Service is part of Creator, and adheres to the [Open Geospatial Consortium](http://docs.opengeospatial.org/is/17-069r3/17-069r3.html) standard. Wayfinding uses indoor map data from the [routeset](/rest/api/maps-creator/routeset) to calculate the best path between two locations within the same facility. For more information, see [Wayfinding](/azure/azure-maps/creator-indoor-maps#wayfinding-preview) in the _Creator for indoor maps_ concepts article. operationId: microsoftAzureWayfindingGetpath x-ms-examples: Get the shortest path between two points in the facility.: $ref: ./examples/wayfind/Wayfinding_GetPath.json parameters: - $ref: ../../../Common/preview/1.0/common.json#/parameters/ClientId - $ref: '#/parameters/ApiVersion' - $ref: '#/parameters/RoutesetId' - $ref: '#/parameters/FacilityId' - $ref: '#/parameters/FromPoint' - $ref: '#/parameters/FromLevel' - $ref: '#/parameters/ToPoint' - $ref: '#/parameters/ToLevel' - $ref: '#/parameters/AvoidFeatures' - $ref: '#/parameters/MinWidth' responses: '200': description: OK schema: $ref: '#/definitions/WayfindResult' default: $ref: ../../../Common/preview/1.0/common.json#/responses/default tags: - Wayfinding tags: - name: Wayfinding