From 32019130be116a05d21176c073cdbdc34f5c40a0 Mon Sep 17 00:00:00 2001 From: Jeff Couckuyt Date: Wed, 3 Mar 2021 11:59:51 -0800 Subject: [PATCH 01/38] Copy Creator API 1.0 to 2.0 --- .../Alias/preview/2.0/alias.json | 416 ++++++++ .../preview/2.0/examples/Alias_Assign.json | 58 ++ .../preview/2.0/examples/Alias_Create.json | 59 ++ .../preview/2.0/examples/Alias_Delete.json | 57 + .../preview/2.0/examples/Alias_List.json | 71 ++ .../Dataset/preview/2.0/dataset.json | 608 +++++++++++ .../preview/2.0/examples/Dataset_Create.json | 73 ++ .../preview/2.0/examples/Dataset_Delete.json | 57 + .../preview/2.0/examples/Dataset_Import.json | 71 ++ .../preview/2.0/examples/Dataset_List.json | 116 +++ .../preview/2.0/dwgconversion.json | 474 +++++++++ .../preview/2.0/examples/Conversion.json | 73 ++ .../preview/2.0/examples/Delete.json | 57 + .../preview/2.0/examples/List.json | 89 ++ .../preview/2.0/examples/CreateStateset.json | 116 +++ .../2.0/examples/DeleteFeatureState.json | 66 ++ .../preview/2.0/examples/DeleteStateset.json | 55 + .../preview/2.0/examples/GetStates.json | 66 ++ .../preview/2.0/examples/GetStateset.json | 117 +++ .../preview/2.0/examples/Stateset_List.json | 121 +++ .../preview/2.0/examples/UpdateStates.json | 65 ++ .../preview/2.0/examples/UpdateStateset.json | 101 ++ .../preview/2.0/featurestate.json | 841 +++++++++++++++ .../Tileset/preview/2.0/examples/Create.json | 72 ++ .../Tileset/preview/2.0/examples/Delete.json | 57 + .../Tileset/preview/2.0/examples/List.json | 85 ++ .../Tileset/preview/2.0/tileset.json | 479 +++++++++ .../WFS/preview/2.0/examples/DeleteItem.json | 57 + .../preview/2.0/examples/GetCollection.json | 78 ++ .../2.0/examples/GetCollectionDefinition.json | 196 ++++ .../preview/2.0/examples/GetCollections.json | 297 ++++++ .../preview/2.0/examples/GetConformance.json | 64 ++ .../WFS/preview/2.0/examples/GetItem.json | 128 +++ .../WFS/preview/2.0/examples/GetItems.json | 137 +++ .../preview/2.0/examples/GetLandingPage.json | 85 ++ .../Microsoft.Maps/WFS/preview/2.0/wfs.json | 984 ++++++++++++++++++ 36 files changed, 6546 insertions(+) create mode 100644 specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/alias.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Assign.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Create.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Delete.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_List.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Create.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Delete.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Import.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_List.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/Conversion.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/Delete.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/List.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/CreateStateset.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/DeleteFeatureState.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/DeleteStateset.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/GetStates.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/GetStateset.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/Stateset_List.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/UpdateStates.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/UpdateStateset.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/featurestate.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/Create.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/Delete.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/List.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/DeleteItem.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollection.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollectionDefinition.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollections.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetConformance.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetItem.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetItems.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetLandingPage.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/wfs.json diff --git a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/alias.json b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/alias.json new file mode 100644 index 000000000000..13630019c12b --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/alias.json @@ -0,0 +1,416 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Maps Alias Service", + "version": "1.0", + "description": "APIs for managing aliases in Azure Maps." + }, + "host": "atlas.microsoft.com", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [ + "application/json", + "application/xml" + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "These are the [Azure Active Directory OAuth2](https://docs.microsoft.com/en-us/azure/active-directory/develop/v1-overview) Flows. When paired with [Azure Role Based Access](https://docs.microsoft.com/en-us/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.\n\nTo 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.\n\n#### Note\n* 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).\n* The `Authorization URL` is specific to the Azure public cloud instance. Sovereign clouds have unique Authorization URLs and Azure Active directory configurations. \n* 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.\n* Usage of the [Azure Maps Web SDK](https://aka.ms/amaadmc) allows for configuration based setup of an application for multiple use cases.\n* Currently Azure Active Directory [v1.0](https://docs.microsoft.com/en-us/azure/active-directory/develop/azure-ad-endpoint-comparison) tokens are supported.", + "scopes": { + "user_impersonation": "Impersonates a user's Azure Active Directory account." + } + }, + "apiKeyQuery": { + "type": "apiKey", + "description": "This is a shared key which is provisioned when creating an [Azure Maps resource](https://aka.ms/amauth) through the Azure management plane via Azure portal, Powershell, CLI, Azure SDKs, or REST APIs. With this key, any application is authorized to access all REST APIs. In other words, these can currently be treated as master keys to the account which they are issued for. For publicly exposed applications our recommendation is to use server to server access of Azure Maps REST APIs where this key can be securely stored.", + "name": "subscription-key", + "in": "query" + } + }, + "security": [ + { + "azure_auth": [] + }, + { + "apiKeyQuery": [] + } + ], + "responses": { + "202": { + "description": "Request Accepted: The request has been accepted for processing. Please use the URL in the Location Header to retry or access the results.", + "headers": { + "Location": { + "type": "string", + "description": "New URL to check for the results of the long running process." + } + } + }, + "400": { + "description": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "401": { + "description": "Access denied due to invalid subscription key or invalid Azure Active Directory bearer token. Make sure to provide a valid key for an active Azure subscription and Maps resource. Otherwise, verify the [WWW-Authenticate](https://tools.ietf.org/html/rfc6750#section-3.1) header for error code and description of the provided AAD bearer token.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + }, + "headers": { + "WWW-Authenticate": { + "type": "string", + "description": "Bearer realm=\"https://atlas.microsoft.com/\", error=\"invalid_token\", error_description=\"The access token expired\"" + } + } + }, + "403": { + "description": "Permission, capacity, or authentication issues.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "404": { + "description": "Not Found: the requested resource could not be found, but it may be available again in the future.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "500": { + "description": "An error occurred while processing the request. Please try again later.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + } + }, + "parameters": { + "SubscriptionKey": { + "name": "subscription-key", + "description": "One of the Azure Maps keys provided from an Azure Map Account. Please refer to this [article](https://docs.microsoft.com/azure/azure-maps/how-to-manage-authentication) for details on how to manage authentication.", + "type": "string", + "in": "query", + "required": false, + "x-ms-parameter-location": "client" + }, + "ApiVersion": { + "name": "api-version", + "description": "Version number of Azure Maps API. Current version is 1.0", + "type": "string", + "in": "query", + "required": true, + "default": "1.0", + "x-ms-parameter-location": "client" + }, + "CreateResourceId": { + "name": "resourceId", + "description": "The unique id that references a resource to be aliased.", + "type": "string", + "in": "query", + "required": false, + "x-ms-parameter-location": "method" + }, + "AssignResourceId": { + "name": "resourceId", + "description": "The unique id that references a resource to be aliased.", + "type": "string", + "in": "query", + "required": true, + "x-ms-parameter-location": "method" + }, + "AliasId": { + "name": "aliasId", + "description": "The unique id that references an existing alias.", + "type": "string", + "in": "path", + "required": true, + "x-ms-parameter-location": "method" + } + }, + "paths": { + "/alias": { + "post": { + "x-publish": true, + "description": "**Alias - Create API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to create an alias.
\nYou can also assign the alias during the create request as well.\n\n\n### Submit Create Request\n\nTo create your alias, you will use a `POST` request. If you would like to assign the alias during the creation, you will pass the `resourceId` query parameter.
\n\n\n### Create Alias Response\n\nThe Create API returns a HTTP `201 Created` response the id of the alias, `aliasId`, in the body.\nThe response will look something like:\n\n```json\n{\n \"aliasId\" : \"d7e5efc8-2239-4387-a286-5bb51aa804e3\"\n}\n```\n\n
", + "operationId": "Alias_CreatePreview", + "x-ms-examples": { + "Create an alias that does not reference any resource": { + "$ref": "./examples/Alias_Create.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + } + ], + "responses": { + "201": { + "description": "Content created successfully. The response body contains the newly created alias id `aliasId`.", + "schema": { + "$ref": "#/definitions/AliasCreateResponse" + }, + "headers": { + "Access-Control-Expose-Headers": { + "type": "string", + "description": "The list of response headers that can be read by the client." + } + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + }, + "get": { + "x-publish": true, + "description": "**Alias - List API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to fetch a list of all previously successfully created aliases.\n\n\n### Submit List Request\n\nTo list all your aliases, you will issue a `GET` request with no additional parameters.
\n\n\n### List Data Response\n\nThe List API returns the complete list of all aliases in `json` format. The response contains the following details for each alias resource:\n\n > createdTimestamp - The timestamp that the alias was created.\n > aliasId - The id for the alias.\n > resourceId - The id for the resource that this alias references (could be null if the alias has not been assigned).\n > lastUpdatedTimestamp - The last time the alias was assigned to a resource.\n\n\nHere's a sample response returning 2 alias resources: \n\n
\n\n```json\n{\n \"aliases\": [\n {\n \"createdTimestamp\": \"2020-02-13T21:19:11+00:00\",\n \"aliasId\": \"a8a4b8bb-ecf4-fb27-a618-f41721552766\",\n \"resourceId\": \"e89aebb9-70a3-8fe1-32bb-1fbd0c725f14\",\n \"lastUpdatedTimestamp\": \"2020-02-13T21:19:22+00:00\"\n },\n {\n \"createdTimestamp\": \"2020-02-18T19:53:33+00:00\",\n \"aliasId\": \"1856dbfc-7a66-ee5a-bf8d-51dbfe1906f6\",\n \"resourceId\": null,\n \"lastUpdatedTimestamp\": \"2020-02-18T19:53:33+00:00\"\n }\n ]\n}\n```\n\n
", + "operationId": "Alias_ListPreview", + "x-ms-examples": { + "List all the previously created aliases": { + "$ref": "./examples/Alias_List.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + } + ], + "responses": { + "200": { + "description": "List alias request completed successfully. The response body contains a list of all the previously created aliases.", + "schema": { + "$ref": "#/definitions/AliasListResponse" + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + }, + "/alias/assign/{aliasId}": { + "patch": { + "x-publish": true, + "description": "**Alias - Assign API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to assign an alias to reference a resource.
\n\n\n### Submit Assign Request\n\nTo assign your alias to a resource, you will use a `PATCH` request with the `aliasId` in the path and the `resourceId` passed as a query parameter.
\n\n\n### Create Alias Response\n\nThe Assign API returns a HTTP `204 No Content` response with an empty body, if the alias was assigned successfully.
", + "operationId": "Alias_AssignPreview", + "x-ms-examples": { + "Assign an alias to a resource": { + "$ref": "./examples/Alias_Assign.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/AliasId" + }, + { + "$ref": "#/parameters/AssignResourceId" + } + ], + "responses": { + "204": { + "description": "Alias was assigned successfully.", + "schema": { + "$ref": "#/definitions/AliasAssignResponse" + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + }, + "/alias/{aliasId}": { + "delete": { + "x-publish": true, + "description": "**Alias - Delete API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to delete a previously created alias.
\nYou can also use this API to delete old/unused aliases to create space for new content.\nThis API does not delete the references resource, only the alias referencing the resource.\n\n\n### Submit Delete Request\n\nTo delete your alias you will issue a `DELETE` request where the path will contain the `aliasId` of the alias to delete.
\n\n\n### Delete Alias Response\n\nThe Delete API returns a HTTP `204 No Content` response with an empty body, if the alias was deleted successfully.
\nA HTTP `400 Bad Request` error response will be returned if the alias with the passed-in `aliasId` is not found. ", + "operationId": "Alias_DeletePreview", + "x-ms-examples": { + "Delete previously created alias": { + "$ref": "./examples/Alias_Delete.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/AliasId" + } + ], + "responses": { + "204": { + "description": "Alias delete request completed successfully. The content for `aliasId` was deleted on the server.", + "schema": { + "$ref": "#/definitions/AliasDeleteResponse" + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + } + }, + "definitions": { + "ODataErrorResponse": { + "type": "object", + "description": "This response object is returned when an error occurs in the Maps API.", + "properties": { + "error": { + "$ref": "#/definitions/ODataError" + } + } + }, + "ODataError": { + "type": "object", + "description": "This object is returned when an error occurs in the Maps API.", + "properties": { + "code": { + "type": "string", + "readOnly": true, + "description": "The ODataError code." + }, + "message": { + "type": "string", + "readOnly": true, + "description": "If available, a human readable description of the error." + }, + "details": { + "type": "array", + "items": { + "$ref": "#/definitions/ODataError" + } + }, + "target": { + "type": "string", + "readOnly": true, + "description": "If available, the target causing the error." + } + } + }, + "AliasCreateResponse": { + "description": "The response model for the Alias Create API for the case when the alias was successfully created.", + "type": "object", + "properties": { + "aliasId": { + "description": "An alias id `aliasId` for the created alias.", + "type": "string", + "readOnly": true + } + } + }, + "AliasAssignResponse": { + "description": "The response model for the Assign API. The response body will be empty signifying the assign was successful.", + "type": "object" + }, + "AliasDeleteResponse": { + "description": "The response model for the Delete API. The response body will be empty signifying there's alias available with the given `aliasId` anymore.", + "type": "object" + }, + "AliasListResponse": { + "description": "The response model for the List API. Returns a list of all the previously created aliases.", + "type": "object", + "properties": { + "aliases": { + "description": "A list of all the previously created aliases.", + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/AliasListItem" + } + } + } + }, + "AliasListItem": { + "description": "Detailed information for the alias.", + "type": "object", + "properties": { + "createdTimestamp": { + "description": "The created timestamp for the alias.", + "type": "string", + "readOnly": true + }, + "aliasId": { + "description": "The id for the alias.", + "type": "string", + "readOnly": true + }, + "resourceId": { + "description": "The id for the resource that this alias references (could be null if the alias has not been assigned).", + "type": "string", + "readOnly": true + }, + "lastUpdatedTimestamp": { + "description": "The timestamp of the last time the alias was assigned.", + "type": "string", + "readOnly": true + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Assign.json b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Assign.json new file mode 100644 index 000000000000..352eacf788fc --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Assign.json @@ -0,0 +1,58 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]", + "aliasId": "[aliasId]", + "resourceId": "[resourceId]" + }, + "responses": { + "204": { + "body": {} + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request - Error message." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found - The requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "Unknown error - An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Create.json b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Create.json new file mode 100644 index 000000000000..173db30afe23 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Create.json @@ -0,0 +1,59 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]" + }, + "responses": { + "201": { + "headers": {}, + "body": { + "aliasId": "25084fb7-307a-4720-8f91-7952a0b91012" + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request - Error message." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found - The requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "Unknown error - An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Delete.json b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Delete.json new file mode 100644 index 000000000000..11adb1e66418 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Delete.json @@ -0,0 +1,57 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]", + "aliasId": "[aliasId]" + }, + "responses": { + "204": { + "body": {} + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request - One or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found - The requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "Unknown error - An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_List.json b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_List.json new file mode 100644 index 000000000000..e74d2c24197f --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_List.json @@ -0,0 +1,71 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]" + }, + "responses": { + "200": { + "body": { + "aliases": [ + { + "createdTimestamp": "2020-02-13T21:19:11+00:00", + "aliasId": "a8a4b8bb-ecf4-fb27-a618-f41721552766", + "resourceId": "e89aebb9-70a3-8fe1-32bb-1fbd0c725f14", + "lastUpdatedTimestamp": "2020-02-13T21:19:22+00:00" + }, + { + "createdTimestamp": "2020-02-13T21:19:11+00:00", + "aliasId": "1856dbfc-7a66-ee5a-bf8d-51dbfe1906f6", + "resourceId": null, + "lastUpdatedTimestamp": "2020-02-13T21:19:11+00:00" + } + ] + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request - One or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found - The requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "Unknown error - An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json new file mode 100644 index 000000000000..6f2f381712b8 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json @@ -0,0 +1,608 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Maps Dataset Service", + "version": "1.0", + "description": "APIs for managing datasets from uploaded data in Azure Maps." + }, + "host": "atlas.microsoft.com", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [ + "application/json", + "application/xml" + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "These are the [Azure Active Directory OAuth2](https://docs.microsoft.com/en-us/azure/active-directory/develop/v1-overview) Flows. When paired with [Azure Role Based Access](https://docs.microsoft.com/en-us/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.\n\nTo 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.\n\n#### Note\n* 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).\n* The `Authorization URL` is specific to the Azure public cloud instance. Sovereign clouds have unique Authorization URLs and Azure Active directory configurations. \n* 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.\n* Usage of the [Azure Maps Web SDK](https://aka.ms/amaadmc) allows for configuration based setup of an application for multiple use cases.\n* Currently Azure Active Directory [v1.0](https://docs.microsoft.com/en-us/azure/active-directory/develop/azure-ad-endpoint-comparison) tokens are supported.", + "scopes": { + "user_impersonation": "Impersonates a user's Azure Active Directory account." + } + }, + "apiKeyQuery": { + "type": "apiKey", + "description": "This is a shared key which is provisioned when creating an [Azure Maps resource](https://aka.ms/amauth) through the Azure management plane via Azure portal, Powershell, CLI, Azure SDKs, or REST APIs. With this key, any application is authorized to access all REST APIs. In other words, these can currently be treated as master keys to the account which they are issued for. For publicly exposed applications our recommendation is to use server to server access of Azure Maps REST APIs where this key can be securely stored.", + "name": "subscription-key", + "in": "query" + } + }, + "security": [ + { + "azure_auth": [] + }, + { + "apiKeyQuery": [] + } + ], + "responses": { + "400": { + "description": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "401": { + "description": "Access denied due to invalid subscription key or invalid Azure Active Directory bearer token. Make sure to provide a valid key for an active Azure subscription and Maps resource. Otherwise, verify the [WWW-Authenticate](https://tools.ietf.org/html/rfc6750#section-3.1) header for error code and description of the provided AAD bearer token.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + }, + "headers": { + "WWW-Authenticate": { + "type": "string", + "description": "Bearer realm=\"https://atlas.microsoft.com/\", error=\"invalid_token\", error_description=\"The access token expired\"" + } + } + }, + "403": { + "description": "Permission, capacity, or authentication issues.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "404": { + "description": "Not Found: the requested resource could not be found, but it may be available again in the future.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "500": { + "description": "An error occurred while processing the request. Please try again later.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "200Async": { + "description": "The operation's status response.", + "schema": { + "$ref": "#/definitions/LongRunningOperationResult" + } + }, + "201Async": { + "description": "The resource has been created successfully.", + "schema": { + "$ref": "#/definitions/LongRunningOperationResult" + }, + "headers": { + "Location": { + "type": "string", + "description": "A URI where details on the newly created resource can be found." + } + } + }, + "202Async": { + "description": "**Supported only for async request.**\nRequest Accepted: The request has been accepted for processing. Please use the URL in the Location Header to retry or access the results.", + "headers": { + "Location": { + "type": "string", + "description": "New URL to check for the results of the long running process." + } + } + } + }, + "parameters": { + "SubscriptionKey": { + "name": "subscription-key", + "description": "One of the Azure Maps keys provided from an Azure Map Account. Please refer to this [article](https://docs.microsoft.com/azure/azure-maps/how-to-manage-authentication) for details on how to manage authentication.", + "type": "string", + "in": "query", + "required": false, + "x-ms-parameter-location": "client" + }, + "ApiVersion": { + "name": "api-version", + "description": "Version number of Azure Maps API. Current version is 1.0", + "type": "string", + "in": "query", + "required": true, + "default": "1.0", + "x-ms-parameter-location": "client" + }, + "ConversionIdQuery": { + "name": "conversionId", + "description": "The unique ID used to create the dataset. The `conversionId` must have been obtained from a successful call to the Conversion Service Convert API and must be provided with multiple query parameters with same name (if more than one is provided). May not be provided in conjunction with the `udid` query parameter.", + "type": "string", + "in": "query", + "required": false, + "x-ms-parameter-location": "method" + }, + "UdidDataset": { + "name": "udid", + "description": "The unique data ID used to create the dataset. The `udid` must have been obtained from a successful call to the Data Service Upload API and must be provided with multiple query parameters with the same name (if more than one is provided). May not be provided in conjunction with `conversionId` query parameter.", + "type": "string", + "in": "query", + "required": false, + "x-ms-parameter-location": "method" + }, + "DescriptionDataset": { + "name": "description", + "description": "The description to be given to the dataset.", + "type": "string", + "in": "query", + "required": false, + "x-ms-parameter-location": "method" + }, + "DatasetId": { + "name": "datasetId", + "type": "string", + "in": "path", + "description": "The identifier for the dataset to query from.", + "required": true, + "x-ms-parameter-location": "method" + }, + "Type": { + "name": "type", + "type": "string", + "in": "query", + "description": "The type of data to create the dataset with.", + "enum": [ + "facility" + ], + "x-ms-enum": { + "name": "DatasetType", + "modelAsString": false, + "values": [ + { + "value": "facility", + "description": "Facility Maps data type." + } + ] + }, + "required": true, + "x-ms-parameter-location": "method" + }, + "ImportUdid": { + "name": "udid", + "description": "The unique data ID used to import data into the dataset. The `udid` must have been obtained from a successful call to the Data Service Upload API.", + "type": "string", + "in": "query", + "required": false, + "x-ms-parameter-location": "method" + }, + "ImportType": { + "name": "type", + "type": "string", + "in": "query", + "description": "The type of data to import into the dataset with.", + "enum": [ + "fixture" + ], + "x-ms-enum": { + "name": "ImportDataType", + "modelAsString": false, + "values": [ + { + "value": "fixture", + "description": "Area and point element data." + } + ] + }, + "required": true, + "x-ms-parameter-location": "method" + }, + "AppendDatasetId": { + "name": "datasetId", + "type": "string", + "in": "query", + "description": "The ID for the dataset to append to.", + "required": false, + "x-ms-parameter-location": "method" + }, + "StatusId": { + "name": "statusId", + "type": "string", + "in": "path", + "description": "The ID to query the status for the dataset create/import request.", + "required": true, + "x-ms-parameter-location": "method" + } + }, + "paths": { + "/dataset/create": { + "post": { + "x-publish": true, + "description": "**Dataset Create API**\n\n**Applies to:** S1 pricing tier.\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API \nand SDK. The Dataset APIs are part of Creator. This API allows the caller to create a dataset from data that \nwas uploaded to the Azure Maps Data Service.\n\nYou can use this API in a scenario like uploading a DWG zip package for a building, converting the zip package using \nthe Azure Maps Conversion Service, creating a dataset from the converted zip package. The created dataset can be \nused to create tilesets using the Azure Maps Tileset Service and can be queried via the Azure Maps WFS Service.\n\n## Submit Create Request\n\nTo create your dataset, you will use a `POST` request where the `conversionId` query parameter is an id that represents \nthe converted DWG zip package, the `type` parameter will describe the data type to use for the dataset, the `datasetId`\nparameter will describe if the provided data should be appended to a current dataset and, optionally, the \n`description` query parameter will contain a description (if description is not provided a default description will be \ngiven).\n\nThe Create API is a \n[long-running request](https://aka.ms/am-creator-lrt).", + "operationId": "Dataset_CreatePreview", + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-examples": { + "Create dataset from a converted CAD file provided by conversionId": { + "$ref": "./examples/Dataset_Create.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/ConversionIdQuery" + }, + { + "$ref": "#/parameters/UdidDataset" + }, + { + "$ref": "#/parameters/Type" + }, + { + "$ref": "#/parameters/AppendDatasetId" + }, + { + "$ref": "#/parameters/DescriptionDataset" + } + ], + "responses": { + "201": { + "$ref": "#/responses/201Async" + }, + "202": { + "$ref": "#/responses/202Async" + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + }, + "/dataset/import/{datasetId}": { + "patch": { + "x-publish": true, + "description": "**Dataset Import API**\n\n**Applies to:** S1 pricing tier.\n
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API \nand SDK. The Dataset APIs are part of Creator. This API allows the caller to bulk import data into a dataset \nfrom data that was uploaded to the Azure Maps Data service.
\n\n### Submit Import Request\n\nTo import data into your dataset, you will use a `PATCH` request where the `datasetId` query parameter is the \ndataset you want to import your data into, the `udid` query parameter is the data you want to import, and the `type` \nparameter will describe the data type to use for the import data.
\n\nThe Import API is a \n[long-running request](https://aka.ms/am-creator-lrt).", + "operationId": "Dataset_ImportPreview", + "x-ms-examples": { + "Import data into previously created dataset": { + "$ref": "./examples/Dataset_Import.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/DatasetId" + }, + { + "$ref": "#/parameters/ImportUdid" + }, + { + "$ref": "#/parameters/ImportType" + } + ], + "responses": { + "200": { + "$ref": "#/responses/200Async" + }, + "202": { + "$ref": "#/responses/202Async" + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + }, + "/dataset/{datasetId}": { + "delete": { + "x-publish": true, + "description": "**Dataset Delete API**\n\n**Applies to:** S1 pricing tier.\n
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Dataset APIs are part of Creator.\nThis API allows the caller to delete a previously created dataset.
\nYou can also use this API to delete old/unused datasets to create space for new Creator content.\n\n\n### Submit Delete Request\n\nTo delete your content you will issue a `DELETE` request where the path will contain the `datasetId` of the dataset to delete.
\n\n\n### Delete Data Response\n\nThe Delete API returns a HTTP `204 No Content` response if the dataset resource was deleted successfully.
", + "operationId": "Dataset_DeletePreview", + "x-ms-examples": { + "Delete previously created dataset": { + "$ref": "./examples/Dataset_Delete.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/DatasetId" + } + ], + "responses": { + "204": { + "description": "The dataset delete request completed successfully. The resource referenced by the `datasetId` was deleted from the server.", + "schema": { + "$ref": "#/definitions/DatasetDeleteResponse" + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + }, + "/dataset": { + "get": { + "x-publish": true, + "description": "**Dataset List API**\n\n**Applies to:** S1 pricing tier.\n
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Dataset APIs are part of Creator.\nThis API allows the caller to fetch a list of all previously successfully created datasets.\n\n\n### Submit List Request\n\nTo list all your datasets, you will issue a `GET` request with no additional parameters.
\n\n\n### List Data Response\n\nThe List API returns the complete list of all datasets in `json` format. The response contains the following fields (if they are not null or empty):\n > created - The timestamp the dataset was created.\n > datasetId - The id for the dataset.\n > description - The description for the dataset.\n > datasetSources - The source data that was used when the create request was issued.\n\nThe `datasetSources` describes the source data that was used when the create request was issued and contains the following elements (if they are not null or empty):\n > conversionIds - The list of `conversionId` (null if none were provided).\n > udids - The list of `udid` (null if none were provided).\n > appendDatasetId - The `datasetId` that was used for an append operation (null if none was used).\n > type - The type of data stored in the dataset that was created.\n\nHere's a sample response returning the `timestamp`, `datasetId`, `description`, and `datasetSources` of 3 dataset resources:\n\n
\n\n```json\n{\n \"datasets\": [\n {\n \"timestamp\": \"2020-01-01T22:50:48+00:00\",\n \"datasetId\": \"f6495f62-94f8-0ec2-c252-45626f82fcb2\",\n \"description\": \"Some description or comment for the dataset.\",\n \"datasetSources\": {\n \"conversionIds\": [\n \"15d21452-c9bb-27b6-5e79-743ca5c3205d\"\n ],\n \"type\": \"facility\"\n },\n \"status\": \"Succeeded\"\n },\n {\n \"timestamp\": \"2020-01-01T22:57:53+00:00\",\n \"datasetId\": \"8b1288fa-1958-4a2b-b68e-13a7i5af7d7c\",\n \"description\": \"Create from upload '0c1288fa-2058-4a1b-b68d-13a5f5af7d7c'.\",\n \"datasetSources\": {\n \"udids\": [\n \"0c1288fa-2058-4a1b-b68d-13a5f5af7d7c\"\n ],\n \"type\": \"facility\"\n },\n \"status\": \"Succeeded\"\n },\n {\n \"timestamp\": \"2020-01-01T20:39:36+00:00\",\n \"datasetId\": \"7c1288fa-2058-4a1b-b68f-13a6h5af7d7c\",\n \"description\": \"Some other description or comment for the dataset.\",\n \"datasetSources\": {\n \"conversionIds\": [\n \"15d21452-c9bb-27b6-5e79-743ca5c3205d\"\n ],\n \"appendDatasetId\": \"8b1288fa-1958-4a2b-b68e-13a7i5af7d7c\",\n \"type\": \"facility\"\n },\n \"status\": \"Succeeded\"\n }\n ]\n}\n```\n
", + "operationId": "Dataset_ListPreview", + "x-ms-examples": { + "List all the previously created datasets": { + "$ref": "./examples/Dataset_List.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + } + ], + "responses": { + "200": { + "description": "The list dataset request completed successfully. The response body contains a list of all the previously created datasets.", + "schema": { + "$ref": "#/definitions/DatasetListResponse" + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + } + }, + "definitions": { + "ODataErrorResponse": { + "type": "object", + "description": "This response object is returned when an error occurs in the Maps API.", + "properties": { + "error": { + "$ref": "#/definitions/ODataError" + } + } + }, + "ODataError": { + "type": "object", + "description": "This object is returned when an error occurs in the Maps API.", + "properties": { + "code": { + "type": "string", + "readOnly": true, + "description": "The ODataError code." + }, + "message": { + "type": "string", + "readOnly": true, + "description": "If available, a human readable description of the error." + }, + "details": { + "type": "array", + "items": { + "$ref": "#/definitions/ODataError" + } + }, + "target": { + "type": "string", + "readOnly": true, + "description": "If available, the target causing the error." + } + } + }, + "LongRunningOperationResult": { + "description": "The response model for a Long-Running Operations API.", + "type": "object", + "properties": { + "operationId": { + "description": "The Id for this long-running operation.", + "type": "string" + }, + "status": { + "description": "The status state of the request.", + "type": "string", + "enum": [ + "NotStarted", + "Running", + "Failed", + "Succeeded" + ], + "x-ms-enum": { + "name": "type", + "modelAsString": false, + "values": [ + { + "value": "NotStarted", + "description": "The request has not started processing yet." + }, + { + "value": "Running", + "description": "The request has started processing." + }, + { + "value": "Failed", + "description": "The request has one or more failures." + }, + { + "value": "Succeeded", + "description": "The request has successfully completed." + } + ] + }, + "readOnly": true + }, + "created": { + "description": "The created timestamp.", + "type": "string", + "readOnly": true + }, + "resourceLocation": { + "description": "The location URI for details about the created resource. This is only provided when the request was successfully completed.", + "type": "string", + "readOnly": true + }, + "error": { + "$ref": "#/definitions/ODataError" + }, + "warning": { + "$ref": "#/definitions/ODataError" + } + } + }, + "DatasetDeleteResponse": { + "description": "The response model for the Dataset Delete API. The response body will be empty signifying there's no content available for the `datasetId` anymore.", + "type": "object" + }, + "DatasetListResponse": { + "description": "The response model for the Dataset List API. The response body will contain a list of all the previously created datasets.", + "type": "object", + "properties": { + "datasets": { + "description": "A list of all the previously created datasets.", + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/DatasetDetailInfo" + } + } + } + }, + "DatasetDetailInfo": { + "description": "Detail information for the dataset.", + "type": "object", + "properties": { + "created": { + "description": "The created timestamp for the dataset.", + "type": "string", + "readOnly": true + }, + "datasetId": { + "description": "The id for the dataset.", + "type": "string", + "readOnly": true + }, + "description": { + "description": "The description for the dataset.", + "type": "string", + "readOnly": true + }, + "datasetSources": { + "$ref": "#/definitions/DatasetSources" + }, + "featureCounts": { + "description": "The feature counts for the dataset.", + "type": "object", + "readOnly": true + } + } + }, + "DatasetSources": { + "description": "Information about the details of the create request for the dataset.", + "type": "object", + "properties": { + "conversionIds": { + "description": "The list of `conversionId` that were used to create the dataset.", + "type": "array", + "readOnly": true, + "items": { + "type": "string" + } + }, + "udids": { + "description": "The list of `conversionId` that were used to create the dataset.", + "type": "array", + "readOnly": true, + "items": { + "type": "string" + } + }, + "appendDatasetId": { + "description": "The dataset that was appended to to create the current dataset.", + "type": "string", + "readOnly": true + }, + "type": { + "description": "The type of data stored in the dataset.", + "type": "string", + "readOnly": true + } + } + }, + "DatasetGetDetailsResponse": { + "$ref": "#/definitions/DatasetDetailInfo" + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Create.json b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Create.json new file mode 100644 index 000000000000..6d8513252576 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Create.json @@ -0,0 +1,73 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]", + "conversionId": "[conversionId]", + "type": "facility" + }, + "responses": { + "201": { + "headers": { + "Location": "https://atlas.microsoft.com/dataset/{datasetId}?api-version=1.0", + "Access-Control-Expose-Headers": "Location" + }, + "body": { + "operationId": "{operationId}", + "status": "Succeeded", + "created": "2020-01-02 1:02:03 AM +00:00", + "resourceLocation": "https://atlas.microsoft.com/dataset/{datasetId}?api-version=1.0" + } + }, + "202": { + "headers": { + "Location": "https://atlas.microsoft.com/dataset/operations/{operationId}?api-version=1.0", + "Access-Control-Expose-Headers": "Location" + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request - Error message." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found - The requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "Unknown error - An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Delete.json b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Delete.json new file mode 100644 index 000000000000..3ad9cf60de1c --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Delete.json @@ -0,0 +1,57 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]", + "datasetId": "[datasetId]" + }, + "responses": { + "204": { + "body": {} + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request - One or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found - The requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "Unknown error - An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Import.json b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Import.json new file mode 100644 index 000000000000..fa4cb9ca8950 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Import.json @@ -0,0 +1,71 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]", + "datasetId": "[conversionId]", + "udid": "[udid]", + "type": "fixture" + }, + "responses": { + "200": { + "headers": {}, + "body": { + "operationId": "{operationId}", + "status": "Succeeded", + "created": "2020-01-02 03:04:05 AM +00:00", + "resourceLocation": "https://atlas.microsoft.com/dataset/{datasetId}?api-version=1.0" + } + }, + "202": { + "headers": { + "Location": "https://atlas.microsoft.com/dataset/operations/{operationId}?api-version=1.0", + "Access-Control-Expose-Headers": "Location" + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request - Error message." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found - The requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "Unknown error - An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_List.json b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_List.json new file mode 100644 index 000000000000..4937c40e2e95 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_List.json @@ -0,0 +1,116 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]" + }, + "responses": { + "200": { + "body": { + "datasets": [ + { + "created": "2020-01-02 3:04:05 AM +00:00", + "datasetId": "f6495f62-94f8-0ec2-c252-45626f82fcb2", + "description": "Some description or comment for the dataset.", + "datasetSources": { + "conversionIds": [ + "15d21452-c9bb-27b6-5e79-743ca5c3205d" + ], + "type": "facility" + }, + "featureCounts": { + "directoryInfo": 1, + "category": 18, + "facility": 1, + "level": 6, + "unit": 775, + "opening": 471, + "areaElement": 496 + } + }, + { + "created": "2020-01-02 3:04:05 PM +00:00", + "datasetId": "8b1288fa-1958-4a2b-b68e-13a7i5af7d7c", + "description": "Create from upload '0c1288fa-2058-4a1b-b68d-13a5f5af7d7c'.", + "datasetSources": { + "udids": [ + "0c1288fa-2058-4a1b-b68d-13a5f5af7d7c" + ], + "type": "facility" + }, + "featureCounts": { + "directoryInfo": 1, + "category": 2, + "facility": 1, + "level": 6, + "unit": 19 + } + }, + { + "created": "2020-01-02 3:04:05 AM +00:00", + "datasetId": "7c1288fa-2058-4a1b-b68f-13a6h5af7d7c", + "description": "Some other description or comment for the dataset.", + "datasetSources": { + "conversionIds": [ + "15d21452-c9bb-27b6-5e79-743ca5c3205d" + ], + "appendDatasetId": "8b1288fa-1958-4a2b-b68e-13a7i5af7d7c", + "type": "facility" + }, + "featureCounts": { + "directoryInfo": 1, + "category": 1, + "facility": 1, + "level": 1, + "unit": 10 + } + } + ] + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request - One or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found - The requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "Unknown error - An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json new file mode 100644 index 000000000000..1d5486f6caba --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json @@ -0,0 +1,474 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Maps Conversion Service", + "version": "1.0", + "description": "APIs for converting DWG Packages in Azure Maps." + }, + "host": "atlas.microsoft.com", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [ + "application/json" + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "These are the [Azure Active Directory OAuth2](https://docs.microsoft.com/en-us/azure/active-directory/develop/v1-overview) Flows. When paired with [Azure Role Based Access](https://docs.microsoft.com/en-us/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.\n\nTo 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.\n\n#### Note\n* 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).\n* The `Authorization URL` is specific to the Azure public cloud instance. Sovereign clouds have unique Authorization URLs and Azure Active directory configurations. \n* 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.\n* Usage of the [Azure Maps Web SDK](https://aka.ms/amaadmc) allows for configuration based setup of an application for multiple use cases.\n* Currently Azure Active Directory [v1.0](https://docs.microsoft.com/en-us/azure/active-directory/develop/azure-ad-endpoint-comparison) tokens are supported.", + "scopes": { + "user_impersonation": "Impersonates a user's Azure Active Directory account." + } + }, + "apiKeyQuery": { + "type": "apiKey", + "description": "This is a shared key which is provisioned when creating an [Azure Maps resource](https://aka.ms/amauth) through the Azure management plane via Azure portal, Powershell, CLI, Azure SDKs, or REST APIs. With this key, any application is authorized to access all REST APIs. In other words, these can currently be treated as master keys to the account which they are issued for. For publicly exposed applications our recommendation is to use server to server access of Azure Maps REST APIs where this key can be securely stored.", + "name": "subscription-key", + "in": "query" + } + }, + "security": [ + { + "azure_auth": [] + }, + { + "apiKeyQuery": [] + } + ], + "responses": { + "400": { + "description": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "401": { + "description": "Access denied due to invalid subscription key or invalid Azure Active Directory bearer token. Make sure to provide a valid key for an active Azure subscription and Maps resource. Otherwise, verify the [WWW-Authenticate](https://tools.ietf.org/html/rfc6750#section-3.1) header for error code and description of the provided AAD bearer token.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + }, + "headers": { + "WWW-Authenticate": { + "type": "string", + "description": "Bearer realm=\"https://atlas.microsoft.com/\", error=\"invalid_token\", error_description=\"The access token expired\"" + } + } + }, + "403": { + "description": "Permission, capacity, or authentication issues.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "404": { + "description": "Not Found: the requested resource could not be found, but it may be available again in the future.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "500": { + "description": "An error occurred while processing the request. Please try again later.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "201Async": { + "description": "The resource has been created successfully.", + "schema": { + "$ref": "#/definitions/LongRunningOperationResult" + }, + "headers": { + "Location": { + "type": "string", + "description": "A URI where details on the newly created resource can be found." + } + } + }, + "202Async": { + "description": "**Supported only for async request.**\nRequest Accepted: The request has been accepted for processing. Please use the URL in the Location Header to retry or access the results.", + "headers": { + "Location": { + "type": "string", + "description": "New URL to check for the results of the long running process." + } + } + } + }, + "parameters": { + "ClientId": { + "name": "x-ms-client-id", + "description": "Specifies which account is intended for usage in conjunction with the Azure AD security model. It represents a unique ID for the Azure Maps account and can be retrieved from Azure Maps management plane Account API. To use Azure AD security in Azure Maps see the following [articles](https://aka.ms/amauthdetails) for guidance.", + "type": "string", + "in": "header", + "required": false, + "x-ms-parameter-location": "client" + }, + "SubscriptionKey": { + "name": "subscription-key", + "description": "One of the Azure Maps keys provided from an Azure Map Account. Please refer to this [article](https://docs.microsoft.com/azure/azure-maps/how-to-manage-authentication) for details on how to manage authentication.", + "type": "string", + "in": "query", + "required": false, + "x-ms-parameter-location": "client" + }, + "ApiVersion": { + "name": "api-version", + "description": "Version number of Azure Maps API. Current version is 1.0", + "type": "string", + "in": "query", + "required": true, + "default": "1.0", + "x-ms-parameter-location": "client" + }, + "UdidQuery": { + "name": "udid", + "description": "The unique data id for the content. The `udid` must have been obtained from a successful [Data Upload API](https://docs.microsoft.com/en-us/rest/api/maps/data/uploadpreview) call.", + "type": "string", + "in": "query", + "required": true, + "x-ms-parameter-location": "method" + }, + "ConversionId": { + "name": "conversionId", + "description": "The conversion id for the content. The `conversionId` must have been obtained from a successful [Conversion API](https://docs.microsoft.com/en-us/rest/api/maps/conversion/convertpreview) call.", + "type": "string", + "in": "path", + "required": true, + "x-ms-parameter-location": "method" + }, + "ConversionInputType": { + "name": "inputType", + "description": "Input type of the content being converted. Currently, only `DWG` type is supported.", + "type": "string", + "in": "query", + "required": true, + "enum": [ + "DWG" + ], + "x-ms-enum": { + "name": "ConversionInputType", + "modelAsString": false, + "values": [ + { + "value": "DWG", + "description": "DWG file format." + } + ] + }, + "x-ms-parameter-location": "method" + }, + "DescriptionDwgConversion": { + "name": "description", + "description": "User provided description of the content being converted.", + "type": "string", + "in": "query", + "required": false, + "x-ms-parameter-location": "method" + } + }, + "paths": { + "/conversion/convert": { + "post": { + "x-publish": true, + "description": "**Conversion Create API**\n\n**Applies to:** S1 pricing tier.
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and \nSDK. The Conversion API is part of Creator.
\n\nThe Conversion API lets the caller import a set of DWG design files as a zipped [Drawing Package](https://aka.ms/am-drawing-package) into Azure Maps. The [Drawing Package](https://aka.ms/am-drawing-package) should first be \nuploaded using the [Azure Maps Data Service](https://docs.microsoft.com/rest/api/maps/data). Once uploaded, use the \n`udid` returned by the [Data Upload API](https://docs.microsoft.com/rest/api/maps/data/uploadpreview) to call \nthis Conversion API.\n\n## Convert DWG package\n\nThe Conversion API performs a \n[long-running request](https://aka.ms/am-creator-lrt).\n\n## Debug DWG package issues\n\n\nDuring the Conversion process, if there are any issues with the DWG package [errors and warnings](https://aka.ms/am-conversion-errors) are provided in the response along with a *diagnostic package* to visualize \nand diagnose these issues. In case any issues are encountered with your DWG package, the Conversion operation status process as detailed \n[here](https://aka.ms/am-creator-lrt) returns the location of the *diagnostic\npackage* that can be downloaded by the caller to help them visualize and diagnose these issues. The *diagnostic package* location\ncan be found in the properties section of the conversion operation status response and looks like the following:\n\n```json\n{\n \"properties\": {\n \"diagnosticPackageLocation\": \"https://atlas.microsoft.com/mapdata/{DiagnosticPackageId}?api-version=1.0\" \n } \n}\n```\n\nThe *diagnostic package* can be downloaded by executing a `HTTP GET` request on the `diagnosticPackageLocation`.\nFor more details on how to use the tool to visualize and diagnose all the errors and warnings see [Drawing Error Visualizer](https://aka.ms/am-drawing-errors-visualizer).
\n\nA conversion operation will be marked as *success* if there are zero or more warnings but will be marked as *failed* if any errors are encountered. ", + "operationId": "Conversion_ConvertPreview", + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-examples": { + "Convert previously uploaded DWG Package": { + "$ref": "./examples/Conversion.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ClientId" + }, + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/UdidQuery" + }, + { + "$ref": "#/parameters/ConversionInputType" + }, + { + "$ref": "#/parameters/DescriptionDwgConversion" + } + ], + "responses": { + "201": { + "$ref": "#/responses/201Async" + }, + "202": { + "$ref": "#/responses/202Async" + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + }, + "/conversion": { + "get": { + "x-publish": true, + "description": "**Conversion List API**\n\n**Applies to:** S1 pricing tier.
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Conversion API is part of Creator.
\n\nThis API allows the caller to fetch a list of all successful data conversions submitted previously using the [Conversion API](https://docs.microsoft.com/en-us/rest/api/maps/conversion/convertpreview). \n\n### Submit List Request\n\nTo list all successful conversions you will issue a `GET` request with no additional parameters.\n\n### List Data Response\n\nThe Conversion List API returns the complete list of all conversion details in `json` format.
\n\nHere is a sample response returning the details of two successful conversion requests: \n\n
\n\n```json\n{\n \"conversions\": \n [\n {\n \"conversionId\": \"54398242-ea6c-1f31-4fa6-79b1ae0fc24d\",\n \"udid\": \"31838736-8b84-11ea-bc55-0242ac130003\",\n \"created\": \"5/19/2020 9:00:00 AM +00:00\",\n \"description\": \"User provided description.\",\n \"featureCounts\": {\n \"DIR\": 1,\n \"LVL\": 3,\n \"FCL\": 1,\n \"UNIT\": 150,\n \"CTG\": 8,\n \"AEL\": 0,\n \"OPN\": 10\n }\n },\n {\n \"conversionId\": \"2acf7d32-8b84-11ea-bc55-0242ac130003\",\n \"udid\": \"1214bc58-8b84-11ea-bc55-0242ac1300039\",\n \"created\": \"5/19/2020 9:00:00 AM +00:00\",\n \"description\": \"User provided description.\",\n \"featureCounts\": {\n \"DIR\": 1,\n \"LVL\": 3,\n \"FCL\": 1,\n \"UNIT\": 150,\n \"CTG\": 8,\n \"AEL\": 0,\n \"OPN\": 10\n }\n }\n ]\n}\n```\n\n
", + "operationId": "Conversion_ListPreview", + "x-ms-examples": { + "Returns a list of all the data processed by the Conversion Service for the account": { + "$ref": "./examples/List.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ClientId" + }, + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + } + ], + "responses": { + "200": { + "description": "List request completed successfully.", + "schema": { + "$ref": "#/definitions/ConversionListResponse" + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + }, + "/conversion/{conversionId}": { + "delete": { + "x-publish": true, + "description": "**Conversion Delete API**\n\n**Applies to:** S1 pricing tier.
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Delete API is part of Creator.
\n\nThis API allows the caller to delete any data conversions created previously using the [Conversion API](https://docs.microsoft.com/en-us/rest/api/maps/conversion/convertpreview).\n\n### Submit Delete Request\n\nTo delete your conversion data you will issue a `DELETE` request where the path will contain the `conversionId` of the data to delete.\n\n### Conversion Delete Response\n\nThe Conversion Delete API returns a HTTP `204 No Content` response with an empty body, if the converted data resources were deleted successfully.
\nA HTTP `400 Bad Request` error response will be returned if no resource associated with the passed-in `conversionId` is found. ", + "operationId": "Conversion_DeletePreview", + "x-ms-examples": { + "Delete previously converted content": { + "$ref": "./examples/Delete.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ClientId" + }, + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/ConversionId" + } + ], + "responses": { + "204": { + "description": "Conversion delete request completed successfully. The content for `conversionId` was deleted on the server.", + "schema": { + "$ref": "#/definitions/ConversionDeleteResponse" + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + } + }, + "definitions": { + "ODataErrorResponse": { + "type": "object", + "description": "This response object is returned when an error occurs in the Maps API.", + "properties": { + "error": { + "$ref": "#/definitions/ODataError" + } + } + }, + "ODataError": { + "type": "object", + "description": "This object is returned when an error occurs in the Maps API.", + "properties": { + "code": { + "type": "string", + "readOnly": true, + "description": "The ODataError code." + }, + "message": { + "type": "string", + "readOnly": true, + "description": "If available, a human readable description of the error." + }, + "details": { + "type": "array", + "items": { + "$ref": "#/definitions/ODataError" + } + }, + "target": { + "type": "string", + "readOnly": true, + "description": "If available, the target causing the error." + } + } + }, + "LongRunningOperationResult": { + "description": "The response model for a Long-Running Operations API.", + "type": "object", + "properties": { + "operationId": { + "description": "The Id for this long-running operation.", + "type": "string" + }, + "status": { + "description": "The status state of the request.", + "type": "string", + "enum": [ + "NotStarted", + "Running", + "Failed", + "Succeeded" + ], + "x-ms-enum": { + "name": "type", + "modelAsString": false, + "values": [ + { + "value": "NotStarted", + "description": "The request has not started processing yet." + }, + { + "value": "Running", + "description": "The request has started processing." + }, + { + "value": "Failed", + "description": "The request has one or more failures." + }, + { + "value": "Succeeded", + "description": "The request has successfully completed." + } + ] + }, + "readOnly": true + }, + "created": { + "description": "The created timestamp.", + "type": "string", + "readOnly": true + }, + "resourceLocation": { + "description": "The location URI for details about the created resource. This is only provided when the request was successfully completed.", + "type": "string", + "readOnly": true + }, + "error": { + "$ref": "#/definitions/ODataError" + }, + "warning": { + "$ref": "#/definitions/ODataError" + } + } + }, + "ConversionListResponse": { + "description": "The response model for the Conversion List API.", + "type": "object", + "properties": { + "conversions": { + "description": "A list of all the previously submitted conversion requests.", + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/ConversionListDetailInfo" + } + } + } + }, + "ConversionListDetailInfo": { + "description": "Detail information for the conversion requests.", + "type": "object", + "properties": { + "conversionId": { + "description": "A unique id that represents the artifact of a _successfully_ completed conversion process.", + "type": "string", + "readOnly": true + }, + "udid": { + "description": "The unique id of the content provided to create this conversion.", + "type": "string", + "readOnly": true + }, + "created": { + "description": "The date and time of this conversion.", + "type": "string", + "readOnly": true + }, + "description": { + "description": "User provided description of the content being converted.", + "type": "string", + "readOnly": true + }, + "featureCounts": { + "description": "A summary of feature counts in this conversion.", + "type": "object", + "readOnly": true + } + } + }, + "ConversionDeleteResponse": { + "description": "The response model for the Conversion Delete API. The response body will be empty signifying there's no content available for the `conversionId` anymore.", + "type": "object" + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/Conversion.json b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/Conversion.json new file mode 100644 index 000000000000..b9af945a36d8 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/Conversion.json @@ -0,0 +1,73 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]", + "udid": "25084fb7-307a-4720-8f91-7952a0b91012", + "inputType": "DWG" + }, + "responses": { + "201": { + "headers": { + "Location": "https://atlas.microsoft.com/conversion/{conversionId}?api-version=1.0", + "Access-Control-Expose-Headers": "Location" + }, + "body": { + "operationId": "{operationId}", + "status": "Succeeded", + "created": "2020-01-02 1:02:03 AM +00:00", + "resourceLocation": "https://atlas.microsoft.com/conversion/{conversionId}?api-version=1.0" + } + }, + "202": { + "headers": { + "Location": "https://atlas.microsoft.com/conversion/operations/{operationId}?api-version=1.0", + "Access-Control-Expose-Headers": "Location" + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/Delete.json b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/Delete.json new file mode 100644 index 000000000000..a0858462d16c --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/Delete.json @@ -0,0 +1,57 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]", + "conversionId": "99884fb7-87a9-0920-7f93-7952a0b91012" + }, + "responses": { + "204": { + "body": {} + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/List.json b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/List.json new file mode 100644 index 000000000000..357a0d0ab352 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/List.json @@ -0,0 +1,89 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]" + }, + "responses": { + "200": { + "body": { + "conversions": [ + { + "conversionId": "54398242-ea6c-1f31-4fa6-79b1ae0fc24d", + "udid": "31838736-8b84-11ea-bc55-0242ac130003", + "created": "5/19/2020 9:00:00 AM +00:00", + "description": "User provided description.", + "featureCounts": { + "directoryInfo": 1, + "level": 3, + "facility": 1, + "unit": 150, + "category": 8, + "areaElement": 0, + "opening": 10 + } + }, + { + "conversionId": "2acf7d32-8b84-11ea-bc55-0242ac130003", + "udid": "1214bc58-8b84-11ea-bc55-0242ac1300039", + "created": "5/19/2020 9:00:00 AM +00:00", + "description": "User provided description.", + "featureCounts": { + "directoryInfo": 1, + "level": 3, + "facility": 1, + "unit": 150, + "category": 8, + "areaElement": 0, + "opening": 10 + } + } + ] + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/CreateStateset.json b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/CreateStateset.json new file mode 100644 index 000000000000..4867a31308b1 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/CreateStateset.json @@ -0,0 +1,116 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]", + "datasetId": "5d34fbe8-87b7-f7c0-3144-c50e003a3c75", + "statesetCreateRequestBody": { + "styles": [ + { + "keyname": "s1", + "type": "boolean", + "rules": [ + { + "true": "#FF0000", + "false": "#00FF00" + } + ] + }, + { + "keyname": "s2", + "type": "number", + "rules": [ + { + "range": { + "exclusiveMaximum": 50 + }, + "color": "#343deb" + }, + { + "range": { + "minimum": 50, + "exclusiveMaximum": 70 + }, + "color": "#34ebb1" + }, + { + "range": { + "minimum": 70, + "exclusiveMaximum": 90 + }, + "color": "#eba834" + }, + { + "range": { + "minimum": 90 + }, + "color": "#eb3434" + } + ] + }, + { + "keyname": "s3", + "type": "string", + "rules": [ + { + "stateValue1": "#FF0000", + "stateValue2": "#FF00AA", + "stateValueN": "#00FF00" + } + ] + } + ] + } + }, + "responses": { + "200": { + "body": { + "statesetId": "b24bdb73-1305-3212-1909-a428d937b64f" + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/DeleteFeatureState.json b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/DeleteFeatureState.json new file mode 100644 index 000000000000..86a97a62d209 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/DeleteFeatureState.json @@ -0,0 +1,66 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]", + "statesetId": "b24bdb73-1305-3212-1909-a428d937b64", + "featureId": "SPC4709", + "stateKeyName": "keyName1" + }, + "responses": { + "200": {}, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "409": { + "headers": {}, + "body": { + "error": { + "code": "409 Conflict", + "message": "The request could not be completed due to a conflict with the current state of the resource." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/DeleteStateset.json b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/DeleteStateset.json new file mode 100644 index 000000000000..e6bf9ebe20a6 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/DeleteStateset.json @@ -0,0 +1,55 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]", + "statesetId": "b24bdb73-1305-3212-1909-a428d937b64f" + }, + "responses": { + "204": {}, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/GetStates.json b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/GetStates.json new file mode 100644 index 000000000000..e581ce3b7b5d --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/GetStates.json @@ -0,0 +1,66 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]", + "statesetId": "b24bdb73-1305-3212-1909-a428d937b64", + "featureId": "SPC4709" + }, + "responses": { + "200": { + "body": { + "states": [ + { + "keyName": "s1", + "value": true, + "eventTimestamp": "2019-08-16 13:01" + } + ] + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/GetStateset.json b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/GetStateset.json new file mode 100644 index 000000000000..5d2a45831fbf --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/GetStateset.json @@ -0,0 +1,117 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]", + "statesetId": "b24bdb73-1305-3212-1909-a428d937b64" + }, + "responses": { + "200": { + "body": { + "datasetIdList": [ + "8d700cc7-fd2c-4e21-b402-ad3f5e524f36" + ], + "statesetStyle": { + "styles": [ + { + "keyName": "s1", + "type": "boolean", + "rules": [ + { + "true": "#FFFF00", + "false": "#FFFFFF" + } + ] + }, + { + "keyName": "s2", + "type": "number", + "rules": [ + { + "range": { + "minimum": null, + "maximum": null, + "exclusiveMinumum": null, + "exclusiveMaximum": "50" + }, + "color": "#343deb" + }, + { + "range": { + "minimum": "50", + "maximum": null, + "exclusiveMinumum": null, + "exclusiveMaximum": "69" + }, + "color": "#34ebb1" + }, + { + "range": { + "minimum": "69", + "maximum": null, + "exclusiveMinumum": null, + "exclusiveMaximum": "90" + }, + "color": "#eba834" + }, + { + "range": { + "minimum": "90", + "maximum": null, + "exclusiveMinumum": null, + "exclusiveMaximum": null + }, + "color": "#eb3434" + } + ] + } + ] + } + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/Stateset_List.json b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/Stateset_List.json new file mode 100644 index 000000000000..bf547d808b57 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/Stateset_List.json @@ -0,0 +1,121 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]" + }, + "responses": { + "200": { + "body": { + "statesetDetailList": [ + { + "statesetId": "09abcdf8-cad0-b3dd-a38f-d5ee3cff5eea", + "datasetIdList": [ + "8d700cc7-fd2c-4e21-b402-ad3f5e524f36" + ], + "statesetStyle": { + "styles": [ + { + "keyName": "s1", + "type": "boolean", + "rules": [ + { + "true": "#0FFF00", + "false": "#00FFF0" + } + ] + }, + { + "keyName": "s2", + "type": "number", + "rules": [ + { + "range": { + "minimum": null, + "maximum": null, + "exclusiveMinumum": null, + "exclusiveMaximum": "50" + }, + "color": "#343deb" + }, + { + "range": { + "minimum": "50", + "maximum": null, + "exclusiveMinumum": null, + "exclusiveMaximum": "69" + }, + "color": "#34ebb1" + }, + { + "range": { + "minimum": "69", + "maximum": null, + "exclusiveMinumum": null, + "exclusiveMaximum": "90" + }, + "color": "#eba834" + }, + { + "range": { + "minimum": "90", + "maximum": null, + "exclusiveMinumum": null, + "exclusiveMaximum": null + }, + "color": "#eb3434" + } + ] + } + ] + } + } + ] + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/UpdateStates.json b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/UpdateStates.json new file mode 100644 index 000000000000..d19d997f16f9 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/UpdateStates.json @@ -0,0 +1,65 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]", + "statesetId": "b24bdb73-1305-3212-1909-a428d937b64", + "featureId": "SPC4709", + "featureStateUpdateRequestBody": { + "states": [ + { + "keyName": "s1", + "value": true, + "eventTimestamp": "2019-08-16 13:01" + } + ] + } + }, + "responses": { + "200": {}, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/UpdateStateset.json b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/UpdateStateset.json new file mode 100644 index 000000000000..e540bcda431a --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/UpdateStateset.json @@ -0,0 +1,101 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]", + "statesetId": "b24bdb73-1305-3212-1909-a428d937b64", + "statesetStyleUpdateRequestBody": { + "styles": [ + { + "keyname": "s1", + "type": "boolean", + "rules": [ + { + "true": "#FFFF00", + "false": "#FFFFFF" + } + ] + }, + { + "keyname": "s2", + "type": "number", + "rules": [ + { + "range": { + "exclusiveMaximum": 50 + }, + "color": "#343deb" + }, + { + "range": { + "minimum": 50, + "exclusiveMaximum": 69 + }, + "color": "#34ebb1" + }, + { + "range": { + "minimum": 69, + "exclusiveMaximum": 90 + }, + "color": "#eba834" + }, + { + "range": { + "minimum": 90 + }, + "color": "#eb3434" + } + ] + } + ] + } + }, + "responses": { + "200": {}, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/featurestate.json b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/featurestate.json new file mode 100644 index 000000000000..5f16128d33da --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/featurestate.json @@ -0,0 +1,841 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Maps Feature State Service", + "version": "1.0", + "description": "APIs for managing the dynamic feature states in Azure Maps." + }, + "host": "atlas.microsoft.com", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [ + "application/json" + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "These are the [Azure Active Directory OAuth2](https://docs.microsoft.com/en-us/azure/active-directory/develop/v1-overview) Flows. When paired with [Azure Role Based Access](https://docs.microsoft.com/en-us/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.\n\nTo 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.\n\n#### Note\n* 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).\n* The `Authorization URL` is specific to the Azure public cloud instance. Sovereign clouds have unique Authorization URLs and Azure Active directory configurations. \n* 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.\n* Usage of the [Azure Maps Web SDK](https://aka.ms/amaadmc) allows for configuration based setup of an application for multiple use cases.\n* Currently Azure Active Directory [v1.0](https://docs.microsoft.com/en-us/azure/active-directory/develop/azure-ad-endpoint-comparison) tokens are supported.", + "scopes": { + "user_impersonation": "Impersonates a user's Azure Active Directory account." + } + }, + "apiKeyQuery": { + "type": "apiKey", + "description": "This is a shared key which is provisioned when creating an [Azure Maps resource](https://aka.ms/amauth) through the Azure management plane via Azure portal, Powershell, CLI, Azure SDKs, or REST APIs. With this key, any application is authorized to access all REST APIs. In other words, these can currently be treated as master keys to the account which they are issued for. For publicly exposed applications our recommendation is to use server to server access of Azure Maps REST APIs where this key can be securely stored.", + "name": "subscription-key", + "in": "query" + } + }, + "security": [ + { + "azure_auth": [] + }, + { + "apiKeyQuery": [] + } + ], + "responses": { + "400": { + "description": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "401": { + "description": "Access denied due to invalid subscription key or invalid Azure Active Directory bearer token. Make sure to provide a valid key for an active Azure subscription and Maps resource. Otherwise, verify the [WWW-Authenticate](https://tools.ietf.org/html/rfc6750#section-3.1) header for error code and description of the provided AAD bearer token.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + }, + "headers": { + "WWW-Authenticate": { + "type": "string", + "description": "Bearer realm=\"https://atlas.microsoft.com/\", error=\"invalid_token\", error_description=\"The access token expired\"" + } + } + }, + "403": { + "description": "Permission, capacity, or authentication issues.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "404": { + "description": "Not Found: the requested resource could not be found, but it may be available again in the future.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "409": { + "description": "The request could not be completed due to a conflict with the current state of the resource. Likely caused by a parallel update to the same resource.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "500": { + "description": "An error occurred while processing the request. Please try again later.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + } + }, + "parameters": { + "SubscriptionKey": { + "name": "subscription-key", + "description": "One of the Azure Maps keys provided from an Azure Map Account. Please refer to this [article](https://docs.microsoft.com/azure/azure-maps/how-to-manage-authentication) for details on how to manage authentication.", + "type": "string", + "in": "query", + "required": false, + "x-ms-parameter-location": "client" + }, + "ApiVersion": { + "name": "api-version", + "description": "Version number of Azure Maps API. Current version is 1.0", + "type": "string", + "in": "query", + "required": true, + "default": "1.0", + "x-ms-parameter-location": "client" + }, + "DatasetIdForCreate": { + "name": "datasetId", + "description": "The datasetId must have been obtained from a successful [Dataset Create API](https://review.docs.microsoft.com/en-us/rest-staging/api/maps-master/dataset/createpreview?branch=lbs) call.", + "type": "string", + "in": "query", + "required": true, + "x-ms-parameter-location": "method" + }, + "StatesetId": { + "name": "statesetId", + "description": "The stateset id that was created.", + "type": "string", + "in": "query", + "required": true, + "x-ms-parameter-location": "method" + }, + "StatesetIdInPath": { + "name": "statesetId", + "description": "The stateset id that was created.", + "type": "string", + "in": "path", + "required": true, + "x-ms-parameter-location": "method" + }, + "FeatureIdSet": { + "name": "featureId", + "description": "The id of a feature in the given dataset. If the featureId is not present in the dataset, Bad Request response will be returned.", + "type": "string", + "in": "query", + "required": true, + "x-ms-parameter-location": "method" + }, + "FeatureIdGet": { + "name": "featureId", + "description": "The id of a feature in the given stateset. If no state was set for the featureId in the stateset earlier, Bad Request response will be returned.", + "type": "string", + "in": "query", + "required": true, + "x-ms-parameter-location": "method" + }, + "FeatureIdDelete": { + "name": "featureId", + "description": "The id of a feature in the given stateset. If no state was set for the featureId in the stateset earlier, Bad Request response will be returned.", + "type": "string", + "in": "query", + "required": true, + "x-ms-parameter-location": "method" + }, + "StateKeyNameDelete": { + "name": "stateKeyName", + "description": "The Name of the state to be deleted.", + "type": "string", + "in": "query", + "required": true, + "x-ms-parameter-location": "method" + } + }, + "paths": { + "/featureState/stateset/{statesetId}": { + "get": { + "x-publish": true, + "description": "**Applies to:** S1 pricing tier.\n
\n\nThis GET API allows the user to get the stateset Information.\n\nThe stateset Information includes the datasetId associated to the stateset, and the styles of that stateset.", + "operationId": "FeatureState_GetStatesetPreview", + "x-ms-examples": { + "Get stateset information with a statesetId": { + "$ref": "./examples/GetStateset.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/StatesetIdInPath" + } + ], + "responses": { + "200": { + "description": "Get request completed successfully.", + "schema": { + "$ref": "#/definitions/StatesetGetResponse" + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + }, + "delete": { + "x-publish": true, + "description": "**Applies to:** S1 pricing tier.
This DELETE API allows the user to delete the stateset and the associated data.", + "operationId": "FeatureState_DeleteStatesetPreview", + "x-ms-examples": { + "Delete an existing stateset": { + "$ref": "./examples/DeleteStateset.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/StatesetIdInPath" + } + ], + "responses": { + "204": { + "description": "Stateset Deleted." + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + }, + "put": { + "x-publish": true, + "description": "**Applies to:** S1 pricing tier.\n
\n\nThis PUT API allows the user to update the stateset style rules.", + "operationId": "FeatureState_PutStatesetPreview", + "x-ms-examples": { + "Update stateset style rules with a statesetId": { + "$ref": "./examples/UpdateStateset.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/StatesetIdInPath" + }, + { + "name": "statesetStyleUpdateRequestBody", + "in": "body", + "description": "The stateset style JSON data. Only style rules are allowed to be updated, update on keyname and type is not allowed.", + "required": true, + "schema": { + "$ref": "#/definitions/StylesObject" + } + } + ], + "responses": { + "200": { + "description": "Stateset styles are updated successfully." + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + }, + "/featureState/stateset": { + "post": { + "x-publish": true, + "description": "**Applies to:** S1 pricing tier.\n
\n\nThis POST API allows the user to create a new Stateset and define stateset style using request body.\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Feature State API is part of Creator. \n\nThe Feature State service allows the user to update the states of a feature and query them to be used in other services. The dynamic properties of a feature that don't belong to the dataset are referred to as *states* here.\n\nThis Feature State service pivot on the Stateset. Like Tileset, Stateset encapsulates the storage mechanism for feature states for a dataset.\n\nOnce the stateset is created, users can use that statesetId to post feature state updates and retrieve the current feature states. A feature can have only one state at a given point in time. \n\nFeature state is defined by the key name, value and the timestamp. When a feature state update is posted to Azure Maps, the state value gets updated only if the provided state’s timestamp is later than the stored timestamp. \n\nAzure Maps MapControl provides a way to use these feature states to style the features. Please refer to the State Tile documentation for more information.", + "operationId": "FeatureState_CreateStatesetPreview", + "x-ms-examples": { + "Create a new stateset with a datasetId": { + "$ref": "./examples/CreateStateset.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/DatasetIdForCreate" + }, + { + "name": "statesetCreateRequestBody", + "in": "body", + "description": "The stateset style JSON data.", + "required": true, + "schema": { + "$ref": "#/definitions/StylesObject" + } + } + ], + "responses": { + "200": { + "description": "Stateset created.", + "schema": { + "$ref": "#/definitions/StatesetCreatedResponse" + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + }, + "get": { + "x-publish": true, + "description": "**Applies to:** S1 pricing tier.
This API allows the caller to fetch a list of all previously successfully created statesets.", + "operationId": "FeatureState_ListStatesetPreview", + "x-ms-examples": { + "List all the previously created statesets": { + "$ref": "./examples/Stateset_List.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + } + ], + "responses": { + "200": { + "description": "The list stateset request completed successfully. The response body contains a list of all the previously created statesets.", + "schema": { + "$ref": "#/definitions/StatesetListResponse" + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + }, + "/featureState/state": { + "get": { + "x-publish": true, + "operationId": "FeatureState_GetStatesPreview", + "description": "**Applies to:** S1 pricing tier.
This API returns the current state information associated with the given feature in the given stateset.", + "x-ms-examples": { + "Get the current states of a feature": { + "$ref": "./examples/GetStates.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/StatesetId" + }, + { + "$ref": "#/parameters/FeatureIdGet" + } + ], + "responses": { + "200": { + "description": "Get request completed successfully.", + "schema": { + "$ref": "#/definitions/FeatureStatesStructure" + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + }, + "post": { + "x-publish": true, + "operationId": "FeatureState_UpdateStatesPreview", + "description": "**Applies to:** S1 pricing tier.
\nThis POST API allows the user to update the state of the given feature in the given stateset.", + "x-ms-examples": { + "Update the states of a feature": { + "$ref": "./examples/UpdateStates.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/StatesetId" + }, + { + "$ref": "#/parameters/FeatureIdSet" + }, + { + "name": "featureStateUpdateRequestBody", + "in": "body", + "description": "The feature state JSON data. A feature can have only one state at a given point in time. The specified state keyname must have been defined during the stateset creation.", + "required": true, + "schema": { + "$ref": "#/definitions/FeatureStatesStructure" + } + } + ], + "responses": { + "200": { + "description": "Feature states are updated successfully." + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + }, + "delete": { + "x-publish": true, + "operationId": "FeatureState_DeleteStatePreview", + "description": "**Applies to:** S1 pricing tier.
This API deletes the state information identified by the StateKeyName parameter for the feature identified by the FeatureId parameter in the the stateset.", + "x-ms-examples": { + "Delete the given feature state": { + "$ref": "./examples/DeleteFeatureState.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/StatesetId" + }, + { + "$ref": "#/parameters/FeatureIdDelete" + }, + { + "$ref": "#/parameters/StateKeyNameDelete" + } + ], + "responses": { + "200": { + "description": "Feature states deleted successfully." + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "409": { + "$ref": "#/responses/409" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + } + }, + "definitions": { + "ODataErrorResponse": { + "type": "object", + "description": "This response object is returned when an error occurs in the Maps API.", + "properties": { + "error": { + "$ref": "#/definitions/ODataError" + } + } + }, + "ODataError": { + "type": "object", + "description": "This object is returned when an error occurs in the Maps API.", + "properties": { + "code": { + "type": "string", + "readOnly": true, + "description": "The ODataError code." + }, + "message": { + "type": "string", + "readOnly": true, + "description": "If available, a human readable description of the error." + }, + "details": { + "type": "array", + "items": { + "$ref": "#/definitions/ODataError" + } + }, + "target": { + "type": "string", + "readOnly": true, + "description": "If available, the target causing the error." + } + } + }, + "StatesetGetResponse": { + "description": "The response model for the successful Stateset Get API.", + "type": "object", + "properties": { + "datasetIdList": { + "description": "Dataset ID associated with the stateset.", + "type": "array", + "items": { + "type": "string" + } + }, + "statesetStyle": { + "$ref": "#/definitions/StylesObject" + } + } + }, + "StatesetListResponse": { + "description": "The response model for the successful Stateset List API.", + "type": "object", + "properties": { + "statesetDetailList": { + "description": "A list of statesets information.", + "type": "array", + "items": { + "$ref": "#/definitions/StatesetInfoObject" + } + } + } + }, + "StatesetInfoObject": { + "description": "The stateset information detail.", + "type": "object", + "properties": { + "statesetId": { + "description": "The stateset ID of this stateset.", + "type": "string" + }, + "datasetIdList": { + "description": "Dataset ID associated with the stateset.", + "type": "array", + "items": { + "type": "string" + } + }, + "statesetStyle": { + "$ref": "#/definitions/StylesObject" + } + } + }, + "StatesetCreatedResponse": { + "description": "The response model for the successful Stateset Create API.", + "type": "object", + "properties": { + "statesetId": { + "description": "The ID for the new stateset created.", + "type": "string", + "readOnly": true + } + } + }, + "FeatureStatesStructure": { + "description": "The feature states model for a feature.", + "type": "object", + "properties": { + "states": { + "description": "The feature states array.", + "type": "array", + "items": { + "$ref": "#/definitions/FeatureStateObject" + } + } + } + }, + "FeatureStateObject": { + "description": "Single feature state model.", + "type": "object", + "properties": { + "keyName": { + "description": "Feature state Keyname.", + "type": "string" + }, + "value": { + "description": "Value for the feature state.", + "type": "object" + }, + "eventTimestamp": { + "description": "Timestamp when the feature state was captured.", + "type": "string" + } + } + }, + "StylesObject": { + "description": "The styles model.", + "type": "object", + "properties": { + "styles": { + "description": "An array of stateset styles. The style rule could be a numeric or string or a boolean type style rule. Refer to NumberRuleObject, StringRuleObject and BooleanRuleObject definitions [here](https://aka.ms/AzureMapsStatesetStylesObject). ", + "type": "array", + "items": { + "$ref": "#/definitions/StyleObject" + } + } + } + }, + "StyleObject": { + "description": "The stateset style model. The style rule could be a numeric type style rule or a boolean type style rule. Refer to NumberRuleObject, StringRuleObject and BooleanRuleObject definitions [here](https://aka.ms/AzureMapsStatesetStylesObject). ", + "type": "object" + }, + "NumberRuleObject": { + "description": "The numeric rule", + "type": "object", + "properties": { + "range": { + "$ref": "#/definitions/RangeObject" + }, + "color": { + "description": "Color is a JSON string in a variety of permitted formats, HTML-style hex values, RGB (\"#ff0\", \"#ffff00\", \"rgb(255, 255, 0)\"), RGBA (\"rgba(255, 255, 0, 1)\"), HSL(\"hsl(100, 50%, 50%)\"), and HSLA(\"hsla(100, 50%, 50%, 1)\"). Predefined HTML colors names, like yellow and blue, are also permitted.", + "type": "string" + } + } + }, + "RangeObject": { + "description": "The numeric value range for this style rule, If the value is in the range, all the conditions must hold true.", + "type": "object", + "properties": { + "minimum": { + "description": "All the number x that x ≥ minimum.", + "type": "number", + "format": "double" + }, + "maximum": { + "description": "All the number x that x ≤ maximum.", + "type": "number", + "format": "double" + }, + "exclusiveMinimum": { + "description": "All the number x that x > exclusiveMinimum.", + "type": "number", + "format": "double" + }, + "exclusiveMaximum": { + "description": "All the number x that x < exclusiveMaximum.", + "type": "number", + "format": "double" + } + } + }, + "BooleanRuleObject": { + "description": "the boolean rule", + "type": "object", + "properties": { + "true": { + "description": "The color when value is true.", + "type": "string" + }, + "false": { + "description": "The color when value is false.", + "type": "string" + } + } + }, + "StringRuleObject": { + "description": "The string rule. The string value matching is case sensitive. If a feature's state doesn't match any of the values defined here, that feature will not have any dynamic style. If duplicate string values are given, the first one takes precedence.", + "type": "object", + "properties": { + "stateValue1": { + "description": "The color when value string is stateValue1.", + "type": "string" + }, + "stateValue2": { + "description": "The color when value string is stateValue2.", + "type": "string" + }, + "stateValueN": { + "description": "The color when value string is stateValueN.", + "type": "string" + } + } + }, + "StyleRuleBase": { + "description": "contains common properties for numeric, string and boolean style rules.", + "discriminator": "type", + "required": [ + "keyName", + "type" + ], + "properties": { + "keyName": { + "description": "Stateset style key name. Key names are random strings but they should be unique inside style array.", + "type": "string" + }, + "type": { + "description": "The type of stateset style.", + "type": "string", + "enum": [ + "number", + "boolean", + "string" + ] + } + } + }, + "BooleanTypeStyleRule": { + "description": "the boolean type style rule object.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/StyleRuleBase" + } + ], + "properties": { + "rules": { + "description": "Boolean style rules.", + "type": "array", + "items": { + "$ref": "#/definitions/BooleanRuleObject" + } + } + } + }, + "NumberTypeStyleRule": { + "description": "The numeric type style rule object.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/StyleRuleBase" + } + ], + "properties": { + "rules": { + "description": "Numeric style rules.", + "type": "array", + "items": { + "$ref": "#/definitions/NumberRuleObject" + } + } + } + }, + "StringTypeStyleRule": { + "description": "The string type style rule object.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/StyleRuleBase" + } + ], + "properties": { + "rules": { + "description": "String style rules.", + "type": "array", + "items": { + "$ref": "#/definitions/StringRuleObject" + } + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/Create.json b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/Create.json new file mode 100644 index 000000000000..8767d242b699 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/Create.json @@ -0,0 +1,72 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]", + "datasetId": "[dataset-Id]" + }, + "responses": { + "201": { + "headers": { + "Location": "https://atlas.microsoft.com/tileset/{tilesetId}?api-version=1.0", + "Access-Control-Expose-Headers": "Location" + }, + "body": { + "operationId": "{operationId}", + "status": "Succeeded", + "created": "2020-01-02 1:02:03 AM +00:00", + "resourceLocation": "https://atlas.microsoft.com/tileset/{tilesetId}?api-version=1.0" + } + }, + "202": { + "headers": { + "Location": "https://atlas.microsoft.com/tileset/operations/{operationId}?api-version=1.0", + "Access-Control-Expose-Headers": "Location" + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/Delete.json b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/Delete.json new file mode 100644 index 000000000000..8f36f5a7d813 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/Delete.json @@ -0,0 +1,57 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]", + "tilesetId": "25084fb7-307a-4720-8f91-7952a0b91012" + }, + "responses": { + "204": { + "body": {} + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/List.json b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/List.json new file mode 100644 index 000000000000..382cb4025edf --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/List.json @@ -0,0 +1,85 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]" + }, + "responses": { + "200": { + "body": { + "tilesets": [ + { + "tilesetId": "d8fa86de-bb0f-4a02-a6ff-62ae7545dd84", + "datasetId": "63b18a6b-ac35-4b23-a1d9-ffa1003ad50b", + "description": "My first tileset", + "minZoom": 16, + "maxZoom": 18, + "bbox": [ + -122.13595, + 47.636524, + -122.1329, + 47.637525 + ] + }, + { + "tilesetId": "b8dca8b3-8aad-4afe-abd6-0efe37b5a2e3", + "datasetId": "c0a01139-662e-4d5a-bf5f-92ea4a292aad", + "description": "My second tileset", + "minZoom": 19, + "maxZoom": 19, + "bbox": [ + -122.13595, + 47.636524, + -122.1329, + 47.637525 + ] + } + ] + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json new file mode 100644 index 000000000000..fa4aaaf6ef44 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json @@ -0,0 +1,479 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Maps Tileset Service", + "version": "1.0", + "description": "APIs for managing Tilesets." + }, + "host": "atlas.microsoft.com", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [ + "application/json" + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "These are the [Azure Active Directory OAuth2](https://docs.microsoft.com/en-us/azure/active-directory/develop/v1-overview) Flows. When paired with [Azure Role Based Access](https://docs.microsoft.com/en-us/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.\n\nTo 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.\n\n#### Note\n* 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).\n* The `Authorization URL` is specific to the Azure public cloud instance. Sovereign clouds have unique Authorization URLs and Azure Active directory configurations. \n* 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.\n* Usage of the [Azure Maps Web SDK](https://aka.ms/amaadmc) allows for configuration based setup of an application for multiple use cases.\n* Currently Azure Active Directory [v1.0](https://docs.microsoft.com/en-us/azure/active-directory/develop/azure-ad-endpoint-comparison) tokens are supported.", + "scopes": { + "user_impersonation": "Impersonates a user's Azure Active Directory account." + } + }, + "apiKeyQuery": { + "type": "apiKey", + "description": "This is a shared key which is provisioned when creating an [Azure Maps resource](https://aka.ms/amauth) through the Azure management plane via Azure portal, Powershell, CLI, Azure SDKs, or REST APIs. With this key, any application is authorized to access all REST APIs. In other words, these can currently be treated as master keys to the account which they are issued for. For publicly exposed applications our recommendation is to use server to server access of Azure Maps REST APIs where this key can be securely stored.", + "name": "subscription-key", + "in": "query" + } + }, + "security": [ + { + "azure_auth": [] + }, + { + "apiKeyQuery": [] + } + ], + "responses": { + "400": { + "description": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "401": { + "description": "Access denied due to invalid subscription key or invalid Azure Active Directory bearer token. Make sure to provide a valid key for an active Azure subscription and Maps resource. Otherwise, verify the [WWW-Authenticate](https://tools.ietf.org/html/rfc6750#section-3.1) header for error code and description of the provided AAD bearer token.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + }, + "headers": { + "WWW-Authenticate": { + "type": "string", + "description": "Bearer realm=\"https://atlas.microsoft.com/\", error=\"invalid_token\", error_description=\"The access token expired\"" + } + } + }, + "403": { + "description": "Permission, capacity, or authentication issues.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "404": { + "description": "Not Found: the requested resource could not be found, but it may be available again in the future.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "500": { + "description": "An error occurred while processing the request. Please try again later.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "201Async": { + "description": "The resource has been created successfully.", + "schema": { + "$ref": "#/definitions/LongRunningOperationResult" + }, + "headers": { + "Location": { + "type": "string", + "description": "A URI where details on the newly created resource can be found." + } + } + }, + "202Async": { + "description": "**Supported only for async request.**\nRequest Accepted: The request has been accepted for processing. Please use the URL in the Location Header to retry or access the results.", + "headers": { + "Location": { + "type": "string", + "description": "New URL to check for the results of the long running process." + } + } + } + }, + "parameters": { + "ClientId": { + "name": "x-ms-client-id", + "description": "Specifies which account is intended for usage in conjunction with the Azure AD security model. It represents a unique ID for the Azure Maps account and can be retrieved from Azure Maps management plane Account API. To use Azure AD security in Azure Maps see the following [articles](https://aka.ms/amauthdetails) for guidance.", + "type": "string", + "in": "header", + "required": false, + "x-ms-parameter-location": "client" + }, + "SubscriptionKey": { + "name": "subscription-key", + "description": "One of the Azure Maps keys provided from an Azure Map Account. Please refer to this [article](https://docs.microsoft.com/azure/azure-maps/how-to-manage-authentication) for details on how to manage authentication.", + "type": "string", + "in": "query", + "required": false, + "x-ms-parameter-location": "client" + }, + "ApiVersion": { + "name": "api-version", + "description": "Version number of Azure Maps API. Current version is 1.0", + "type": "string", + "in": "query", + "required": true, + "default": "1.0", + "x-ms-parameter-location": "client" + }, + "JsonFormat": { + "name": "format", + "description": "Desired format of the response. Only `json` format is supported.", + "type": "string", + "in": "path", + "required": true, + "enum": [ + "json" + ], + "x-ms-enum": { + "name": "JsonFormat", + "modelAsString": false, + "values": [ + { + "value": "json", + "description": "[The JavaScript Object Notation Data Interchange Format](https://tools.ietf.org/html/rfc8259)" + } + ] + }, + "x-ms-parameter-location": "method" + }, + "DatasetIdQuery": { + "name": "datasetId", + "description": "The unique `datasetId` that the tileset create API uses to retrieve features to generate tiles. The `datasetId` must have been obtained from a successful [Dataset Create API](/en-us/rest/api/maps/dataset/createpreview) call.", + "type": "string", + "in": "query", + "required": true, + "x-ms-parameter-location": "client" + }, + "TilesetId": { + "name": "tilesetId", + "description": "The Tileset Id", + "type": "string", + "in": "path", + "required": true, + "x-ms-parameter-location": "method" + }, + "DescriptionTileset": { + "name": "description", + "description": "User provided description of the tileset.", + "type": "string", + "in": "query", + "required": false, + "x-ms-parameter-location": "method" + } + }, + "paths": { + "/tileset/create/vector": { + "post": { + "x-publish": true, + "description": "**Tileset Create API**\n\n**Applies to**: S1 pricing tier.\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API \nand SDK. The Tileset API is part of Creator.\n\nThe Tileset Create API allows the caller to create a tileset from a dataset. A tileset contains a set of tiles that can be consumed \nfrom the [Get Map Tile](/rest/api/maps/render/getmaptile) to retrieve custom tiles. To make a dataset, use the \n[DataSet Create API](/rest/api/maps/dataset/createpreview).\n\n## Submit Create Request\n\nTo create your tileset you will make a `POST` request with an empty body. The `datasetId` query parameter will be \nused as the source of the tileset data.\n\nThe Create Tileset API is a \n[long-running request](https://aka.ms/am-creator-lrt).", + "operationId": "Tileset_CreatePreview", + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-examples": { + "Create Tileset by providing a Dataset Id": { + "$ref": "./examples/Create.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ClientId" + }, + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/DatasetIdQuery" + }, + { + "$ref": "#/parameters/DescriptionTileset" + } + ], + "responses": { + "201": { + "$ref": "#/responses/201Async" + }, + "202": { + "$ref": "#/responses/202Async" + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + }, + "/tileset": { + "get": { + "x-publish": true, + "description": "**Tileset List API**\n\n**Applies to:** S1 pricing tier.\n
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Tileset API is part of Creator.\nThis API allows the caller to fetch a list of all tilesets created. \n
", + "operationId": "Tileset_ListPreview", + "x-ms-examples": { + "Get a list of all tilesets": { + "$ref": "./examples/List.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ClientId" + }, + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + } + ], + "responses": { + "200": { + "description": "List tileset request completed successfully. The response body contains a list of all tilesets.", + "schema": { + "$ref": "#/definitions/TilesetListResponse" + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + }, + "/tileset/{tilesetId}": { + "delete": { + "x-publish": true, + "description": "**Tileset Delete API**\n\n**Applies to:** S1 pricing tier.\n
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Tileset API is part of Creator.\nThis API allows the caller to delete a created tileset.
\nYou can use this API if a tileset is no longer needed. \n\n### Submit Delete Request\n\nTo delete your content you will issue a `DELETE` request where the path will contain the `tilesetId` of the tileset to delete.
\n\n#### Delete request \"Successful\"\n\nThe Tileset Delete API returns a HTTP `204 No Content` response with an empty body, if the tileset was deleted successfully.
\n\n#### Delete request \"Failed\"\n\nA HTTP `400 Bad Request` error response will be returned if the tileset with the passed-in `tilesetId` is not found. \n\nHere is a sample error response:\n\n
\n\n```json\n{\n \"error\": {\n \"code\": \"400 BadRequest\",\n \"message\": \"Bad request - Tileset Id: d85b5b27-5fc4-4599-8b50-47160e90f8ce does not exist.\"\n }\n}\n```", + "operationId": "Tileset_DeletePreview", + "x-ms-examples": { + "Delete a created tileset": { + "$ref": "./examples/Delete.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ClientId" + }, + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/TilesetId" + } + ], + "responses": { + "204": { + "description": "Tileset delete request completed successfully.", + "schema": { + "$ref": "#/definitions/TilesetDeleteResponse" + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + } + }, + "definitions": { + "ODataErrorResponse": { + "type": "object", + "description": "This response object is returned when an error occurs in the Maps API.", + "properties": { + "error": { + "$ref": "#/definitions/ODataError" + } + } + }, + "ODataError": { + "type": "object", + "description": "This object is returned when an error occurs in the Maps API.", + "properties": { + "code": { + "type": "string", + "readOnly": true, + "description": "The ODataError code." + }, + "message": { + "type": "string", + "readOnly": true, + "description": "If available, a human readable description of the error." + }, + "details": { + "type": "array", + "items": { + "$ref": "#/definitions/ODataError" + } + }, + "target": { + "type": "string", + "readOnly": true, + "description": "If available, the target causing the error." + } + } + }, + "LongRunningOperationResult": { + "description": "The response model for a Long-Running Operations API.", + "type": "object", + "properties": { + "operationId": { + "description": "The Id for this long-running operation.", + "type": "string" + }, + "status": { + "description": "The status state of the request.", + "type": "string", + "enum": [ + "NotStarted", + "Running", + "Failed", + "Succeeded" + ], + "x-ms-enum": { + "name": "type", + "modelAsString": false, + "values": [ + { + "value": "NotStarted", + "description": "The request has not started processing yet." + }, + { + "value": "Running", + "description": "The request has started processing." + }, + { + "value": "Failed", + "description": "The request has one or more failures." + }, + { + "value": "Succeeded", + "description": "The request has successfully completed." + } + ] + }, + "readOnly": true + }, + "created": { + "description": "The created timestamp.", + "type": "string", + "readOnly": true + }, + "resourceLocation": { + "description": "The location URI for details about the created resource. This is only provided when the request was successfully completed.", + "type": "string", + "readOnly": true + }, + "error": { + "$ref": "#/definitions/ODataError" + }, + "warning": { + "$ref": "#/definitions/ODataError" + } + } + }, + "TilesetListResponse": { + "description": "The response model for the Tileset List API. Returns a list of all tilesets.", + "type": "object", + "properties": { + "tilesets": { + "description": "A list of all tilesets.", + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/TilesetDetailInfo" + } + } + } + }, + "TilesetDetailInfo": { + "description": "Detail information for the data.", + "type": "object", + "properties": { + "tilesetId": { + "description": "The unique tileset id for the tileset.", + "type": "string", + "readOnly": true + }, + "datasetId": { + "description": "The unique dataset Id used to create the tileset.", + "type": "string", + "readOnly": true + }, + "description": { + "description": "The description the caller provided when creating the tileset. Maximum length 1024 characters.", + "type": "string", + "readOnly": true + }, + "minZoom": { + "description": "The lowest tile zoom level tile generated for the tileset.", + "type": "integer", + "readOnly": true + }, + "maxZoom": { + "description": "The highest tile zoom level tile generated for the tileset.", + "type": "integer", + "readOnly": true + }, + "bbox": { + "description": "Bounding box which all features of the tileset lay within. Projection used - EPSG:3857. Format : 'minLon, minLat, maxLon, maxLat'.", + "type": "array", + "readOnly": true, + "items": { + "type": "number" + } + } + } + }, + "TilesetDeleteResponse": { + "description": "The response model for the Delete API. The response body will be empty signifying there's no content available for the `tilesetId` anymore.", + "type": "object" + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/DeleteItem.json b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/DeleteItem.json new file mode 100644 index 000000000000..127a25dc1639 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/DeleteItem.json @@ -0,0 +1,57 @@ +{ + "parameters": { + "api-version": "1.0", + "datasetid": "018fda98-e638-0edf-5ef7-28491ff3bed4", + "subscription-key": "[subscription-key]", + "collectionId": "facility", + "featureId": "FCL39" + }, + "responses": { + "204": {}, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollection.json b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollection.json new file mode 100644 index 000000000000..583b150414ee --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollection.json @@ -0,0 +1,78 @@ +{ + "parameters": { + "api-version": "1.0", + "datasetid": "018fda98-e638-0edf-5ef7-28491ff3bed4", + "subscription-key": "[subscription-key]", + "collectionId": "unit" + }, + "responses": { + "200": { + "body": { + "name": "unit", + "description": "A physical and non-overlapping area which might be occupied and traversed by a navigating agent. Can be a hallway, a room, a courtyard, etc. It is surrounded by physical obstruction (wall), unless the isOpenArea attribute is equal to true, and one must add openings where the obstruction shouldn't be there. If isOpenArea attribute is equal to true, all the sides are assumed open to the surroundings and walls are to be added where needed. Walls for open areas are represented as a lineElement or areaElement with isObstruction equal to true.", + "links": [ + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/unit/definition?api-version=1.0", + "rel": "describedBy", + "title": "Metadata catalogue for unit" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/unit/items?api-version=1.0", + "rel": "data", + "title": "unit" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/unit?api-version=1.0", + "rel": "self", + "title": "Metadata catalogue for unit" + } + ] + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollectionDefinition.json b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollectionDefinition.json new file mode 100644 index 000000000000..e4d17ccf6650 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollectionDefinition.json @@ -0,0 +1,196 @@ +{ + "parameters": { + "api-version": "1.0", + "datasetid": "018fda98-e638-0edf-5ef7-28491ff3bed4", + "subscription-key": "[subscription-key]", + "collectionId": "unit" + }, + "responses": { + "200": { + "body": { + "idPrefix": "UNIT", + "name": "unit", + "description": "A physical and non-overlapping area which might be occupied and traversed by a navigating agent. Can be a hallway, a room, a courtyard, etc. It is surrounded by physical obstruction (wall), unless the isOpenArea attribute is equal to true, and one must add openings where the obstruction shouldn't be there. If isOpenArea attribute is equal to true, all the sides are assumed open to the surroundings and walls are to be added where needed. Walls for open areas are represented as a lineElement or areaElement with isObstruction equal to true.", + "geometryType": "Polygon", + "featureTypes": [], + "properties": [ + { + "name": "externalId", + "required": false, + "type": "text" + }, + { + "name": "originalId", + "required": false, + "type": "text" + }, + { + "name": "categoryId", + "required": true, + "type": { + "featureId": "category" + } + }, + { + "name": "isOpenArea", + "required": false, + "type": "boolean" + }, + { + "name": "navigableBy", + "required": false, + "type": { + "array": { + "enum": [ + "pedestrian", + "wheelchair", + "machine", + "bicycle", + "automobile", + "hiredAuto", + "bus", + "railcar", + "emergency", + "ferry", + "boat" + ] + } + } + }, + { + "name": "isRoutable", + "required": false, + "type": "boolean" + }, + { + "name": "routeThroughBehavior", + "required": false, + "type": { + "enum": [ + "disallowed", + "allowed", + "preferred" + ] + } + }, + { + "name": "nonPublic", + "required": false, + "type": "boolean" + }, + { + "name": "levelId", + "required": true, + "type": { + "featureId": "level" + } + }, + { + "name": "occupants", + "required": false, + "type": { + "array": { + "featureId": "directoryInfo" + } + } + }, + { + "name": "addressId", + "required": false, + "type": { + "featureId": "directoryInfo" + } + }, + { + "name": "addressRoomNumber", + "required": false, + "type": "text" + }, + { + "name": "name", + "required": false, + "type": "text" + }, + { + "name": "nameSubtitle", + "required": false, + "type": "text" + }, + { + "name": "nameAlt", + "required": false, + "type": "text" + }, + { + "name": "anchorPoint", + "required": false, + "type": { + "geometry": [ + "Point" + ], + "isFragmented": false, + "srid": 4326 + } + } + ], + "links": [ + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/unit/definition?api-version=1.0", + "rel": "self", + "title": "Metadata catalogue for unit" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/unit/items?api-version=1.0", + "rel": "data", + "title": "unit" + } + ] + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollections.json b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollections.json new file mode 100644 index 000000000000..7048a3299237 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollections.json @@ -0,0 +1,297 @@ +{ + "parameters": { + "api-version": "1.0", + "datasetid": "018fda98-e638-0edf-5ef7-28491ff3bed4", + "subscription-key": "[subscription-key]" + }, + "responses": { + "200": { + "body": { + "collections": [ + { + "name": "unit", + "description": "A physical and non-overlapping area which might be occupied and traversed by a navigating agent. Can be a hallway, a room, a courtyard, etc. It is surrounded by physical obstruction (wall), unless the isOpenArea attribute is equal to true, and one must add openings where the obstruction shouldn't be there. If isOpenArea attribute is equal to true, all the sides are assumed open to the surroundings and walls are to be added where needed. Walls for open areas are represented as a lineElement or areaElement with isObstruction equal to true.", + "links": [ + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/unit/definition?api-version=1.0", + "rel": "describedBy", + "title": "Metadata catalogue for unit" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/unit/items?api-version=1.0", + "rel": "data", + "title": "unit" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/unit?api-version=1.0", + "rel": "self", + "title": "Metadata catalogue for unit" + } + ] + }, + { + "name": "zone", + "description": "A virtual area. ex, wifi zone, emergency assembly area. Zones can be used as destinations but not meant for through traffic.", + "links": [ + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/zone/definition?api-version=1.0", + "rel": "describedBy", + "title": "Metadata catalogue for zone" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/zone/items?api-version=1.0", + "rel": "data", + "title": "zone" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/zone?api-version=1.0", + "rel": "self", + "title": "Metadata catalogue for zone" + } + ] + }, + { + "name": "level", + "description": "An indication of the extent and vertical position of a set of features.", + "links": [ + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/level/definition?api-version=1.0", + "rel": "describedBy", + "title": "Metadata catalogue for level" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/level/items?api-version=1.0", + "rel": "data", + "title": "level" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/level?api-version=1.0", + "rel": "self", + "title": "Metadata catalogue for level" + } + ] + }, + { + "name": "facility", + "description": "Area of the site, building footprint etc.", + "links": [ + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/facility/definition?api-version=1.0", + "rel": "describedBy", + "title": "Metadata catalogue for facility" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/facility/items?api-version=1.0", + "rel": "data", + "title": "facility" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/facility?api-version=1.0", + "rel": "self", + "title": "Metadata catalogue for facility" + } + ] + }, + { + "name": "verticalPenetration", + "description": "An area that, when used in a set, represents a method of navigating vertically between levels. It can be used to model stairs, elevators etc. Geometry can overlap units and other vertical penetration features.", + "links": [ + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/verticalPenetration/definition?api-version=1.0", + "rel": "describedBy", + "title": "Metadata catalogue for verticalPenetration" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/verticalPenetration/items?api-version=1.0", + "rel": "data", + "title": "verticalPenetration" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/verticalPenetration?api-version=1.0", + "rel": "self", + "title": "Metadata catalogue for verticalPenetration" + } + ] + }, + { + "name": "opening", + "description": "A usually-traversable boundary between two units, or a unit and verticalPenetration.", + "links": [ + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/opening/definition?api-version=1.0", + "rel": "describedBy", + "title": "Metadata catalogue for opening" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/opening/items?api-version=1.0", + "rel": "data", + "title": "opening" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/opening?api-version=1.0", + "rel": "self", + "title": "Metadata catalogue for opening" + } + ] + }, + { + "name": "directoryInfo", + "description": "Name, address, phone number, website, and hours of operation for a unit, facility, or an occupant of a unit or facility.", + "links": [ + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/directoryInfo/definition?api-version=1.0", + "rel": "describedBy", + "title": "Metadata catalogue for directoryInfo" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/directoryInfo/items?api-version=1.0", + "rel": "data", + "title": "directoryInfo" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/directoryInfo?api-version=1.0", + "rel": "self", + "title": "Metadata catalogue for directoryInfo" + } + ] + }, + { + "name": "pointElement", + "description": "A point feature in a unit, such as a first aid kit or a sprinkler head.", + "links": [ + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/pointElement/definition?api-version=1.0", + "rel": "describedBy", + "title": "Metadata catalogue for pointElement" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/pointElement/items?api-version=1.0", + "rel": "data", + "title": "pointElement" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/pointElement?api-version=1.0", + "rel": "self", + "title": "Metadata catalogue for pointElement" + } + ] + }, + { + "name": "lineElement", + "description": "A line feature in a unit, such as a dividing wall, window.", + "links": [ + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/lineElement/definition?api-version=1.0", + "rel": "describedBy", + "title": "Metadata catalogue for lineElement" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/lineElement/items?api-version=1.0", + "rel": "data", + "title": "lineElement" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/lineElement?api-version=1.0", + "rel": "self", + "title": "Metadata catalogue for lineElement" + } + ] + }, + { + "name": "areaElement", + "description": "A polygon feature in a unit, such as an area open to below, an obstruction like an island in a unit.", + "links": [ + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/areaElement/definition?api-version=1.0", + "rel": "describedBy", + "title": "Metadata catalogue for areaElement" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/areaElement/items?api-version=1.0", + "rel": "data", + "title": "areaElement" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/areaElement?api-version=1.0", + "rel": "self", + "title": "Metadata catalogue for areaElement" + } + ] + }, + { + "name": "category", + "description": "Category names. e.g. \"room.conference\". The isRoutable attribute puts a feature with that category on the routing graph. The routeThroughBehavior attribute determines whether a feature can be used for through traffic or not.", + "links": [ + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/category/definition?api-version=1.0", + "rel": "describedBy", + "title": "Metadata catalogue for category" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/category/items?api-version=1.0", + "rel": "data", + "title": "category" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/category?api-version=1.0", + "rel": "self", + "title": "Metadata catalogue for category" + } + ] + } + ], + "links": [ + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections?api-version=1.0", + "rel": "self" + } + ] + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetConformance.json b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetConformance.json new file mode 100644 index 000000000000..2087dca71fe4 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetConformance.json @@ -0,0 +1,64 @@ +{ + "parameters": { + "api-version": "1.0", + "datasetid": "018fda98-e638-0edf-5ef7-28491ff3bed4", + "subscription-key": "[subscription-key]" + }, + "responses": { + "200": { + "body": { + "conformsTo": [ + "http://www.opengis.net/spec/wfs-1/3.0/req/core", + "http://www.opengis.net/spec/wfs-1/3.0/req/oas30", + "http://www.opengis.net/spec/wfs-1/3.0/req/geojson", + "http://tempuri.org/wfs/3.0/edit" + ] + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetItem.json b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetItem.json new file mode 100644 index 000000000000..a83972b09aa0 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetItem.json @@ -0,0 +1,128 @@ +{ + "parameters": { + "api-version": "1.0", + "datasetid": "018fda98-e638-0edf-5ef7-28491ff3bed4", + "subscription-key": "[subscription-key]", + "collectionId": "unit", + "featureId": "UNIT39" + }, + "responses": { + "200": { + "body": { + "feature": { + "type": "feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 139.63304057829211, + 35.457686686108559 + ], + [ + 139.63296283234274, + 35.457783904258683 + ], + [ + 139.63308672404617, + 35.457850229062018 + ], + [ + 139.63314516916711, + 35.457777145699858 + ], + [ + 139.63312747036289, + 35.457767670747167 + ], + [ + 139.63314677109963, + 35.457743535881377 + ], + [ + 139.63304057829211, + 35.457686686108559 + ] + ] + ] + }, + "properties": { + "originalId": "ddbbb583-4621-4e11-8859-299d1057e843", + "categoryId": "CTG10", + "isOpenArea": false, + "navigableBy": [ + "pedestrian" + ], + "isRoutable": false, + "routeThroughBehavior": "allowed", + "nonPublic": false, + "levelId": "LVL18", + "occupants": [], + "addressId": "DIR16", + "addressRoomNumber": "", + "name": "21N13", + "nameSubtitle": "", + "nameAlt": "" + }, + "id": "UNIT39", + "featureType": "" + }, + "links": [ + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/unit/items/UNIT39?api-version=1.0", + "rel": "self" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/unit?api-version=1.0", + "rel": "data" + } + ] + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetItems.json b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetItems.json new file mode 100644 index 000000000000..0d83c6416334 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetItems.json @@ -0,0 +1,137 @@ +{ + "parameters": { + "api-version": "1.0", + "datasetid": "018fda98-e638-0edf-5ef7-28491ff3bed4", + "subscription-key": "[subscription-key]", + "collectionId": "unit", + "limit": 1, + "bbox": "-122, 47, -120, 46" + }, + "responses": { + "200": { + "body": { + "type": "FeatureCollection", + "features": [ + { + "type": "feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 139.63304057829211, + 35.457686686108559 + ], + [ + 139.63296283234274, + 35.457783904258683 + ], + [ + 139.63308672404617, + 35.457850229062018 + ], + [ + 139.63314516916711, + 35.457777145699858 + ], + [ + 139.63312747036289, + 35.457767670747167 + ], + [ + 139.63314677109963, + 35.457743535881377 + ], + [ + 139.63304057829211, + 35.457686686108559 + ] + ] + ] + }, + "properties": { + "originalId": "ddbbb583-4621-4e11-8859-299d1057e843", + "categoryId": "CTG10", + "isOpenArea": false, + "navigableBy": [ + "pedestrian" + ], + "isRoutable": false, + "routeThroughBehavior": "allowed", + "nonPublic": false, + "levelId": "LVL18", + "occupants": [], + "addressId": "DIR16", + "addressRoomNumber": "", + "name": "21N13", + "nameSubtitle": "", + "nameAlt": "" + }, + "id": "UNIT39", + "featureType": "" + } + ], + "numberReturned": 1, + "links": [ + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/unit/items?api-version=1.0&limit=1", + "rel": "self" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/unit?api-version=1.0", + "rel": "data" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/unit/items?n=PMRG4ZLYOQRDUMJMEJYHEZLWEI5C2ML5&api-version=1.0&limit=1", + "rel": "next" + } + ] + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetLandingPage.json b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetLandingPage.json new file mode 100644 index 000000000000..028fa8cfe0aa --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetLandingPage.json @@ -0,0 +1,85 @@ +{ + "parameters": { + "api-version": "1.0", + "datasetid": "018fda98-e638-0edf-5ef7-28491ff3bed4", + "subscription-key": "[subscription-key]" + }, + "responses": { + "200": { + "body": { + "links": [ + { + "href": "https://atlas.microsoft.com/wfs/datasets/018fda98-e638-0edf-5ef7-28491ff3bed4", + "rel": "self", + "title": "Azure Maps WFS" + }, + { + "href": "https://atlas.microsoft.com/wfs/datasets/018fda98-e638-0edf-5ef7-28491ff3bed4/api", + "rel": "service", + "title": "The API definition" + }, + { + "href": "https://atlas.microsoft.com/wfs/datasets/018fda98-e638-0edf-5ef7-28491ff3bed4/conformance", + "rel": "conformance", + "title": "WFS 3.0 conformance classes implemented by this server" + }, + { + "href": "https://atlas.microsoft.com/wfs/datasets/018fda98-e638-0edf-5ef7-28491ff3bed4/version", + "rel": "data", + "title": "The version information" + }, + { + "href": "https://atlas.microsoft.com/wfs/datasets/018fda98-e638-0edf-5ef7-28491ff3bed4/collections", + "rel": "data", + "title": "Metadata about the feature collections" + } + ] + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/wfs.json b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/wfs.json new file mode 100644 index 000000000000..962c2490603e --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/wfs.json @@ -0,0 +1,984 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Maps Web Feature Service", + "version": "1.0", + "description": "Azure Maps Web Feature REST APIs" + }, + "host": "atlas.microsoft.com", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [ + "application/json", + "application/xml" + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "These are the [Azure Active Directory OAuth2](https://docs.microsoft.com/en-us/azure/active-directory/develop/v1-overview) Flows. When paired with [Azure Role Based Access](https://docs.microsoft.com/en-us/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.\n\nTo 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.\n\n#### Note\n* 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).\n* The `Authorization URL` is specific to the Azure public cloud instance. Sovereign clouds have unique Authorization URLs and Azure Active directory configurations. \n* 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.\n* Usage of the [Azure Maps Web SDK](https://aka.ms/amaadmc) allows for configuration based setup of an application for multiple use cases.\n* Currently Azure Active Directory [v1.0](https://docs.microsoft.com/en-us/azure/active-directory/develop/azure-ad-endpoint-comparison) tokens are supported.", + "scopes": { + "user_impersonation": "Impersonates a user's Azure Active Directory account." + } + }, + "apiKeyQuery": { + "type": "apiKey", + "description": "This is a shared key which is provisioned when creating an [Azure Maps resource](https://aka.ms/amauth) through the Azure management plane via Azure portal, Powershell, CLI, Azure SDKs, or REST APIs. With this key, any application is authorized to access all REST APIs. In other words, these can currently be treated as master keys to the account which they are issued for. For publicly exposed applications our recommendation is to use server to server access of Azure Maps REST APIs where this key can be securely stored.", + "name": "subscription-key", + "in": "query" + } + }, + "security": [ + { + "azure_auth": [] + }, + { + "apiKeyQuery": [] + } + ], + "responses": { + "202": { + "description": "Request Accepted: The request has been accepted for processing. Please use the URL in the Location Header to retry or access the results.", + "headers": { + "Location": { + "type": "string", + "description": "New URL to check for the results of the long running process." + } + } + }, + "400": { + "description": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "401": { + "description": "Access denied due to invalid subscription key or invalid Azure Active Directory bearer token. Make sure to provide a valid key for an active Azure subscription and Maps resource. Otherwise, verify the [WWW-Authenticate](https://tools.ietf.org/html/rfc6750#section-3.1) header for error code and description of the provided AAD bearer token.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + }, + "headers": { + "WWW-Authenticate": { + "type": "string", + "description": "Bearer realm=\"https://atlas.microsoft.com/\", error=\"invalid_token\", error_description=\"The access token expired\"" + } + } + }, + "403": { + "description": "Permission, capacity, or authentication issues.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "404": { + "description": "Not Found: the requested resource could not be found, but it may be available again in the future.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "500": { + "description": "An error occurred while processing the request. Please try again later.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + } + }, + "parameters": { + "ClientId": { + "name": "x-ms-client-id", + "description": "Specifies which account is intended for usage in conjunction with the Azure AD security model. It represents a unique ID for the Azure Maps account and can be retrieved from Azure Maps management plane Account API. To use Azure AD security in Azure Maps see the following [articles](https://aka.ms/amauthdetails) for guidance.", + "type": "string", + "in": "header", + "required": false, + "x-ms-parameter-location": "client" + }, + "SubscriptionKey": { + "name": "subscription-key", + "description": "One of the Azure Maps keys provided from an Azure Map Account. Please refer to this [article](https://docs.microsoft.com/azure/azure-maps/how-to-manage-authentication) for details on how to manage authentication.", + "type": "string", + "in": "query", + "required": false, + "x-ms-parameter-location": "client" + }, + "ApiVersion": { + "name": "api-version", + "description": "Version number of Azure Maps API. Current version is 1.0", + "type": "string", + "in": "query", + "required": true, + "default": "1.0", + "x-ms-parameter-location": "client" + }, + "Datasetid": { + "name": "datasetid", + "type": "string", + "in": "path", + "description": "The identifier for the dataset to query from.", + "required": true, + "x-ms-parameter-location": "method" + }, + "LimitWfs": { + "name": "limit", + "in": "query", + "type": "number", + "minimum": 1, + "maximum": 50, + "default": 10, + "description": "The optional limit parameter limits the number of features that are presented in the response document.\nOnly features that are on the first level of the collection in the response document are counted. Nested objects contained within the explicitly requested features shall not be counted.\n* Minimum = 1 * Maximum = 50 * Default = 10", + "x-ms-parameter-location": "method" + }, + "Filter": { + "name": "filter", + "in": "query", + "type": "string", + "description": "Filter expression to search for features with specific property values in a given collection. Only feature properties of scalar type and equals operator are supported.\nThis is a special parameter where the parameter name is the property name. The scheme for this parameter is {property name}={property value}. Unless \"filter\" is one of the property names in the collection, \"filter\" should not be used as a parameter name. To search for features with \"name\" property value \"21N13\", use \"name=21N13\".\nMultiple filters are supported and should be represented as multiple query parameters. E.g., =&= String values are case sensitive.", + "x-ms-parameter-location": "method" + }, + "Bbox": { + "name": "bbox", + "in": "query", + "type": "string", + "description": "Only features that have a geometry that intersects the supplied bounding box are selected.\n* Lower left corner, coordinate axis 1 * Lower left corner, coordinate axis 2 * Upper right corner, coordinate axis 1 * Upper right corner, coordinate axis 2\nThe coordinate reference system of the values is WGS84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84) unless a different coordinate reference system is specified in the parameter `bbox-crs`.\nFor WGS84 longitude/latitude the values are in most cases the sequence of minimum longitude, minimum latitude, maximum longitude and maximum latitude. However, in cases where the box spans the antimeridian the first value (west-most box edge) is larger than the third value (east-most box edge).", + "required": false, + "x-ms-parameter-location": "method" + }, + "CollectionId": { + "name": "collectionId", + "in": "path", + "type": "string", + "required": true, + "description": "Identifier (name) of a specific collection", + "x-ms-parameter-location": "method" + }, + "FeatureId": { + "name": "featureId", + "in": "path", + "type": "string", + "description": "Local identifier of a specific feature", + "required": true, + "x-ms-parameter-location": "method" + } + }, + "paths": { + "/wfs/datasets/{datasetid}/": { + "get": { + "x-publish": true, + "description": "Creator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Web Feature Service (WFS) API is part of Creator. WFS API follows the [Open Geospatial Consortium API standard for Features](http://docs.opengeospatial.org/is/17-069r3/17-069r3.html) to query [Datasets](https://docs.microsoft.com/en-us/rest/api/maps/dataset/createpreview). \nA dataset consists of multiple feature collections. A feature collection is a collection of features of a similar type, based on a common schema.\nThe Get Landing Page API provides links to the API definition, the Conformance statements and the metadata about the feature data in this dataset.", + "operationId": "WFS_GetLandingPagePreview", + "x-ms-examples": { + "GetLandingPage": { + "$ref": "./examples/GetLandingPage.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ClientId" + }, + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/Datasetid" + } + ], + "responses": { + "200": { + "description": "Ok", + "schema": { + "$ref": "#/definitions/Root" + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + }, + "/wfs/datasets/{datasetid}/conformance": { + "get": { + "description": "Creator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Web Feature Service (WFS) API is part of Creator. WFS API follows the [Open Geospatial Consortium API standard for Features](http://docs.opengeospatial.org/is/17-069r3/17-069r3.html) to query [Datasets](https://docs.microsoft.com/en-us/rest/api/maps/dataset/createpreview). \nA dataset consists of multiple feature collections. A feature collection is a collection of features of a similar type, based on a common schema.\nThe Get Requirements Classes lists all requirements classes specified in the standard that the server conforms to.", + "x-publish": true, + "operationId": "WFS_GetRequirementsClassesPreview", + "x-ms-examples": { + "GetConformance": { + "$ref": "./examples/GetConformance.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ClientId" + }, + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/Datasetid" + } + ], + "responses": { + "200": { + "description": "Ok", + "schema": { + "$ref": "#/definitions/ReqClasses" + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + }, + "/wfs/datasets/{datasetid}/collections": { + "get": { + "description": "Creator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Web Feature Service (WFS) API is part of Creator. WFS API follows the [Open Geospatial Consortium API standard for Features](http://docs.opengeospatial.org/is/17-069r3/17-069r3.html) to query [Datasets](https://docs.microsoft.com/en-us/rest/api/maps/dataset/createpreview). \nA dataset consists of multiple feature collections. A feature collection is a collection of features of a similar type, based on a common schema.\nThe Collections Description API provides descriptions of all the collections in a given dataset.", + "operationId": "WFS_CollectionsDescriptionPreview", + "x-publish": true, + "x-ms-examples": { + "GetCollections": { + "$ref": "./examples/GetCollections.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ClientId" + }, + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/Datasetid" + } + ], + "responses": { + "200": { + "description": "Ok", + "schema": { + "$ref": "#/definitions/Content" + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + }, + "/wfs/datasets/{datasetid}/collections/{collectionId}": { + "get": { + "description": "Creator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Web Feature Service (WFS) API is part of Creator. WFS API follows the [Open Geospatial Consortium API standard for Features](http://docs.opengeospatial.org/is/17-069r3/17-069r3.html) to query [Datasets](https://docs.microsoft.com/en-us/rest/api/maps/dataset/createpreview). \nA dataset consists of multiple feature collections. A feature collection is a collection of features of a similar type, based on a common schema.\n \nThe Collection Description API provides the description of a given collection. It includes the links to the operations that can be performed on the collection.", + "operationId": "WFS_CollectionDescriptionPreview", + "x-publish": true, + "x-ms-examples": { + "GetCollection": { + "$ref": "./examples/GetCollection.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ClientId" + }, + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/Datasetid" + }, + { + "$ref": "#/parameters/CollectionId" + } + ], + "responses": { + "200": { + "description": "Ok", + "schema": { + "$ref": "#/definitions/CollectionInfo" + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + }, + "/wfs/datasets/{datasetid}/collections/{collectionId}/definition": { + "get": { + "description": "Creator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Web Feature Service (WFS) API is part of Creator. WFS API follows the [Open Geospatial Consortium API standard for Features](http://docs.opengeospatial.org/is/17-069r3/17-069r3.html) to query [Datasets](https://docs.microsoft.com/en-us/rest/api/maps/dataset/createpreview). \nA dataset consists of multiple feature collections. A feature collection is a collection of features of a similar type, based on a common schema.\n \nThe Collection Definition API provides the detailed data model of a given collection.", + "operationId": "WFS_CollectionDefinitionPreview", + "x-publish": true, + "x-ms-examples": { + "GetCollectionDefinition": { + "$ref": "./examples/GetCollectionDefinition.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ClientId" + }, + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/Datasetid" + }, + { + "$ref": "#/parameters/CollectionId" + } + ], + "responses": { + "200": { + "description": "Ok", + "schema": { + "$ref": "#/definitions/CollectionDefinition" + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + }, + "/wfs/datasets/{datasetid}/collections/{collectionId}/items": { + "get": { + "description": "Creator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Web Feature Service (WFS) API is part of Creator. WFS API follows the [Open Geospatial Consortium API standard for Features](http://docs.opengeospatial.org/is/17-069r3/17-069r3.html) to query [Datasets](https://docs.microsoft.com/en-us/rest/api/maps/dataset/createpreview). \nA dataset consists of multiple feature collections. A feature collection is a collection of features of a similar type, based on a common schema.\nThe Get Features API returns the list of features in the given collection.", + "operationId": "WFS_GetFeaturesPreview", + "x-publish": true, + "x-ms-examples": { + "Getitems": { + "$ref": "./examples/GetItems.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ClientId" + }, + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/Datasetid" + }, + { + "$ref": "#/parameters/CollectionId" + }, + { + "$ref": "#/parameters/LimitWfs" + }, + { + "$ref": "#/parameters/Bbox" + }, + { + "$ref": "#/parameters/Filter" + } + ], + "responses": { + "200": { + "description": "Ok", + "schema": { + "$ref": "#/definitions/FeatureCollectionGeoJSON" + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + }, + "/wfs/datasets/{datasetid}/collections/{collectionId}/items/{featureId}": { + "get": { + "description": "Creator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Web Feature Service (WFS) API is part of Creator. WFS API follows the [Open Geospatial Consortium API standard for Features](http://docs.opengeospatial.org/is/17-069r3/17-069r3.html) to query [Datasets](https://docs.microsoft.com/en-us/rest/api/maps/dataset/createpreview). \nA dataset consists of multiple feature collections. A feature collection is a collection of features of a similar type, based on a common schema.\nThe Get Feature API returns the feature identified by the provided id in the given collection.", + "x-publish": true, + "operationId": "WFS_GetFeaturePreview", + "x-ms-examples": { + "GetFeature": { + "$ref": "./examples/GetItem.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/Datasetid" + }, + { + "$ref": "#/parameters/CollectionId" + }, + { + "$ref": "#/parameters/FeatureId" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Feature" + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + }, + "delete": { + "description": "Creator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Web Feature Service (WFS) API is part of Creator. WFS API follows the [Open Geospatial Consortium API standard for Features](http://docs.opengeospatial.org/is/17-069r3/17-069r3.html) to query [Datasets](https://docs.microsoft.com/en-us/rest/api/maps/dataset/createpreview). \nA dataset consists of multiple feature collections. A feature collection is a collection of features of a similar type, based on a common schema.\nThe Delete Feature API deletes the feature identified by the provided id in the given collection. At this point this API supports only facility features. Deleting a facility feature deletes all the child features of that facility recursively.", + "x-publish": true, + "operationId": "WFS_DeleteFeaturePreview", + "x-ms-examples": { + "GetFeature": { + "$ref": "./examples/DeleteItem.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/Datasetid" + }, + { + "$ref": "#/parameters/CollectionId" + }, + { + "$ref": "#/parameters/FeatureId" + } + ], + "responses": { + "204": { + "description": "Feature Deleted." + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + } + }, + "definitions": { + "ODataErrorResponse": { + "type": "object", + "description": "This response object is returned when an error occurs in the Maps API.", + "properties": { + "error": { + "$ref": "#/definitions/ODataError" + } + } + }, + "ODataError": { + "type": "object", + "description": "This object is returned when an error occurs in the Maps API.", + "properties": { + "code": { + "type": "string", + "readOnly": true, + "description": "The ODataError code." + }, + "message": { + "type": "string", + "readOnly": true, + "description": "If available, a human readable description of the error." + }, + "details": { + "type": "array", + "items": { + "$ref": "#/definitions/ODataError" + } + }, + "target": { + "type": "string", + "readOnly": true, + "description": "If available, the target causing the error." + } + } + }, + "Exception": { + "type": "object", + "required": [ + "code" + ], + "properties": { + "code": { + "type": "string" + }, + "description": { + "type": "string" + } + } + }, + "Root": { + "type": "object", + "required": [ + "links" + ], + "properties": { + "links": { + "type": "array", + "items": { + "$ref": "#/definitions/Link" + } + } + } + }, + "ReqClasses": { + "type": "object", + "required": [ + "conformsTo" + ], + "properties": { + "conformsTo": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "http://www.opengis.net/spec/wfs-1/3.0/req/core", + "http://www.opengis.net/spec/wfs-1/3.0/req/oas30", + "http://www.opengis.net/spec/wfs-1/3.0/req/html", + "http://www.opengis.net/spec/wfs-1/3.0/req/geojson" + ] + } + } + }, + "Link": { + "description": "Links to other WFS endpoints", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "type": "string" + }, + "rel": { + "type": "string", + "example": "prev" + }, + "type": { + "type": "string", + "example": "application/geo+json" + }, + "hreflang": { + "type": "string", + "example": "en" + }, + "title": { + "type": "string" + } + } + }, + "Content": { + "type": "object", + "required": [ + "links", + "collections" + ], + "properties": { + "links": { + "type": "array", + "items": { + "$ref": "#/definitions/Link" + }, + "example": [ + { + "href": "http://data.example.org/collections.json", + "rel": "self", + "type": "application/json", + "title": "this document" + }, + { + "href": "http://data.example.org/collections.html", + "rel": "alternate", + "type": "text/html", + "title": "this document as HTML" + }, + { + "href": "http://schemas.example.org/1.0/foobar.xsd", + "rel": "describedBy", + "type": "application/xml", + "title": "XML schema for Acme Corporation data" + } + ] + }, + "collections": { + "type": "array", + "items": { + "$ref": "#/definitions/CollectionInfo" + } + } + } + }, + "Version": { + "type": "object", + "required": [ + "version", + "revisionTimestamp", + "links" + ], + "properties": { + "version": { + "description": "version number of the dataset", + "type": "string", + "example": "1.0.0" + }, + "revisionTimestamp": { + "description": "timestamp of the revision", + "type": "string", + "example": "2020-01-02T03:04:05" + }, + "links": { + "type": "array", + "items": { + "$ref": "#/definitions/Link" + }, + "example": [ + { + "href": "http://data.example.org/collections.json", + "rel": "self", + "type": "application/json", + "title": "this document" + }, + { + "href": "http://data.example.org/collections.html", + "rel": "alternate", + "type": "text/html", + "title": "this document as HTML" + }, + { + "href": "http://schemas.example.org/1.0/foobar.xsd", + "rel": "describedBy", + "type": "application/xml", + "title": "XML schema for Acme Corporation data" + } + ] + } + } + }, + "CollectionInfo": { + "type": "object", + "required": [ + "name", + "links" + ], + "properties": { + "name": { + "description": "identifier of the collection used, for example, in URIs", + "type": "string", + "example": "buildings" + }, + "title": { + "description": "human readable title of the collection", + "type": "string", + "example": "Buildings" + }, + "description": { + "description": "a description of the features in the collection", + "type": "string", + "example": "Buildings in the city of Bonn." + }, + "links": { + "type": "array", + "items": { + "$ref": "#/definitions/Link" + }, + "example": [ + { + "href": "http://data.example.org/collections/buildings/items", + "rel": "item", + "type": "application/geo+json", + "title": "Buildings" + }, + { + "href": "http://example.org/concepts/building.html", + "rel": "describedBy", + "type": "text/html", + "title": "Feature catalogue for buildings" + } + ] + } + } + }, + "CollectionDefinition": { + "description": "collection of GeoJSON features", + "type": "object", + "required": [ + "idPrefix", + "name", + "geometryType", + "featureTypes" + ], + "properties": { + "description": { + "description": "describes the collection", + "type": "string" + }, + "idPrefix": { + "description": "prefix of the collection used", + "type": "string", + "example": "BLD" + }, + "name": { + "description": "identifier of the collection used, for example, in URIs", + "type": "string", + "example": "buildings" + }, + "title": { + "description": "title of collection", + "type": "string", + "example": "Feature Class buildings" + }, + "geometryType": { + "description": "type of geometry returned", + "type": "string", + "enum": [ + "Point", + "MultiPoint", + "LineString", + "MultiLineString", + "Polygon", + "MultiPolygon", + "GeometryCollection" + ] + }, + "featureTypes": { + "description": "type of features returned", + "type": "array", + "items": { + "type": "string" + } + }, + "properties": { + "description": "attributes of the collection used", + "type": "array", + "items": { + "$ref": "#/definitions/DefinitionProperties" + } + }, + "links": { + "type": "array", + "items": { + "$ref": "#/definitions/Link" + } + } + } + }, + "DefinitionProperties": { + "type": "object", + "required": [ + "name", + "required", + "type" + ], + "properties": { + "name": { + "description": "name of attribute", + "type": "string", + "example": "external_id" + }, + "required": { + "description": "is attribute required", + "type": "boolean" + }, + "type": { + "description": "type of attribute", + "type": "object" + } + } + }, + "FeatureCollectionGeoJSON": { + "type": "object", + "required": [ + "type", + "features" + ], + "properties": { + "type": { + "type": "string" + }, + "numberReturned": { + "type": "integer" + }, + "features": { + "type": "array", + "items": { + "$ref": "#/definitions/FeatureGeoJSON" + } + }, + "links": { + "type": "array", + "items": { + "$ref": "#/definitions/Link" + } + } + } + }, + "Feature": { + "type": "object", + "required": [ + "feature" + ], + "properties": { + "feature": { + "$ref": "#/definitions/FeatureGeoJSON" + }, + "links": { + "type": "array", + "items": { + "$ref": "#/definitions/Link" + } + } + } + }, + "FeatureGeoJSON": { + "description": "GeoJSON Feature", + "type": "object", + "required": [ + "type", + "geometry", + "properties" + ], + "properties": { + "type": { + "description": "feature", + "type": "string" + }, + "geometry": { + "description": "This represents the geometry for one or more geographical features (parks, state boundary etc.) and should be a `GeoJSON` compliant type. Please refer to [RFC 7946](https://tools.ietf.org/html/rfc7946) for details.", + "type": "object" + }, + "properties": { + "description": "Additional properties of the feature.", + "type": "object" + }, + "id": { + "description": "Identifier for the feature.", + "type": "string" + }, + "featureType": { + "description": "The type of the feature. The value depends on the data model the current feature is part of. Some data models may have an empty value.", + "type": "string" + } + } + } + } +} From 2fcf0f6750bdce9bd6fb2f19d4316e21ff8deab3 Mon Sep 17 00:00:00 2001 From: Jeff Couckuyt Date: Mon, 8 Mar 2021 18:02:18 -0800 Subject: [PATCH 02/38] draft of planB --- .../Dataset/preview/2.0/dataset.json | 186 ++++++++---------- .../preview/2.0/dwgconversion.json | 176 ++++++++++++----- .../Tileset/preview/2.0/tileset.json | 150 +++++++++++--- 3 files changed, 331 insertions(+), 181 deletions(-) diff --git a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json index 6f2f381712b8..2aadc2afc68e 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json +++ b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json @@ -2,7 +2,7 @@ "swagger": "2.0", "info": { "title": "Azure Maps Dataset Service", - "version": "1.0", + "version": "2.0", "description": "APIs for managing datasets from uploaded data in Azure Maps." }, "host": "atlas.microsoft.com", @@ -76,28 +76,37 @@ "$ref": "#/definitions/ODataErrorResponse" } }, - "200Async": { - "description": "The operation's status response.", - "schema": { - "$ref": "#/definitions/LongRunningOperationResult" + "200": { + "description": "The operation was successfully queued.", + "headers": { + "location": { + "type": "string", + "description": "A URI where details on the operation can be found." + } } - }, - "201Async": { - "description": "The resource has been created successfully.", + }, + "200Async": { + "description": "The operation is complete. If the operation was successful, use the resource-location header to obtain the path to the result.", "schema": { "$ref": "#/definitions/LongRunningOperationResult" }, "headers": { - "Location": { + "resource-location": { "type": "string", "description": "A URI where details on the newly created resource can be found." } } }, "202Async": { - "description": "**Supported only for async request.**\nRequest Accepted: The request has been accepted for processing. Please use the URL in the Location Header to retry or access the results.", + "description": "The operation is in progress.", + "schema": { + "$ref": "#/definitions/LongRunningOperationResult" + } + }, + "202": { + "description": "Request Accepted: The request has been accepted for processing. Please use the URL in the location Header to obtain status.", "headers": { - "Location": { + "location": { "type": "string", "description": "New URL to check for the results of the long running process." } @@ -115,11 +124,11 @@ }, "ApiVersion": { "name": "api-version", - "description": "Version number of Azure Maps API. Current version is 1.0", + "description": "Version number of Azure Maps API. Current version is 2.0", "type": "string", "in": "query", "required": true, - "default": "1.0", + "default": "2.0", "x-ms-parameter-location": "client" }, "ConversionIdQuery": { @@ -154,56 +163,14 @@ "required": true, "x-ms-parameter-location": "method" }, - "Type": { - "name": "type", - "type": "string", - "in": "query", - "description": "The type of data to create the dataset with.", - "enum": [ - "facility" - ], - "x-ms-enum": { - "name": "DatasetType", - "modelAsString": false, - "values": [ - { - "value": "facility", - "description": "Facility Maps data type." - } - ] - }, - "required": true, - "x-ms-parameter-location": "method" - }, - "ImportUdid": { - "name": "udid", - "description": "The unique data ID used to import data into the dataset. The `udid` must have been obtained from a successful call to the Data Service Upload API.", + "OutputOntology": { + "name": "outputOntology", "type": "string", "in": "query", + "description": "The ontology to create the dataset with.", "required": false, "x-ms-parameter-location": "method" }, - "ImportType": { - "name": "type", - "type": "string", - "in": "query", - "description": "The type of data to import into the dataset with.", - "enum": [ - "fixture" - ], - "x-ms-enum": { - "name": "ImportDataType", - "modelAsString": false, - "values": [ - { - "value": "fixture", - "description": "Area and point element data." - } - ] - }, - "required": true, - "x-ms-parameter-location": "method" - }, "AppendDatasetId": { "name": "datasetId", "type": "string", @@ -212,8 +179,8 @@ "required": false, "x-ms-parameter-location": "method" }, - "StatusId": { - "name": "statusId", + "OperationId": { + "name": "operationId", "type": "string", "in": "path", "description": "The ID to query the status for the dataset create/import request.", @@ -222,7 +189,7 @@ } }, "paths": { - "/dataset/create": { + "/datasets/create": { "post": { "x-publish": true, "description": "**Dataset Create API**\n\n**Applies to:** S1 pricing tier.\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API \nand SDK. The Dataset APIs are part of Creator. This API allows the caller to create a dataset from data that \nwas uploaded to the Azure Maps Data Service.\n\nYou can use this API in a scenario like uploading a DWG zip package for a building, converting the zip package using \nthe Azure Maps Conversion Service, creating a dataset from the converted zip package. The created dataset can be \nused to create tilesets using the Azure Maps Tileset Service and can be queried via the Azure Maps WFS Service.\n\n## Submit Create Request\n\nTo create your dataset, you will use a `POST` request where the `conversionId` query parameter is an id that represents \nthe converted DWG zip package, the `type` parameter will describe the data type to use for the dataset, the `datasetId`\nparameter will describe if the provided data should be appended to a current dataset and, optionally, the \n`description` query parameter will contain a description (if description is not provided a default description will be \ngiven).\n\nThe Create API is a \n[long-running request](https://aka.ms/am-creator-lrt).", @@ -250,7 +217,7 @@ "$ref": "#/parameters/UdidDataset" }, { - "$ref": "#/parameters/Type" + "$ref": "#/parameters/OutputOntology" }, { "$ref": "#/parameters/AppendDatasetId" @@ -260,11 +227,8 @@ } ], "responses": { - "201": { - "$ref": "#/responses/201Async" - }, "202": { - "$ref": "#/responses/202Async" + "$ref": "#/responses/202" }, "400": { "$ref": "#/responses/400" @@ -284,14 +248,14 @@ } } }, - "/dataset/import/{datasetId}": { - "patch": { + "/datasets/{datasetId}": { + "delete": { "x-publish": true, - "description": "**Dataset Import API**\n\n**Applies to:** S1 pricing tier.\n
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API \nand SDK. The Dataset APIs are part of Creator. This API allows the caller to bulk import data into a dataset \nfrom data that was uploaded to the Azure Maps Data service.
\n\n### Submit Import Request\n\nTo import data into your dataset, you will use a `PATCH` request where the `datasetId` query parameter is the \ndataset you want to import your data into, the `udid` query parameter is the data you want to import, and the `type` \nparameter will describe the data type to use for the import data.
\n\nThe Import API is a \n[long-running request](https://aka.ms/am-creator-lrt).", - "operationId": "Dataset_ImportPreview", + "description": "**Dataset Delete API**\n\n**Applies to:** S1 pricing tier.\n
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Dataset APIs are part of Creator.\nThis API allows the caller to delete a previously created dataset.
\nYou can also use this API to delete old/unused datasets to create space for new Creator content.\n\n\n### Submit Delete Request\n\nTo delete your content you will issue a `DELETE` request where the path will contain the `datasetId` of the dataset to delete.
\n\n\n### Delete Data Response\n\nThe Delete API returns a HTTP `204 No Content` response if the dataset resource was deleted successfully.
", + "operationId": "Dataset_DeletePreview", "x-ms-examples": { - "Import data into previously created dataset": { - "$ref": "./examples/Dataset_Import.json" + "Delete previously created dataset": { + "$ref": "./examples/Dataset_Delete.json" } }, "parameters": [ @@ -303,20 +267,14 @@ }, { "$ref": "#/parameters/DatasetId" - }, - { - "$ref": "#/parameters/ImportUdid" - }, - { - "$ref": "#/parameters/ImportType" } ], "responses": { "200": { - "$ref": "#/responses/200Async" - }, - "202": { - "$ref": "#/responses/202Async" + "description": "The dataset delete request completed successfully. The resource referenced by the `datasetId` was deleted from the server.", + "schema": { + "$ref": "#/definitions/DatasetDeleteResponse" + } }, "400": { "$ref": "#/responses/400" @@ -334,34 +292,28 @@ "$ref": "#/responses/500" } } - } - }, - "/dataset/{datasetId}": { - "delete": { + }, + "get": { "x-publish": true, - "description": "**Dataset Delete API**\n\n**Applies to:** S1 pricing tier.\n
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Dataset APIs are part of Creator.\nThis API allows the caller to delete a previously created dataset.
\nYou can also use this API to delete old/unused datasets to create space for new Creator content.\n\n\n### Submit Delete Request\n\nTo delete your content you will issue a `DELETE` request where the path will contain the `datasetId` of the dataset to delete.
\n\n\n### Delete Data Response\n\nThe Delete API returns a HTTP `204 No Content` response if the dataset resource was deleted successfully.
", - "operationId": "Dataset_DeletePreview", - "x-ms-examples": { - "Delete previously created dataset": { - "$ref": "./examples/Dataset_Delete.json" - } - }, + "description": "**Dataset Get API**\n\n**Applies to:** S1 pricing tier.\n
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Dataset APIs are part of Creator.\nThis API allows the caller to fetch a previously successfully created dataset.\n", + "operationId": "Dataset_GetPreview", + "parameters": [ { - "$ref": "#/parameters/SubscriptionKey" + "$ref": "#/parameters/DatasetId" }, { - "$ref": "#/parameters/ApiVersion" + "$ref": "#/parameters/SubscriptionKey" }, { - "$ref": "#/parameters/DatasetId" + "$ref": "#/parameters/ApiVersion" } ], "responses": { - "204": { - "description": "The dataset delete request completed successfully. The resource referenced by the `datasetId` was deleted from the server.", + "200": { + "description": "The get dataset request completed successfully.", "schema": { - "$ref": "#/definitions/DatasetDeleteResponse" + "$ref": "#/definitions/DatasetDetailInfo" } }, "400": { @@ -381,8 +333,9 @@ } } } + }, - "/dataset": { + "/datasets": { "get": { "x-publish": true, "description": "**Dataset List API**\n\n**Applies to:** S1 pricing tier.\n
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Dataset APIs are part of Creator.\nThis API allows the caller to fetch a list of all previously successfully created datasets.\n\n\n### Submit List Request\n\nTo list all your datasets, you will issue a `GET` request with no additional parameters.
\n\n\n### List Data Response\n\nThe List API returns the complete list of all datasets in `json` format. The response contains the following fields (if they are not null or empty):\n > created - The timestamp the dataset was created.\n > datasetId - The id for the dataset.\n > description - The description for the dataset.\n > datasetSources - The source data that was used when the create request was issued.\n\nThe `datasetSources` describes the source data that was used when the create request was issued and contains the following elements (if they are not null or empty):\n > conversionIds - The list of `conversionId` (null if none were provided).\n > udids - The list of `udid` (null if none were provided).\n > appendDatasetId - The `datasetId` that was used for an append operation (null if none was used).\n > type - The type of data stored in the dataset that was created.\n\nHere's a sample response returning the `timestamp`, `datasetId`, `description`, and `datasetSources` of 3 dataset resources:\n\n
\n\n```json\n{\n \"datasets\": [\n {\n \"timestamp\": \"2020-01-01T22:50:48+00:00\",\n \"datasetId\": \"f6495f62-94f8-0ec2-c252-45626f82fcb2\",\n \"description\": \"Some description or comment for the dataset.\",\n \"datasetSources\": {\n \"conversionIds\": [\n \"15d21452-c9bb-27b6-5e79-743ca5c3205d\"\n ],\n \"type\": \"facility\"\n },\n \"status\": \"Succeeded\"\n },\n {\n \"timestamp\": \"2020-01-01T22:57:53+00:00\",\n \"datasetId\": \"8b1288fa-1958-4a2b-b68e-13a7i5af7d7c\",\n \"description\": \"Create from upload '0c1288fa-2058-4a1b-b68d-13a5f5af7d7c'.\",\n \"datasetSources\": {\n \"udids\": [\n \"0c1288fa-2058-4a1b-b68d-13a5f5af7d7c\"\n ],\n \"type\": \"facility\"\n },\n \"status\": \"Succeeded\"\n },\n {\n \"timestamp\": \"2020-01-01T20:39:36+00:00\",\n \"datasetId\": \"7c1288fa-2058-4a1b-b68f-13a6h5af7d7c\",\n \"description\": \"Some other description or comment for the dataset.\",\n \"datasetSources\": {\n \"conversionIds\": [\n \"15d21452-c9bb-27b6-5e79-743ca5c3205d\"\n ],\n \"appendDatasetId\": \"8b1288fa-1958-4a2b-b68e-13a7i5af7d7c\",\n \"type\": \"facility\"\n },\n \"status\": \"Succeeded\"\n }\n ]\n}\n```\n
", @@ -402,7 +355,7 @@ ], "responses": { "200": { - "description": "The list dataset request completed successfully. The response body contains a list of all the previously created datasets.", + "description": "The dataset request completed successfully. The response body contains the previously created dataset.", "schema": { "$ref": "#/definitions/DatasetListResponse" } @@ -424,6 +377,34 @@ } } } + }, + "/datasets/operations/{operationId}": { + "get": { + "description": "This path will be obtained from a call to /datasets/create. While in progress, an http202 will be returned, followed by an http200 once completed.", + "parameters": [ + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/OperationId" + } + ], + + "responses":{ + "200": { + "$ref": "#/responses/200Async" + }, + "202": { + "$ref": "#/responses/202Async" + }, + "400": { + "$ref": "#/responses/400" + } + } + } } }, "definitions": { @@ -600,9 +581,6 @@ "readOnly": true } } - }, - "DatasetGetDetailsResponse": { - "$ref": "#/definitions/DatasetDetailInfo" } } } diff --git a/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json index 1d5486f6caba..c965cccd1af3 100644 --- a/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json +++ b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json @@ -2,7 +2,7 @@ "swagger": "2.0", "info": { "title": "Azure Maps Conversion Service", - "version": "1.0", + "version": "2.0", "description": "APIs for converting DWG Packages in Azure Maps." }, "host": "atlas.microsoft.com", @@ -75,22 +75,37 @@ "$ref": "#/definitions/ODataErrorResponse" } }, - "201Async": { - "description": "The resource has been created successfully.", + "200Async": { + "description": "The operation is complete. If the operation was successful, use the resource-location header to obtain the path to the result.", "schema": { "$ref": "#/definitions/LongRunningOperationResult" }, "headers": { - "Location": { + "resource-location": { "type": "string", "description": "A URI where details on the newly created resource can be found." } } }, "202Async": { - "description": "**Supported only for async request.**\nRequest Accepted: The request has been accepted for processing. Please use the URL in the Location Header to retry or access the results.", + "description": "The operation is in progress.", + "schema": { + "$ref": "#/definitions/LongRunningOperationResult" + } + }, + "200": { + "description": "The operation was successfully queued.", + "headers": { + "location": { + "type": "string", + "description": "A URI where details on the operation can be found." + } + } + }, + "202": { + "description": "Request Accepted: The request has been accepted for processing. Please use the URL in the location Header to obtain status.", "headers": { - "Location": { + "location": { "type": "string", "description": "New URL to check for the results of the long running process." } @@ -139,25 +154,12 @@ "required": true, "x-ms-parameter-location": "method" }, - "ConversionInputType": { - "name": "inputType", - "description": "Input type of the content being converted. Currently, only `DWG` type is supported.", + "OutputOntology": { + "name": "outputOntology", + "description": "Output ontology version.", "type": "string", "in": "query", "required": true, - "enum": [ - "DWG" - ], - "x-ms-enum": { - "name": "ConversionInputType", - "modelAsString": false, - "values": [ - { - "value": "DWG", - "description": "DWG file format." - } - ] - }, "x-ms-parameter-location": "method" }, "DescriptionDwgConversion": { @@ -167,10 +169,19 @@ "in": "query", "required": false, "x-ms-parameter-location": "method" + }, + "OperationId": { + "name": "operationId", + "type": "string", + "in": "path", + "description": "The ID to query the status for the dataset create/import request.", + "required": true, + "x-ms-parameter-location": "method" } + }, "paths": { - "/conversion/convert": { + "/conversions/create": { "post": { "x-publish": true, "description": "**Conversion Create API**\n\n**Applies to:** S1 pricing tier.
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and \nSDK. The Conversion API is part of Creator.
\n\nThe Conversion API lets the caller import a set of DWG design files as a zipped [Drawing Package](https://aka.ms/am-drawing-package) into Azure Maps. The [Drawing Package](https://aka.ms/am-drawing-package) should first be \nuploaded using the [Azure Maps Data Service](https://docs.microsoft.com/rest/api/maps/data). Once uploaded, use the \n`udid` returned by the [Data Upload API](https://docs.microsoft.com/rest/api/maps/data/uploadpreview) to call \nthis Conversion API.\n\n## Convert DWG package\n\nThe Conversion API performs a \n[long-running request](https://aka.ms/am-creator-lrt).\n\n## Debug DWG package issues\n\n\nDuring the Conversion process, if there are any issues with the DWG package [errors and warnings](https://aka.ms/am-conversion-errors) are provided in the response along with a *diagnostic package* to visualize \nand diagnose these issues. In case any issues are encountered with your DWG package, the Conversion operation status process as detailed \n[here](https://aka.ms/am-creator-lrt) returns the location of the *diagnostic\npackage* that can be downloaded by the caller to help them visualize and diagnose these issues. The *diagnostic package* location\ncan be found in the properties section of the conversion operation status response and looks like the following:\n\n```json\n{\n \"properties\": {\n \"diagnosticPackageLocation\": \"https://atlas.microsoft.com/mapdata/{DiagnosticPackageId}?api-version=1.0\" \n } \n}\n```\n\nThe *diagnostic package* can be downloaded by executing a `HTTP GET` request on the `diagnosticPackageLocation`.\nFor more details on how to use the tool to visualize and diagnose all the errors and warnings see [Drawing Error Visualizer](https://aka.ms/am-drawing-errors-visualizer).
\n\nA conversion operation will be marked as *success* if there are zero or more warnings but will be marked as *failed* if any errors are encountered. ", @@ -198,7 +209,7 @@ "$ref": "#/parameters/UdidQuery" }, { - "$ref": "#/parameters/ConversionInputType" + "$ref": "#/parameters/OutputOntology" }, { "$ref": "#/parameters/DescriptionDwgConversion" @@ -206,10 +217,7 @@ ], "responses": { "201": { - "$ref": "#/responses/201Async" - }, - "202": { - "$ref": "#/responses/202Async" + "$ref": "#/responses/202" }, "400": { "$ref": "#/responses/400" @@ -229,14 +237,14 @@ } } }, - "/conversion": { - "get": { + "/conversions/{conversionId}": { + "delete": { "x-publish": true, - "description": "**Conversion List API**\n\n**Applies to:** S1 pricing tier.
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Conversion API is part of Creator.
\n\nThis API allows the caller to fetch a list of all successful data conversions submitted previously using the [Conversion API](https://docs.microsoft.com/en-us/rest/api/maps/conversion/convertpreview). \n\n### Submit List Request\n\nTo list all successful conversions you will issue a `GET` request with no additional parameters.\n\n### List Data Response\n\nThe Conversion List API returns the complete list of all conversion details in `json` format.
\n\nHere is a sample response returning the details of two successful conversion requests: \n\n
\n\n```json\n{\n \"conversions\": \n [\n {\n \"conversionId\": \"54398242-ea6c-1f31-4fa6-79b1ae0fc24d\",\n \"udid\": \"31838736-8b84-11ea-bc55-0242ac130003\",\n \"created\": \"5/19/2020 9:00:00 AM +00:00\",\n \"description\": \"User provided description.\",\n \"featureCounts\": {\n \"DIR\": 1,\n \"LVL\": 3,\n \"FCL\": 1,\n \"UNIT\": 150,\n \"CTG\": 8,\n \"AEL\": 0,\n \"OPN\": 10\n }\n },\n {\n \"conversionId\": \"2acf7d32-8b84-11ea-bc55-0242ac130003\",\n \"udid\": \"1214bc58-8b84-11ea-bc55-0242ac1300039\",\n \"created\": \"5/19/2020 9:00:00 AM +00:00\",\n \"description\": \"User provided description.\",\n \"featureCounts\": {\n \"DIR\": 1,\n \"LVL\": 3,\n \"FCL\": 1,\n \"UNIT\": 150,\n \"CTG\": 8,\n \"AEL\": 0,\n \"OPN\": 10\n }\n }\n ]\n}\n```\n\n
", - "operationId": "Conversion_ListPreview", + "description": "**Conversion Delete API**\n\n**Applies to:** S1 pricing tier.
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Delete API is part of Creator.
\n\nThis API allows the caller to delete any data conversions created previously using the [Conversion API](https://docs.microsoft.com/en-us/rest/api/maps/conversion/convertpreview).\n\n### Submit Delete Request\n\nTo delete your conversion data you will issue a `DELETE` request where the path will contain the `conversionId` of the data to delete.\n\n### Conversion Delete Response\n\nThe Conversion Delete API returns a HTTP `204 No Content` response with an empty body, if the converted data resources were deleted successfully.
\nA HTTP `400 Bad Request` error response will be returned if no resource associated with the passed-in `conversionId` is found. ", + "operationId": "Conversion_DeletePreview", "x-ms-examples": { - "Returns a list of all the data processed by the Conversion Service for the account": { - "$ref": "./examples/List.json" + "Delete previously converted content": { + "$ref": "./examples/Delete.json" } }, "parameters": [ @@ -248,13 +256,58 @@ }, { "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/ConversionId" } ], "responses": { "200": { - "description": "List request completed successfully.", + "description": "Conversion delete request completed successfully. The content for `conversionId` was deleted on the server.", "schema": { - "$ref": "#/definitions/ConversionListResponse" + "$ref": "#/definitions/ConversionDeleteResponse" + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + }, + "get": { + "x-publish": true, + "description": "**Conversion Get API**\n\n**Applies to:** S1 pricing tier.
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Conversion API is part of Creator.
\n\nThis API allows the caller to fetch a successful data conversion submitted previously using the [Conversion API](https://docs.microsoft.com/en-us/rest/api/maps/conversion/convertpreview). ", + "operationId": "Conversion_GetPreview", + "parameters": [ + { + "$ref": "#/parameters/ClientId" + }, + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/ConversionId" + } + ], + "responses": { + "200": { + "description": "Returns details of the specified conversion.", + "schema": { + "$ref": "#/definitions/ConversionListDetailInfo" } }, "400": { @@ -274,15 +327,16 @@ } } } + }, - "/conversion/{conversionId}": { - "delete": { + "/conversions": { + "get": { "x-publish": true, - "description": "**Conversion Delete API**\n\n**Applies to:** S1 pricing tier.
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Delete API is part of Creator.
\n\nThis API allows the caller to delete any data conversions created previously using the [Conversion API](https://docs.microsoft.com/en-us/rest/api/maps/conversion/convertpreview).\n\n### Submit Delete Request\n\nTo delete your conversion data you will issue a `DELETE` request where the path will contain the `conversionId` of the data to delete.\n\n### Conversion Delete Response\n\nThe Conversion Delete API returns a HTTP `204 No Content` response with an empty body, if the converted data resources were deleted successfully.
\nA HTTP `400 Bad Request` error response will be returned if no resource associated with the passed-in `conversionId` is found. ", - "operationId": "Conversion_DeletePreview", + "description": "**Conversion List API**\n\n**Applies to:** S1 pricing tier.
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Conversion API is part of Creator.
\n\nThis API allows the caller to fetch a list of all successful data conversions submitted previously using the [Conversion API](https://docs.microsoft.com/en-us/rest/api/maps/conversion/convertpreview). \n\n### Submit List Request\n\nTo list all successful conversions you will issue a `GET` request with no additional parameters.\n\n### List Data Response\n\nThe Conversion List API returns the complete list of all conversion details in `json` format.
\n\nHere is a sample response returning the details of two successful conversion requests: \n\n
\n\n```json\n{\n \"conversions\": \n [\n {\n \"conversionId\": \"54398242-ea6c-1f31-4fa6-79b1ae0fc24d\",\n \"udid\": \"31838736-8b84-11ea-bc55-0242ac130003\",\n \"created\": \"5/19/2020 9:00:00 AM +00:00\",\n \"description\": \"User provided description.\",\n \"featureCounts\": {\n \"DIR\": 1,\n \"LVL\": 3,\n \"FCL\": 1,\n \"UNIT\": 150,\n \"CTG\": 8,\n \"AEL\": 0,\n \"OPN\": 10\n }\n },\n {\n \"conversionId\": \"2acf7d32-8b84-11ea-bc55-0242ac130003\",\n \"udid\": \"1214bc58-8b84-11ea-bc55-0242ac1300039\",\n \"created\": \"5/19/2020 9:00:00 AM +00:00\",\n \"description\": \"User provided description.\",\n \"featureCounts\": {\n \"DIR\": 1,\n \"LVL\": 3,\n \"FCL\": 1,\n \"UNIT\": 150,\n \"CTG\": 8,\n \"AEL\": 0,\n \"OPN\": 10\n }\n }\n ]\n}\n```\n\n
", + "operationId": "Conversion_ListPreview", "x-ms-examples": { - "Delete previously converted content": { - "$ref": "./examples/Delete.json" + "Returns a list of all the data processed by the Conversion Service for the account": { + "$ref": "./examples/List.json" } }, "parameters": [ @@ -294,16 +348,13 @@ }, { "$ref": "#/parameters/ApiVersion" - }, - { - "$ref": "#/parameters/ConversionId" } ], "responses": { - "204": { - "description": "Conversion delete request completed successfully. The content for `conversionId` was deleted on the server.", + "200": { + "description": "List request completed successfully.", "schema": { - "$ref": "#/definitions/ConversionDeleteResponse" + "$ref": "#/definitions/ConversionListResponse" } }, "400": { @@ -323,7 +374,36 @@ } } } + }, + "/conversions/operations/{operationId}": { + "get": { + "description": "This path will be obtained from a call to /conversions/create. While in progress, an http202 will be returned, followed by an http200 once completed.", + "parameters": [ + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/OperationId" + } + ], + + "responses":{ + "200": { + "$ref": "#/responses/200Async" + }, + "202": { + "$ref": "#/responses/202Async" + }, + "400": { + "$ref": "#/responses/400" + } + } + } } + }, "definitions": { "ODataErrorResponse": { diff --git a/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json index fa4aaaf6ef44..e41c81bf4bbb 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json +++ b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json @@ -75,22 +75,37 @@ "$ref": "#/definitions/ODataErrorResponse" } }, - "201Async": { - "description": "The resource has been created successfully.", + "200Async": { + "description": "The operation is complete. If the operation was successful, use the resource-location header to obtain the path to the result.", "schema": { "$ref": "#/definitions/LongRunningOperationResult" }, "headers": { - "Location": { + "resource-location": { "type": "string", "description": "A URI where details on the newly created resource can be found." } } }, "202Async": { - "description": "**Supported only for async request.**\nRequest Accepted: The request has been accepted for processing. Please use the URL in the Location Header to retry or access the results.", + "description": "The operation is in progress.", + "schema": { + "$ref": "#/definitions/LongRunningOperationResult" + } + }, + "200": { + "description": "The operation was successfully queued.", + "headers": { + "location": { + "type": "string", + "description": "A URI where details on the operation can be found." + } + } + }, + "202": { + "description": "Request Accepted: The request has been accepted for processing. Please use the URL in the location Header to obtain status.", "headers": { - "Location": { + "location": { "type": "string", "description": "New URL to check for the results of the long running process." } @@ -167,10 +182,18 @@ "in": "query", "required": false, "x-ms-parameter-location": "method" + }, + "OperationId": { + "name": "operationId", + "type": "string", + "in": "path", + "description": "The ID to query the status for the dataset create/import request.", + "required": true, + "x-ms-parameter-location": "method" } }, "paths": { - "/tileset/create/vector": { + "/tilesets/create": { "post": { "x-publish": true, "description": "**Tileset Create API**\n\n**Applies to**: S1 pricing tier.\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API \nand SDK. The Tileset API is part of Creator.\n\nThe Tileset Create API allows the caller to create a tileset from a dataset. A tileset contains a set of tiles that can be consumed \nfrom the [Get Map Tile](/rest/api/maps/render/getmaptile) to retrieve custom tiles. To make a dataset, use the \n[DataSet Create API](/rest/api/maps/dataset/createpreview).\n\n## Submit Create Request\n\nTo create your tileset you will make a `POST` request with an empty body. The `datasetId` query parameter will be \nused as the source of the tileset data.\n\nThe Create Tileset API is a \n[long-running request](https://aka.ms/am-creator-lrt).", @@ -202,11 +225,8 @@ } ], "responses": { - "201": { - "$ref": "#/responses/201Async" - }, "202": { - "$ref": "#/responses/202Async" + "$ref": "#/responses/202" }, "400": { "$ref": "#/responses/400" @@ -226,14 +246,14 @@ } } }, - "/tileset": { - "get": { + "/tilesets/{tilesetId}": { + "delete": { "x-publish": true, - "description": "**Tileset List API**\n\n**Applies to:** S1 pricing tier.\n
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Tileset API is part of Creator.\nThis API allows the caller to fetch a list of all tilesets created. \n
", - "operationId": "Tileset_ListPreview", + "description": "**Tileset Delete API**\n\n**Applies to:** S1 pricing tier.\n
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Tileset API is part of Creator.\nThis API allows the caller to delete a created tileset.
\nYou can use this API if a tileset is no longer needed. \n\n### Submit Delete Request\n\nTo delete your content you will issue a `DELETE` request where the path will contain the `tilesetId` of the tileset to delete.
\n\n#### Delete request \"Successful\"\n\nThe Tileset Delete API returns a HTTP `204 No Content` response with an empty body, if the tileset was deleted successfully.
\n\n#### Delete request \"Failed\"\n\nA HTTP `400 Bad Request` error response will be returned if the tileset with the passed-in `tilesetId` is not found. \n\nHere is a sample error response:\n\n
\n\n```json\n{\n \"error\": {\n \"code\": \"400 BadRequest\",\n \"message\": \"Bad request - Tileset Id: d85b5b27-5fc4-4599-8b50-47160e90f8ce does not exist.\"\n }\n}\n```", + "operationId": "Tileset_DeletePreview", "x-ms-examples": { - "Get a list of all tilesets": { - "$ref": "./examples/List.json" + "Delete a created tileset": { + "$ref": "./examples/Delete.json" } }, "parameters": [ @@ -245,13 +265,58 @@ }, { "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/TilesetId" + } + ], + "responses": { + "204": { + "description": "Tileset delete request completed successfully.", + "schema": { + "$ref": "#/definitions/TilesetDeleteResponse" + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + }, + "get": { + "x-publish": true, + "description": "**Tileset Get API**\n\n**Applies to:** S1 pricing tier.\n
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Tileset API is part of Creator.\nThis API allows the caller to fetch a tileset.", + "operationId": "Tileset_GetPreview", + "parameters": [ + { + "$ref": "#/parameters/ClientId" + }, + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/TilesetId" } ], "responses": { "200": { "description": "List tileset request completed successfully. The response body contains a list of all tilesets.", "schema": { - "$ref": "#/definitions/TilesetListResponse" + "$ref": "#/definitions/TilesetDetailInfo" } }, "400": { @@ -271,15 +336,16 @@ } } } + }, - "/tileset/{tilesetId}": { - "delete": { + "/tilesets": { + "get": { "x-publish": true, - "description": "**Tileset Delete API**\n\n**Applies to:** S1 pricing tier.\n
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Tileset API is part of Creator.\nThis API allows the caller to delete a created tileset.
\nYou can use this API if a tileset is no longer needed. \n\n### Submit Delete Request\n\nTo delete your content you will issue a `DELETE` request where the path will contain the `tilesetId` of the tileset to delete.
\n\n#### Delete request \"Successful\"\n\nThe Tileset Delete API returns a HTTP `204 No Content` response with an empty body, if the tileset was deleted successfully.
\n\n#### Delete request \"Failed\"\n\nA HTTP `400 Bad Request` error response will be returned if the tileset with the passed-in `tilesetId` is not found. \n\nHere is a sample error response:\n\n
\n\n```json\n{\n \"error\": {\n \"code\": \"400 BadRequest\",\n \"message\": \"Bad request - Tileset Id: d85b5b27-5fc4-4599-8b50-47160e90f8ce does not exist.\"\n }\n}\n```", - "operationId": "Tileset_DeletePreview", + "description": "**Tileset List API**\n\n**Applies to:** S1 pricing tier.\n
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Tileset API is part of Creator.\nThis API allows the caller to fetch a list of all tilesets created. \n
", + "operationId": "Tileset_ListPreview", "x-ms-examples": { - "Delete a created tileset": { - "$ref": "./examples/Delete.json" + "Get a list of all tilesets": { + "$ref": "./examples/List.json" } }, "parameters": [ @@ -291,16 +357,13 @@ }, { "$ref": "#/parameters/ApiVersion" - }, - { - "$ref": "#/parameters/TilesetId" } ], "responses": { - "204": { - "description": "Tileset delete request completed successfully.", + "200": { + "description": "List tileset request completed successfully. The response body contains a list of all tilesets.", "schema": { - "$ref": "#/definitions/TilesetDeleteResponse" + "$ref": "#/definitions/TilesetListResponse" } }, "400": { @@ -320,7 +383,36 @@ } } } + }, + "/tilesets/operations/{operationId}": { + "get": { + "description": "This path will be obtained from a call to /tilesets/create. While in progress, an http202 will be returned, followed by an http200 once completed.", + "parameters": [ + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/OperationId" + } + ], + + "responses":{ + "200": { + "$ref": "#/responses/200Async" + }, + "202": { + "$ref": "#/responses/202Async" + }, + "400": { + "$ref": "#/responses/400" + } + } + } } + }, "definitions": { "ODataErrorResponse": { From 38224c18ffac943c888bd0202d0b35fac35369e8 Mon Sep 17 00:00:00 2001 From: Jeff Couckuyt Date: Tue, 9 Mar 2021 16:58:38 -0800 Subject: [PATCH 03/38] adding ontology properties; adding DataUpload --- .../Microsoft.Maps/Data/preview/2.0/data.json | 647 ++++++++++++++++++ .../Data/preview/2.0/examples/Delete.json | 57 ++ .../Data/preview/2.0/examples/Download.json | 76 ++ .../Data/preview/2.0/examples/List.json | 77 +++ .../Data/preview/2.0/examples/Update.json | 100 +++ .../Data/preview/2.0/examples/Upload.json | 100 +++ .../Dataset/preview/2.0/dataset.json | 41 +- .../preview/2.0/dwgconversion.json | 5 + .../preview/2.0/featurestate.json | 200 +++--- .../Tileset/preview/2.0/tileset.json | 5 + .../Microsoft.Maps/WFS/preview/2.0/wfs.json | 20 + 11 files changed, 1195 insertions(+), 133 deletions(-) create mode 100644 specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/data.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Delete.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Download.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/List.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Update.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Upload.json diff --git a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/data.json b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/data.json new file mode 100644 index 000000000000..b9dbd2a85808 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/data.json @@ -0,0 +1,647 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Maps Data Service", + "version": "2.0", + "description": "APIs for uploading map data to Azure Maps." + }, + "host": "atlas.microsoft.com", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [ + "application/json" + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "These are the [Azure Active Directory OAuth2](https://docs.microsoft.com/en-us/azure/active-directory/develop/v1-overview) Flows. When paired with [Azure Role Based Access](https://docs.microsoft.com/en-us/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.\n\nTo 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.\n\n#### Note\n* 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).\n* The `Authorization URL` is specific to the Azure public cloud instance. Sovereign clouds have unique Authorization URLs and Azure Active directory configurations. \n* 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.\n* Usage of the [Azure Maps Web SDK](https://aka.ms/amaadmc) allows for configuration based setup of an application for multiple use cases.\n* Currently Azure Active Directory [v1.0](https://docs.microsoft.com/en-us/azure/active-directory/develop/azure-ad-endpoint-comparison) tokens are supported.", + "scopes": { + "user_impersonation": "Impersonates a user's Azure Active Directory account." + } + }, + "apiKeyQuery": { + "type": "apiKey", + "description": "This is a shared key which is provisioned when creating an [Azure Maps resource](https://aka.ms/amauth) through the Azure management plane via Azure portal, Powershell, CLI, Azure SDKs, or REST APIs. With this key, any application is authorized to access all REST APIs. In other words, these can currently be treated as master keys to the account which they are issued for. For publicly exposed applications our recommendation is to use server to server access of Azure Maps REST APIs where this key can be securely stored.", + "name": "subscription-key", + "in": "query" + } + }, + "security": [ + { + "azure_auth": [] + }, + { + "apiKeyQuery": [] + } + ], + "responses": { + "400": { + "description": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "401": { + "description": "Access denied due to invalid subscription key or invalid Azure Active Directory bearer token. Make sure to provide a valid key for an active Azure subscription and Maps resource. Otherwise, verify the [WWW-Authenticate](https://tools.ietf.org/html/rfc6750#section-3.1) header for error code and description of the provided AAD bearer token.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + }, + "headers": { + "WWW-Authenticate": { + "type": "string", + "description": "Bearer realm=\"https://atlas.microsoft.com/\", error=\"invalid_token\", error_description=\"The access token expired\"" + } + } + }, + "403": { + "description": "Permission, capacity, or authentication issues.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "404": { + "description": "Not Found: the requested resource could not be found, but it may be available again in the future.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "500": { + "description": "An error occurred while processing the request. Please try again later.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "201Async": { + "description": "The resource has been created successfully.", + "schema": { + "$ref": "#/definitions/LongRunningOperationResult" + }, + "headers": { + "Location": { + "type": "string", + "description": "A URI where details on the newly created resource can be found." + } + } + }, + "202Async": { + "description": "**Supported only for async request.**\nRequest Accepted: The request has been accepted for processing. Please use the URL in the Location Header to retry or access the results.", + "headers": { + "Location": { + "type": "string", + "description": "New URL to check for the results of the long running process." + } + } + } + }, + "parameters": { + "ClientId": { + "name": "x-ms-client-id", + "description": "Specifies which account is intended for usage in conjunction with the Azure AD security model. It represents a unique ID for the Azure Maps account and can be retrieved from Azure Maps management plane Account API. To use Azure AD security in Azure Maps see the following [articles](https://aka.ms/amauthdetails) for guidance.", + "type": "string", + "in": "header", + "required": false, + "x-ms-parameter-location": "client" + }, + "SubscriptionKey": { + "name": "subscription-key", + "description": "One of the Azure Maps keys provided from an Azure Map Account. Please refer to this [article](https://docs.microsoft.com/azure/azure-maps/how-to-manage-authentication) for details on how to manage authentication.", + "type": "string", + "in": "query", + "required": false, + "x-ms-parameter-location": "client" + }, + "ApiVersion": { + "name": "api-version", + "description": "Version number of Azure Maps API. Current version is 2.0", + "type": "string", + "in": "query", + "required": true, + "default": "2.0", + "x-ms-parameter-location": "client" + }, + "JsonFormat": { + "name": "format", + "description": "Desired format of the response. Only `json` format is supported.", + "type": "string", + "in": "path", + "required": true, + "enum": [ + "json" + ], + "x-ms-enum": { + "name": "JsonFormat", + "modelAsString": false, + "values": [ + { + "value": "json", + "description": "[The JavaScript Object Notation Data Interchange Format](https://tools.ietf.org/html/rfc8259)" + } + ] + }, + "x-ms-parameter-location": "method" + }, + "UploadDataFormat": { + "name": "dataFormat", + "description": "Data format of the content being uploaded.", + "type": "string", + "in": "query", + "required": true, + "enum": [ + "geojson", + "zip", + "dwgzippackage" + ], + "x-ms-enum": { + "name": "UploadDataFormat", + "modelAsString": true, + "values": [ + { + "value": "geojson", + "description": "[GeoJSON](https://tools.ietf.org/html/rfc7946) is a JSON based geospatial data interchange format." + }, + { + "value": "zip", + "description": "Compressed data format." + }, + { + "value": "dwgzippackage", + "description": "" + } + ] + }, + "x-ms-parameter-location": "method" + }, + "Udid": { + "name": "udid", + "description": "The unique data id for the content. The `udid` must have been obtained from a successful [Data Upload API](https://docs.microsoft.com/en-us/rest/api/maps/data/uploadpreview) call.", + "type": "string", + "in": "path", + "required": true, + "x-ms-parameter-location": "method" + }, + "Description": { + "name": "description", + "description": "The description to be given to the upload.", + "type": "string", + "in": "query", + "required": false, + "x-ms-parameter-location": "method" + } + }, + "paths": { + "/mapData/upload": { + "post": { + "x-publish": true, + "description": "**Data Upload API**\n\n**Applies to:** S1 pricing tier.\n\nThe Data Upload API allows the caller to upload data content to the Azure Maps service.\nYou can use this API in a scenario like uploading a collection of Geofences in `GeoJSON` \nformat, for use in our [Azure Maps Geofencing Service](https://docs.microsoft.com/rest/api/maps/spatial).\n\n## Submit Upload Request\n\nTo upload your content you will use a `POST` request. The request body will contain the data to upload. The \n`dataFormat` query parameter will contain the format for the data, the `dataSharingLevel` query parameter \ncan contain the sharing level for the data. The `Content-Type` header will be set to the content type of the \ndata.\n\nFor example, to upload a collection of geofences in `GeoJSON` format, set the request body to the geofence \ncontent. Set the `dataFormat` query parameter to _geojson_, and set the `Content-Type` header to either one \nof the following media types:\n\n- `application/json`\n- `application/vnd.geo+json`\n- `application/octet-stream`\n\nHere's a sample request body for uploading a simple Geofence represented as a circle geometry using a center \npoint and a radius. The sample below is in `GeoJSON`:\n\n```json\n{\n \"type\": \"FeatureCollection\",\n \"features\": [{\n \"type\": \"Feature\",\n \"geometry\": {\n \"type\": \"Point\",\n \"coordinates\": [-122.126986, 47.639754]\n },\n \"properties\": {\n \"geometryId\": \"001\",\n \"radius\": 500\n }\n }]\n}\n```\n\nThe Data Upload API performs a \n[long-running request](https://docs.microsoft.com/azure/azure-maps/private-atlas-long-running-operation).\n\n## Data Upload Limits\n\nPlease, be aware that currently every Azure Maps account has a [data storage limit](https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/azure-subscription-service-limits#azure-maps-limits). \nOnce the storage limit is reached, all the new upload API calls will return a `409 Conflict` http error response. \nYou can always use the [Data Delete API](https://docs.microsoft.com/rest/api/maps/data/deletepreview) to \ndelete old/unused content and create space for new uploads.", + "operationId": "Data_UploadPreview", + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-examples": { + "Upload GeoJSON data containing geometries that represent a collection of geofences": { + "$ref": "./examples/Upload.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ClientId" + }, + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/Description" + }, + { + "$ref": "#/parameters/UploadDataFormat" + }, + { + "name": "UploadContent", + "in": "body", + "description": "The content to upload.", + "required": true, + "schema": { + "type": "object" + } + } + ], + "responses": { + "200": { + "description": "Data upload failed. The uploaded content did not satisfy all the validation checks. The response body contains all the errors that were encountered.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "201": { + "$ref": "#/responses/201Async" + }, + "202": { + "$ref": "#/responses/202Async" + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + }, + "/mapData/{udid}": { + "put": { + "x-publish": true, + "description": "**Data Update API**\n\n**Applies to:** S1 pricing tier.\n\nThe Data Update API allows the caller to update a previously uploaded data content.\n\nYou can use this API in a scenario like adding or removing geofences to or from an existing collection of geofences. \nGeofences are uploaded using the [Data Upload API](https://docs.microsoft.com/rest/api/maps/data/uploadpreview), for \nuse in the [Azure Maps Geofencing Service](https://docs.microsoft.com/rest/api/maps/spatial).\n\nPlease note that the Update API will *replace* and *override* the existing data content.\n\n## Submit Update Request\n\nTo update your content you will use a `PUT` request. The request body will contain the new data that will replace \nthe existing data. The `Content-Type` header will be set to the content type of the data, and the path will contain \nthe `udid` of the data to be update.\n\nFor example, to update a collection of geofences that were previously uploaded using the Upload API, place the new \ngeofence content in the request body. Set the `udid` parameter in the path to the `udid` of the data received \npreviously in the upload API response. And set the `Content-Type` header to one of the following media types:\n\n- `application/json`\n- `application/vnd.geo+json`\n- `application/octet-stream`\n\nHere's a sample request body for updating a simple Geofence. It's represented as a circle geometry using a center \npoint and a radius. The sample below is in `GeoJSON`:\n\n```json\n{\n \"type\": \"FeatureCollection\",\n \"features\": [{\n \"type\": \"Feature\",\n \"geometry\": {\n \"type\": \"Point\",\n \"coordinates\": [-122.126986, 47.639754]\n },\n \"properties\": {\n \"geometryId\": \"001\",\n \"radius\": 500\n }\n }]\n}\n```\n\nThe previously uploaded geofence had a radius of 100m. The above request will update it to 500m.\n\nThe Data Update API performs a \n[long-running request](https://docs.microsoft.com/azure/azure-maps/private-atlas-long-running-operation).\n\n## Data Update Limits\n\nPlease, be aware that currently every Azure Maps account has a [data storage limit](https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/azure-subscription-service-limits#azure-maps-limits). \nOnce the storage limit is reached, all the new upload API calls will return a `409 Conflict` http error response. \nYou can always use the [Data Delete API](https://docs.microsoft.com/rest/api/maps/data/deletepreview) to \ndelete old/unused content and create space for new uploads.", + "operationId": "Data_UpdatePreview", + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-examples": { + "Update previously uploaded GeoJSON data containing geometries that represent a collection of geofences": { + "$ref": "./examples/Update.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ClientId" + }, + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/Udid" + }, + { + "$ref": "#/parameters/Description" + }, + { + "name": "UpdateContent", + "in": "body", + "description": "The new content that will update/replace the previously uploaded content.", + "required": true, + "schema": { + "type": "object" + } + } + ], + "responses": { + "200": { + "description": "Data update failed. The uploaded content did not satisfy all the validation checks. The response body contains all the errors that were encountered.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "201": { + "$ref": "#/responses/201Async" + }, + "202": { + "$ref": "#/responses/202Async" + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + }, + "get": { + "x-publish": true, + "description": "**Data Download API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to download a previously uploaded data content.
\nYou can use this API in a scenario like downloading an existing collection of geofences uploaded previously using the [Data Upload API](https://docs.microsoft.com/en-us/rest/api/maps/data/uploadpreview) for use in our [Azure Maps Geofencing Service](https://docs.microsoft.com/en-us/rest/api/maps/spatial). \n\n\n### Submit Download Request\n\nTo download your content you will use a `GET` request where the path will contain the `udid` of the data to download. Optionally, you can also pass in an `Accept` header to specify a preference for the `Content-Type` of the data response.
\nFor example, to download a collection of geofences previously uploaded using the Upload API, set the `udid` parameter in the path to the `udid` of the data received previously in the upload API response and set the `Accept` header to either one of the following media types: \n \n - `application/json`\n - `application/vnd.geo+json`\n - `application/octet-stream`\n\n\n### Download Data Response\n\nThe Download API will return a HTTP `200 OK` response if the data resource with the passed-in `udid` is found, where the response body will contain the content of the data resource.
\nA HTTP `400 Bad Request` error response will be returned if the data resource with the passed-in `udid` is not found.
\n\nHere's a sample response body for a simple geofence represented in `GeoJSON` uploaded previously using the Upload API:\n
\n\n```json\n{\n \"type\": \"FeatureCollection\",\n \"features\": [{\n \"type\": \"Feature\",\n \"geometry\": {\n \"type\": \"Point\",\n \"coordinates\": [-122.126986, 47.639754]\n },\n \"properties\": {\n \"geometryId\": \"001\",\n \"radius\": 500\n }\n }]\n}\n```", + "operationId": "Data_DownloadPreview", + "x-ms-examples": { + "Download previously uploaded GeoJSON data containing geometries that represent a collection of geofences": { + "$ref": "./examples/Download.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ClientId" + }, + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/Udid" + } + ], + "responses": { + "200": { + "description": "Data download request completed successfully. The response body will contain the content for the passed in `udid`.", + "schema": { + "$ref": "#/definitions/MapDataDownloadResponse" + }, + "headers": { + "Content-Type": { + "type": "string", + "description": "The content-type for the Download API response." + } + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + }, + "delete": { + "x-publish": true, + "description": "**Data Delete API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to delete a previously uploaded data content.
\nYou can use this API in a scenario like removing geofences previously uploaded using the [Data Upload API](https://docs.microsoft.com/en-us/rest/api/maps/data/uploadpreview) for use in our [Azure Maps Geofencing Service](https://docs.microsoft.com/en-us/rest/api/maps/spatial). You can also use this API to delete old/unused uploaded content and create space for new content.\n\n\n### Submit Delete Request\n\nTo delete your content you will issue a `DELETE` request where the path will contain the `udid` of the data to delete.
\nFor example, to delete a collection of geofences previously uploaded using the Upload API, set the `udid` parameter in the path to the `udid` of the data received previously in the upload API response. \n\n\n### Delete Data Response\n\nThe Data Delete API returns a HTTP `204 No Content` response with an empty body, if the data resource was deleted successfully.
\nA HTTP `400 Bad Request` error response will be returned if the data resource with the passed-in `udid` is not found. ", + "operationId": "Data_DeletePreview", + "x-ms-examples": { + "Delete previously uploaded GeoJSON data containing geometries that represent a collection of geofences": { + "$ref": "./examples/Delete.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ClientId" + }, + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/Udid" + } + ], + "responses": { + "204": { + "description": "Data delete request completed successfully. The content for `udid` was deleted on the server.", + "schema": { + "$ref": "#/definitions/MapDataDeleteResponse" + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + }, + "/mapData": { + "get": { + "x-publish": true, + "description": "**Data List API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to fetch a list of all content uploaded previously using the [Data Upload API](https://docs.microsoft.com/en-us/rest/api/maps/data/uploadpreview). \n\n\n### Submit List Request\n\nTo list all your map data content you will issue a `GET` request with no additional parameters.\n\n\n### List Data Response\n\nThe Data List API returns the complete list of all data in `json` format. The response contains the following details for each data resource:\n\n > udid - The unique data id for the data resource.\n\n > location - The location of the data resource. Execute a HTTP `GET` on this location to download the data.\n\n\nHere's a sample response returning the `udid` and `location` of 3 data resources: \n\n
\n\n```json\n{\n \"mapDataList\": \n [\n {\n \"udid\": \"9a1288fa-1858-4a3b-b68d-13a8j5af7d7c\",\n \"location\": \"https://atlas.microsoft.com/mapData/9a1288fa-1858-4a3b-b68d-13a8j5af7d7c?api-version=1.0\",\n \"sizeInBytes\": 29920,\n \"uploadStatus\": \"Completed\"\n },\n {\n \"udid\": \"8b1288fa-1958-4a2b-b68e-13a7i5af7d7c\",\n \"location\": \"https://atlas.microsoft.com/mapData/8b1288fa-1958-4a2b-b68e-13a7i5af7d7c?api-version=1.0\",\n \"sizeInBytes\": 1339,\n \"uploadStatus\": \"Completed\"\n },\n {\n \"udid\": \"7c1288fa-2058-4a1b-b68f-13a6h5af7d7c\",\n \"location\": \"https://atlas.microsoft.com/mapData/7c1288fa-2058-4a1b-b68f-13a6h5af7d7c?api-version=1.0\",\n \"sizeInBytes\": 1650,\n \"uploadStatus\": \"Pending\"\n }]\n}\n```\n\n
", + "operationId": "Data_ListPreview", + "x-ms-examples": { + "List all the previously uploaded data": { + "$ref": "./examples/List.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ClientId" + }, + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + } + ], + "responses": { + "200": { + "description": "List data request completed successfully. The response body contains a list of all the previously uploaded data.", + "schema": { + "$ref": "#/definitions/MapDataListResponse" + }, + "headers": { + "Content-Type": { + "type": "string", + "description": "The content-type for the Download API response." + } + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + } + }, + "definitions": { + "ODataErrorResponse": { + "type": "object", + "description": "This response object is returned when an error occurs in the Maps API.", + "properties": { + "error": { + "$ref": "#/definitions/ODataError" + } + } + }, + "ODataError": { + "type": "object", + "description": "This object is returned when an error occurs in the Maps API.", + "properties": { + "code": { + "type": "string", + "readOnly": true, + "description": "The ODataError code." + }, + "message": { + "type": "string", + "readOnly": true, + "description": "If available, a human readable description of the error." + }, + "details": { + "type": "array", + "items": { + "$ref": "#/definitions/ODataError" + } + }, + "target": { + "type": "string", + "readOnly": true, + "description": "If available, the target causing the error." + } + } + }, + "LongRunningOperationResult": { + "description": "The response model for a Long-Running Operations API.", + "type": "object", + "properties": { + "operationId": { + "description": "The Id for this long-running operation.", + "type": "string" + }, + "status": { + "description": "The status state of the request.", + "type": "string", + "enum": [ + "NotStarted", + "Running", + "Failed", + "Succeeded" + ], + "x-ms-enum": { + "name": "type", + "modelAsString": false, + "values": [ + { + "value": "NotStarted", + "description": "The request has not started processing yet." + }, + { + "value": "Running", + "description": "The request has started processing." + }, + { + "value": "Failed", + "description": "The request has one or more failures." + }, + { + "value": "Succeeded", + "description": "The request has successfully completed." + } + ] + }, + "readOnly": true + }, + "created": { + "description": "The created timestamp.", + "type": "string", + "readOnly": true + }, + "resourceLocation": { + "description": "The location URI for details about the created resource. This is only provided when the request was successfully completed.", + "type": "string", + "readOnly": true + }, + "error": { + "$ref": "#/definitions/ODataError" + }, + "warning": { + "$ref": "#/definitions/ODataError" + } + } + }, + "MapDataDownloadResponse": { + "description": "The response model for the Data Download API. The response body will contain the content for the passed in `udid`.", + "type": "object" + }, + "MapDataDeleteResponse": { + "description": "The response model for the Data Delete API. The response body will be empty signifying there's no content available for the `udid` anymore.", + "type": "object" + }, + "MapDataListResponse": { + "description": "The response model for the Data List API. Returns a list of all the previously uploaded data.", + "type": "object", + "properties": { + "mapDataList": { + "description": "A list of all the previously uploaded data.", + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/MapDataDetailInfo" + } + } + } + }, + "MapDataDetailInfo": { + "description": "Detail information for the data.", + "type": "object", + "properties": { + "udid": { + "description": "The unique data id for the data.", + "type": "string", + "readOnly": true + }, + "location": { + "description": "The location of the data. Execute a HTTP `GET` on this location to download the data.", + "type": "string", + "readOnly": true + }, + "sizeInBytes": { + "description": "The size of the content in bytes.", + "type": "integer", + "format": "int64", + "readOnly": true + }, + "uploadStatus": { + "description": "The current upload status of the content.", + "type": "string", + "readOnly": true + }, + "dataFormat": { + "description": "", + "type":"string", + "readOnly": true + }, + "description": { + "description": "", + "type":"string", + "readOnly": true + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Delete.json b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Delete.json new file mode 100644 index 000000000000..ccf95148e20a --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Delete.json @@ -0,0 +1,57 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]", + "udid": "25084fb7-307a-4720-8f91-7952a0b91012" + }, + "responses": { + "204": { + "body": {} + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Download.json b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Download.json new file mode 100644 index 000000000000..1c065fe041ea --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Download.json @@ -0,0 +1,76 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]", + "udid": "25084fb7-307a-4720-8f91-7952a0b91012" + }, + "responses": { + "200": { + "headers": {}, + "body": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + -122.126986, + 47.639754 + ] + }, + "properties": { + "geometryId": "001", + "radius": 500 + } + } + ] + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/List.json b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/List.json new file mode 100644 index 000000000000..741fdd026baf --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/List.json @@ -0,0 +1,77 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]" + }, + "responses": { + "200": { + "body": { + "mapDataList": [ + { + "udid": "f6495f62-94f8-0ec2-c252-45626f82fcb2", + "location": "https://atlas.microsoft.com/mapData/f6495f62-94f8-0ec2-c252-45626f82fcb2?api-version=1.0", + "sizeInBytes": 29920, + "uploadStatus": "Completed" + }, + { + "udid": "8b1288fa-1958-4a2b-b68e-13a7i5af7d7c", + "location": "https://atlas.microsoft.com/mapData/8b1288fa-1958-4a2b-b68e-13a7i5af7d7c?api-version=1.0", + "sizeInBytes": 1339, + "uploadStatus": "Completed" + }, + { + "udid": "7c1288fa-2058-4a1b-b68f-13a6h5af7d7c", + "location": "https://atlas.microsoft.com/mapData/7c1288fa-2058-4a1b-b68f-13a6h5af7d7c?api-version=1.0", + "sizeInBytes": 1650, + "uploadStatus": "Pending" + } + ] + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Update.json b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Update.json new file mode 100644 index 000000000000..20caaf53f5d6 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Update.json @@ -0,0 +1,100 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]", + "udid": "25084fb7-307a-4720-8f91-7952a0b91012", + "UpdateContent": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + -122.126986, + 47.639754 + ] + }, + "properties": { + "geometryId": "001", + "radius": 500 + } + } + ] + } + }, + "responses": { + "201": { + "headers": { + "Location": "https://atlas.microsoft.com/mapData/metadata/{udid}?api-version=1.0", + "Access-Control-Expose-Headers": "Location" + }, + "body": { + "operationId": "{operationId}", + "status": "Succeeded", + "created": "2020-01-02 1:02:03 AM +00:00", + "resourceLocation": "https://atlas.microsoft.com/mapData/metadata/{resourceId}?api-version=1.0" + } + }, + "202": { + "headers": { + "Location": "https://atlas.microsoft.com/mapData/operations/{operationId}?api-version=1.0", + "Access-Control-Expose-Headers": "Location" + } + }, + "200": { + "headers": {}, + "body": { + "error": { + "code": "400 Bad Request", + "message": "Upload request failed. Your data has been removed as we encountered the following problems with it: Map data is not a valid GeoJSON geometry." + } + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Upload.json b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Upload.json new file mode 100644 index 000000000000..dd663049a9a0 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Upload.json @@ -0,0 +1,100 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]", + "dataFormat": "geojson", + "UploadContent": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + -122.126986, + 47.639754 + ] + }, + "properties": { + "geometryId": "001", + "radius": 500 + } + } + ] + } + }, + "responses": { + "201": { + "headers": { + "Location": "https://atlas.microsoft.com/mapData/metadata/{udid}?api-version=1.0", + "Access-Control-Expose-Headers": "Location" + }, + "body": { + "operationId": "{operationId}", + "status": "Succeeded", + "created": "2020-01-02 1:02:03 AM +00:00", + "resourceLocation": "https://atlas.microsoft.com/mapData/metadata/{resourceId}?api-version=1.0" + } + }, + "202": { + "headers": { + "Location": "https://atlas.microsoft.com/mapData/operations/{operationId}?api-version=1.0", + "Access-Control-Expose-Headers": "Location" + } + }, + "200": { + "headers": {}, + "body": { + "error": { + "code": "400 Bad Request", + "message": "Upload request failed. Your data has been removed as we encountered the following problems with it: Map data is not a valid GeoJSON geometry." + } + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json index 2aadc2afc68e..b767146f960a 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json +++ b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json @@ -133,18 +133,10 @@ }, "ConversionIdQuery": { "name": "conversionId", - "description": "The unique ID used to create the dataset. The `conversionId` must have been obtained from a successful call to the Conversion Service Convert API and must be provided with multiple query parameters with same name (if more than one is provided). May not be provided in conjunction with the `udid` query parameter.", + "description": "The unique ID used to create the dataset. The `conversionId` must have been obtained from a successful call to the Conversion Service Convert API and must be provided with multiple query parameters with same name (if more than one is provided).", "type": "string", "in": "query", - "required": false, - "x-ms-parameter-location": "method" - }, - "UdidDataset": { - "name": "udid", - "description": "The unique data ID used to create the dataset. The `udid` must have been obtained from a successful call to the Data Service Upload API and must be provided with multiple query parameters with the same name (if more than one is provided). May not be provided in conjunction with `conversionId` query parameter.", - "type": "string", - "in": "query", - "required": false, + "required": true, "x-ms-parameter-location": "method" }, "DescriptionDataset": { @@ -163,19 +155,11 @@ "required": true, "x-ms-parameter-location": "method" }, - "OutputOntology": { - "name": "outputOntology", - "type": "string", - "in": "query", - "description": "The ontology to create the dataset with.", - "required": false, - "x-ms-parameter-location": "method" - }, "AppendDatasetId": { "name": "datasetId", "type": "string", "in": "query", - "description": "The ID for the dataset to append to.", + "description": "The ID for the dataset to append to. ** the dataset must originate from a conversion ontology that matches conversionId", "required": false, "x-ms-parameter-location": "method" }, @@ -213,12 +197,6 @@ { "$ref": "#/parameters/ConversionIdQuery" }, - { - "$ref": "#/parameters/UdidDataset" - }, - { - "$ref": "#/parameters/OutputOntology" - }, { "$ref": "#/parameters/AppendDatasetId" }, @@ -535,6 +513,11 @@ "type": "string", "readOnly": true }, + "ontology": { + "description": "", + "type": "string", + "readOnly": true + }, "description": { "description": "The description for the dataset.", "type": "string", @@ -562,14 +545,6 @@ "type": "string" } }, - "udids": { - "description": "The list of `conversionId` that were used to create the dataset.", - "type": "array", - "readOnly": true, - "items": { - "type": "string" - } - }, "appendDatasetId": { "description": "The dataset that was appended to to create the current dataset.", "type": "string", diff --git a/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json index c965cccd1af3..b3ff328589ae 100644 --- a/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json +++ b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json @@ -524,6 +524,11 @@ "type": "string", "readOnly": true }, + "ontology": { + "description": "", + "type": "string", + "readOnly": true + }, "udid": { "description": "The unique id of the content provided to create this conversion.", "type": "string", diff --git a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/featurestate.json b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/featurestate.json index 5f16128d33da..49adf97c61e0 100644 --- a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/featurestate.json +++ b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/featurestate.json @@ -2,7 +2,7 @@ "swagger": "2.0", "info": { "title": "Azure Maps Feature State Service", - "version": "1.0", + "version": "2.0", "description": "APIs for managing the dynamic feature states in Azure Maps." }, "host": "atlas.microsoft.com", @@ -97,7 +97,7 @@ "type": "string", "in": "query", "required": true, - "default": "1.0", + "default": "2.0", "x-ms-parameter-location": "client" }, "DatasetIdForCreate": { @@ -158,14 +158,14 @@ } }, "paths": { - "/featureState/stateset/{statesetId}": { - "get": { + "/featureStateSets/create": { + "post": { "x-publish": true, - "description": "**Applies to:** S1 pricing tier.\n
\n\nThis GET API allows the user to get the stateset Information.\n\nThe stateset Information includes the datasetId associated to the stateset, and the styles of that stateset.", - "operationId": "FeatureState_GetStatesetPreview", + "description": "**Applies to:** S1 pricing tier.\n
\n\nThis POST API allows the user to create a new Stateset and define stateset style using request body.\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Feature State API is part of Creator. \n\nThe Feature State service allows the user to update the states of a feature and query them to be used in other services. The dynamic properties of a feature that don't belong to the dataset are referred to as *states* here.\n\nThis Feature State service pivot on the Stateset. Like Tileset, Stateset encapsulates the storage mechanism for feature states for a dataset.\n\nOnce the stateset is created, users can use that statesetId to post feature state updates and retrieve the current feature states. A feature can have only one state at a given point in time. \n\nFeature state is defined by the key name, value and the timestamp. When a feature state update is posted to Azure Maps, the state value gets updated only if the provided state’s timestamp is later than the stored timestamp. \n\nAzure Maps MapControl provides a way to use these feature states to style the features. Please refer to the State Tile documentation for more information.", + "operationId": "FeatureState_CreateStatesetPreview", "x-ms-examples": { - "Get stateset information with a statesetId": { - "$ref": "./examples/GetStateset.json" + "Create a new stateset with a datasetId": { + "$ref": "./examples/CreateStateset.json" } }, "parameters": [ @@ -176,14 +176,23 @@ "$ref": "#/parameters/ApiVersion" }, { - "$ref": "#/parameters/StatesetIdInPath" + "$ref": "#/parameters/DatasetIdForCreate" + }, + { + "name": "statesetCreateRequestBody", + "in": "body", + "description": "The stateset style JSON data.", + "required": true, + "schema": { + "$ref": "#/definitions/StylesObject" + } } ], "responses": { "200": { - "description": "Get request completed successfully.", + "description": "Stateset created.", "schema": { - "$ref": "#/definitions/StatesetGetResponse" + "$ref": "#/definitions/StatesetCreatedResponse" } }, "400": { @@ -202,14 +211,16 @@ "$ref": "#/responses/500" } } - }, - "delete": { + } + }, + "/featureStateSets/{statesetId}": { + "patch": { "x-publish": true, - "description": "**Applies to:** S1 pricing tier.
This DELETE API allows the user to delete the stateset and the associated data.", - "operationId": "FeatureState_DeleteStatesetPreview", + "description": "**Applies to:** S1 pricing tier.\n
\n\nThis PATCH API allows the user to update the stateset style rules.", + "operationId": "FeatureState_PutStatesetPreview", "x-ms-examples": { - "Delete an existing stateset": { - "$ref": "./examples/DeleteStateset.json" + "Update stateset style rules with a statesetId": { + "$ref": "./examples/UpdateStateset.json" } }, "parameters": [ @@ -221,11 +232,20 @@ }, { "$ref": "#/parameters/StatesetIdInPath" + }, + { + "name": "statesetStyleUpdateRequestBody", + "in": "body", + "description": "The stateset style JSON data. Only style rules are allowed to be updated, update on keyname and type is not allowed.", + "required": true, + "schema": { + "$ref": "#/definitions/StylesObject" + } } ], "responses": { - "204": { - "description": "Stateset Deleted." + "200": { + "description": "Stateset styles are updated successfully." }, "400": { "$ref": "#/responses/400" @@ -244,13 +264,13 @@ } } }, - "put": { + "delete": { "x-publish": true, - "description": "**Applies to:** S1 pricing tier.\n
\n\nThis PUT API allows the user to update the stateset style rules.", - "operationId": "FeatureState_PutStatesetPreview", + "description": "**Applies to:** S1 pricing tier.
This DELETE API allows the user to delete the stateset and the associated data.", + "operationId": "FeatureState_DeleteStatesetPreview", "x-ms-examples": { - "Update stateset style rules with a statesetId": { - "$ref": "./examples/UpdateStateset.json" + "Delete an existing stateset": { + "$ref": "./examples/DeleteStateset.json" } }, "parameters": [ @@ -262,20 +282,11 @@ }, { "$ref": "#/parameters/StatesetIdInPath" - }, - { - "name": "statesetStyleUpdateRequestBody", - "in": "body", - "description": "The stateset style JSON data. Only style rules are allowed to be updated, update on keyname and type is not allowed.", - "required": true, - "schema": { - "$ref": "#/definitions/StylesObject" - } } ], "responses": { - "200": { - "description": "Stateset styles are updated successfully." + "204": { + "description": "Stateset Deleted." }, "400": { "$ref": "#/responses/400" @@ -293,16 +304,15 @@ "$ref": "#/responses/500" } } - } - }, - "/featureState/stateset": { - "post": { + }, + + "get": { "x-publish": true, - "description": "**Applies to:** S1 pricing tier.\n
\n\nThis POST API allows the user to create a new Stateset and define stateset style using request body.\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Feature State API is part of Creator. \n\nThe Feature State service allows the user to update the states of a feature and query them to be used in other services. The dynamic properties of a feature that don't belong to the dataset are referred to as *states* here.\n\nThis Feature State service pivot on the Stateset. Like Tileset, Stateset encapsulates the storage mechanism for feature states for a dataset.\n\nOnce the stateset is created, users can use that statesetId to post feature state updates and retrieve the current feature states. A feature can have only one state at a given point in time. \n\nFeature state is defined by the key name, value and the timestamp. When a feature state update is posted to Azure Maps, the state value gets updated only if the provided state’s timestamp is later than the stored timestamp. \n\nAzure Maps MapControl provides a way to use these feature states to style the features. Please refer to the State Tile documentation for more information.", - "operationId": "FeatureState_CreateStatesetPreview", + "description": "**Applies to:** S1 pricing tier.\n
\n\nThis GET API allows the user to get the stateset Information.\n\nThe stateset Information includes the datasetId associated to the stateset, and the styles of that stateset.", + "operationId": "FeatureState_GetStatesetPreview", "x-ms-examples": { - "Create a new stateset with a datasetId": { - "$ref": "./examples/CreateStateset.json" + "Get stateset information with a statesetId": { + "$ref": "./examples/GetStateset.json" } }, "parameters": [ @@ -313,23 +323,14 @@ "$ref": "#/parameters/ApiVersion" }, { - "$ref": "#/parameters/DatasetIdForCreate" - }, - { - "name": "statesetCreateRequestBody", - "in": "body", - "description": "The stateset style JSON data.", - "required": true, - "schema": { - "$ref": "#/definitions/StylesObject" - } + "$ref": "#/parameters/StatesetIdInPath" } ], "responses": { "200": { - "description": "Stateset created.", + "description": "Get request completed successfully.", "schema": { - "$ref": "#/definitions/StatesetCreatedResponse" + "$ref": "#/definitions/StatesetGetResponse" } }, "400": { @@ -348,7 +349,9 @@ "$ref": "#/responses/500" } } - }, + } + }, + "/featureStateSets": { "get": { "x-publish": true, "description": "**Applies to:** S1 pricing tier.
This API allows the caller to fetch a list of all previously successfully created statesets.", @@ -391,14 +394,14 @@ } } }, - "/featureState/state": { - "get": { + "/featureStateSets/{statesetId}/featureStates/{featureId}": { + "put": { "x-publish": true, - "operationId": "FeatureState_GetStatesPreview", - "description": "**Applies to:** S1 pricing tier.
This API returns the current state information associated with the given feature in the given stateset.", + "operationId": "FeatureState_UpdateStatesPreview", + "description": "**Applies to:** S1 pricing tier.
\nThis POST API allows the user to update the state of the given feature in the given stateset.", "x-ms-examples": { - "Get the current states of a feature": { - "$ref": "./examples/GetStates.json" + "Update the states of a feature": { + "$ref": "./examples/UpdateStates.json" } }, "parameters": [ @@ -412,15 +415,21 @@ "$ref": "#/parameters/StatesetId" }, { - "$ref": "#/parameters/FeatureIdGet" + "$ref": "#/parameters/FeatureIdSet" + }, + { + "name": "featureStateUpdateRequestBody", + "in": "body", + "description": "The feature state JSON data. A feature can have only one state at a given point in time. The specified state keyname must have been defined during the stateset creation.", + "required": true, + "schema": { + "$ref": "#/definitions/FeatureStateObject" + } } ], "responses": { "200": { - "description": "Get request completed successfully.", - "schema": { - "$ref": "#/definitions/FeatureStatesStructure" - } + "description": "Feature states are updated successfully." }, "400": { "$ref": "#/responses/400" @@ -439,13 +448,13 @@ } } }, - "post": { + "delete": { "x-publish": true, - "operationId": "FeatureState_UpdateStatesPreview", - "description": "**Applies to:** S1 pricing tier.
\nThis POST API allows the user to update the state of the given feature in the given stateset.", + "operationId": "FeatureState_DeleteStatePreview", + "description": "**Applies to:** S1 pricing tier.
This API deletes the state information identified by the StateKeyName parameter for the feature identified by the FeatureId parameter in the the stateset.", "x-ms-examples": { - "Update the states of a feature": { - "$ref": "./examples/UpdateStates.json" + "Delete the given feature state": { + "$ref": "./examples/DeleteFeatureState.json" } }, "parameters": [ @@ -459,21 +468,15 @@ "$ref": "#/parameters/StatesetId" }, { - "$ref": "#/parameters/FeatureIdSet" + "$ref": "#/parameters/FeatureIdDelete" }, { - "name": "featureStateUpdateRequestBody", - "in": "body", - "description": "The feature state JSON data. A feature can have only one state at a given point in time. The specified state keyname must have been defined during the stateset creation.", - "required": true, - "schema": { - "$ref": "#/definitions/FeatureStatesStructure" - } + "$ref": "#/parameters/StateKeyNameDelete" } ], "responses": { "200": { - "description": "Feature states are updated successfully." + "description": "Feature states deleted successfully." }, "400": { "$ref": "#/responses/400" @@ -487,18 +490,21 @@ "404": { "$ref": "#/responses/404" }, + "409": { + "$ref": "#/responses/409" + }, "500": { "$ref": "#/responses/500" } } }, - "delete": { + "get": { "x-publish": true, - "operationId": "FeatureState_DeleteStatePreview", - "description": "**Applies to:** S1 pricing tier.
This API deletes the state information identified by the StateKeyName parameter for the feature identified by the FeatureId parameter in the the stateset.", + "operationId": "FeatureState_GetStatesPreview", + "description": "**Applies to:** S1 pricing tier.
This API returns the current state information associated with the given feature in the given stateset.", "x-ms-examples": { - "Delete the given feature state": { - "$ref": "./examples/DeleteFeatureState.json" + "Get the current states of a feature": { + "$ref": "./examples/GetStates.json" } }, "parameters": [ @@ -512,15 +518,15 @@ "$ref": "#/parameters/StatesetId" }, { - "$ref": "#/parameters/FeatureIdDelete" - }, - { - "$ref": "#/parameters/StateKeyNameDelete" + "$ref": "#/parameters/FeatureIdGet" } ], "responses": { "200": { - "description": "Feature states deleted successfully." + "description": "Get request completed successfully.", + "schema": { + "$ref": "#/definitions/FeatureStateObject" + } }, "400": { "$ref": "#/responses/400" @@ -534,15 +540,13 @@ "404": { "$ref": "#/responses/404" }, - "409": { - "$ref": "#/responses/409" - }, "500": { "$ref": "#/responses/500" } } } } + }, "definitions": { "ODataErrorResponse": { @@ -645,12 +649,8 @@ "description": "The feature states model for a feature.", "type": "object", "properties": { - "states": { - "description": "The feature states array.", - "type": "array", - "items": { - "$ref": "#/definitions/FeatureStateObject" - } + "state": { + "$ref": "#/definitions/FeatureStateObject" } } }, diff --git a/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json index e41c81bf4bbb..5bd42f4c2bd7 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json +++ b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json @@ -533,6 +533,11 @@ "type": "string", "readOnly": true }, + "ontology": { + "description": "", + "type": "string", + "readOnly": true + }, "datasetId": { "description": "The unique dataset Id used to create the tileset.", "type": "string", diff --git a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/wfs.json b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/wfs.json index 962c2490603e..7a3fb77678d1 100644 --- a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/wfs.json +++ b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/wfs.json @@ -694,6 +694,9 @@ "collections" ], "properties": { + "ontology": { + "$ref": "#/definitions/Ontology" + }, "links": { "type": "array", "items": { @@ -791,6 +794,9 @@ "type": "string", "example": "Buildings" }, + "ontology": { + "$ref": "#/definitions/Ontology" + }, "description": { "description": "a description of the features in the collection", "type": "string", @@ -847,6 +853,9 @@ "type": "string", "example": "Feature Class buildings" }, + "ontology": { + "$ref": "#/definitions/Ontology" + }, "geometryType": { "description": "type of geometry returned", "type": "string", @@ -915,6 +924,9 @@ "type": { "type": "string" }, + "ontology": { + "$ref": "#/definitions/Ontology" + }, "numberReturned": { "type": "integer" }, @@ -938,6 +950,9 @@ "feature" ], "properties": { + "ontology": { + "$ref": "#/definitions/Ontology" + }, "feature": { "$ref": "#/definitions/FeatureGeoJSON" }, @@ -979,6 +994,11 @@ "type": "string" } } + }, + "Ontology": { + "type": "string", + "description": "The ontology version of this dataset.", + "readOnly": true } } } From 14e01c3e2e5fd8725219ee8052134da2ad778356 Mon Sep 17 00:00:00 2001 From: Jeff Couckuyt Date: Wed, 10 Mar 2021 11:51:24 -0800 Subject: [PATCH 04/38] updated alias apis --- .../Alias/preview/2.0/alias.json | 112 ++++++++++++------ 1 file changed, 76 insertions(+), 36 deletions(-) diff --git a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/alias.json b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/alias.json index 13630019c12b..8a7e03a0398b 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/alias.json +++ b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/alias.json @@ -2,7 +2,7 @@ "swagger": "2.0", "info": { "title": "Azure Maps Alias Service", - "version": "1.0", + "version": "2.0", "description": "APIs for managing aliases in Azure Maps." }, "host": "atlas.microsoft.com", @@ -97,11 +97,11 @@ }, "ApiVersion": { "name": "api-version", - "description": "Version number of Azure Maps API. Current version is 1.0", + "description": "Version number of Azure Maps API. Current version is 2.0", "type": "string", "in": "query", "required": true, - "default": "1.0", + "default": "2.0", "x-ms-parameter-location": "client" }, "CreateResourceId": { @@ -130,7 +130,7 @@ } }, "paths": { - "/alias": { + "/aliases/create": { "post": { "x-publish": true, "description": "**Alias - Create API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to create an alias.
\nYou can also assign the alias during the create request as well.\n\n\n### Submit Create Request\n\nTo create your alias, you will use a `POST` request. If you would like to assign the alias during the creation, you will pass the `resourceId` query parameter.
\n\n\n### Create Alias Response\n\nThe Create API returns a HTTP `201 Created` response the id of the alias, `aliasId`, in the body.\nThe response will look something like:\n\n```json\n{\n \"aliasId\" : \"d7e5efc8-2239-4387-a286-5bb51aa804e3\"\n}\n```\n\n
", @@ -178,13 +178,15 @@ } } }, - "get": { + }, + "/aliases/{aliasId}": { + "patch": { "x-publish": true, - "description": "**Alias - List API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to fetch a list of all previously successfully created aliases.\n\n\n### Submit List Request\n\nTo list all your aliases, you will issue a `GET` request with no additional parameters.
\n\n\n### List Data Response\n\nThe List API returns the complete list of all aliases in `json` format. The response contains the following details for each alias resource:\n\n > createdTimestamp - The timestamp that the alias was created.\n > aliasId - The id for the alias.\n > resourceId - The id for the resource that this alias references (could be null if the alias has not been assigned).\n > lastUpdatedTimestamp - The last time the alias was assigned to a resource.\n\n\nHere's a sample response returning 2 alias resources: \n\n
\n\n```json\n{\n \"aliases\": [\n {\n \"createdTimestamp\": \"2020-02-13T21:19:11+00:00\",\n \"aliasId\": \"a8a4b8bb-ecf4-fb27-a618-f41721552766\",\n \"resourceId\": \"e89aebb9-70a3-8fe1-32bb-1fbd0c725f14\",\n \"lastUpdatedTimestamp\": \"2020-02-13T21:19:22+00:00\"\n },\n {\n \"createdTimestamp\": \"2020-02-18T19:53:33+00:00\",\n \"aliasId\": \"1856dbfc-7a66-ee5a-bf8d-51dbfe1906f6\",\n \"resourceId\": null,\n \"lastUpdatedTimestamp\": \"2020-02-18T19:53:33+00:00\"\n }\n ]\n}\n```\n\n
", - "operationId": "Alias_ListPreview", + "description": "**Alias - Assign API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to assign an alias to reference a resource.
\n\n\n### Submit Assign Request\n\nTo assign your alias to a resource, you will use a `PATCH` request with the `aliasId` in the path and the `resourceId` passed as a query parameter.
\n\n\n### Create Alias Response\n\nThe Assign API returns a HTTP `204 No Content` response with an empty body, if the alias was assigned successfully.
", + "operationId": "Alias_AssignPreview", "x-ms-examples": { - "List all the previously created aliases": { - "$ref": "./examples/Alias_List.json" + "Assign an alias to a resource": { + "$ref": "./examples/Alias_Assign.json" } }, "parameters": [ @@ -193,13 +195,19 @@ }, { "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/AliasId" + }, + { + "$ref": "#/parameters/AssignResourceId" } ], "responses": { - "200": { - "description": "List alias request completed successfully. The response body contains a list of all the previously created aliases.", + "204": { + "description": "Alias was assigned successfully.", "schema": { - "$ref": "#/definitions/AliasListResponse" + "$ref": "#/definitions/AliasAssignResponse" } }, "400": { @@ -218,16 +226,15 @@ "$ref": "#/responses/500" } } - } - }, - "/alias/assign/{aliasId}": { - "patch": { + }, + + "delete": { "x-publish": true, - "description": "**Alias - Assign API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to assign an alias to reference a resource.
\n\n\n### Submit Assign Request\n\nTo assign your alias to a resource, you will use a `PATCH` request with the `aliasId` in the path and the `resourceId` passed as a query parameter.
\n\n\n### Create Alias Response\n\nThe Assign API returns a HTTP `204 No Content` response with an empty body, if the alias was assigned successfully.
", - "operationId": "Alias_AssignPreview", + "description": "**Alias - Delete API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to delete a previously created alias.
\nYou can also use this API to delete old/unused aliases to create space for new content.\nThis API does not delete the references resource, only the alias referencing the resource.\n\n\n### Submit Delete Request\n\nTo delete your alias you will issue a `DELETE` request where the path will contain the `aliasId` of the alias to delete.
\n\n\n### Delete Alias Response\n\nThe Delete API returns a HTTP `204 No Content` response with an empty body, if the alias was deleted successfully.
\nA HTTP `400 Bad Request` error response will be returned if the alias with the passed-in `aliasId` is not found. ", + "operationId": "Alias_DeletePreview", "x-ms-examples": { - "Assign an alias to a resource": { - "$ref": "./examples/Alias_Assign.json" + "Delete previously created alias": { + "$ref": "./examples/Alias_Delete.json" } }, "parameters": [ @@ -239,16 +246,52 @@ }, { "$ref": "#/parameters/AliasId" + } + ], + "responses": { + "204": { + "description": "Alias delete request completed successfully. The content for `aliasId` was deleted on the server.", + "schema": { + "$ref": "#/definitions/AliasDeleteResponse" + } + }, + "400": { + "$ref": "#/responses/400" }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + }, + "get": { + "x-publish": true, + "description": "**Alias - Get API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to fetch a list of all previously successfully created aliases.\n\n\n### Submit List Request\n\nTo list all your aliases, you will issue a `GET` request with no additional parameters.
\n\n\n### List Data Response\n\nThe List API returns the complete list of all aliases in `json` format. The response contains the following details for each alias resource:\n\n > createdTimestamp - The timestamp that the alias was created.\n > aliasId - The id for the alias.\n > resourceId - The id for the resource that this alias references (could be null if the alias has not been assigned).\n > lastUpdatedTimestamp - The last time the alias was assigned to a resource.\n\n\nHere's a sample response returning 2 alias resources: \n\n
\n\n```json\n{\n \"aliases\": [\n {\n \"createdTimestamp\": \"2020-02-13T21:19:11+00:00\",\n \"aliasId\": \"a8a4b8bb-ecf4-fb27-a618-f41721552766\",\n \"resourceId\": \"e89aebb9-70a3-8fe1-32bb-1fbd0c725f14\",\n \"lastUpdatedTimestamp\": \"2020-02-13T21:19:22+00:00\"\n },\n {\n \"createdTimestamp\": \"2020-02-18T19:53:33+00:00\",\n \"aliasId\": \"1856dbfc-7a66-ee5a-bf8d-51dbfe1906f6\",\n \"resourceId\": null,\n \"lastUpdatedTimestamp\": \"2020-02-18T19:53:33+00:00\"\n }\n ]\n}\n```\n\n
", + "operationId": "Alias_GetPreview", + "parameters": [ { - "$ref": "#/parameters/AssignResourceId" + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/AliasId" } ], "responses": { - "204": { - "description": "Alias was assigned successfully.", + "200": { + "description": "Get alias request completed successfully. The response body contains the previously created alias.", "schema": { - "$ref": "#/definitions/AliasAssignResponse" + "$ref": "#/definitions/AliasListItem" } }, "400": { @@ -269,14 +312,14 @@ } } }, - "/alias/{aliasId}": { - "delete": { + "/aliases": { + "get": { "x-publish": true, - "description": "**Alias - Delete API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to delete a previously created alias.
\nYou can also use this API to delete old/unused aliases to create space for new content.\nThis API does not delete the references resource, only the alias referencing the resource.\n\n\n### Submit Delete Request\n\nTo delete your alias you will issue a `DELETE` request where the path will contain the `aliasId` of the alias to delete.
\n\n\n### Delete Alias Response\n\nThe Delete API returns a HTTP `204 No Content` response with an empty body, if the alias was deleted successfully.
\nA HTTP `400 Bad Request` error response will be returned if the alias with the passed-in `aliasId` is not found. ", - "operationId": "Alias_DeletePreview", + "description": "**Alias - List API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to fetch a list of all previously successfully created aliases.\n\n\n### Submit List Request\n\nTo list all your aliases, you will issue a `GET` request with no additional parameters.
\n\n\n### List Data Response\n\nThe List API returns the complete list of all aliases in `json` format. The response contains the following details for each alias resource:\n\n > createdTimestamp - The timestamp that the alias was created.\n > aliasId - The id for the alias.\n > resourceId - The id for the resource that this alias references (could be null if the alias has not been assigned).\n > lastUpdatedTimestamp - The last time the alias was assigned to a resource.\n\n\nHere's a sample response returning 2 alias resources: \n\n
\n\n```json\n{\n \"aliases\": [\n {\n \"createdTimestamp\": \"2020-02-13T21:19:11+00:00\",\n \"aliasId\": \"a8a4b8bb-ecf4-fb27-a618-f41721552766\",\n \"resourceId\": \"e89aebb9-70a3-8fe1-32bb-1fbd0c725f14\",\n \"lastUpdatedTimestamp\": \"2020-02-13T21:19:22+00:00\"\n },\n {\n \"createdTimestamp\": \"2020-02-18T19:53:33+00:00\",\n \"aliasId\": \"1856dbfc-7a66-ee5a-bf8d-51dbfe1906f6\",\n \"resourceId\": null,\n \"lastUpdatedTimestamp\": \"2020-02-18T19:53:33+00:00\"\n }\n ]\n}\n```\n\n
", + "operationId": "Alias_ListPreview", "x-ms-examples": { - "Delete previously created alias": { - "$ref": "./examples/Alias_Delete.json" + "List all the previously created aliases": { + "$ref": "./examples/Alias_List.json" } }, "parameters": [ @@ -285,16 +328,13 @@ }, { "$ref": "#/parameters/ApiVersion" - }, - { - "$ref": "#/parameters/AliasId" } ], "responses": { - "204": { - "description": "Alias delete request completed successfully. The content for `aliasId` was deleted on the server.", + "200": { + "description": "List alias request completed successfully. The response body contains a list of all the previously created aliases.", "schema": { - "$ref": "#/definitions/AliasDeleteResponse" + "$ref": "#/definitions/AliasListResponse" } }, "400": { From 7b0134533da9e8fc666d767bafe1cc8d21579bf2 Mon Sep 17 00:00:00 2001 From: Jeff Couckuyt Date: Wed, 10 Mar 2021 14:19:59 -0800 Subject: [PATCH 05/38] put v1 API back so diffing is easier --- .../Microsoft.Maps/Data/preview/2.0/data.json | 41 +++---------------- 1 file changed, 6 insertions(+), 35 deletions(-) diff --git a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/data.json b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/data.json index b9dbd2a85808..3661631adc93 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/data.json +++ b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/data.json @@ -2,7 +2,7 @@ "swagger": "2.0", "info": { "title": "Azure Maps Data Service", - "version": "2.0", + "version": "1.0", "description": "APIs for uploading map data to Azure Maps." }, "host": "atlas.microsoft.com", @@ -116,11 +116,11 @@ }, "ApiVersion": { "name": "api-version", - "description": "Version number of Azure Maps API. Current version is 2.0", + "description": "Version number of Azure Maps API. Current version is 1.0", "type": "string", "in": "query", "required": true, - "default": "2.0", + "default": "1.0", "x-ms-parameter-location": "client" }, "JsonFormat": { @@ -152,12 +152,11 @@ "required": true, "enum": [ "geojson", - "zip", - "dwgzippackage" + "zip" ], "x-ms-enum": { "name": "UploadDataFormat", - "modelAsString": true, + "modelAsString": false, "values": [ { "value": "geojson", @@ -166,10 +165,6 @@ { "value": "zip", "description": "Compressed data format." - }, - { - "value": "dwgzippackage", - "description": "" } ] }, @@ -182,15 +177,7 @@ "in": "path", "required": true, "x-ms-parameter-location": "method" - }, - "Description": { - "name": "description", - "description": "The description to be given to the upload.", - "type": "string", - "in": "query", - "required": false, - "x-ms-parameter-location": "method" - } + } }, "paths": { "/mapData/upload": { @@ -217,9 +204,6 @@ { "$ref": "#/parameters/ApiVersion" }, - { - "$ref": "#/parameters/Description" - }, { "$ref": "#/parameters/UploadDataFormat" }, @@ -291,9 +275,6 @@ { "$ref": "#/parameters/Udid" }, - { - "$ref": "#/parameters/Description" - }, { "name": "UpdateContent", "in": "body", @@ -630,16 +611,6 @@ "description": "The current upload status of the content.", "type": "string", "readOnly": true - }, - "dataFormat": { - "description": "", - "type":"string", - "readOnly": true - }, - "description": { - "description": "", - "type":"string", - "readOnly": true } } } From 6df71a339ce5c1b944d49f682e7bd5423f8d3293 Mon Sep 17 00:00:00 2001 From: Jeff Couckuyt Date: Wed, 10 Mar 2021 14:20:43 -0800 Subject: [PATCH 06/38] reapplying v2 so diffs are easier --- .../Microsoft.Maps/Data/preview/2.0/data.json | 41 ++++++++++++++++--- 1 file changed, 35 insertions(+), 6 deletions(-) diff --git a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/data.json b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/data.json index 3661631adc93..b9dbd2a85808 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/data.json +++ b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/data.json @@ -2,7 +2,7 @@ "swagger": "2.0", "info": { "title": "Azure Maps Data Service", - "version": "1.0", + "version": "2.0", "description": "APIs for uploading map data to Azure Maps." }, "host": "atlas.microsoft.com", @@ -116,11 +116,11 @@ }, "ApiVersion": { "name": "api-version", - "description": "Version number of Azure Maps API. Current version is 1.0", + "description": "Version number of Azure Maps API. Current version is 2.0", "type": "string", "in": "query", "required": true, - "default": "1.0", + "default": "2.0", "x-ms-parameter-location": "client" }, "JsonFormat": { @@ -152,11 +152,12 @@ "required": true, "enum": [ "geojson", - "zip" + "zip", + "dwgzippackage" ], "x-ms-enum": { "name": "UploadDataFormat", - "modelAsString": false, + "modelAsString": true, "values": [ { "value": "geojson", @@ -165,6 +166,10 @@ { "value": "zip", "description": "Compressed data format." + }, + { + "value": "dwgzippackage", + "description": "" } ] }, @@ -177,7 +182,15 @@ "in": "path", "required": true, "x-ms-parameter-location": "method" - } + }, + "Description": { + "name": "description", + "description": "The description to be given to the upload.", + "type": "string", + "in": "query", + "required": false, + "x-ms-parameter-location": "method" + } }, "paths": { "/mapData/upload": { @@ -204,6 +217,9 @@ { "$ref": "#/parameters/ApiVersion" }, + { + "$ref": "#/parameters/Description" + }, { "$ref": "#/parameters/UploadDataFormat" }, @@ -275,6 +291,9 @@ { "$ref": "#/parameters/Udid" }, + { + "$ref": "#/parameters/Description" + }, { "name": "UpdateContent", "in": "body", @@ -611,6 +630,16 @@ "description": "The current upload status of the content.", "type": "string", "readOnly": true + }, + "dataFormat": { + "description": "", + "type":"string", + "readOnly": true + }, + "description": { + "description": "", + "type":"string", + "readOnly": true } } } From d663c7c7b1e03f974211330ec73eed8fbf1412f8 Mon Sep 17 00:00:00 2001 From: Jeff Couckuyt Date: Wed, 10 Mar 2021 17:19:28 -0800 Subject: [PATCH 07/38] remove type from datasetsources --- .../Microsoft.Maps/Dataset/preview/2.0/dataset.json | 5 ----- 1 file changed, 5 deletions(-) diff --git a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json index b767146f960a..42fc1b9aa033 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json +++ b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json @@ -549,11 +549,6 @@ "description": "The dataset that was appended to to create the current dataset.", "type": "string", "readOnly": true - }, - "type": { - "description": "The type of data stored in the dataset.", - "type": "string", - "readOnly": true } } } From c6b56b5c3541c28bfb540ec66279a8d5fadea4de Mon Sep 17 00:00:00 2001 From: Jeff Couckuyt Date: Fri, 19 Mar 2021 14:06:20 -0700 Subject: [PATCH 08/38] incorporate suggestions from review board --- .../Alias/preview/2.0/alias.json | 102 ++++++++---------- .../Dataset/preview/2.0/dataset.json | 81 +++++--------- .../preview/2.0/dwgconversion.json | 91 ++++++---------- .../preview/2.0/featurestate.json | 97 +++++++++-------- .../Tileset/preview/2.0/tileset.json | 90 ++++++---------- .../Microsoft.Maps/WFS/preview/2.0/wfs.json | 6 +- 6 files changed, 197 insertions(+), 270 deletions(-) diff --git a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/alias.json b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/alias.json index 8a7e03a0398b..f0c2b56230b8 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/alias.json +++ b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/alias.json @@ -130,7 +130,7 @@ } }, "paths": { - "/aliases/create": { + "/aliases": { "post": { "x-publish": true, "description": "**Alias - Create API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to create an alias.
\nYou can also assign the alias during the create request as well.\n\n\n### Submit Create Request\n\nTo create your alias, you will use a `POST` request. If you would like to assign the alias during the creation, you will pass the `resourceId` query parameter.
\n\n\n### Create Alias Response\n\nThe Create API returns a HTTP `201 Created` response the id of the alias, `aliasId`, in the body.\nThe response will look something like:\n\n```json\n{\n \"aliasId\" : \"d7e5efc8-2239-4387-a286-5bb51aa804e3\"\n}\n```\n\n
", @@ -178,15 +178,13 @@ } } }, - }, - "/aliases/{aliasId}": { - "patch": { + "get": { "x-publish": true, - "description": "**Alias - Assign API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to assign an alias to reference a resource.
\n\n\n### Submit Assign Request\n\nTo assign your alias to a resource, you will use a `PATCH` request with the `aliasId` in the path and the `resourceId` passed as a query parameter.
\n\n\n### Create Alias Response\n\nThe Assign API returns a HTTP `204 No Content` response with an empty body, if the alias was assigned successfully.
", - "operationId": "Alias_AssignPreview", + "description": "**Alias - List API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to fetch a list of all previously successfully created aliases.\n\n\n### Submit List Request\n\nTo list all your aliases, you will issue a `GET` request with no additional parameters.
\n\n\n### List Data Response\n\nThe List API returns the complete list of all aliases in `json` format. The response contains the following details for each alias resource:\n\n > createdTimestamp - The timestamp that the alias was created.\n > aliasId - The id for the alias.\n > resourceId - The id for the resource that this alias references (could be null if the alias has not been assigned).\n > lastUpdatedTimestamp - The last time the alias was assigned to a resource.\n\n\nHere's a sample response returning 2 alias resources: \n\n
\n\n```json\n{\n \"aliases\": [\n {\n \"createdTimestamp\": \"2020-02-13T21:19:11+00:00\",\n \"aliasId\": \"a8a4b8bb-ecf4-fb27-a618-f41721552766\",\n \"resourceId\": \"e89aebb9-70a3-8fe1-32bb-1fbd0c725f14\",\n \"lastUpdatedTimestamp\": \"2020-02-13T21:19:22+00:00\"\n },\n {\n \"createdTimestamp\": \"2020-02-18T19:53:33+00:00\",\n \"aliasId\": \"1856dbfc-7a66-ee5a-bf8d-51dbfe1906f6\",\n \"resourceId\": null,\n \"lastUpdatedTimestamp\": \"2020-02-18T19:53:33+00:00\"\n }\n ]\n}\n```\n\n
", + "operationId": "Alias_ListPreview", "x-ms-examples": { - "Assign an alias to a resource": { - "$ref": "./examples/Alias_Assign.json" + "List all the previously created aliases": { + "$ref": "./examples/Alias_List.json" } }, "parameters": [ @@ -195,19 +193,13 @@ }, { "$ref": "#/parameters/ApiVersion" - }, - { - "$ref": "#/parameters/AliasId" - }, - { - "$ref": "#/parameters/AssignResourceId" } ], "responses": { - "204": { - "description": "Alias was assigned successfully.", + "200": { + "description": "List alias request completed successfully. The response body contains a list of all the previously created aliases.", "schema": { - "$ref": "#/definitions/AliasAssignResponse" + "$ref": "#/definitions/AliasListResponse" } }, "400": { @@ -226,15 +218,16 @@ "$ref": "#/responses/500" } } - }, - - "delete": { + } + }, + "/aliases/{aliasId}": { + "patch": { "x-publish": true, - "description": "**Alias - Delete API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to delete a previously created alias.
\nYou can also use this API to delete old/unused aliases to create space for new content.\nThis API does not delete the references resource, only the alias referencing the resource.\n\n\n### Submit Delete Request\n\nTo delete your alias you will issue a `DELETE` request where the path will contain the `aliasId` of the alias to delete.
\n\n\n### Delete Alias Response\n\nThe Delete API returns a HTTP `204 No Content` response with an empty body, if the alias was deleted successfully.
\nA HTTP `400 Bad Request` error response will be returned if the alias with the passed-in `aliasId` is not found. ", - "operationId": "Alias_DeletePreview", + "description": "**Alias - Assign API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to assign an alias to reference a resource.
\n\n\n### Submit Assign Request\n\nTo assign your alias to a resource, you will use a `PATCH` request with the `aliasId` in the path and the `resourceId` passed as a query parameter.
\n\n\n### Create Alias Response\n\nThe Assign API returns a HTTP `204 No Content` response with an empty body, if the alias was assigned successfully.
", + "operationId": "Alias_AssignPreview", "x-ms-examples": { - "Delete previously created alias": { - "$ref": "./examples/Alias_Delete.json" + "Assign an alias to a resource": { + "$ref": "./examples/Alias_Assign.json" } }, "parameters": [ @@ -246,13 +239,16 @@ }, { "$ref": "#/parameters/AliasId" + }, + { + "$ref": "#/parameters/AssignResourceId" } ], "responses": { - "204": { - "description": "Alias delete request completed successfully. The content for `aliasId` was deleted on the server.", + "200": { + "description": "Alias was assigned successfully.", "schema": { - "$ref": "#/definitions/AliasDeleteResponse" + "$ref": "#/definitions/AliasListItem" } }, "400": { @@ -272,10 +268,16 @@ } } }, - "get": { + + "delete": { "x-publish": true, - "description": "**Alias - Get API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to fetch a list of all previously successfully created aliases.\n\n\n### Submit List Request\n\nTo list all your aliases, you will issue a `GET` request with no additional parameters.
\n\n\n### List Data Response\n\nThe List API returns the complete list of all aliases in `json` format. The response contains the following details for each alias resource:\n\n > createdTimestamp - The timestamp that the alias was created.\n > aliasId - The id for the alias.\n > resourceId - The id for the resource that this alias references (could be null if the alias has not been assigned).\n > lastUpdatedTimestamp - The last time the alias was assigned to a resource.\n\n\nHere's a sample response returning 2 alias resources: \n\n
\n\n```json\n{\n \"aliases\": [\n {\n \"createdTimestamp\": \"2020-02-13T21:19:11+00:00\",\n \"aliasId\": \"a8a4b8bb-ecf4-fb27-a618-f41721552766\",\n \"resourceId\": \"e89aebb9-70a3-8fe1-32bb-1fbd0c725f14\",\n \"lastUpdatedTimestamp\": \"2020-02-13T21:19:22+00:00\"\n },\n {\n \"createdTimestamp\": \"2020-02-18T19:53:33+00:00\",\n \"aliasId\": \"1856dbfc-7a66-ee5a-bf8d-51dbfe1906f6\",\n \"resourceId\": null,\n \"lastUpdatedTimestamp\": \"2020-02-18T19:53:33+00:00\"\n }\n ]\n}\n```\n\n
", - "operationId": "Alias_GetPreview", + "description": "**Alias - Delete API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to delete a previously created alias.
\nYou can also use this API to delete old/unused aliases to create space for new content.\nThis API does not delete the references resource, only the alias referencing the resource.\n\n\n### Submit Delete Request\n\nTo delete your alias you will issue a `DELETE` request where the path will contain the `aliasId` of the alias to delete.
\n\n\n### Delete Alias Response\n\nThe Delete API returns a HTTP `204 No Content` response with an empty body, if the alias was deleted successfully.
\nA HTTP `400 Bad Request` error response will be returned if the alias with the passed-in `aliasId` is not found. ", + "operationId": "Alias_DeletePreview", + "x-ms-examples": { + "Delete previously created alias": { + "$ref": "./examples/Alias_Delete.json" + } + }, "parameters": [ { "$ref": "#/parameters/SubscriptionKey" @@ -288,11 +290,8 @@ } ], "responses": { - "200": { - "description": "Get alias request completed successfully. The response body contains the previously created alias.", - "schema": { - "$ref": "#/definitions/AliasListItem" - } + "204": { + "description": "Alias delete request completed successfully. The content for `aliasId` was deleted on the server." }, "400": { "$ref": "#/responses/400" @@ -310,31 +309,27 @@ "$ref": "#/responses/500" } } - } - }, - "/aliases": { + }, "get": { "x-publish": true, - "description": "**Alias - List API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to fetch a list of all previously successfully created aliases.\n\n\n### Submit List Request\n\nTo list all your aliases, you will issue a `GET` request with no additional parameters.
\n\n\n### List Data Response\n\nThe List API returns the complete list of all aliases in `json` format. The response contains the following details for each alias resource:\n\n > createdTimestamp - The timestamp that the alias was created.\n > aliasId - The id for the alias.\n > resourceId - The id for the resource that this alias references (could be null if the alias has not been assigned).\n > lastUpdatedTimestamp - The last time the alias was assigned to a resource.\n\n\nHere's a sample response returning 2 alias resources: \n\n
\n\n```json\n{\n \"aliases\": [\n {\n \"createdTimestamp\": \"2020-02-13T21:19:11+00:00\",\n \"aliasId\": \"a8a4b8bb-ecf4-fb27-a618-f41721552766\",\n \"resourceId\": \"e89aebb9-70a3-8fe1-32bb-1fbd0c725f14\",\n \"lastUpdatedTimestamp\": \"2020-02-13T21:19:22+00:00\"\n },\n {\n \"createdTimestamp\": \"2020-02-18T19:53:33+00:00\",\n \"aliasId\": \"1856dbfc-7a66-ee5a-bf8d-51dbfe1906f6\",\n \"resourceId\": null,\n \"lastUpdatedTimestamp\": \"2020-02-18T19:53:33+00:00\"\n }\n ]\n}\n```\n\n
", - "operationId": "Alias_ListPreview", - "x-ms-examples": { - "List all the previously created aliases": { - "$ref": "./examples/Alias_List.json" - } - }, + "description": "**Alias - Get API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to fetch a list of all previously successfully created aliases.\n\n\n### Submit List Request\n\nTo list all your aliases, you will issue a `GET` request with no additional parameters.
\n\n\n### List Data Response\n\nThe List API returns the complete list of all aliases in `json` format. The response contains the following details for each alias resource:\n\n > createdTimestamp - The timestamp that the alias was created.\n > aliasId - The id for the alias.\n > resourceId - The id for the resource that this alias references (could be null if the alias has not been assigned).\n > lastUpdatedTimestamp - The last time the alias was assigned to a resource.\n\n\nHere's a sample response returning 2 alias resources: \n\n
\n\n```json\n{\n \"aliases\": [\n {\n \"createdTimestamp\": \"2020-02-13T21:19:11+00:00\",\n \"aliasId\": \"a8a4b8bb-ecf4-fb27-a618-f41721552766\",\n \"resourceId\": \"e89aebb9-70a3-8fe1-32bb-1fbd0c725f14\",\n \"lastUpdatedTimestamp\": \"2020-02-13T21:19:22+00:00\"\n },\n {\n \"createdTimestamp\": \"2020-02-18T19:53:33+00:00\",\n \"aliasId\": \"1856dbfc-7a66-ee5a-bf8d-51dbfe1906f6\",\n \"resourceId\": null,\n \"lastUpdatedTimestamp\": \"2020-02-18T19:53:33+00:00\"\n }\n ]\n}\n```\n\n
", + "operationId": "Alias_GetPreview", "parameters": [ { "$ref": "#/parameters/SubscriptionKey" }, { "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/AliasId" } ], "responses": { "200": { - "description": "List alias request completed successfully. The response body contains a list of all the previously created aliases.", + "description": "Get alias request completed successfully. The response body contains the previously created alias.", "schema": { - "$ref": "#/definitions/AliasListResponse" + "$ref": "#/definitions/AliasListItem" } }, "400": { @@ -404,14 +399,6 @@ } } }, - "AliasAssignResponse": { - "description": "The response model for the Assign API. The response body will be empty signifying the assign was successful.", - "type": "object" - }, - "AliasDeleteResponse": { - "description": "The response model for the Delete API. The response body will be empty signifying there's alias available with the given `aliasId` anymore.", - "type": "object" - }, "AliasListResponse": { "description": "The response model for the List API. Returns a list of all the previously created aliases.", "type": "object", @@ -423,6 +410,11 @@ "items": { "$ref": "#/definitions/AliasListItem" } + }, + "nextLink": { + "description": "If present, the location of the next page of data.", + "type": "string", + "readOnly": true } } }, diff --git a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json index 42fc1b9aa033..bbd9e6fd1ae6 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json +++ b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json @@ -76,15 +76,6 @@ "$ref": "#/definitions/ODataErrorResponse" } }, - "200": { - "description": "The operation was successfully queued.", - "headers": { - "location": { - "type": "string", - "description": "A URI where details on the operation can be found." - } - } - }, "200Async": { "description": "The operation is complete. If the operation was successful, use the resource-location header to obtain the path to the result.", "schema": { @@ -97,16 +88,10 @@ } } }, - "202Async": { - "description": "The operation is in progress.", - "schema": { - "$ref": "#/definitions/LongRunningOperationResult" - } - }, "202": { "description": "Request Accepted: The request has been accepted for processing. Please use the URL in the location Header to obtain status.", "headers": { - "location": { + "operation-location": { "type": "string", "description": "New URL to check for the results of the long running process." } @@ -173,7 +158,7 @@ } }, "paths": { - "/datasets/create": { + "/datasets": { "post": { "x-publish": true, "description": "**Dataset Create API**\n\n**Applies to:** S1 pricing tier.\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API \nand SDK. The Dataset APIs are part of Creator. This API allows the caller to create a dataset from data that \nwas uploaded to the Azure Maps Data Service.\n\nYou can use this API in a scenario like uploading a DWG zip package for a building, converting the zip package using \nthe Azure Maps Conversion Service, creating a dataset from the converted zip package. The created dataset can be \nused to create tilesets using the Azure Maps Tileset Service and can be queried via the Azure Maps WFS Service.\n\n## Submit Create Request\n\nTo create your dataset, you will use a `POST` request where the `conversionId` query parameter is an id that represents \nthe converted DWG zip package, the `type` parameter will describe the data type to use for the dataset, the `datasetId`\nparameter will describe if the provided data should be appended to a current dataset and, optionally, the \n`description` query parameter will contain a description (if description is not provided a default description will be \ngiven).\n\nThe Create API is a \n[long-running request](https://aka.ms/am-creator-lrt).", @@ -224,16 +209,14 @@ "$ref": "#/responses/500" } } - } - }, - "/datasets/{datasetId}": { - "delete": { + }, + "get": { "x-publish": true, - "description": "**Dataset Delete API**\n\n**Applies to:** S1 pricing tier.\n
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Dataset APIs are part of Creator.\nThis API allows the caller to delete a previously created dataset.
\nYou can also use this API to delete old/unused datasets to create space for new Creator content.\n\n\n### Submit Delete Request\n\nTo delete your content you will issue a `DELETE` request where the path will contain the `datasetId` of the dataset to delete.
\n\n\n### Delete Data Response\n\nThe Delete API returns a HTTP `204 No Content` response if the dataset resource was deleted successfully.
", - "operationId": "Dataset_DeletePreview", + "description": "**Dataset List API**\n\n**Applies to:** S1 pricing tier.\n
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Dataset APIs are part of Creator.\nThis API allows the caller to fetch a list of all previously successfully created datasets.\n\n\n### Submit List Request\n\nTo list all your datasets, you will issue a `GET` request with no additional parameters.
\n\n\n### List Data Response\n\nThe List API returns the complete list of all datasets in `json` format. The response contains the following fields (if they are not null or empty):\n > created - The timestamp the dataset was created.\n > datasetId - The id for the dataset.\n > description - The description for the dataset.\n > datasetSources - The source data that was used when the create request was issued.\n\nThe `datasetSources` describes the source data that was used when the create request was issued and contains the following elements (if they are not null or empty):\n > conversionIds - The list of `conversionId` (null if none were provided).\n > udids - The list of `udid` (null if none were provided).\n > appendDatasetId - The `datasetId` that was used for an append operation (null if none was used).\n > type - The type of data stored in the dataset that was created.\n\nHere's a sample response returning the `timestamp`, `datasetId`, `description`, and `datasetSources` of 3 dataset resources:\n\n
\n\n```json\n{\n \"datasets\": [\n {\n \"timestamp\": \"2020-01-01T22:50:48+00:00\",\n \"datasetId\": \"f6495f62-94f8-0ec2-c252-45626f82fcb2\",\n \"description\": \"Some description or comment for the dataset.\",\n \"datasetSources\": {\n \"conversionIds\": [\n \"15d21452-c9bb-27b6-5e79-743ca5c3205d\"\n ],\n \"type\": \"facility\"\n },\n \"status\": \"Succeeded\"\n },\n {\n \"timestamp\": \"2020-01-01T22:57:53+00:00\",\n \"datasetId\": \"8b1288fa-1958-4a2b-b68e-13a7i5af7d7c\",\n \"description\": \"Create from upload '0c1288fa-2058-4a1b-b68d-13a5f5af7d7c'.\",\n \"datasetSources\": {\n \"udids\": [\n \"0c1288fa-2058-4a1b-b68d-13a5f5af7d7c\"\n ],\n \"type\": \"facility\"\n },\n \"status\": \"Succeeded\"\n },\n {\n \"timestamp\": \"2020-01-01T20:39:36+00:00\",\n \"datasetId\": \"7c1288fa-2058-4a1b-b68f-13a6h5af7d7c\",\n \"description\": \"Some other description or comment for the dataset.\",\n \"datasetSources\": {\n \"conversionIds\": [\n \"15d21452-c9bb-27b6-5e79-743ca5c3205d\"\n ],\n \"appendDatasetId\": \"8b1288fa-1958-4a2b-b68e-13a7i5af7d7c\",\n \"type\": \"facility\"\n },\n \"status\": \"Succeeded\"\n }\n ]\n}\n```\n
", + "operationId": "Dataset_ListPreview", "x-ms-examples": { - "Delete previously created dataset": { - "$ref": "./examples/Dataset_Delete.json" + "List all the previously created datasets": { + "$ref": "./examples/Dataset_List.json" } }, "parameters": [ @@ -242,16 +225,13 @@ }, { "$ref": "#/parameters/ApiVersion" - }, - { - "$ref": "#/parameters/DatasetId" } ], "responses": { "200": { - "description": "The dataset delete request completed successfully. The resource referenced by the `datasetId` was deleted from the server.", + "description": "The dataset request completed successfully. The response body contains the previously created dataset.", "schema": { - "$ref": "#/definitions/DatasetDeleteResponse" + "$ref": "#/definitions/DatasetListResponse" } }, "400": { @@ -270,7 +250,9 @@ "$ref": "#/responses/500" } } - }, + } + }, + "/datasets/{datasetId}": { "get": { "x-publish": true, "description": "**Dataset Get API**\n\n**Applies to:** S1 pricing tier.\n
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Dataset APIs are part of Creator.\nThis API allows the caller to fetch a previously successfully created dataset.\n", @@ -310,17 +292,14 @@ "$ref": "#/responses/500" } } - } - - }, - "/datasets": { - "get": { + }, + "delete": { "x-publish": true, - "description": "**Dataset List API**\n\n**Applies to:** S1 pricing tier.\n
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Dataset APIs are part of Creator.\nThis API allows the caller to fetch a list of all previously successfully created datasets.\n\n\n### Submit List Request\n\nTo list all your datasets, you will issue a `GET` request with no additional parameters.
\n\n\n### List Data Response\n\nThe List API returns the complete list of all datasets in `json` format. The response contains the following fields (if they are not null or empty):\n > created - The timestamp the dataset was created.\n > datasetId - The id for the dataset.\n > description - The description for the dataset.\n > datasetSources - The source data that was used when the create request was issued.\n\nThe `datasetSources` describes the source data that was used when the create request was issued and contains the following elements (if they are not null or empty):\n > conversionIds - The list of `conversionId` (null if none were provided).\n > udids - The list of `udid` (null if none were provided).\n > appendDatasetId - The `datasetId` that was used for an append operation (null if none was used).\n > type - The type of data stored in the dataset that was created.\n\nHere's a sample response returning the `timestamp`, `datasetId`, `description`, and `datasetSources` of 3 dataset resources:\n\n
\n\n```json\n{\n \"datasets\": [\n {\n \"timestamp\": \"2020-01-01T22:50:48+00:00\",\n \"datasetId\": \"f6495f62-94f8-0ec2-c252-45626f82fcb2\",\n \"description\": \"Some description or comment for the dataset.\",\n \"datasetSources\": {\n \"conversionIds\": [\n \"15d21452-c9bb-27b6-5e79-743ca5c3205d\"\n ],\n \"type\": \"facility\"\n },\n \"status\": \"Succeeded\"\n },\n {\n \"timestamp\": \"2020-01-01T22:57:53+00:00\",\n \"datasetId\": \"8b1288fa-1958-4a2b-b68e-13a7i5af7d7c\",\n \"description\": \"Create from upload '0c1288fa-2058-4a1b-b68d-13a5f5af7d7c'.\",\n \"datasetSources\": {\n \"udids\": [\n \"0c1288fa-2058-4a1b-b68d-13a5f5af7d7c\"\n ],\n \"type\": \"facility\"\n },\n \"status\": \"Succeeded\"\n },\n {\n \"timestamp\": \"2020-01-01T20:39:36+00:00\",\n \"datasetId\": \"7c1288fa-2058-4a1b-b68f-13a6h5af7d7c\",\n \"description\": \"Some other description or comment for the dataset.\",\n \"datasetSources\": {\n \"conversionIds\": [\n \"15d21452-c9bb-27b6-5e79-743ca5c3205d\"\n ],\n \"appendDatasetId\": \"8b1288fa-1958-4a2b-b68e-13a7i5af7d7c\",\n \"type\": \"facility\"\n },\n \"status\": \"Succeeded\"\n }\n ]\n}\n```\n
", - "operationId": "Dataset_ListPreview", + "description": "**Dataset Delete API**\n\n**Applies to:** S1 pricing tier.\n
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Dataset APIs are part of Creator.\nThis API allows the caller to delete a previously created dataset.
\nYou can also use this API to delete old/unused datasets to create space for new Creator content.\n\n\n### Submit Delete Request\n\nTo delete your content you will issue a `DELETE` request where the path will contain the `datasetId` of the dataset to delete.
\n\n\n### Delete Data Response\n\nThe Delete API returns a HTTP `204 No Content` response if the dataset resource was deleted successfully.
", + "operationId": "Dataset_DeletePreview", "x-ms-examples": { - "List all the previously created datasets": { - "$ref": "./examples/Dataset_List.json" + "Delete previously created dataset": { + "$ref": "./examples/Dataset_Delete.json" } }, "parameters": [ @@ -329,14 +308,14 @@ }, { "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/DatasetId" } ], "responses": { - "200": { - "description": "The dataset request completed successfully. The response body contains the previously created dataset.", - "schema": { - "$ref": "#/definitions/DatasetListResponse" - } + "204": { + "description": "The dataset delete request completed successfully. The resource referenced by the `datasetId` was deleted from the server." }, "400": { "$ref": "#/responses/400" @@ -375,9 +354,6 @@ "200": { "$ref": "#/responses/200Async" }, - "202": { - "$ref": "#/responses/202Async" - }, "400": { "$ref": "#/responses/400" } @@ -481,10 +457,6 @@ } } }, - "DatasetDeleteResponse": { - "description": "The response model for the Dataset Delete API. The response body will be empty signifying there's no content available for the `datasetId` anymore.", - "type": "object" - }, "DatasetListResponse": { "description": "The response model for the Dataset List API. The response body will contain a list of all the previously created datasets.", "type": "object", @@ -496,6 +468,11 @@ "items": { "$ref": "#/definitions/DatasetDetailInfo" } + }, + "nextLink": { + "description": "If present, the location of the next page of data.", + "type": "string", + "readOnly": true } } }, diff --git a/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json index b3ff328589ae..c882e77013c1 100644 --- a/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json +++ b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json @@ -83,29 +83,14 @@ "headers": { "resource-location": { "type": "string", - "description": "A URI where details on the newly created resource can be found." + "description": "If successful, a URI where details on the newly created resource can be found." } } }, - "202Async": { - "description": "The operation is in progress.", - "schema": { - "$ref": "#/definitions/LongRunningOperationResult" - } - }, - "200": { - "description": "The operation was successfully queued.", - "headers": { - "location": { - "type": "string", - "description": "A URI where details on the operation can be found." - } - } - }, - "202": { + "202": { "description": "Request Accepted: The request has been accepted for processing. Please use the URL in the location Header to obtain status.", "headers": { - "location": { + "operation-location": { "type": "string", "description": "New URL to check for the results of the long running process." } @@ -131,11 +116,11 @@ }, "ApiVersion": { "name": "api-version", - "description": "Version number of Azure Maps API. Current version is 1.0", + "description": "Version number of Azure Maps API. Current version is 2.0", "type": "string", "in": "query", "required": true, - "default": "1.0", + "default": "2.0", "x-ms-parameter-location": "client" }, "UdidQuery": { @@ -181,7 +166,7 @@ }, "paths": { - "/conversions/create": { + "/conversions": { "post": { "x-publish": true, "description": "**Conversion Create API**\n\n**Applies to:** S1 pricing tier.
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and \nSDK. The Conversion API is part of Creator.
\n\nThe Conversion API lets the caller import a set of DWG design files as a zipped [Drawing Package](https://aka.ms/am-drawing-package) into Azure Maps. The [Drawing Package](https://aka.ms/am-drawing-package) should first be \nuploaded using the [Azure Maps Data Service](https://docs.microsoft.com/rest/api/maps/data). Once uploaded, use the \n`udid` returned by the [Data Upload API](https://docs.microsoft.com/rest/api/maps/data/uploadpreview) to call \nthis Conversion API.\n\n## Convert DWG package\n\nThe Conversion API performs a \n[long-running request](https://aka.ms/am-creator-lrt).\n\n## Debug DWG package issues\n\n\nDuring the Conversion process, if there are any issues with the DWG package [errors and warnings](https://aka.ms/am-conversion-errors) are provided in the response along with a *diagnostic package* to visualize \nand diagnose these issues. In case any issues are encountered with your DWG package, the Conversion operation status process as detailed \n[here](https://aka.ms/am-creator-lrt) returns the location of the *diagnostic\npackage* that can be downloaded by the caller to help them visualize and diagnose these issues. The *diagnostic package* location\ncan be found in the properties section of the conversion operation status response and looks like the following:\n\n```json\n{\n \"properties\": {\n \"diagnosticPackageLocation\": \"https://atlas.microsoft.com/mapdata/{DiagnosticPackageId}?api-version=1.0\" \n } \n}\n```\n\nThe *diagnostic package* can be downloaded by executing a `HTTP GET` request on the `diagnosticPackageLocation`.\nFor more details on how to use the tool to visualize and diagnose all the errors and warnings see [Drawing Error Visualizer](https://aka.ms/am-drawing-errors-visualizer).
\n\nA conversion operation will be marked as *success* if there are zero or more warnings but will be marked as *failed* if any errors are encountered. ", @@ -216,7 +201,7 @@ } ], "responses": { - "201": { + "202": { "$ref": "#/responses/202" }, "400": { @@ -235,16 +220,14 @@ "$ref": "#/responses/500" } } - } - }, - "/conversions/{conversionId}": { - "delete": { + }, + "get": { "x-publish": true, - "description": "**Conversion Delete API**\n\n**Applies to:** S1 pricing tier.
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Delete API is part of Creator.
\n\nThis API allows the caller to delete any data conversions created previously using the [Conversion API](https://docs.microsoft.com/en-us/rest/api/maps/conversion/convertpreview).\n\n### Submit Delete Request\n\nTo delete your conversion data you will issue a `DELETE` request where the path will contain the `conversionId` of the data to delete.\n\n### Conversion Delete Response\n\nThe Conversion Delete API returns a HTTP `204 No Content` response with an empty body, if the converted data resources were deleted successfully.
\nA HTTP `400 Bad Request` error response will be returned if no resource associated with the passed-in `conversionId` is found. ", - "operationId": "Conversion_DeletePreview", + "description": "**Conversion List API**\n\n**Applies to:** S1 pricing tier.
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Conversion API is part of Creator.
\n\nThis API allows the caller to fetch a list of all successful data conversions submitted previously using the [Conversion API](https://docs.microsoft.com/en-us/rest/api/maps/conversion/convertpreview). \n\n### Submit List Request\n\nTo list all successful conversions you will issue a `GET` request with no additional parameters.\n\n### List Data Response\n\nThe Conversion List API returns the complete list of all conversion details in `json` format.
\n\nHere is a sample response returning the details of two successful conversion requests: \n\n
\n\n```json\n{\n \"conversions\": \n [\n {\n \"conversionId\": \"54398242-ea6c-1f31-4fa6-79b1ae0fc24d\",\n \"udid\": \"31838736-8b84-11ea-bc55-0242ac130003\",\n \"created\": \"5/19/2020 9:00:00 AM +00:00\",\n \"description\": \"User provided description.\",\n \"featureCounts\": {\n \"DIR\": 1,\n \"LVL\": 3,\n \"FCL\": 1,\n \"UNIT\": 150,\n \"CTG\": 8,\n \"AEL\": 0,\n \"OPN\": 10\n }\n },\n {\n \"conversionId\": \"2acf7d32-8b84-11ea-bc55-0242ac130003\",\n \"udid\": \"1214bc58-8b84-11ea-bc55-0242ac1300039\",\n \"created\": \"5/19/2020 9:00:00 AM +00:00\",\n \"description\": \"User provided description.\",\n \"featureCounts\": {\n \"DIR\": 1,\n \"LVL\": 3,\n \"FCL\": 1,\n \"UNIT\": 150,\n \"CTG\": 8,\n \"AEL\": 0,\n \"OPN\": 10\n }\n }\n ]\n}\n```\n\n
", + "operationId": "Conversion_ListPreview", "x-ms-examples": { - "Delete previously converted content": { - "$ref": "./examples/Delete.json" + "Returns a list of all the data processed by the Conversion Service for the account": { + "$ref": "./examples/List.json" } }, "parameters": [ @@ -256,16 +239,13 @@ }, { "$ref": "#/parameters/ApiVersion" - }, - { - "$ref": "#/parameters/ConversionId" } ], "responses": { "200": { - "description": "Conversion delete request completed successfully. The content for `conversionId` was deleted on the server.", + "description": "List request completed successfully.", "schema": { - "$ref": "#/definitions/ConversionDeleteResponse" + "$ref": "#/definitions/ConversionListResponse" } }, "400": { @@ -284,7 +264,9 @@ "$ref": "#/responses/500" } } - }, + } + }, + "/conversions/{conversionId}": { "get": { "x-publish": true, "description": "**Conversion Get API**\n\n**Applies to:** S1 pricing tier.
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Conversion API is part of Creator.
\n\nThis API allows the caller to fetch a successful data conversion submitted previously using the [Conversion API](https://docs.microsoft.com/en-us/rest/api/maps/conversion/convertpreview). ", @@ -326,17 +308,14 @@ "$ref": "#/responses/500" } } - } - - }, - "/conversions": { - "get": { + }, + "delete": { "x-publish": true, - "description": "**Conversion List API**\n\n**Applies to:** S1 pricing tier.
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Conversion API is part of Creator.
\n\nThis API allows the caller to fetch a list of all successful data conversions submitted previously using the [Conversion API](https://docs.microsoft.com/en-us/rest/api/maps/conversion/convertpreview). \n\n### Submit List Request\n\nTo list all successful conversions you will issue a `GET` request with no additional parameters.\n\n### List Data Response\n\nThe Conversion List API returns the complete list of all conversion details in `json` format.
\n\nHere is a sample response returning the details of two successful conversion requests: \n\n
\n\n```json\n{\n \"conversions\": \n [\n {\n \"conversionId\": \"54398242-ea6c-1f31-4fa6-79b1ae0fc24d\",\n \"udid\": \"31838736-8b84-11ea-bc55-0242ac130003\",\n \"created\": \"5/19/2020 9:00:00 AM +00:00\",\n \"description\": \"User provided description.\",\n \"featureCounts\": {\n \"DIR\": 1,\n \"LVL\": 3,\n \"FCL\": 1,\n \"UNIT\": 150,\n \"CTG\": 8,\n \"AEL\": 0,\n \"OPN\": 10\n }\n },\n {\n \"conversionId\": \"2acf7d32-8b84-11ea-bc55-0242ac130003\",\n \"udid\": \"1214bc58-8b84-11ea-bc55-0242ac1300039\",\n \"created\": \"5/19/2020 9:00:00 AM +00:00\",\n \"description\": \"User provided description.\",\n \"featureCounts\": {\n \"DIR\": 1,\n \"LVL\": 3,\n \"FCL\": 1,\n \"UNIT\": 150,\n \"CTG\": 8,\n \"AEL\": 0,\n \"OPN\": 10\n }\n }\n ]\n}\n```\n\n
", - "operationId": "Conversion_ListPreview", + "description": "**Conversion Delete API**\n\n**Applies to:** S1 pricing tier.
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Delete API is part of Creator.
\n\nThis API allows the caller to delete any data conversions created previously using the [Conversion API](https://docs.microsoft.com/en-us/rest/api/maps/conversion/convertpreview).\n\n### Submit Delete Request\n\nTo delete your conversion data you will issue a `DELETE` request where the path will contain the `conversionId` of the data to delete.\n\n### Conversion Delete Response\n\nThe Conversion Delete API returns a HTTP `204 No Content` response with an empty body, if the converted data resources were deleted successfully.
\nA HTTP `400 Bad Request` error response will be returned if no resource associated with the passed-in `conversionId` is found. ", + "operationId": "Conversion_DeletePreview", "x-ms-examples": { - "Returns a list of all the data processed by the Conversion Service for the account": { - "$ref": "./examples/List.json" + "Delete previously converted content": { + "$ref": "./examples/Delete.json" } }, "parameters": [ @@ -348,14 +327,14 @@ }, { "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/ConversionId" } ], "responses": { - "200": { - "description": "List request completed successfully.", - "schema": { - "$ref": "#/definitions/ConversionListResponse" - } + "204": { + "description": "Conversion delete request completed successfully. The content for `conversionId` was deleted on the server." }, "400": { "$ref": "#/responses/400" @@ -394,9 +373,6 @@ "200": { "$ref": "#/responses/200Async" }, - "202": { - "$ref": "#/responses/202Async" - }, "400": { "$ref": "#/responses/400" } @@ -512,6 +488,11 @@ "items": { "$ref": "#/definitions/ConversionListDetailInfo" } + }, + "nextLink": { + "description": "If present, the location of the next page of data.", + "type": "string", + "readOnly": true } } }, @@ -550,10 +531,6 @@ "readOnly": true } } - }, - "ConversionDeleteResponse": { - "description": "The response model for the Conversion Delete API. The response body will be empty signifying there's no content available for the `conversionId` anymore.", - "type": "object" } } } diff --git a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/featurestate.json b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/featurestate.json index 49adf97c61e0..33d8f7caf6d4 100644 --- a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/featurestate.json +++ b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/featurestate.json @@ -93,7 +93,7 @@ }, "ApiVersion": { "name": "api-version", - "description": "Version number of Azure Maps API. Current version is 1.0", + "description": "Version number of Azure Maps API. Current version is 2.0", "type": "string", "in": "query", "required": true, @@ -158,7 +158,7 @@ } }, "paths": { - "/featureStateSets/create": { + "/featureStateSets": { "post": { "x-publish": true, "description": "**Applies to:** S1 pricing tier.\n
\n\nThis POST API allows the user to create a new Stateset and define stateset style using request body.\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Feature State API is part of Creator. \n\nThe Feature State service allows the user to update the states of a feature and query them to be used in other services. The dynamic properties of a feature that don't belong to the dataset are referred to as *states* here.\n\nThis Feature State service pivot on the Stateset. Like Tileset, Stateset encapsulates the storage mechanism for feature states for a dataset.\n\nOnce the stateset is created, users can use that statesetId to post feature state updates and retrieve the current feature states. A feature can have only one state at a given point in time. \n\nFeature state is defined by the key name, value and the timestamp. When a feature state update is posted to Azure Maps, the state value gets updated only if the provided state’s timestamp is later than the stored timestamp. \n\nAzure Maps MapControl provides a way to use these feature states to style the features. Please refer to the State Tile documentation for more information.", @@ -211,7 +211,48 @@ "$ref": "#/responses/500" } } - } + }, + "get": { + "x-publish": true, + "description": "**Applies to:** S1 pricing tier.
This API allows the caller to fetch a list of all previously successfully created statesets.", + "operationId": "FeatureState_ListStatesetPreview", + "x-ms-examples": { + "List all the previously created statesets": { + "$ref": "./examples/Stateset_List.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + } + ], + "responses": { + "200": { + "description": "The list stateset request completed successfully. The response body contains a list of all the previously created statesets.", + "schema": { + "$ref": "#/definitions/StatesetListResponse" + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } }, "/featureStateSets/{statesetId}": { "patch": { @@ -351,49 +392,6 @@ } } }, - "/featureStateSets": { - "get": { - "x-publish": true, - "description": "**Applies to:** S1 pricing tier.
This API allows the caller to fetch a list of all previously successfully created statesets.", - "operationId": "FeatureState_ListStatesetPreview", - "x-ms-examples": { - "List all the previously created statesets": { - "$ref": "./examples/Stateset_List.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/SubscriptionKey" - }, - { - "$ref": "#/parameters/ApiVersion" - } - ], - "responses": { - "200": { - "description": "The list stateset request completed successfully. The response body contains a list of all the previously created statesets.", - "schema": { - "$ref": "#/definitions/StatesetListResponse" - } - }, - "400": { - "$ref": "#/responses/400" - }, - "401": { - "$ref": "#/responses/401" - }, - "403": { - "$ref": "#/responses/403" - }, - "404": { - "$ref": "#/responses/404" - }, - "500": { - "$ref": "#/responses/500" - } - } - } - }, "/featureStateSets/{statesetId}/featureStates/{featureId}": { "put": { "x-publish": true, @@ -475,7 +473,7 @@ } ], "responses": { - "200": { + "204": { "description": "Feature states deleted successfully." }, "400": { @@ -611,6 +609,11 @@ "items": { "$ref": "#/definitions/StatesetInfoObject" } + }, + "nextLink": { + "description": "If present, the location of the next page of data.", + "type": "string", + "readOnly": true } } }, diff --git a/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json index 5bd42f4c2bd7..27f47abe7853 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json +++ b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json @@ -83,29 +83,14 @@ "headers": { "resource-location": { "type": "string", - "description": "A URI where details on the newly created resource can be found." + "description": "If successful, a URI where details on the newly created resource can be found." } } }, - "202Async": { - "description": "The operation is in progress.", - "schema": { - "$ref": "#/definitions/LongRunningOperationResult" - } - }, - "200": { - "description": "The operation was successfully queued.", - "headers": { - "location": { - "type": "string", - "description": "A URI where details on the operation can be found." - } - } - }, "202": { "description": "Request Accepted: The request has been accepted for processing. Please use the URL in the location Header to obtain status.", "headers": { - "location": { + "operation-location": { "type": "string", "description": "New URL to check for the results of the long running process." } @@ -131,11 +116,11 @@ }, "ApiVersion": { "name": "api-version", - "description": "Version number of Azure Maps API. Current version is 1.0", + "description": "Version number of Azure Maps API. Current version is 2.0", "type": "string", "in": "query", "required": true, - "default": "1.0", + "default": "2.0", "x-ms-parameter-location": "client" }, "JsonFormat": { @@ -193,7 +178,7 @@ } }, "paths": { - "/tilesets/create": { + "/tilesets": { "post": { "x-publish": true, "description": "**Tileset Create API**\n\n**Applies to**: S1 pricing tier.\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API \nand SDK. The Tileset API is part of Creator.\n\nThe Tileset Create API allows the caller to create a tileset from a dataset. A tileset contains a set of tiles that can be consumed \nfrom the [Get Map Tile](/rest/api/maps/render/getmaptile) to retrieve custom tiles. To make a dataset, use the \n[DataSet Create API](/rest/api/maps/dataset/createpreview).\n\n## Submit Create Request\n\nTo create your tileset you will make a `POST` request with an empty body. The `datasetId` query parameter will be \nused as the source of the tileset data.\n\nThe Create Tileset API is a \n[long-running request](https://aka.ms/am-creator-lrt).", @@ -244,16 +229,14 @@ "$ref": "#/responses/500" } } - } - }, - "/tilesets/{tilesetId}": { - "delete": { + }, + "get": { "x-publish": true, - "description": "**Tileset Delete API**\n\n**Applies to:** S1 pricing tier.\n
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Tileset API is part of Creator.\nThis API allows the caller to delete a created tileset.
\nYou can use this API if a tileset is no longer needed. \n\n### Submit Delete Request\n\nTo delete your content you will issue a `DELETE` request where the path will contain the `tilesetId` of the tileset to delete.
\n\n#### Delete request \"Successful\"\n\nThe Tileset Delete API returns a HTTP `204 No Content` response with an empty body, if the tileset was deleted successfully.
\n\n#### Delete request \"Failed\"\n\nA HTTP `400 Bad Request` error response will be returned if the tileset with the passed-in `tilesetId` is not found. \n\nHere is a sample error response:\n\n
\n\n```json\n{\n \"error\": {\n \"code\": \"400 BadRequest\",\n \"message\": \"Bad request - Tileset Id: d85b5b27-5fc4-4599-8b50-47160e90f8ce does not exist.\"\n }\n}\n```", - "operationId": "Tileset_DeletePreview", + "description": "**Tileset List API**\n\n**Applies to:** S1 pricing tier.\n
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Tileset API is part of Creator.\nThis API allows the caller to fetch a list of all tilesets created. \n
", + "operationId": "Tileset_ListPreview", "x-ms-examples": { - "Delete a created tileset": { - "$ref": "./examples/Delete.json" + "Get a list of all tilesets": { + "$ref": "./examples/List.json" } }, "parameters": [ @@ -265,16 +248,13 @@ }, { "$ref": "#/parameters/ApiVersion" - }, - { - "$ref": "#/parameters/TilesetId" } ], "responses": { - "204": { - "description": "Tileset delete request completed successfully.", + "200": { + "description": "List tileset request completed successfully. The response body contains a list of all tilesets.", "schema": { - "$ref": "#/definitions/TilesetDeleteResponse" + "$ref": "#/definitions/TilesetListResponse" } }, "400": { @@ -293,7 +273,9 @@ "$ref": "#/responses/500" } } - }, + } + }, + "/tilesets/{tilesetId}": { "get": { "x-publish": true, "description": "**Tileset Get API**\n\n**Applies to:** S1 pricing tier.\n
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Tileset API is part of Creator.\nThis API allows the caller to fetch a tileset.", @@ -335,17 +317,14 @@ "$ref": "#/responses/500" } } - } - - }, - "/tilesets": { - "get": { + }, + "delete": { "x-publish": true, - "description": "**Tileset List API**\n\n**Applies to:** S1 pricing tier.\n
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Tileset API is part of Creator.\nThis API allows the caller to fetch a list of all tilesets created. \n
", - "operationId": "Tileset_ListPreview", + "description": "**Tileset Delete API**\n\n**Applies to:** S1 pricing tier.\n
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Tileset API is part of Creator.\nThis API allows the caller to delete a created tileset.
\nYou can use this API if a tileset is no longer needed. \n\n### Submit Delete Request\n\nTo delete your content you will issue a `DELETE` request where the path will contain the `tilesetId` of the tileset to delete.
\n\n#### Delete request \"Successful\"\n\nThe Tileset Delete API returns a HTTP `204 No Content` response with an empty body, if the tileset was deleted successfully.
\n\n#### Delete request \"Failed\"\n\nA HTTP `400 Bad Request` error response will be returned if the tileset with the passed-in `tilesetId` is not found. \n\nHere is a sample error response:\n\n
\n\n```json\n{\n \"error\": {\n \"code\": \"400 BadRequest\",\n \"message\": \"Bad request - Tileset Id: d85b5b27-5fc4-4599-8b50-47160e90f8ce does not exist.\"\n }\n}\n```", + "operationId": "Tileset_DeletePreview", "x-ms-examples": { - "Get a list of all tilesets": { - "$ref": "./examples/List.json" + "Delete a created tileset": { + "$ref": "./examples/Delete.json" } }, "parameters": [ @@ -357,14 +336,14 @@ }, { "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/TilesetId" } ], "responses": { - "200": { - "description": "List tileset request completed successfully. The response body contains a list of all tilesets.", - "schema": { - "$ref": "#/definitions/TilesetListResponse" - } + "204": { + "description": "Tileset delete request completed successfully." }, "400": { "$ref": "#/responses/400" @@ -384,6 +363,7 @@ } } }, + "/tilesets/operations/{operationId}": { "get": { "description": "This path will be obtained from a call to /tilesets/create. While in progress, an http202 will be returned, followed by an http200 once completed.", @@ -403,9 +383,6 @@ "200": { "$ref": "#/responses/200Async" }, - "202": { - "$ref": "#/responses/202Async" - }, "400": { "$ref": "#/responses/400" } @@ -521,6 +498,11 @@ "items": { "$ref": "#/definitions/TilesetDetailInfo" } + }, + "nextLink": { + "description": "If present, the location of the next page of data.", + "type": "string", + "readOnly": true } } }, @@ -567,10 +549,6 @@ } } } - }, - "TilesetDeleteResponse": { - "description": "The response model for the Delete API. The response body will be empty signifying there's no content available for the `tilesetId` anymore.", - "type": "object" } } } diff --git a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/wfs.json b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/wfs.json index 7a3fb77678d1..fb1a4df9b46a 100644 --- a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/wfs.json +++ b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/wfs.json @@ -2,7 +2,7 @@ "swagger": "2.0", "info": { "title": "Azure Maps Web Feature Service", - "version": "1.0", + "version": "2.0", "description": "Azure Maps Web Feature REST APIs" }, "host": "atlas.microsoft.com", @@ -105,11 +105,11 @@ }, "ApiVersion": { "name": "api-version", - "description": "Version number of Azure Maps API. Current version is 1.0", + "description": "Version number of Azure Maps API. Current version is 2.0", "type": "string", "in": "query", "required": true, - "default": "1.0", + "default": "2.0", "x-ms-parameter-location": "client" }, "Datasetid": { From f2a89e49dc487f3007360d818323c584d1a0213f Mon Sep 17 00:00:00 2001 From: Jeff Couckuyt Date: Wed, 24 Mar 2021 15:21:55 -0700 Subject: [PATCH 09/38] adding ontology field --- .../maps/data-plane/Microsoft.Maps/WFS/preview/2.0/wfs.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/wfs.json b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/wfs.json index fb1a4df9b46a..5990bb34b4da 100644 --- a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/wfs.json +++ b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/wfs.json @@ -632,6 +632,9 @@ "links" ], "properties": { + "ontology": { + "$ref": "#/definitions/Ontology" + }, "links": { "type": "array", "items": { From e3ee703885e6b2b3ee5aedd42d5465f884573e03 Mon Sep 17 00:00:00 2001 From: Robert Johnson Date: Tue, 30 Mar 2021 13:40:21 -0700 Subject: [PATCH 10/38] Update alias v2 apis. --- .../Alias/preview/2.0/alias.json | 74 ++++++++++++------- .../preview/2.0/examples/Alias_Assign.json | 7 +- .../preview/2.0/examples/Alias_Create.json | 7 +- .../2.0/examples/Alias_GetDetails.json | 0 4 files changed, 57 insertions(+), 31 deletions(-) create mode 100644 specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_GetDetails.json diff --git a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/alias.json b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/alias.json index f0c2b56230b8..157ed809d725 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/alias.json +++ b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/alias.json @@ -40,14 +40,8 @@ } ], "responses": { - "202": { - "description": "Request Accepted: The request has been accepted for processing. Please use the URL in the Location Header to retry or access the results.", - "headers": { - "Location": { - "type": "string", - "description": "New URL to check for the results of the long running process." - } - } + "201": { + "description": "Resource Created: The alias resource has been created." }, "400": { "description": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive.", @@ -133,8 +127,8 @@ "/aliases": { "post": { "x-publish": true, - "description": "**Alias - Create API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to create an alias.
\nYou can also assign the alias during the create request as well.\n\n\n### Submit Create Request\n\nTo create your alias, you will use a `POST` request. If you would like to assign the alias during the creation, you will pass the `resourceId` query parameter.
\n\n\n### Create Alias Response\n\nThe Create API returns a HTTP `201 Created` response the id of the alias, `aliasId`, in the body.\nThe response will look something like:\n\n```json\n{\n \"aliasId\" : \"d7e5efc8-2239-4387-a286-5bb51aa804e3\"\n}\n```\n\n
", - "operationId": "Alias_CreatePreview", + "description": "**Alias - Create API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to create an alias. You can also assign the alias during the create request.
\nAn alias can reference an ID generated by a creator service, but cannot reference another alias ID.\n\n\n### Submit Create Request\n\nTo create your alias, you will use a `POST` request. If you would like to assign the alias during the creation, you will pass the `resourceId` query parameter.
\n\n\n### Create Alias Response\n\nThe Create API returns a HTTP `201 Created` response with the alias resource in the body.\n\nA sample response from creating an alias:
\n\n```json\n{\n \"createdTimestamp\": \"2020-02-13T21:19:11.123Z\",\n \"aliasId\": \"a8a4b8bb-ecf4-fb27-a618-f41721552766\",\n \"resourceId\": \"e89aebb9-70a3-8fe1-32bb-1fbd0c725f14\",\n \"lastUpdatedTimestamp\": \"2020-02-13T21:19:22.123Z\"\n}\n```\n\n
", + "operationId": "Alias_Create", "x-ms-examples": { "Create an alias that does not reference any resource": { "$ref": "./examples/Alias_Create.json" @@ -146,6 +140,9 @@ }, { "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/CreateResourceId" } ], "responses": { @@ -180,8 +177,8 @@ }, "get": { "x-publish": true, - "description": "**Alias - List API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to fetch a list of all previously successfully created aliases.\n\n\n### Submit List Request\n\nTo list all your aliases, you will issue a `GET` request with no additional parameters.
\n\n\n### List Data Response\n\nThe List API returns the complete list of all aliases in `json` format. The response contains the following details for each alias resource:\n\n > createdTimestamp - The timestamp that the alias was created.\n > aliasId - The id for the alias.\n > resourceId - The id for the resource that this alias references (could be null if the alias has not been assigned).\n > lastUpdatedTimestamp - The last time the alias was assigned to a resource.\n\n\nHere's a sample response returning 2 alias resources: \n\n
\n\n```json\n{\n \"aliases\": [\n {\n \"createdTimestamp\": \"2020-02-13T21:19:11+00:00\",\n \"aliasId\": \"a8a4b8bb-ecf4-fb27-a618-f41721552766\",\n \"resourceId\": \"e89aebb9-70a3-8fe1-32bb-1fbd0c725f14\",\n \"lastUpdatedTimestamp\": \"2020-02-13T21:19:22+00:00\"\n },\n {\n \"createdTimestamp\": \"2020-02-18T19:53:33+00:00\",\n \"aliasId\": \"1856dbfc-7a66-ee5a-bf8d-51dbfe1906f6\",\n \"resourceId\": null,\n \"lastUpdatedTimestamp\": \"2020-02-18T19:53:33+00:00\"\n }\n ]\n}\n```\n\n
", - "operationId": "Alias_ListPreview", + "description": "**Alias - List API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to fetch a list of all previously successfully created aliases.\n\n\n### Submit List Request\n\nTo list all your aliases, you will issue a `GET` request with no additional parameters.
\n\n\n### List Data Response\n\nThe List API returns the complete list of all aliases in `json` format. The response contains the following details for each alias resource:\n\n > createdTimestamp - The timestamp that the alias was created. Format yyyy-MM-ddTHH:mm:ss.sssZ\n > aliasId - The id for the alias.\n > resourceId - The id for the resource that this alias references (could be null if the alias has not been assigned).\n > lastUpdatedTimestamp - The last time the alias was assigned to a resource. Format yyyy-MM-ddTHH:mm:ss.sssZ\n\n\nA sample response returning 2 alias resources:
\n\n```json\n{\n \"aliases\": [\n {\n \"createdTimestamp\": \"2020-02-13T21:19:11.123Z\",\n \"aliasId\": \"a8a4b8bb-ecf4-fb27-a618-f41721552766\",\n \"resourceId\": \"e89aebb9-70a3-8fe1-32bb-1fbd0c725f14\",\n \"lastUpdatedTimestamp\": \"2020-02-13T21:19:22.123Z\"\n },\n {\n \"createdTimestamp\": \"2020-02-18T19:53:33.123Z\",\n \"aliasId\": \"1856dbfc-7a66-ee5a-bf8d-51dbfe1906f6\",\n \"resourceId\": null,\n \"lastUpdatedTimestamp\": \"2020-02-18T19:53:33.123Z\"\n }\n ]\n}\n```\n\n
", + "operationId": "Alias_List", "x-ms-examples": { "List all the previously created aliases": { "$ref": "./examples/Alias_List.json" @@ -221,10 +218,10 @@ } }, "/aliases/{aliasId}": { - "patch": { + "put": { "x-publish": true, - "description": "**Alias - Assign API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to assign an alias to reference a resource.
\n\n\n### Submit Assign Request\n\nTo assign your alias to a resource, you will use a `PATCH` request with the `aliasId` in the path and the `resourceId` passed as a query parameter.
\n\n\n### Create Alias Response\n\nThe Assign API returns a HTTP `204 No Content` response with an empty body, if the alias was assigned successfully.
", - "operationId": "Alias_AssignPreview", + "description": "**Alias - Assign API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to assign an alias to reference a resource.
\n\n\n### Submit Assign Request\n\nTo assign your alias to a resource, you will use a `PUT` request with the `aliasId` in the path and the `resourceId` passed as a query parameter.
\n\n\n### Assign Alias Response\n\nThe Assign API returns a HTTP `200 OK` response with the updated alias resource in the body, if the alias was assigned successfully. A sample of the assign response is
\n\n```json\n{\n \"createdTimestamp\": \"2020-02-13T21:19:11.123Z\",\n \"aliasId\": \"a8a4b8bb-ecf4-fb27-a618-f41721552766\",\n \"resourceId\": \"e89aebb9-70a3-8fe1-32bb-1fbd0c725f14\",\n \"lastUpdatedTimestamp\": \"2020-02-13T21:19:22.123Z\"\n}\n```", + "operationId": "Alias_Assign", "x-ms-examples": { "Assign an alias to a resource": { "$ref": "./examples/Alias_Assign.json" @@ -232,13 +229,13 @@ }, "parameters": [ { - "$ref": "#/parameters/SubscriptionKey" + "$ref": "#/parameters/AliasId" }, { - "$ref": "#/parameters/ApiVersion" + "$ref": "#/parameters/SubscriptionKey" }, { - "$ref": "#/parameters/AliasId" + "$ref": "#/parameters/ApiVersion" }, { "$ref": "#/parameters/AssignResourceId" @@ -272,7 +269,7 @@ "delete": { "x-publish": true, "description": "**Alias - Delete API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to delete a previously created alias.
\nYou can also use this API to delete old/unused aliases to create space for new content.\nThis API does not delete the references resource, only the alias referencing the resource.\n\n\n### Submit Delete Request\n\nTo delete your alias you will issue a `DELETE` request where the path will contain the `aliasId` of the alias to delete.
\n\n\n### Delete Alias Response\n\nThe Delete API returns a HTTP `204 No Content` response with an empty body, if the alias was deleted successfully.
\nA HTTP `400 Bad Request` error response will be returned if the alias with the passed-in `aliasId` is not found. ", - "operationId": "Alias_DeletePreview", + "operationId": "Alias_Delete", "x-ms-examples": { "Delete previously created alias": { "$ref": "./examples/Alias_Delete.json" @@ -280,13 +277,13 @@ }, "parameters": [ { - "$ref": "#/parameters/SubscriptionKey" + "$ref": "#/parameters/AliasId" }, { - "$ref": "#/parameters/ApiVersion" + "$ref": "#/parameters/SubscriptionKey" }, { - "$ref": "#/parameters/AliasId" + "$ref": "#/parameters/ApiVersion" } ], "responses": { @@ -310,19 +307,25 @@ } } }, + "get": { "x-publish": true, - "description": "**Alias - Get API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to fetch a list of all previously successfully created aliases.\n\n\n### Submit List Request\n\nTo list all your aliases, you will issue a `GET` request with no additional parameters.
\n\n\n### List Data Response\n\nThe List API returns the complete list of all aliases in `json` format. The response contains the following details for each alias resource:\n\n > createdTimestamp - The timestamp that the alias was created.\n > aliasId - The id for the alias.\n > resourceId - The id for the resource that this alias references (could be null if the alias has not been assigned).\n > lastUpdatedTimestamp - The last time the alias was assigned to a resource.\n\n\nHere's a sample response returning 2 alias resources: \n\n
\n\n```json\n{\n \"aliases\": [\n {\n \"createdTimestamp\": \"2020-02-13T21:19:11+00:00\",\n \"aliasId\": \"a8a4b8bb-ecf4-fb27-a618-f41721552766\",\n \"resourceId\": \"e89aebb9-70a3-8fe1-32bb-1fbd0c725f14\",\n \"lastUpdatedTimestamp\": \"2020-02-13T21:19:22+00:00\"\n },\n {\n \"createdTimestamp\": \"2020-02-18T19:53:33+00:00\",\n \"aliasId\": \"1856dbfc-7a66-ee5a-bf8d-51dbfe1906f6\",\n \"resourceId\": null,\n \"lastUpdatedTimestamp\": \"2020-02-18T19:53:33+00:00\"\n }\n ]\n}\n```\n\n
", - "operationId": "Alias_GetPreview", + "description": "**Alias - Get Details API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to fetch the details of a previously created alias.\n\n\n### Submit Get Details Request\n\nTo get the details of your alias, you will issue a `GET` request with the `aliasId` in the path.
\n\n\n### Get Details Response\n\nThe Get Details API returns the previously created alias in `json` format. The response contains the following details for the alias resource:\n\n > createdTimestamp - The timestamp that the alias was created.\n > aliasId - The id for the alias.\n > resourceId - The id for the resource that this alias references (could be null if the alias has not been assigned).\n > lastUpdatedTimestamp - The last time the alias was assigned to a resource.\n\n\nHere's a sample response: \n\n
\n\n```json\n{\n \"createdTimestamp\": \"2020-02-13T21:19:11.123Z\",\n \"aliasId\": \"a8a4b8bb-ecf4-fb27-a618-f41721552766\",\n \"resourceId\": \"e89aebb9-70a3-8fe1-32bb-1fbd0c725f14\",\n \"lastUpdatedTimestamp\": \"2020-02-13T21:19:22.123Z\"\n}\n```", + "operationId": "Alias_GetDetails", + "x-ms-examples": { + "Get a previously created alias": { + "$ref": "./examples/Alias_GetDetails.json" + } + }, "parameters": [ { - "$ref": "#/parameters/SubscriptionKey" + "$ref": "#/parameters/AliasId" }, { - "$ref": "#/parameters/ApiVersion" + "$ref": "#/parameters/SubscriptionKey" }, { - "$ref": "#/parameters/AliasId" + "$ref": "#/parameters/ApiVersion" } ], "responses": { @@ -392,8 +395,23 @@ "description": "The response model for the Alias Create API for the case when the alias was successfully created.", "type": "object", "properties": { + "createdTimestamp": { + "description": "The created timestamp for the alias.", + "type": "string", + "readOnly": true + }, "aliasId": { - "description": "An alias id `aliasId` for the created alias.", + "description": "The id for the alias.", + "type": "string", + "readOnly": true + }, + "resourceId": { + "description": "The id for the resource that this alias references (could be null if the alias has not been assigned).", + "type": "string", + "readOnly": true + }, + "lastUpdatedTimestamp": { + "description": "The timestamp of the last time the alias was assigned.", "type": "string", "readOnly": true } diff --git a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Assign.json b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Assign.json index 352eacf788fc..166b467d4961 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Assign.json +++ b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Assign.json @@ -7,7 +7,12 @@ }, "responses": { "204": { - "body": {} + "body": { + "createdTimestamp": "2021-05-01T01:02:03.456Z", + "aliasId": "25084fb7-307a-4720-8f91-7952a0b91012", + "resourceId": "633a009a-dfa2-4d51-a419-420122e11c94", + "lastUpdatedTimestamp": "2021-05-01T01:02:03.456Z" + } }, "400": { "headers": {}, diff --git a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Create.json b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Create.json index 173db30afe23..17f9d0be1ace 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Create.json +++ b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Create.json @@ -1,13 +1,16 @@ { "parameters": { - "api-version": "1.0", + "api-version": "2.0", "subscription-key": "[subscription-key]" }, "responses": { "201": { "headers": {}, "body": { - "aliasId": "25084fb7-307a-4720-8f91-7952a0b91012" + "createdTimestamp": "2021-05-01T01:02:03.456Z", + "aliasId": "25084fb7-307a-4720-8f91-7952a0b91012", + "resourceId": null, + "lastUpdatedTimestamp": "2021-05-01T01:02:03.456Z" } }, "400": { diff --git a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_GetDetails.json b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_GetDetails.json new file mode 100644 index 000000000000..e69de29bb2d1 From 071aca80bcede2a4d752d966daea241bb54a811b Mon Sep 17 00:00:00 2001 From: Jeff Couckuyt Date: Wed, 31 Mar 2021 00:40:47 -0700 Subject: [PATCH 11/38] fix conversion descriptions, update alias --- .../Alias/preview/2.0/alias.json | 77 ++++++++----------- .../preview/2.0/examples/Alias_Assign.json | 7 +- .../preview/2.0/examples/Alias_Create.json | 7 +- .../2.0/examples/Alias_GetDetails.json | 0 .../preview/2.0/dwgconversion.json | 4 +- 5 files changed, 46 insertions(+), 49 deletions(-) create mode 100644 specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_GetDetails.json diff --git a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/alias.json b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/alias.json index f0c2b56230b8..0e16ae839fc2 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/alias.json +++ b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/alias.json @@ -40,15 +40,6 @@ } ], "responses": { - "202": { - "description": "Request Accepted: The request has been accepted for processing. Please use the URL in the Location Header to retry or access the results.", - "headers": { - "Location": { - "type": "string", - "description": "New URL to check for the results of the long running process." - } - } - }, "400": { "description": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive.", "schema": { @@ -133,8 +124,8 @@ "/aliases": { "post": { "x-publish": true, - "description": "**Alias - Create API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to create an alias.
\nYou can also assign the alias during the create request as well.\n\n\n### Submit Create Request\n\nTo create your alias, you will use a `POST` request. If you would like to assign the alias during the creation, you will pass the `resourceId` query parameter.
\n\n\n### Create Alias Response\n\nThe Create API returns a HTTP `201 Created` response the id of the alias, `aliasId`, in the body.\nThe response will look something like:\n\n```json\n{\n \"aliasId\" : \"d7e5efc8-2239-4387-a286-5bb51aa804e3\"\n}\n```\n\n
", - "operationId": "Alias_CreatePreview", + "description": "**Alias - Create API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to create an alias. You can also assign the alias during the create request.
\nAn alias can reference an ID generated by a creator service, but cannot reference another alias ID.\n\n\n### Submit Create Request\n\nTo create your alias, you will use a `POST` request. If you would like to assign the alias during the creation, you will pass the `resourceId` query parameter.
\n\n\n### Create Alias Response\n\nThe Create API returns a HTTP `201 Created` response with the alias resource in the body.\n\nA sample response from creating an alias:
\n\n```json\n{\n \"createdTimestamp\": \"2020-02-13T21:19:11.123Z\",\n \"aliasId\": \"a8a4b8bb-ecf4-fb27-a618-f41721552766\",\n \"resourceId\": \"e89aebb9-70a3-8fe1-32bb-1fbd0c725f14\",\n \"lastUpdatedTimestamp\": \"2020-02-13T21:19:22.123Z\"\n}\n```\n\n
", + "operationId": "Alias_Create", "x-ms-examples": { "Create an alias that does not reference any resource": { "$ref": "./examples/Alias_Create.json" @@ -146,13 +137,16 @@ }, { "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/CreateResourceId" } ], "responses": { "201": { "description": "Content created successfully. The response body contains the newly created alias id `aliasId`.", "schema": { - "$ref": "#/definitions/AliasCreateResponse" + "$ref": "#/definitions/AliasItem" }, "headers": { "Access-Control-Expose-Headers": { @@ -180,8 +174,8 @@ }, "get": { "x-publish": true, - "description": "**Alias - List API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to fetch a list of all previously successfully created aliases.\n\n\n### Submit List Request\n\nTo list all your aliases, you will issue a `GET` request with no additional parameters.
\n\n\n### List Data Response\n\nThe List API returns the complete list of all aliases in `json` format. The response contains the following details for each alias resource:\n\n > createdTimestamp - The timestamp that the alias was created.\n > aliasId - The id for the alias.\n > resourceId - The id for the resource that this alias references (could be null if the alias has not been assigned).\n > lastUpdatedTimestamp - The last time the alias was assigned to a resource.\n\n\nHere's a sample response returning 2 alias resources: \n\n
\n\n```json\n{\n \"aliases\": [\n {\n \"createdTimestamp\": \"2020-02-13T21:19:11+00:00\",\n \"aliasId\": \"a8a4b8bb-ecf4-fb27-a618-f41721552766\",\n \"resourceId\": \"e89aebb9-70a3-8fe1-32bb-1fbd0c725f14\",\n \"lastUpdatedTimestamp\": \"2020-02-13T21:19:22+00:00\"\n },\n {\n \"createdTimestamp\": \"2020-02-18T19:53:33+00:00\",\n \"aliasId\": \"1856dbfc-7a66-ee5a-bf8d-51dbfe1906f6\",\n \"resourceId\": null,\n \"lastUpdatedTimestamp\": \"2020-02-18T19:53:33+00:00\"\n }\n ]\n}\n```\n\n
", - "operationId": "Alias_ListPreview", + "description": "**Alias - List API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to fetch a list of all previously successfully created aliases.\n\n\n### Submit List Request\n\nTo list all your aliases, you will issue a `GET` request with no additional parameters.
\n\n\n### List Data Response\n\nThe List API returns the complete list of all aliases in `json` format. The response contains the following details for each alias resource:\n\n > createdTimestamp - The timestamp that the alias was created. Format yyyy-MM-ddTHH:mm:ss.sssZ\n > aliasId - The id for the alias.\n > resourceId - The id for the resource that this alias references (could be null if the alias has not been assigned).\n > lastUpdatedTimestamp - The last time the alias was assigned to a resource. Format yyyy-MM-ddTHH:mm:ss.sssZ\n\n\nA sample response returning 2 alias resources:
\n\n```json\n{\n \"aliases\": [\n {\n \"createdTimestamp\": \"2020-02-13T21:19:11.123Z\",\n \"aliasId\": \"a8a4b8bb-ecf4-fb27-a618-f41721552766\",\n \"resourceId\": \"e89aebb9-70a3-8fe1-32bb-1fbd0c725f14\",\n \"lastUpdatedTimestamp\": \"2020-02-13T21:19:22.123Z\"\n },\n {\n \"createdTimestamp\": \"2020-02-18T19:53:33.123Z\",\n \"aliasId\": \"1856dbfc-7a66-ee5a-bf8d-51dbfe1906f6\",\n \"resourceId\": null,\n \"lastUpdatedTimestamp\": \"2020-02-18T19:53:33.123Z\"\n }\n ]\n}\n```\n\n
", + "operationId": "Alias_List", "x-ms-examples": { "List all the previously created aliases": { "$ref": "./examples/Alias_List.json" @@ -221,10 +215,10 @@ } }, "/aliases/{aliasId}": { - "patch": { + "put": { "x-publish": true, - "description": "**Alias - Assign API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to assign an alias to reference a resource.
\n\n\n### Submit Assign Request\n\nTo assign your alias to a resource, you will use a `PATCH` request with the `aliasId` in the path and the `resourceId` passed as a query parameter.
\n\n\n### Create Alias Response\n\nThe Assign API returns a HTTP `204 No Content` response with an empty body, if the alias was assigned successfully.
", - "operationId": "Alias_AssignPreview", + "description": "**Alias - Assign API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to assign an alias to reference a resource.
\n\n\n### Submit Assign Request\n\nTo assign your alias to a resource, you will use a `PUT` request with the `aliasId` in the path and the `resourceId` passed as a query parameter.
\n\n\n### Assign Alias Response\n\nThe Assign API returns a HTTP `200 OK` response with the updated alias resource in the body, if the alias was assigned successfully. A sample of the assign response is
\n\n```json\n{\n \"createdTimestamp\": \"2020-02-13T21:19:11.123Z\",\n \"aliasId\": \"a8a4b8bb-ecf4-fb27-a618-f41721552766\",\n \"resourceId\": \"e89aebb9-70a3-8fe1-32bb-1fbd0c725f14\",\n \"lastUpdatedTimestamp\": \"2020-02-13T21:19:22.123Z\"\n}\n```", + "operationId": "Alias_Assign", "x-ms-examples": { "Assign an alias to a resource": { "$ref": "./examples/Alias_Assign.json" @@ -232,13 +226,13 @@ }, "parameters": [ { - "$ref": "#/parameters/SubscriptionKey" + "$ref": "#/parameters/AliasId" }, { - "$ref": "#/parameters/ApiVersion" + "$ref": "#/parameters/SubscriptionKey" }, { - "$ref": "#/parameters/AliasId" + "$ref": "#/parameters/ApiVersion" }, { "$ref": "#/parameters/AssignResourceId" @@ -248,7 +242,7 @@ "200": { "description": "Alias was assigned successfully.", "schema": { - "$ref": "#/definitions/AliasListItem" + "$ref": "#/definitions/AliasItem" } }, "400": { @@ -272,7 +266,7 @@ "delete": { "x-publish": true, "description": "**Alias - Delete API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to delete a previously created alias.
\nYou can also use this API to delete old/unused aliases to create space for new content.\nThis API does not delete the references resource, only the alias referencing the resource.\n\n\n### Submit Delete Request\n\nTo delete your alias you will issue a `DELETE` request where the path will contain the `aliasId` of the alias to delete.
\n\n\n### Delete Alias Response\n\nThe Delete API returns a HTTP `204 No Content` response with an empty body, if the alias was deleted successfully.
\nA HTTP `400 Bad Request` error response will be returned if the alias with the passed-in `aliasId` is not found. ", - "operationId": "Alias_DeletePreview", + "operationId": "Alias_Delete", "x-ms-examples": { "Delete previously created alias": { "$ref": "./examples/Alias_Delete.json" @@ -280,13 +274,13 @@ }, "parameters": [ { - "$ref": "#/parameters/SubscriptionKey" + "$ref": "#/parameters/AliasId" }, { - "$ref": "#/parameters/ApiVersion" + "$ref": "#/parameters/SubscriptionKey" }, { - "$ref": "#/parameters/AliasId" + "$ref": "#/parameters/ApiVersion" } ], "responses": { @@ -310,26 +304,32 @@ } } }, + "get": { "x-publish": true, - "description": "**Alias - Get API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to fetch a list of all previously successfully created aliases.\n\n\n### Submit List Request\n\nTo list all your aliases, you will issue a `GET` request with no additional parameters.
\n\n\n### List Data Response\n\nThe List API returns the complete list of all aliases in `json` format. The response contains the following details for each alias resource:\n\n > createdTimestamp - The timestamp that the alias was created.\n > aliasId - The id for the alias.\n > resourceId - The id for the resource that this alias references (could be null if the alias has not been assigned).\n > lastUpdatedTimestamp - The last time the alias was assigned to a resource.\n\n\nHere's a sample response returning 2 alias resources: \n\n
\n\n```json\n{\n \"aliases\": [\n {\n \"createdTimestamp\": \"2020-02-13T21:19:11+00:00\",\n \"aliasId\": \"a8a4b8bb-ecf4-fb27-a618-f41721552766\",\n \"resourceId\": \"e89aebb9-70a3-8fe1-32bb-1fbd0c725f14\",\n \"lastUpdatedTimestamp\": \"2020-02-13T21:19:22+00:00\"\n },\n {\n \"createdTimestamp\": \"2020-02-18T19:53:33+00:00\",\n \"aliasId\": \"1856dbfc-7a66-ee5a-bf8d-51dbfe1906f6\",\n \"resourceId\": null,\n \"lastUpdatedTimestamp\": \"2020-02-18T19:53:33+00:00\"\n }\n ]\n}\n```\n\n
", - "operationId": "Alias_GetPreview", + "description": "**Alias - Get Details API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to fetch the details of a previously created alias.\n\n\n### Submit Get Details Request\n\nTo get the details of your alias, you will issue a `GET` request with the `aliasId` in the path.
\n\n\n### Get Details Response\n\nThe Get Details API returns the previously created alias in `json` format. The response contains the following details for the alias resource:\n\n > createdTimestamp - The timestamp that the alias was created.\n > aliasId - The id for the alias.\n > resourceId - The id for the resource that this alias references (could be null if the alias has not been assigned).\n > lastUpdatedTimestamp - The last time the alias was assigned to a resource.\n\n\nHere's a sample response: \n\n
\n\n```json\n{\n \"createdTimestamp\": \"2020-02-13T21:19:11.123Z\",\n \"aliasId\": \"a8a4b8bb-ecf4-fb27-a618-f41721552766\",\n \"resourceId\": \"e89aebb9-70a3-8fe1-32bb-1fbd0c725f14\",\n \"lastUpdatedTimestamp\": \"2020-02-13T21:19:22.123Z\"\n}\n```", + "operationId": "Alias_GetDetails", + "x-ms-examples": { + "Get a previously created alias": { + "$ref": "./examples/Alias_GetDetails.json" + } + }, "parameters": [ { - "$ref": "#/parameters/SubscriptionKey" + "$ref": "#/parameters/AliasId" }, { - "$ref": "#/parameters/ApiVersion" + "$ref": "#/parameters/SubscriptionKey" }, { - "$ref": "#/parameters/AliasId" + "$ref": "#/parameters/ApiVersion" } ], "responses": { "200": { "description": "Get alias request completed successfully. The response body contains the previously created alias.", "schema": { - "$ref": "#/definitions/AliasListItem" + "$ref": "#/definitions/AliasItem" } }, "400": { @@ -388,17 +388,6 @@ } } }, - "AliasCreateResponse": { - "description": "The response model for the Alias Create API for the case when the alias was successfully created.", - "type": "object", - "properties": { - "aliasId": { - "description": "An alias id `aliasId` for the created alias.", - "type": "string", - "readOnly": true - } - } - }, "AliasListResponse": { "description": "The response model for the List API. Returns a list of all the previously created aliases.", "type": "object", @@ -408,7 +397,7 @@ "type": "array", "readOnly": true, "items": { - "$ref": "#/definitions/AliasListItem" + "$ref": "#/definitions/AliasItem" } }, "nextLink": { @@ -418,7 +407,7 @@ } } }, - "AliasListItem": { + "AliasItem": { "description": "Detailed information for the alias.", "type": "object", "properties": { diff --git a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Assign.json b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Assign.json index 352eacf788fc..166b467d4961 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Assign.json +++ b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Assign.json @@ -7,7 +7,12 @@ }, "responses": { "204": { - "body": {} + "body": { + "createdTimestamp": "2021-05-01T01:02:03.456Z", + "aliasId": "25084fb7-307a-4720-8f91-7952a0b91012", + "resourceId": "633a009a-dfa2-4d51-a419-420122e11c94", + "lastUpdatedTimestamp": "2021-05-01T01:02:03.456Z" + } }, "400": { "headers": {}, diff --git a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Create.json b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Create.json index 173db30afe23..17f9d0be1ace 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Create.json +++ b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Create.json @@ -1,13 +1,16 @@ { "parameters": { - "api-version": "1.0", + "api-version": "2.0", "subscription-key": "[subscription-key]" }, "responses": { "201": { "headers": {}, "body": { - "aliasId": "25084fb7-307a-4720-8f91-7952a0b91012" + "createdTimestamp": "2021-05-01T01:02:03.456Z", + "aliasId": "25084fb7-307a-4720-8f91-7952a0b91012", + "resourceId": null, + "lastUpdatedTimestamp": "2021-05-01T01:02:03.456Z" } }, "400": { diff --git a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_GetDetails.json b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_GetDetails.json new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json index c882e77013c1..5de1e36ae5bf 100644 --- a/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json +++ b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json @@ -88,7 +88,7 @@ } }, "202": { - "description": "Request Accepted: The request has been accepted for processing. Please use the URL in the location Header to obtain status.", + "description": "Request Accepted: The request has been accepted for processing. Please use the URL in the operation-location Header to obtain status.", "headers": { "operation-location": { "type": "string", @@ -356,7 +356,7 @@ }, "/conversions/operations/{operationId}": { "get": { - "description": "This path will be obtained from a call to /conversions/create. While in progress, an http202 will be returned, followed by an http200 once completed.", + "description": "This path will be obtained from a call to POST /conversions. While in progress, an http200 will be returned with no extra headers - followed by an http200 with resource-location header once completed.", "parameters": [ { "$ref": "#/parameters/SubscriptionKey" From c0c604536f76982b89f6279ecd9905140508f069 Mon Sep 17 00:00:00 2001 From: Robert Johnson Date: Wed, 31 Mar 2021 09:21:50 -0700 Subject: [PATCH 12/38] Fix the alias file. --- .../Microsoft.Maps/Alias/preview/2.0/alias.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/alias.json b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/alias.json index 845cff36bec5..157ed809d725 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/alias.json +++ b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/alias.json @@ -149,7 +149,7 @@ "201": { "description": "Content created successfully. The response body contains the newly created alias id `aliasId`.", "schema": { - "$ref": "#/definitions/AliasItem" + "$ref": "#/definitions/AliasCreateResponse" }, "headers": { "Access-Control-Expose-Headers": { @@ -245,7 +245,7 @@ "200": { "description": "Alias was assigned successfully.", "schema": { - "$ref": "#/definitions/AliasItem" + "$ref": "#/definitions/AliasListItem" } }, "400": { @@ -332,7 +332,7 @@ "200": { "description": "Get alias request completed successfully. The response body contains the previously created alias.", "schema": { - "$ref": "#/definitions/AliasItem" + "$ref": "#/definitions/AliasListItem" } }, "400": { @@ -426,7 +426,7 @@ "type": "array", "readOnly": true, "items": { - "$ref": "#/definitions/AliasItem" + "$ref": "#/definitions/AliasListItem" } }, "nextLink": { @@ -436,7 +436,7 @@ } } }, - "AliasItem": { + "AliasListItem": { "description": "Detailed information for the alias.", "type": "object", "properties": { From 9f05840cde459715f1aa3823da5bca73677b26a9 Mon Sep 17 00:00:00 2001 From: Robert Johnson Date: Wed, 31 Mar 2021 13:56:48 -0700 Subject: [PATCH 13/38] Add get details example. --- .../2.0/examples/Alias_GetDetails.json | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_GetDetails.json b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_GetDetails.json index e69de29bb2d1..cf8cfa8458e4 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_GetDetails.json +++ b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_GetDetails.json @@ -0,0 +1,63 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]", + "aliasId": "[aliasId]" + }, + "responses": { + "200": { + "body": { + "createdTimestamp": "2020-02-13T21:19:11+00:00", + "aliasId": "a8a4b8bb-ecf4-fb27-a618-f41721552766", + "resourceId": "e89aebb9-70a3-8fe1-32bb-1fbd0c725f14", + "lastUpdatedTimestamp": "2020-02-13T21:19:22+00:00" + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request - One or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found - The requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "Unknown error - An error occurred while processing the request. Please try again later." + } + } + } + } + } + \ No newline at end of file From 568192d8976b98e4b9c20613d539adcab53195c4 Mon Sep 17 00:00:00 2001 From: Jeff Couckuyt Date: Thu, 8 Apr 2021 14:56:40 -0700 Subject: [PATCH 14/38] fix casing on headers; mapData more consistent --- .../Microsoft.Maps/Data/preview/2.0/data.json | 151 ++++++++++-------- .../Dataset/preview/2.0/dataset.json | 6 +- .../preview/2.0/dwgconversion.json | 10 +- .../Tileset/preview/2.0/tileset.json | 6 +- 4 files changed, 97 insertions(+), 76 deletions(-) diff --git a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/data.json b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/data.json index b9dbd2a85808..d8c6d8599876 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/data.json +++ b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/data.json @@ -75,22 +75,22 @@ "$ref": "#/definitions/ODataErrorResponse" } }, - "201Async": { - "description": "The resource has been created successfully.", + "200Async": { + "description": "The operation is running or complete. If the operation was successful, use the Resource-Location header to obtain the path to the result.", "schema": { "$ref": "#/definitions/LongRunningOperationResult" }, "headers": { - "Location": { + "Resource-Location": { "type": "string", - "description": "A URI where details on the newly created resource can be found." + "description": "If successful, a URI where details on the newly created resource can be found." } } }, - "202Async": { - "description": "**Supported only for async request.**\nRequest Accepted: The request has been accepted for processing. Please use the URL in the Location Header to retry or access the results.", + "202": { + "description": "Request Accepted: The request has been accepted for processing. Please use the URL in the Operation-Location Header to obtain status.", "headers": { - "Location": { + "Operation-Location": { "type": "string", "description": "New URL to check for the results of the long running process." } @@ -184,16 +184,25 @@ "x-ms-parameter-location": "method" }, "Description": { - "name": "description", - "description": "The description to be given to the upload.", - "type": "string", - "in": "query", - "required": false, - "x-ms-parameter-location": "method" - } + "name": "description", + "description": "The description to be given to the upload.", + "type": "string", + "in": "query", + "required": false, + "x-ms-parameter-location": "method" + }, + "OperationId": { + "name": "operationId", + "type": "string", + "in": "path", + "description": "The ID to query the status for the data upload request.", + "required": true, + "x-ms-parameter-location": "method" + } + }, "paths": { - "/mapData/upload": { + "/mapData": { "post": { "x-publish": true, "description": "**Data Upload API**\n\n**Applies to:** S1 pricing tier.\n\nThe Data Upload API allows the caller to upload data content to the Azure Maps service.\nYou can use this API in a scenario like uploading a collection of Geofences in `GeoJSON` \nformat, for use in our [Azure Maps Geofencing Service](https://docs.microsoft.com/rest/api/maps/spatial).\n\n## Submit Upload Request\n\nTo upload your content you will use a `POST` request. The request body will contain the data to upload. The \n`dataFormat` query parameter will contain the format for the data, the `dataSharingLevel` query parameter \ncan contain the sharing level for the data. The `Content-Type` header will be set to the content type of the \ndata.\n\nFor example, to upload a collection of geofences in `GeoJSON` format, set the request body to the geofence \ncontent. Set the `dataFormat` query parameter to _geojson_, and set the `Content-Type` header to either one \nof the following media types:\n\n- `application/json`\n- `application/vnd.geo+json`\n- `application/octet-stream`\n\nHere's a sample request body for uploading a simple Geofence represented as a circle geometry using a center \npoint and a radius. The sample below is in `GeoJSON`:\n\n```json\n{\n \"type\": \"FeatureCollection\",\n \"features\": [{\n \"type\": \"Feature\",\n \"geometry\": {\n \"type\": \"Point\",\n \"coordinates\": [-122.126986, 47.639754]\n },\n \"properties\": {\n \"geometryId\": \"001\",\n \"radius\": 500\n }\n }]\n}\n```\n\nThe Data Upload API performs a \n[long-running request](https://docs.microsoft.com/azure/azure-maps/private-atlas-long-running-operation).\n\n## Data Upload Limits\n\nPlease, be aware that currently every Azure Maps account has a [data storage limit](https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/azure-subscription-service-limits#azure-maps-limits). \nOnce the storage limit is reached, all the new upload API calls will return a `409 Conflict` http error response. \nYou can always use the [Data Delete API](https://docs.microsoft.com/rest/api/maps/data/deletepreview) to \ndelete old/unused content and create space for new uploads.", @@ -240,11 +249,58 @@ "$ref": "#/definitions/ODataErrorResponse" } }, - "201": { - "$ref": "#/responses/201Async" - }, "202": { - "$ref": "#/responses/202Async" + "$ref": "#/responses/202" + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + }, + "get": { + "x-publish": true, + "description": "**Data List API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to fetch a list of all content uploaded previously using the [Data Upload API](https://docs.microsoft.com/en-us/rest/api/maps/data/uploadpreview). \n\n\n### Submit List Request\n\nTo list all your map data content you will issue a `GET` request with no additional parameters.\n\n\n### List Data Response\n\nThe Data List API returns the complete list of all data in `json` format. The response contains the following details for each data resource:\n\n > udid - The unique data id for the data resource.\n\n > location - The location of the data resource. Execute a HTTP `GET` on this location to download the data.\n\n\nHere's a sample response returning the `udid` and `location` of 3 data resources: \n\n
\n\n```json\n{\n \"mapDataList\": \n [\n {\n \"udid\": \"9a1288fa-1858-4a3b-b68d-13a8j5af7d7c\",\n \"location\": \"https://atlas.microsoft.com/mapData/9a1288fa-1858-4a3b-b68d-13a8j5af7d7c?api-version=1.0\",\n \"sizeInBytes\": 29920,\n \"uploadStatus\": \"Completed\"\n },\n {\n \"udid\": \"8b1288fa-1958-4a2b-b68e-13a7i5af7d7c\",\n \"location\": \"https://atlas.microsoft.com/mapData/8b1288fa-1958-4a2b-b68e-13a7i5af7d7c?api-version=1.0\",\n \"sizeInBytes\": 1339,\n \"uploadStatus\": \"Completed\"\n },\n {\n \"udid\": \"7c1288fa-2058-4a1b-b68f-13a6h5af7d7c\",\n \"location\": \"https://atlas.microsoft.com/mapData/7c1288fa-2058-4a1b-b68f-13a6h5af7d7c?api-version=1.0\",\n \"sizeInBytes\": 1650,\n \"uploadStatus\": \"Pending\"\n }]\n}\n```\n\n
", + "operationId": "Data_ListPreview", + "x-ms-examples": { + "List all the previously uploaded data": { + "$ref": "./examples/List.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ClientId" + }, + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + } + ], + "responses": { + "200": { + "description": "List data request completed successfully. The response body contains a list of all the previously uploaded data.", + "schema": { + "$ref": "#/definitions/MapDataListResponse" + }, + "headers": { + "Content-Type": { + "type": "string", + "description": "The content-type for the Download API response." + } + } }, "400": { "$ref": "#/responses/400" @@ -311,11 +367,8 @@ "$ref": "#/definitions/ODataErrorResponse" } }, - "201": { - "$ref": "#/responses/201Async" - }, "202": { - "$ref": "#/responses/202Async" + "$ref": "#/responses/202" }, "400": { "$ref": "#/responses/400" @@ -413,9 +466,6 @@ "responses": { "204": { "description": "Data delete request completed successfully. The content for `udid` was deleted on the server.", - "schema": { - "$ref": "#/definitions/MapDataDeleteResponse" - } }, "400": { "$ref": "#/responses/400" @@ -435,58 +485,33 @@ } } }, - "/mapData": { + "/mapData/operations/{operationId}": { "get": { - "x-publish": true, - "description": "**Data List API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to fetch a list of all content uploaded previously using the [Data Upload API](https://docs.microsoft.com/en-us/rest/api/maps/data/uploadpreview). \n\n\n### Submit List Request\n\nTo list all your map data content you will issue a `GET` request with no additional parameters.\n\n\n### List Data Response\n\nThe Data List API returns the complete list of all data in `json` format. The response contains the following details for each data resource:\n\n > udid - The unique data id for the data resource.\n\n > location - The location of the data resource. Execute a HTTP `GET` on this location to download the data.\n\n\nHere's a sample response returning the `udid` and `location` of 3 data resources: \n\n
\n\n```json\n{\n \"mapDataList\": \n [\n {\n \"udid\": \"9a1288fa-1858-4a3b-b68d-13a8j5af7d7c\",\n \"location\": \"https://atlas.microsoft.com/mapData/9a1288fa-1858-4a3b-b68d-13a8j5af7d7c?api-version=1.0\",\n \"sizeInBytes\": 29920,\n \"uploadStatus\": \"Completed\"\n },\n {\n \"udid\": \"8b1288fa-1958-4a2b-b68e-13a7i5af7d7c\",\n \"location\": \"https://atlas.microsoft.com/mapData/8b1288fa-1958-4a2b-b68e-13a7i5af7d7c?api-version=1.0\",\n \"sizeInBytes\": 1339,\n \"uploadStatus\": \"Completed\"\n },\n {\n \"udid\": \"7c1288fa-2058-4a1b-b68f-13a6h5af7d7c\",\n \"location\": \"https://atlas.microsoft.com/mapData/7c1288fa-2058-4a1b-b68f-13a6h5af7d7c?api-version=1.0\",\n \"sizeInBytes\": 1650,\n \"uploadStatus\": \"Pending\"\n }]\n}\n```\n\n
", - "operationId": "Data_ListPreview", - "x-ms-examples": { - "List all the previously uploaded data": { - "$ref": "./examples/List.json" - } - }, + "description": "This path will be obtained from a call to POST /mapData. While in progress, an http200 will be returned with no extra headers - followed by an http200 with Resource-Location header once completed.", "parameters": [ - { - "$ref": "#/parameters/ClientId" - }, { "$ref": "#/parameters/SubscriptionKey" }, { "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/OperationId" } ], - "responses": { + + "responses":{ "200": { - "description": "List data request completed successfully. The response body contains a list of all the previously uploaded data.", - "schema": { - "$ref": "#/definitions/MapDataListResponse" - }, - "headers": { - "Content-Type": { - "type": "string", - "description": "The content-type for the Download API response." - } - } + "$ref": "#/responses/200Async" }, "400": { "$ref": "#/responses/400" - }, - "401": { - "$ref": "#/responses/401" - }, - "403": { - "$ref": "#/responses/403" - }, - "404": { - "$ref": "#/responses/404" - }, - "500": { - "$ref": "#/responses/500" } } } } + + }, "definitions": { "ODataErrorResponse": { @@ -588,10 +613,6 @@ "description": "The response model for the Data Download API. The response body will contain the content for the passed in `udid`.", "type": "object" }, - "MapDataDeleteResponse": { - "description": "The response model for the Data Delete API. The response body will be empty signifying there's no content available for the `udid` anymore.", - "type": "object" - }, "MapDataListResponse": { "description": "The response model for the Data List API. Returns a list of all the previously uploaded data.", "type": "object", diff --git a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json index bbd9e6fd1ae6..cb0fa5c3db5b 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json +++ b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json @@ -77,12 +77,12 @@ } }, "200Async": { - "description": "The operation is complete. If the operation was successful, use the resource-location header to obtain the path to the result.", + "description": "The operation is complete. If the operation was successful, use the Resource-Location header to obtain the path to the result.", "schema": { "$ref": "#/definitions/LongRunningOperationResult" }, "headers": { - "resource-location": { + "Resource-Location": { "type": "string", "description": "A URI where details on the newly created resource can be found." } @@ -91,7 +91,7 @@ "202": { "description": "Request Accepted: The request has been accepted for processing. Please use the URL in the location Header to obtain status.", "headers": { - "operation-location": { + "Operation-Location": { "type": "string", "description": "New URL to check for the results of the long running process." } diff --git a/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json index 5de1e36ae5bf..9c0500210732 100644 --- a/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json +++ b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json @@ -76,21 +76,21 @@ } }, "200Async": { - "description": "The operation is complete. If the operation was successful, use the resource-location header to obtain the path to the result.", + "description": "The operation is complete. If the operation was successful, use the Resource-Location header to obtain the path to the result.", "schema": { "$ref": "#/definitions/LongRunningOperationResult" }, "headers": { - "resource-location": { + "Resource-Location": { "type": "string", "description": "If successful, a URI where details on the newly created resource can be found." } } }, "202": { - "description": "Request Accepted: The request has been accepted for processing. Please use the URL in the operation-location Header to obtain status.", + "description": "Request Accepted: The request has been accepted for processing. Please use the URL in the Operation-Location Header to obtain status.", "headers": { - "operation-location": { + "Operation-Location": { "type": "string", "description": "New URL to check for the results of the long running process." } @@ -356,7 +356,7 @@ }, "/conversions/operations/{operationId}": { "get": { - "description": "This path will be obtained from a call to POST /conversions. While in progress, an http200 will be returned with no extra headers - followed by an http200 with resource-location header once completed.", + "description": "This path will be obtained from a call to POST /conversions. While in progress, an http200 will be returned with no extra headers - followed by an http200 with Resource-Location header once completed.", "parameters": [ { "$ref": "#/parameters/SubscriptionKey" diff --git a/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json index 27f47abe7853..a50fe94e771e 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json +++ b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json @@ -76,12 +76,12 @@ } }, "200Async": { - "description": "The operation is complete. If the operation was successful, use the resource-location header to obtain the path to the result.", + "description": "The operation is complete. If the operation was successful, use the Resource-Location header to obtain the path to the result.", "schema": { "$ref": "#/definitions/LongRunningOperationResult" }, "headers": { - "resource-location": { + "Resource-Location": { "type": "string", "description": "If successful, a URI where details on the newly created resource can be found." } @@ -90,7 +90,7 @@ "202": { "description": "Request Accepted: The request has been accepted for processing. Please use the URL in the location Header to obtain status.", "headers": { - "operation-location": { + "Operation-Location": { "type": "string", "description": "New URL to check for the results of the long running process." } From 236dfd92b17c76e809eb9cd71f3e8213d4827979 Mon Sep 17 00:00:00 2001 From: Jeff Couckuyt Date: Mon, 12 Apr 2021 14:42:00 -0700 Subject: [PATCH 15/38] minor comment and linting fixes --- .../Microsoft.Maps/Alias/preview/2.0/alias.json | 2 -- .../Microsoft.Maps/Dataset/preview/2.0/dataset.json | 6 ++---- .../DwgConversion/preview/2.0/dwgconversion.json | 7 ++----- .../FeatureState/preview/2.0/featurestate.json | 4 +--- .../Microsoft.Maps/Tileset/preview/2.0/tileset.json | 9 +++------ 5 files changed, 8 insertions(+), 20 deletions(-) diff --git a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/alias.json b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/alias.json index 157ed809d725..43f366d32951 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/alias.json +++ b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/alias.json @@ -265,7 +265,6 @@ } } }, - "delete": { "x-publish": true, "description": "**Alias - Delete API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to delete a previously created alias.
\nYou can also use this API to delete old/unused aliases to create space for new content.\nThis API does not delete the references resource, only the alias referencing the resource.\n\n\n### Submit Delete Request\n\nTo delete your alias you will issue a `DELETE` request where the path will contain the `aliasId` of the alias to delete.
\n\n\n### Delete Alias Response\n\nThe Delete API returns a HTTP `204 No Content` response with an empty body, if the alias was deleted successfully.
\nA HTTP `400 Bad Request` error response will be returned if the alias with the passed-in `aliasId` is not found. ", @@ -307,7 +306,6 @@ } } }, - "get": { "x-publish": true, "description": "**Alias - Get Details API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to fetch the details of a previously created alias.\n\n\n### Submit Get Details Request\n\nTo get the details of your alias, you will issue a `GET` request with the `aliasId` in the path.
\n\n\n### Get Details Response\n\nThe Get Details API returns the previously created alias in `json` format. The response contains the following details for the alias resource:\n\n > createdTimestamp - The timestamp that the alias was created.\n > aliasId - The id for the alias.\n > resourceId - The id for the resource that this alias references (could be null if the alias has not been assigned).\n > lastUpdatedTimestamp - The last time the alias was assigned to a resource.\n\n\nHere's a sample response: \n\n
\n\n```json\n{\n \"createdTimestamp\": \"2020-02-13T21:19:11.123Z\",\n \"aliasId\": \"a8a4b8bb-ecf4-fb27-a618-f41721552766\",\n \"resourceId\": \"e89aebb9-70a3-8fe1-32bb-1fbd0c725f14\",\n \"lastUpdatedTimestamp\": \"2020-02-13T21:19:22.123Z\"\n}\n```", diff --git a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json index cb0fa5c3db5b..3a8da5d49458 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json +++ b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json @@ -257,7 +257,6 @@ "x-publish": true, "description": "**Dataset Get API**\n\n**Applies to:** S1 pricing tier.\n
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Dataset APIs are part of Creator.\nThis API allows the caller to fetch a previously successfully created dataset.\n", "operationId": "Dataset_GetPreview", - "parameters": [ { "$ref": "#/parameters/DatasetId" @@ -337,7 +336,7 @@ }, "/datasets/operations/{operationId}": { "get": { - "description": "This path will be obtained from a call to /datasets/create. While in progress, an http202 will be returned, followed by an http200 once completed.", + "description": "This path will be obtained from a call to /datasets/create. While in progress, an http200 will be returned with no extra headers - followed by an http200 with Resource-Location header once successfully completed.", "parameters": [ { "$ref": "#/parameters/SubscriptionKey" @@ -349,8 +348,7 @@ "$ref": "#/parameters/OperationId" } ], - - "responses":{ + "responses": { "200": { "$ref": "#/responses/200Async" }, diff --git a/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json index 9c0500210732..774cd8c5466e 100644 --- a/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json +++ b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json @@ -163,7 +163,6 @@ "required": true, "x-ms-parameter-location": "method" } - }, "paths": { "/conversions": { @@ -356,7 +355,7 @@ }, "/conversions/operations/{operationId}": { "get": { - "description": "This path will be obtained from a call to POST /conversions. While in progress, an http200 will be returned with no extra headers - followed by an http200 with Resource-Location header once completed.", + "description": "This path will be obtained from a call to POST /conversions. While in progress, an http200 will be returned with no extra headers - followed by an http200 with Resource-Location header once successfully completed.", "parameters": [ { "$ref": "#/parameters/SubscriptionKey" @@ -368,8 +367,7 @@ "$ref": "#/parameters/OperationId" } ], - - "responses":{ + "responses": { "200": { "$ref": "#/responses/200Async" }, @@ -379,7 +377,6 @@ } } } - }, "definitions": { "ODataErrorResponse": { diff --git a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/featurestate.json b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/featurestate.json index 33d8f7caf6d4..c462bd170749 100644 --- a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/featurestate.json +++ b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/featurestate.json @@ -346,7 +346,6 @@ } } }, - "get": { "x-publish": true, "description": "**Applies to:** S1 pricing tier.\n
\n\nThis GET API allows the user to get the stateset Information.\n\nThe stateset Information includes the datasetId associated to the stateset, and the styles of that stateset.", @@ -396,7 +395,7 @@ "put": { "x-publish": true, "operationId": "FeatureState_UpdateStatesPreview", - "description": "**Applies to:** S1 pricing tier.
\nThis POST API allows the user to update the state of the given feature in the given stateset.", + "description": "**Applies to:** S1 pricing tier.
\nThis PUT API allows the user to update the state of the given feature in the given stateset.", "x-ms-examples": { "Update the states of a feature": { "$ref": "./examples/UpdateStates.json" @@ -544,7 +543,6 @@ } } } - }, "definitions": { "ODataErrorResponse": { diff --git a/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json index a50fe94e771e..6d25a42f36bc 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json +++ b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json @@ -87,7 +87,7 @@ } } }, - "202": { + "202": { "description": "Request Accepted: The request has been accepted for processing. Please use the URL in the location Header to obtain status.", "headers": { "Operation-Location": { @@ -363,10 +363,9 @@ } } }, - "/tilesets/operations/{operationId}": { "get": { - "description": "This path will be obtained from a call to /tilesets/create. While in progress, an http202 will be returned, followed by an http200 once completed.", + "description": "This path will be obtained from a call to /tilesets/create. While in progress, an http200 will be returned with no extra headers - followed by an http200 with Resource-Location header once successfully completed.", "parameters": [ { "$ref": "#/parameters/SubscriptionKey" @@ -378,8 +377,7 @@ "$ref": "#/parameters/OperationId" } ], - - "responses":{ + "responses": { "200": { "$ref": "#/responses/200Async" }, @@ -389,7 +387,6 @@ } } } - }, "definitions": { "ODataErrorResponse": { From 6813382df1d47f28338edaa2fd2e6a767bab363c Mon Sep 17 00:00:00 2001 From: Jeff Couckuyt Date: Tue, 13 Apr 2021 16:03:57 -0700 Subject: [PATCH 16/38] Adds base for updating Microsoft.Maps/Alias from version preview/1.0 to version 2.0 --- .../Alias/preview/2.0/alias.json | 416 ++++++++++++++++++ .../preview/2.0/examples/Alias_Assign.json | 58 +++ .../preview/2.0/examples/Alias_Create.json | 59 +++ .../preview/2.0/examples/Alias_Delete.json | 57 +++ .../preview/2.0/examples/Alias_List.json | 71 +++ 5 files changed, 661 insertions(+) create mode 100644 specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/alias.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Assign.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Create.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Delete.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_List.json diff --git a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/alias.json b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/alias.json new file mode 100644 index 000000000000..13630019c12b --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/alias.json @@ -0,0 +1,416 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Maps Alias Service", + "version": "1.0", + "description": "APIs for managing aliases in Azure Maps." + }, + "host": "atlas.microsoft.com", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [ + "application/json", + "application/xml" + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "These are the [Azure Active Directory OAuth2](https://docs.microsoft.com/en-us/azure/active-directory/develop/v1-overview) Flows. When paired with [Azure Role Based Access](https://docs.microsoft.com/en-us/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.\n\nTo 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.\n\n#### Note\n* 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).\n* The `Authorization URL` is specific to the Azure public cloud instance. Sovereign clouds have unique Authorization URLs and Azure Active directory configurations. \n* 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.\n* Usage of the [Azure Maps Web SDK](https://aka.ms/amaadmc) allows for configuration based setup of an application for multiple use cases.\n* Currently Azure Active Directory [v1.0](https://docs.microsoft.com/en-us/azure/active-directory/develop/azure-ad-endpoint-comparison) tokens are supported.", + "scopes": { + "user_impersonation": "Impersonates a user's Azure Active Directory account." + } + }, + "apiKeyQuery": { + "type": "apiKey", + "description": "This is a shared key which is provisioned when creating an [Azure Maps resource](https://aka.ms/amauth) through the Azure management plane via Azure portal, Powershell, CLI, Azure SDKs, or REST APIs. With this key, any application is authorized to access all REST APIs. In other words, these can currently be treated as master keys to the account which they are issued for. For publicly exposed applications our recommendation is to use server to server access of Azure Maps REST APIs where this key can be securely stored.", + "name": "subscription-key", + "in": "query" + } + }, + "security": [ + { + "azure_auth": [] + }, + { + "apiKeyQuery": [] + } + ], + "responses": { + "202": { + "description": "Request Accepted: The request has been accepted for processing. Please use the URL in the Location Header to retry or access the results.", + "headers": { + "Location": { + "type": "string", + "description": "New URL to check for the results of the long running process." + } + } + }, + "400": { + "description": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "401": { + "description": "Access denied due to invalid subscription key or invalid Azure Active Directory bearer token. Make sure to provide a valid key for an active Azure subscription and Maps resource. Otherwise, verify the [WWW-Authenticate](https://tools.ietf.org/html/rfc6750#section-3.1) header for error code and description of the provided AAD bearer token.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + }, + "headers": { + "WWW-Authenticate": { + "type": "string", + "description": "Bearer realm=\"https://atlas.microsoft.com/\", error=\"invalid_token\", error_description=\"The access token expired\"" + } + } + }, + "403": { + "description": "Permission, capacity, or authentication issues.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "404": { + "description": "Not Found: the requested resource could not be found, but it may be available again in the future.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "500": { + "description": "An error occurred while processing the request. Please try again later.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + } + }, + "parameters": { + "SubscriptionKey": { + "name": "subscription-key", + "description": "One of the Azure Maps keys provided from an Azure Map Account. Please refer to this [article](https://docs.microsoft.com/azure/azure-maps/how-to-manage-authentication) for details on how to manage authentication.", + "type": "string", + "in": "query", + "required": false, + "x-ms-parameter-location": "client" + }, + "ApiVersion": { + "name": "api-version", + "description": "Version number of Azure Maps API. Current version is 1.0", + "type": "string", + "in": "query", + "required": true, + "default": "1.0", + "x-ms-parameter-location": "client" + }, + "CreateResourceId": { + "name": "resourceId", + "description": "The unique id that references a resource to be aliased.", + "type": "string", + "in": "query", + "required": false, + "x-ms-parameter-location": "method" + }, + "AssignResourceId": { + "name": "resourceId", + "description": "The unique id that references a resource to be aliased.", + "type": "string", + "in": "query", + "required": true, + "x-ms-parameter-location": "method" + }, + "AliasId": { + "name": "aliasId", + "description": "The unique id that references an existing alias.", + "type": "string", + "in": "path", + "required": true, + "x-ms-parameter-location": "method" + } + }, + "paths": { + "/alias": { + "post": { + "x-publish": true, + "description": "**Alias - Create API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to create an alias.
\nYou can also assign the alias during the create request as well.\n\n\n### Submit Create Request\n\nTo create your alias, you will use a `POST` request. If you would like to assign the alias during the creation, you will pass the `resourceId` query parameter.
\n\n\n### Create Alias Response\n\nThe Create API returns a HTTP `201 Created` response the id of the alias, `aliasId`, in the body.\nThe response will look something like:\n\n```json\n{\n \"aliasId\" : \"d7e5efc8-2239-4387-a286-5bb51aa804e3\"\n}\n```\n\n
", + "operationId": "Alias_CreatePreview", + "x-ms-examples": { + "Create an alias that does not reference any resource": { + "$ref": "./examples/Alias_Create.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + } + ], + "responses": { + "201": { + "description": "Content created successfully. The response body contains the newly created alias id `aliasId`.", + "schema": { + "$ref": "#/definitions/AliasCreateResponse" + }, + "headers": { + "Access-Control-Expose-Headers": { + "type": "string", + "description": "The list of response headers that can be read by the client." + } + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + }, + "get": { + "x-publish": true, + "description": "**Alias - List API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to fetch a list of all previously successfully created aliases.\n\n\n### Submit List Request\n\nTo list all your aliases, you will issue a `GET` request with no additional parameters.
\n\n\n### List Data Response\n\nThe List API returns the complete list of all aliases in `json` format. The response contains the following details for each alias resource:\n\n > createdTimestamp - The timestamp that the alias was created.\n > aliasId - The id for the alias.\n > resourceId - The id for the resource that this alias references (could be null if the alias has not been assigned).\n > lastUpdatedTimestamp - The last time the alias was assigned to a resource.\n\n\nHere's a sample response returning 2 alias resources: \n\n
\n\n```json\n{\n \"aliases\": [\n {\n \"createdTimestamp\": \"2020-02-13T21:19:11+00:00\",\n \"aliasId\": \"a8a4b8bb-ecf4-fb27-a618-f41721552766\",\n \"resourceId\": \"e89aebb9-70a3-8fe1-32bb-1fbd0c725f14\",\n \"lastUpdatedTimestamp\": \"2020-02-13T21:19:22+00:00\"\n },\n {\n \"createdTimestamp\": \"2020-02-18T19:53:33+00:00\",\n \"aliasId\": \"1856dbfc-7a66-ee5a-bf8d-51dbfe1906f6\",\n \"resourceId\": null,\n \"lastUpdatedTimestamp\": \"2020-02-18T19:53:33+00:00\"\n }\n ]\n}\n```\n\n
", + "operationId": "Alias_ListPreview", + "x-ms-examples": { + "List all the previously created aliases": { + "$ref": "./examples/Alias_List.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + } + ], + "responses": { + "200": { + "description": "List alias request completed successfully. The response body contains a list of all the previously created aliases.", + "schema": { + "$ref": "#/definitions/AliasListResponse" + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + }, + "/alias/assign/{aliasId}": { + "patch": { + "x-publish": true, + "description": "**Alias - Assign API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to assign an alias to reference a resource.
\n\n\n### Submit Assign Request\n\nTo assign your alias to a resource, you will use a `PATCH` request with the `aliasId` in the path and the `resourceId` passed as a query parameter.
\n\n\n### Create Alias Response\n\nThe Assign API returns a HTTP `204 No Content` response with an empty body, if the alias was assigned successfully.
", + "operationId": "Alias_AssignPreview", + "x-ms-examples": { + "Assign an alias to a resource": { + "$ref": "./examples/Alias_Assign.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/AliasId" + }, + { + "$ref": "#/parameters/AssignResourceId" + } + ], + "responses": { + "204": { + "description": "Alias was assigned successfully.", + "schema": { + "$ref": "#/definitions/AliasAssignResponse" + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + }, + "/alias/{aliasId}": { + "delete": { + "x-publish": true, + "description": "**Alias - Delete API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to delete a previously created alias.
\nYou can also use this API to delete old/unused aliases to create space for new content.\nThis API does not delete the references resource, only the alias referencing the resource.\n\n\n### Submit Delete Request\n\nTo delete your alias you will issue a `DELETE` request where the path will contain the `aliasId` of the alias to delete.
\n\n\n### Delete Alias Response\n\nThe Delete API returns a HTTP `204 No Content` response with an empty body, if the alias was deleted successfully.
\nA HTTP `400 Bad Request` error response will be returned if the alias with the passed-in `aliasId` is not found. ", + "operationId": "Alias_DeletePreview", + "x-ms-examples": { + "Delete previously created alias": { + "$ref": "./examples/Alias_Delete.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/AliasId" + } + ], + "responses": { + "204": { + "description": "Alias delete request completed successfully. The content for `aliasId` was deleted on the server.", + "schema": { + "$ref": "#/definitions/AliasDeleteResponse" + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + } + }, + "definitions": { + "ODataErrorResponse": { + "type": "object", + "description": "This response object is returned when an error occurs in the Maps API.", + "properties": { + "error": { + "$ref": "#/definitions/ODataError" + } + } + }, + "ODataError": { + "type": "object", + "description": "This object is returned when an error occurs in the Maps API.", + "properties": { + "code": { + "type": "string", + "readOnly": true, + "description": "The ODataError code." + }, + "message": { + "type": "string", + "readOnly": true, + "description": "If available, a human readable description of the error." + }, + "details": { + "type": "array", + "items": { + "$ref": "#/definitions/ODataError" + } + }, + "target": { + "type": "string", + "readOnly": true, + "description": "If available, the target causing the error." + } + } + }, + "AliasCreateResponse": { + "description": "The response model for the Alias Create API for the case when the alias was successfully created.", + "type": "object", + "properties": { + "aliasId": { + "description": "An alias id `aliasId` for the created alias.", + "type": "string", + "readOnly": true + } + } + }, + "AliasAssignResponse": { + "description": "The response model for the Assign API. The response body will be empty signifying the assign was successful.", + "type": "object" + }, + "AliasDeleteResponse": { + "description": "The response model for the Delete API. The response body will be empty signifying there's alias available with the given `aliasId` anymore.", + "type": "object" + }, + "AliasListResponse": { + "description": "The response model for the List API. Returns a list of all the previously created aliases.", + "type": "object", + "properties": { + "aliases": { + "description": "A list of all the previously created aliases.", + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/AliasListItem" + } + } + } + }, + "AliasListItem": { + "description": "Detailed information for the alias.", + "type": "object", + "properties": { + "createdTimestamp": { + "description": "The created timestamp for the alias.", + "type": "string", + "readOnly": true + }, + "aliasId": { + "description": "The id for the alias.", + "type": "string", + "readOnly": true + }, + "resourceId": { + "description": "The id for the resource that this alias references (could be null if the alias has not been assigned).", + "type": "string", + "readOnly": true + }, + "lastUpdatedTimestamp": { + "description": "The timestamp of the last time the alias was assigned.", + "type": "string", + "readOnly": true + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Assign.json b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Assign.json new file mode 100644 index 000000000000..352eacf788fc --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Assign.json @@ -0,0 +1,58 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]", + "aliasId": "[aliasId]", + "resourceId": "[resourceId]" + }, + "responses": { + "204": { + "body": {} + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request - Error message." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found - The requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "Unknown error - An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Create.json b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Create.json new file mode 100644 index 000000000000..173db30afe23 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Create.json @@ -0,0 +1,59 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]" + }, + "responses": { + "201": { + "headers": {}, + "body": { + "aliasId": "25084fb7-307a-4720-8f91-7952a0b91012" + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request - Error message." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found - The requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "Unknown error - An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Delete.json b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Delete.json new file mode 100644 index 000000000000..11adb1e66418 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Delete.json @@ -0,0 +1,57 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]", + "aliasId": "[aliasId]" + }, + "responses": { + "204": { + "body": {} + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request - One or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found - The requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "Unknown error - An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_List.json b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_List.json new file mode 100644 index 000000000000..e74d2c24197f --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_List.json @@ -0,0 +1,71 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]" + }, + "responses": { + "200": { + "body": { + "aliases": [ + { + "createdTimestamp": "2020-02-13T21:19:11+00:00", + "aliasId": "a8a4b8bb-ecf4-fb27-a618-f41721552766", + "resourceId": "e89aebb9-70a3-8fe1-32bb-1fbd0c725f14", + "lastUpdatedTimestamp": "2020-02-13T21:19:22+00:00" + }, + { + "createdTimestamp": "2020-02-13T21:19:11+00:00", + "aliasId": "1856dbfc-7a66-ee5a-bf8d-51dbfe1906f6", + "resourceId": null, + "lastUpdatedTimestamp": "2020-02-13T21:19:11+00:00" + } + ] + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request - One or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found - The requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "Unknown error - An error occurred while processing the request. Please try again later." + } + } + } + } +} From c42b10572dc17572ce74f2167742544d94ae9579 Mon Sep 17 00:00:00 2001 From: Jeff Couckuyt Date: Tue, 13 Apr 2021 16:04:24 -0700 Subject: [PATCH 17/38] Updates readme --- specification/maps/data-plane/readme.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/specification/maps/data-plane/readme.md b/specification/maps/data-plane/readme.md index 28df36208f0c..7a7187bb6990 100644 --- a/specification/maps/data-plane/readme.md +++ b/specification/maps/data-plane/readme.md @@ -27,7 +27,7 @@ These are the global settings for MapsClient. ``` yaml title: MapsClient openapi-type: data-plane -tag: package-1.0-preview +tag: package-preview-2.0 ``` ### Suppression @@ -40,6 +40,15 @@ directive: ``` + +### Tag: package-preview-2.0 + +These settings apply only when `--tag=package-preview-2.0` is specified on the command line. + +```yaml $(tag) == 'package-preview-2.0' +input-file: + - Microsoft.Maps/Alias/preview/2.0/alias.json +``` ### Tag: package-1.0-preview These settings apply only when `--tag=package-1.0-preview` is specified on the command line. From 1e229ca5779e6a5c3acfcc2043182a5a0cfb5821 Mon Sep 17 00:00:00 2001 From: Jeff Couckuyt Date: Tue, 13 Apr 2021 16:04:25 -0700 Subject: [PATCH 18/38] Updates API version in new specs and examples --- .../Microsoft.Maps/Alias/preview/2.0/alias.json | 8 ++++---- .../Alias/preview/2.0/examples/Alias_Assign.json | 2 +- .../Alias/preview/2.0/examples/Alias_Create.json | 2 +- .../Alias/preview/2.0/examples/Alias_Delete.json | 2 +- .../Alias/preview/2.0/examples/Alias_List.json | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/alias.json b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/alias.json index 13630019c12b..1dc7d2684b15 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/alias.json +++ b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/alias.json @@ -2,7 +2,7 @@ "swagger": "2.0", "info": { "title": "Azure Maps Alias Service", - "version": "1.0", + "version": "2.0", "description": "APIs for managing aliases in Azure Maps." }, "host": "atlas.microsoft.com", @@ -19,7 +19,7 @@ "type": "oauth2", "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", "flow": "implicit", - "description": "These are the [Azure Active Directory OAuth2](https://docs.microsoft.com/en-us/azure/active-directory/develop/v1-overview) Flows. When paired with [Azure Role Based Access](https://docs.microsoft.com/en-us/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.\n\nTo 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.\n\n#### Note\n* 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).\n* The `Authorization URL` is specific to the Azure public cloud instance. Sovereign clouds have unique Authorization URLs and Azure Active directory configurations. \n* 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.\n* Usage of the [Azure Maps Web SDK](https://aka.ms/amaadmc) allows for configuration based setup of an application for multiple use cases.\n* Currently Azure Active Directory [v1.0](https://docs.microsoft.com/en-us/azure/active-directory/develop/azure-ad-endpoint-comparison) tokens are supported.", + "description": "These are the [Azure Active Directory OAuth2](https://docs.microsoft.com/en-us/azure/active-directory/develop/v1-overview) Flows. When paired with [Azure Role Based Access](https://docs.microsoft.com/en-us/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.\n\nTo 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.\n\n#### Note\n* 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).\n* The `Authorization URL` is specific to the Azure public cloud instance. Sovereign clouds have unique Authorization URLs and Azure Active directory configurations. \n* 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.\n* Usage of the [Azure Maps Web SDK](https://aka.ms/amaadmc) allows for configuration based setup of an application for multiple use cases.\n* Currently Azure Active Directory [v2.0](https://docs.microsoft.com/en-us/azure/active-directory/develop/azure-ad-endpoint-comparison) tokens are supported.", "scopes": { "user_impersonation": "Impersonates a user's Azure Active Directory account." } @@ -97,11 +97,11 @@ }, "ApiVersion": { "name": "api-version", - "description": "Version number of Azure Maps API. Current version is 1.0", + "description": "Version number of Azure Maps API. Current version is 2.0", "type": "string", "in": "query", "required": true, - "default": "1.0", + "default": "2.0", "x-ms-parameter-location": "client" }, "CreateResourceId": { diff --git a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Assign.json b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Assign.json index 352eacf788fc..4c79c06256b4 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Assign.json +++ b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Assign.json @@ -1,6 +1,6 @@ { "parameters": { - "api-version": "1.0", + "api-version": "2.0", "subscription-key": "[subscription-key]", "aliasId": "[aliasId]", "resourceId": "[resourceId]" diff --git a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Create.json b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Create.json index 173db30afe23..7d254f515a37 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Create.json +++ b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Create.json @@ -1,6 +1,6 @@ { "parameters": { - "api-version": "1.0", + "api-version": "2.0", "subscription-key": "[subscription-key]" }, "responses": { diff --git a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Delete.json b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Delete.json index 11adb1e66418..61522b3f0426 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Delete.json +++ b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Delete.json @@ -1,6 +1,6 @@ { "parameters": { - "api-version": "1.0", + "api-version": "2.0", "subscription-key": "[subscription-key]", "aliasId": "[aliasId]" }, diff --git a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_List.json b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_List.json index e74d2c24197f..2ddf8c51529f 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_List.json +++ b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_List.json @@ -1,6 +1,6 @@ { "parameters": { - "api-version": "1.0", + "api-version": "2.0", "subscription-key": "[subscription-key]" }, "responses": { From e0c3f7d0838d6324181a807f67dd44fb0df5acc0 Mon Sep 17 00:00:00 2001 From: Jeff Couckuyt Date: Tue, 13 Apr 2021 16:37:15 -0700 Subject: [PATCH 19/38] Add baseline from preview/1.0 --- .../Microsoft.Maps/Data/preview/2.0/data.json | 618 +++++++++++ .../Data/preview/2.0/examples/Delete.json | 57 + .../Data/preview/2.0/examples/Download.json | 76 ++ .../Data/preview/2.0/examples/List.json | 77 ++ .../Data/preview/2.0/examples/Update.json | 100 ++ .../Data/preview/2.0/examples/Upload.json | 100 ++ .../Dataset/preview/2.0/dataset.json | 608 +++++++++++ .../preview/2.0/examples/Dataset_Create.json | 73 ++ .../preview/2.0/examples/Dataset_Delete.json | 57 + .../preview/2.0/examples/Dataset_Import.json | 71 ++ .../preview/2.0/examples/Dataset_List.json | 116 +++ .../preview/2.0/dwgconversion.json | 474 +++++++++ .../preview/2.0/examples/Conversion.json | 73 ++ .../preview/2.0/examples/Delete.json | 57 + .../preview/2.0/examples/List.json | 89 ++ .../preview/2.0/examples/CreateStateset.json | 116 +++ .../2.0/examples/DeleteFeatureState.json | 66 ++ .../preview/2.0/examples/DeleteStateset.json | 55 + .../preview/2.0/examples/GetStates.json | 66 ++ .../preview/2.0/examples/GetStateset.json | 117 +++ .../preview/2.0/examples/Stateset_List.json | 121 +++ .../preview/2.0/examples/UpdateStates.json | 65 ++ .../preview/2.0/examples/UpdateStateset.json | 101 ++ .../preview/2.0/featurestate.json | 841 +++++++++++++++ .../Tileset/preview/2.0/examples/Create.json | 72 ++ .../Tileset/preview/2.0/examples/Delete.json | 57 + .../Tileset/preview/2.0/examples/List.json | 85 ++ .../Tileset/preview/2.0/tileset.json | 479 +++++++++ .../WFS/preview/2.0/examples/DeleteItem.json | 57 + .../preview/2.0/examples/GetCollection.json | 78 ++ .../2.0/examples/GetCollectionDefinition.json | 196 ++++ .../preview/2.0/examples/GetCollections.json | 297 ++++++ .../preview/2.0/examples/GetConformance.json | 64 ++ .../WFS/preview/2.0/examples/GetItem.json | 128 +++ .../WFS/preview/2.0/examples/GetItems.json | 137 +++ .../preview/2.0/examples/GetLandingPage.json | 85 ++ .../Microsoft.Maps/WFS/preview/2.0/wfs.json | 984 ++++++++++++++++++ 37 files changed, 6913 insertions(+) create mode 100644 specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/data.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Delete.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Download.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/List.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Update.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Upload.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Create.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Delete.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Import.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_List.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/Conversion.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/Delete.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/List.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/CreateStateset.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/DeleteFeatureState.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/DeleteStateset.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/GetStates.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/GetStateset.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/Stateset_List.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/UpdateStates.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/UpdateStateset.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/featurestate.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/Create.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/Delete.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/List.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/DeleteItem.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollection.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollectionDefinition.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollections.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetConformance.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetItem.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetItems.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetLandingPage.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/wfs.json diff --git a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/data.json b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/data.json new file mode 100644 index 000000000000..a604de6af9dd --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/data.json @@ -0,0 +1,618 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Maps Data Service", + "version": "1.0", + "description": "APIs for uploading map data to Azure Maps." + }, + "host": "atlas.microsoft.com", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [ + "application/json" + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "These are the [Azure Active Directory OAuth2](https://docs.microsoft.com/en-us/azure/active-directory/develop/v1-overview) Flows. When paired with [Azure Role Based Access](https://docs.microsoft.com/en-us/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.\n\nTo 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.\n\n#### Note\n* 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).\n* The `Authorization URL` is specific to the Azure public cloud instance. Sovereign clouds have unique Authorization URLs and Azure Active directory configurations. \n* 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.\n* Usage of the [Azure Maps Web SDK](https://aka.ms/amaadmc) allows for configuration based setup of an application for multiple use cases.\n* Currently Azure Active Directory [v1.0](https://docs.microsoft.com/en-us/azure/active-directory/develop/azure-ad-endpoint-comparison) tokens are supported.", + "scopes": { + "user_impersonation": "Impersonates a user's Azure Active Directory account." + } + }, + "apiKeyQuery": { + "type": "apiKey", + "description": "This is a shared key which is provisioned when creating an [Azure Maps resource](https://aka.ms/amauth) through the Azure management plane via Azure portal, Powershell, CLI, Azure SDKs, or REST APIs. With this key, any application is authorized to access all REST APIs. In other words, these can currently be treated as master keys to the account which they are issued for. For publicly exposed applications our recommendation is to use server to server access of Azure Maps REST APIs where this key can be securely stored.", + "name": "subscription-key", + "in": "query" + } + }, + "security": [ + { + "azure_auth": [] + }, + { + "apiKeyQuery": [] + } + ], + "responses": { + "400": { + "description": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "401": { + "description": "Access denied due to invalid subscription key or invalid Azure Active Directory bearer token. Make sure to provide a valid key for an active Azure subscription and Maps resource. Otherwise, verify the [WWW-Authenticate](https://tools.ietf.org/html/rfc6750#section-3.1) header for error code and description of the provided AAD bearer token.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + }, + "headers": { + "WWW-Authenticate": { + "type": "string", + "description": "Bearer realm=\"https://atlas.microsoft.com/\", error=\"invalid_token\", error_description=\"The access token expired\"" + } + } + }, + "403": { + "description": "Permission, capacity, or authentication issues.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "404": { + "description": "Not Found: the requested resource could not be found, but it may be available again in the future.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "500": { + "description": "An error occurred while processing the request. Please try again later.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "201Async": { + "description": "The resource has been created successfully.", + "schema": { + "$ref": "#/definitions/LongRunningOperationResult" + }, + "headers": { + "Location": { + "type": "string", + "description": "A URI where details on the newly created resource can be found." + } + } + }, + "202Async": { + "description": "**Supported only for async request.**\nRequest Accepted: The request has been accepted for processing. Please use the URL in the Location Header to retry or access the results.", + "headers": { + "Location": { + "type": "string", + "description": "New URL to check for the results of the long running process." + } + } + } + }, + "parameters": { + "ClientId": { + "name": "x-ms-client-id", + "description": "Specifies which account is intended for usage in conjunction with the Azure AD security model. It represents a unique ID for the Azure Maps account and can be retrieved from Azure Maps management plane Account API. To use Azure AD security in Azure Maps see the following [articles](https://aka.ms/amauthdetails) for guidance.", + "type": "string", + "in": "header", + "required": false, + "x-ms-parameter-location": "client" + }, + "SubscriptionKey": { + "name": "subscription-key", + "description": "One of the Azure Maps keys provided from an Azure Map Account. Please refer to this [article](https://docs.microsoft.com/azure/azure-maps/how-to-manage-authentication) for details on how to manage authentication.", + "type": "string", + "in": "query", + "required": false, + "x-ms-parameter-location": "client" + }, + "ApiVersion": { + "name": "api-version", + "description": "Version number of Azure Maps API. Current version is 1.0", + "type": "string", + "in": "query", + "required": true, + "default": "1.0", + "x-ms-parameter-location": "client" + }, + "JsonFormat": { + "name": "format", + "description": "Desired format of the response. Only `json` format is supported.", + "type": "string", + "in": "path", + "required": true, + "enum": [ + "json" + ], + "x-ms-enum": { + "name": "JsonFormat", + "modelAsString": true, + "values": [ + { + "value": "json", + "description": "[The JavaScript Object Notation Data Interchange Format](https://tools.ietf.org/html/rfc8259)" + } + ] + }, + "x-ms-parameter-location": "method" + }, + "UploadDataFormat": { + "name": "dataFormat", + "description": "Data format of the content being uploaded.", + "type": "string", + "in": "query", + "required": true, + "enum": [ + "geojson", + "zip" + ], + "x-ms-enum": { + "name": "UploadDataFormat", + "modelAsString": true, + "values": [ + { + "value": "geojson", + "description": "[GeoJSON](https://tools.ietf.org/html/rfc7946) is a JSON based geospatial data interchange format." + }, + { + "value": "zip", + "description": "Compressed data format." + } + ] + }, + "x-ms-parameter-location": "method" + }, + "Udid": { + "name": "udid", + "description": "The unique data id for the content. The `udid` must have been obtained from a successful [Data Upload API](https://docs.microsoft.com/en-us/rest/api/maps/data/uploadpreview) call.", + "type": "string", + "in": "path", + "required": true, + "x-ms-parameter-location": "method" + } + }, + "paths": { + "/mapData/upload": { + "post": { + "x-publish": true, + "description": "**Data Upload API**\n\n**Applies to:** S1 pricing tier.\n\nThe Data Upload API allows the caller to upload data content to the Azure Maps service.\nYou can use this API in a scenario like uploading a collection of Geofences in `GeoJSON` \nformat, for use in our [Azure Maps Geofencing Service](https://docs.microsoft.com/rest/api/maps/spatial).\n\n## Submit Upload Request\n\nTo upload your content you will use a `POST` request. The request body will contain the data to upload. The \n`dataFormat` query parameter will contain the format for the data, the `dataSharingLevel` query parameter \ncan contain the sharing level for the data. The `Content-Type` header will be set to the content type of the \ndata.\n\nFor example, to upload a collection of geofences in `GeoJSON` format, set the request body to the geofence \ncontent. Set the `dataFormat` query parameter to _geojson_, and set the `Content-Type` header to either one \nof the following media types:\n\n- `application/json`\n- `application/vnd.geo+json`\n- `application/octet-stream`\n\nHere's a sample request body for uploading a simple Geofence represented as a circle geometry using a center \npoint and a radius. The sample below is in `GeoJSON`:\n\n```json\n{\n \"type\": \"FeatureCollection\",\n \"features\": [{\n \"type\": \"Feature\",\n \"geometry\": {\n \"type\": \"Point\",\n \"coordinates\": [-122.126986, 47.639754]\n },\n \"properties\": {\n \"geometryId\": \"001\",\n \"radius\": 500\n }\n }]\n}\n```\n\nThe Data Upload API performs a \n[long-running request](https://docs.microsoft.com/azure/azure-maps/private-atlas-long-running-operation).\n\n## Data Upload Limits\n\nPlease, be aware that currently every Azure Maps account has a [data storage limit](https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/azure-subscription-service-limits#azure-maps-limits). \nOnce the storage limit is reached, all the new upload API calls will return a `409 Conflict` http error response. \nYou can always use the [Data Delete API](https://docs.microsoft.com/rest/api/maps/data/deletepreview) to \ndelete old/unused content and create space for new uploads.", + "operationId": "Data_UploadPreview", + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-examples": { + "Upload GeoJSON data containing geometries that represent a collection of geofences": { + "$ref": "./examples/Upload.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ClientId" + }, + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/UploadDataFormat" + }, + { + "name": "UploadContent", + "in": "body", + "description": "The content to upload.", + "required": true, + "schema": { + "type": "object" + } + } + ], + "responses": { + "200": { + "description": "Data upload failed. The uploaded content did not satisfy all the validation checks. The response body contains all the errors that were encountered.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "201": { + "$ref": "#/responses/201Async" + }, + "202": { + "$ref": "#/responses/202Async" + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + }, + "/mapData/{udid}": { + "put": { + "x-publish": true, + "description": "**Data Update API**\n\n**Applies to:** S1 pricing tier.\n\nThe Data Update API allows the caller to update a previously uploaded data content.\n\nYou can use this API in a scenario like adding or removing geofences to or from an existing collection of geofences. \nGeofences are uploaded using the [Data Upload API](https://docs.microsoft.com/rest/api/maps/data/uploadpreview), for \nuse in the [Azure Maps Geofencing Service](https://docs.microsoft.com/rest/api/maps/spatial).\n\nPlease note that the Update API will *replace* and *override* the existing data content.\n\n## Submit Update Request\n\nTo update your content you will use a `PUT` request. The request body will contain the new data that will replace \nthe existing data. The `Content-Type` header will be set to the content type of the data, and the path will contain \nthe `udid` of the data to be update.\n\nFor example, to update a collection of geofences that were previously uploaded using the Upload API, place the new \ngeofence content in the request body. Set the `udid` parameter in the path to the `udid` of the data received \npreviously in the upload API response. And set the `Content-Type` header to one of the following media types:\n\n- `application/json`\n- `application/vnd.geo+json`\n- `application/octet-stream`\n\nHere's a sample request body for updating a simple Geofence. It's represented as a circle geometry using a center \npoint and a radius. The sample below is in `GeoJSON`:\n\n```json\n{\n \"type\": \"FeatureCollection\",\n \"features\": [{\n \"type\": \"Feature\",\n \"geometry\": {\n \"type\": \"Point\",\n \"coordinates\": [-122.126986, 47.639754]\n },\n \"properties\": {\n \"geometryId\": \"001\",\n \"radius\": 500\n }\n }]\n}\n```\n\nThe previously uploaded geofence had a radius of 100m. The above request will update it to 500m.\n\nThe Data Update API performs a \n[long-running request](https://docs.microsoft.com/azure/azure-maps/private-atlas-long-running-operation).\n\n## Data Update Limits\n\nPlease, be aware that currently every Azure Maps account has a [data storage limit](https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/azure-subscription-service-limits#azure-maps-limits). \nOnce the storage limit is reached, all the new upload API calls will return a `409 Conflict` http error response. \nYou can always use the [Data Delete API](https://docs.microsoft.com/rest/api/maps/data/deletepreview) to \ndelete old/unused content and create space for new uploads.", + "operationId": "Data_UpdatePreview", + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-examples": { + "Update previously uploaded GeoJSON data containing geometries that represent a collection of geofences": { + "$ref": "./examples/Update.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ClientId" + }, + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/Udid" + }, + { + "name": "UpdateContent", + "in": "body", + "description": "The new content that will update/replace the previously uploaded content.", + "required": true, + "schema": { + "type": "object" + } + } + ], + "responses": { + "200": { + "description": "Data update failed. The uploaded content did not satisfy all the validation checks. The response body contains all the errors that were encountered.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "201": { + "$ref": "#/responses/201Async" + }, + "202": { + "$ref": "#/responses/202Async" + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + }, + "get": { + "x-publish": true, + "description": "**Data Download API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to download a previously uploaded data content.
\nYou can use this API in a scenario like downloading an existing collection of geofences uploaded previously using the [Data Upload API](https://docs.microsoft.com/en-us/rest/api/maps/data/uploadpreview) for use in our [Azure Maps Geofencing Service](https://docs.microsoft.com/en-us/rest/api/maps/spatial). \n\n\n### Submit Download Request\n\nTo download your content you will use a `GET` request where the path will contain the `udid` of the data to download. Optionally, you can also pass in an `Accept` header to specify a preference for the `Content-Type` of the data response.
\nFor example, to download a collection of geofences previously uploaded using the Upload API, set the `udid` parameter in the path to the `udid` of the data received previously in the upload API response and set the `Accept` header to either one of the following media types: \n \n - `application/json`\n - `application/vnd.geo+json`\n - `application/octet-stream`\n\n\n### Download Data Response\n\nThe Download API will return a HTTP `200 OK` response if the data resource with the passed-in `udid` is found, where the response body will contain the content of the data resource.
\nA HTTP `400 Bad Request` error response will be returned if the data resource with the passed-in `udid` is not found.
\n\nHere's a sample response body for a simple geofence represented in `GeoJSON` uploaded previously using the Upload API:\n
\n\n```json\n{\n \"type\": \"FeatureCollection\",\n \"features\": [{\n \"type\": \"Feature\",\n \"geometry\": {\n \"type\": \"Point\",\n \"coordinates\": [-122.126986, 47.639754]\n },\n \"properties\": {\n \"geometryId\": \"001\",\n \"radius\": 500\n }\n }]\n}\n```", + "operationId": "Data_DownloadPreview", + "x-ms-examples": { + "Download previously uploaded GeoJSON data containing geometries that represent a collection of geofences": { + "$ref": "./examples/Download.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ClientId" + }, + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/Udid" + } + ], + "responses": { + "200": { + "description": "Data download request completed successfully. The response body will contain the content for the passed in `udid`.", + "schema": { + "$ref": "#/definitions/MapDataDownloadResponse" + }, + "headers": { + "Content-Type": { + "type": "string", + "description": "The content-type for the Download API response." + } + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + }, + "delete": { + "x-publish": true, + "description": "**Data Delete API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to delete a previously uploaded data content.
\nYou can use this API in a scenario like removing geofences previously uploaded using the [Data Upload API](https://docs.microsoft.com/en-us/rest/api/maps/data/uploadpreview) for use in our [Azure Maps Geofencing Service](https://docs.microsoft.com/en-us/rest/api/maps/spatial). You can also use this API to delete old/unused uploaded content and create space for new content.\n\n\n### Submit Delete Request\n\nTo delete your content you will issue a `DELETE` request where the path will contain the `udid` of the data to delete.
\nFor example, to delete a collection of geofences previously uploaded using the Upload API, set the `udid` parameter in the path to the `udid` of the data received previously in the upload API response. \n\n\n### Delete Data Response\n\nThe Data Delete API returns a HTTP `204 No Content` response with an empty body, if the data resource was deleted successfully.
\nA HTTP `400 Bad Request` error response will be returned if the data resource with the passed-in `udid` is not found. ", + "operationId": "Data_DeletePreview", + "x-ms-examples": { + "Delete previously uploaded GeoJSON data containing geometries that represent a collection of geofences": { + "$ref": "./examples/Delete.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ClientId" + }, + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/Udid" + } + ], + "responses": { + "204": { + "description": "Data delete request completed successfully. The content for `udid` was deleted on the server.", + "schema": { + "$ref": "#/definitions/MapDataDeleteResponse" + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + }, + "/mapData": { + "get": { + "x-publish": true, + "description": "**Data List API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to fetch a list of all content uploaded previously using the [Data Upload API](https://docs.microsoft.com/en-us/rest/api/maps/data/uploadpreview). \n\n\n### Submit List Request\n\nTo list all your map data content you will issue a `GET` request with no additional parameters.\n\n\n### List Data Response\n\nThe Data List API returns the complete list of all data in `json` format. The response contains the following details for each data resource:\n\n > udid - The unique data id for the data resource.\n\n > location - The location of the data resource. Execute a HTTP `GET` on this location to download the data.\n\n\nHere's a sample response returning the `udid` and `location` of 3 data resources: \n\n
\n\n```json\n{\n \"mapDataList\": \n [\n {\n \"udid\": \"9a1288fa-1858-4a3b-b68d-13a8j5af7d7c\",\n \"location\": \"https://atlas.microsoft.com/mapData/9a1288fa-1858-4a3b-b68d-13a8j5af7d7c?api-version=1.0\",\n \"sizeInBytes\": 29920,\n \"uploadStatus\": \"Completed\"\n },\n {\n \"udid\": \"8b1288fa-1958-4a2b-b68e-13a7i5af7d7c\",\n \"location\": \"https://atlas.microsoft.com/mapData/8b1288fa-1958-4a2b-b68e-13a7i5af7d7c?api-version=1.0\",\n \"sizeInBytes\": 1339,\n \"uploadStatus\": \"Completed\"\n },\n {\n \"udid\": \"7c1288fa-2058-4a1b-b68f-13a6h5af7d7c\",\n \"location\": \"https://atlas.microsoft.com/mapData/7c1288fa-2058-4a1b-b68f-13a6h5af7d7c?api-version=1.0\",\n \"sizeInBytes\": 1650,\n \"uploadStatus\": \"Pending\"\n }]\n}\n```\n\n
", + "operationId": "Data_ListPreview", + "x-ms-examples": { + "List all the previously uploaded data": { + "$ref": "./examples/List.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ClientId" + }, + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + } + ], + "responses": { + "200": { + "description": "List data request completed successfully. The response body contains a list of all the previously uploaded data.", + "schema": { + "$ref": "#/definitions/MapDataListResponse" + }, + "headers": { + "Content-Type": { + "type": "string", + "description": "The content-type for the Download API response." + } + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + } + }, + "definitions": { + "ODataErrorResponse": { + "type": "object", + "description": "This response object is returned when an error occurs in the Maps API.", + "properties": { + "error": { + "$ref": "#/definitions/ODataError" + } + } + }, + "ODataError": { + "type": "object", + "description": "This object is returned when an error occurs in the Maps API.", + "properties": { + "code": { + "type": "string", + "readOnly": true, + "description": "The ODataError code." + }, + "message": { + "type": "string", + "readOnly": true, + "description": "If available, a human readable description of the error." + }, + "details": { + "type": "array", + "items": { + "$ref": "#/definitions/ODataError" + } + }, + "target": { + "type": "string", + "readOnly": true, + "description": "If available, the target causing the error." + } + } + }, + "LongRunningOperationResult": { + "description": "The response model for a Long-Running Operations API.", + "type": "object", + "properties": { + "operationId": { + "description": "The Id for this long-running operation.", + "type": "string" + }, + "status": { + "description": "The status state of the request.", + "type": "string", + "enum": [ + "NotStarted", + "Running", + "Failed", + "Succeeded" + ], + "x-ms-enum": { + "name": "type", + "modelAsString": true, + "values": [ + { + "value": "NotStarted", + "description": "The request has not started processing yet." + }, + { + "value": "Running", + "description": "The request has started processing." + }, + { + "value": "Failed", + "description": "The request has one or more failures." + }, + { + "value": "Succeeded", + "description": "The request has successfully completed." + } + ] + }, + "readOnly": true + }, + "created": { + "description": "The created timestamp.", + "type": "string", + "readOnly": true + }, + "resourceLocation": { + "description": "The location URI for details about the created resource. This is only provided when the request was successfully completed.", + "type": "string", + "readOnly": true + }, + "error": { + "$ref": "#/definitions/ODataError" + }, + "warning": { + "$ref": "#/definitions/ODataError" + } + } + }, + "MapDataDownloadResponse": { + "description": "The response model for the Data Download API. The response body will contain the content for the passed in `udid`.", + "type": "object" + }, + "MapDataDeleteResponse": { + "description": "The response model for the Data Delete API. The response body will be empty signifying there's no content available for the `udid` anymore.", + "type": "object" + }, + "MapDataListResponse": { + "description": "The response model for the Data List API. Returns a list of all the previously uploaded data.", + "type": "object", + "properties": { + "mapDataList": { + "description": "A list of all the previously uploaded data.", + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/MapDataDetailInfo" + } + } + } + }, + "MapDataDetailInfo": { + "description": "Detail information for the data.", + "type": "object", + "properties": { + "udid": { + "description": "The unique data id for the data.", + "type": "string", + "readOnly": true + }, + "location": { + "description": "The location of the data. Execute a HTTP `GET` on this location to download the data.", + "type": "string", + "readOnly": true + }, + "sizeInBytes": { + "description": "The size of the content in bytes.", + "type": "integer", + "format": "int64", + "readOnly": true + }, + "uploadStatus": { + "description": "The current upload status of the content.", + "type": "string", + "readOnly": true + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Delete.json b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Delete.json new file mode 100644 index 000000000000..ccf95148e20a --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Delete.json @@ -0,0 +1,57 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]", + "udid": "25084fb7-307a-4720-8f91-7952a0b91012" + }, + "responses": { + "204": { + "body": {} + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Download.json b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Download.json new file mode 100644 index 000000000000..1c065fe041ea --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Download.json @@ -0,0 +1,76 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]", + "udid": "25084fb7-307a-4720-8f91-7952a0b91012" + }, + "responses": { + "200": { + "headers": {}, + "body": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + -122.126986, + 47.639754 + ] + }, + "properties": { + "geometryId": "001", + "radius": 500 + } + } + ] + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/List.json b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/List.json new file mode 100644 index 000000000000..741fdd026baf --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/List.json @@ -0,0 +1,77 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]" + }, + "responses": { + "200": { + "body": { + "mapDataList": [ + { + "udid": "f6495f62-94f8-0ec2-c252-45626f82fcb2", + "location": "https://atlas.microsoft.com/mapData/f6495f62-94f8-0ec2-c252-45626f82fcb2?api-version=1.0", + "sizeInBytes": 29920, + "uploadStatus": "Completed" + }, + { + "udid": "8b1288fa-1958-4a2b-b68e-13a7i5af7d7c", + "location": "https://atlas.microsoft.com/mapData/8b1288fa-1958-4a2b-b68e-13a7i5af7d7c?api-version=1.0", + "sizeInBytes": 1339, + "uploadStatus": "Completed" + }, + { + "udid": "7c1288fa-2058-4a1b-b68f-13a6h5af7d7c", + "location": "https://atlas.microsoft.com/mapData/7c1288fa-2058-4a1b-b68f-13a6h5af7d7c?api-version=1.0", + "sizeInBytes": 1650, + "uploadStatus": "Pending" + } + ] + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Update.json b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Update.json new file mode 100644 index 000000000000..20caaf53f5d6 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Update.json @@ -0,0 +1,100 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]", + "udid": "25084fb7-307a-4720-8f91-7952a0b91012", + "UpdateContent": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + -122.126986, + 47.639754 + ] + }, + "properties": { + "geometryId": "001", + "radius": 500 + } + } + ] + } + }, + "responses": { + "201": { + "headers": { + "Location": "https://atlas.microsoft.com/mapData/metadata/{udid}?api-version=1.0", + "Access-Control-Expose-Headers": "Location" + }, + "body": { + "operationId": "{operationId}", + "status": "Succeeded", + "created": "2020-01-02 1:02:03 AM +00:00", + "resourceLocation": "https://atlas.microsoft.com/mapData/metadata/{resourceId}?api-version=1.0" + } + }, + "202": { + "headers": { + "Location": "https://atlas.microsoft.com/mapData/operations/{operationId}?api-version=1.0", + "Access-Control-Expose-Headers": "Location" + } + }, + "200": { + "headers": {}, + "body": { + "error": { + "code": "400 Bad Request", + "message": "Upload request failed. Your data has been removed as we encountered the following problems with it: Map data is not a valid GeoJSON geometry." + } + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Upload.json b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Upload.json new file mode 100644 index 000000000000..dd663049a9a0 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Upload.json @@ -0,0 +1,100 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]", + "dataFormat": "geojson", + "UploadContent": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + -122.126986, + 47.639754 + ] + }, + "properties": { + "geometryId": "001", + "radius": 500 + } + } + ] + } + }, + "responses": { + "201": { + "headers": { + "Location": "https://atlas.microsoft.com/mapData/metadata/{udid}?api-version=1.0", + "Access-Control-Expose-Headers": "Location" + }, + "body": { + "operationId": "{operationId}", + "status": "Succeeded", + "created": "2020-01-02 1:02:03 AM +00:00", + "resourceLocation": "https://atlas.microsoft.com/mapData/metadata/{resourceId}?api-version=1.0" + } + }, + "202": { + "headers": { + "Location": "https://atlas.microsoft.com/mapData/operations/{operationId}?api-version=1.0", + "Access-Control-Expose-Headers": "Location" + } + }, + "200": { + "headers": {}, + "body": { + "error": { + "code": "400 Bad Request", + "message": "Upload request failed. Your data has been removed as we encountered the following problems with it: Map data is not a valid GeoJSON geometry." + } + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json new file mode 100644 index 000000000000..db865b8f6569 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json @@ -0,0 +1,608 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Maps Dataset Service", + "version": "1.0", + "description": "APIs for managing datasets from uploaded data in Azure Maps." + }, + "host": "atlas.microsoft.com", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [ + "application/json", + "application/xml" + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "These are the [Azure Active Directory OAuth2](https://docs.microsoft.com/en-us/azure/active-directory/develop/v1-overview) Flows. When paired with [Azure Role Based Access](https://docs.microsoft.com/en-us/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.\n\nTo 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.\n\n#### Note\n* 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).\n* The `Authorization URL` is specific to the Azure public cloud instance. Sovereign clouds have unique Authorization URLs and Azure Active directory configurations. \n* 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.\n* Usage of the [Azure Maps Web SDK](https://aka.ms/amaadmc) allows for configuration based setup of an application for multiple use cases.\n* Currently Azure Active Directory [v1.0](https://docs.microsoft.com/en-us/azure/active-directory/develop/azure-ad-endpoint-comparison) tokens are supported.", + "scopes": { + "user_impersonation": "Impersonates a user's Azure Active Directory account." + } + }, + "apiKeyQuery": { + "type": "apiKey", + "description": "This is a shared key which is provisioned when creating an [Azure Maps resource](https://aka.ms/amauth) through the Azure management plane via Azure portal, Powershell, CLI, Azure SDKs, or REST APIs. With this key, any application is authorized to access all REST APIs. In other words, these can currently be treated as master keys to the account which they are issued for. For publicly exposed applications our recommendation is to use server to server access of Azure Maps REST APIs where this key can be securely stored.", + "name": "subscription-key", + "in": "query" + } + }, + "security": [ + { + "azure_auth": [] + }, + { + "apiKeyQuery": [] + } + ], + "responses": { + "400": { + "description": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "401": { + "description": "Access denied due to invalid subscription key or invalid Azure Active Directory bearer token. Make sure to provide a valid key for an active Azure subscription and Maps resource. Otherwise, verify the [WWW-Authenticate](https://tools.ietf.org/html/rfc6750#section-3.1) header for error code and description of the provided AAD bearer token.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + }, + "headers": { + "WWW-Authenticate": { + "type": "string", + "description": "Bearer realm=\"https://atlas.microsoft.com/\", error=\"invalid_token\", error_description=\"The access token expired\"" + } + } + }, + "403": { + "description": "Permission, capacity, or authentication issues.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "404": { + "description": "Not Found: the requested resource could not be found, but it may be available again in the future.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "500": { + "description": "An error occurred while processing the request. Please try again later.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "200Async": { + "description": "The operation's status response.", + "schema": { + "$ref": "#/definitions/LongRunningOperationResult" + } + }, + "201Async": { + "description": "The resource has been created successfully.", + "schema": { + "$ref": "#/definitions/LongRunningOperationResult" + }, + "headers": { + "Location": { + "type": "string", + "description": "A URI where details on the newly created resource can be found." + } + } + }, + "202Async": { + "description": "**Supported only for async request.**\nRequest Accepted: The request has been accepted for processing. Please use the URL in the Location Header to retry or access the results.", + "headers": { + "Location": { + "type": "string", + "description": "New URL to check for the results of the long running process." + } + } + } + }, + "parameters": { + "SubscriptionKey": { + "name": "subscription-key", + "description": "One of the Azure Maps keys provided from an Azure Map Account. Please refer to this [article](https://docs.microsoft.com/azure/azure-maps/how-to-manage-authentication) for details on how to manage authentication.", + "type": "string", + "in": "query", + "required": false, + "x-ms-parameter-location": "client" + }, + "ApiVersion": { + "name": "api-version", + "description": "Version number of Azure Maps API. Current version is 1.0", + "type": "string", + "in": "query", + "required": true, + "default": "1.0", + "x-ms-parameter-location": "client" + }, + "ConversionIdQuery": { + "name": "conversionId", + "description": "The unique ID used to create the dataset. The `conversionId` must have been obtained from a successful call to the Conversion Service Convert API and must be provided with multiple query parameters with same name (if more than one is provided). May not be provided in conjunction with the `udid` query parameter.", + "type": "string", + "in": "query", + "required": false, + "x-ms-parameter-location": "method" + }, + "UdidDataset": { + "name": "udid", + "description": "The unique data ID used to create the dataset. The `udid` must have been obtained from a successful call to the Data Service Upload API and must be provided with multiple query parameters with the same name (if more than one is provided). May not be provided in conjunction with `conversionId` query parameter.", + "type": "string", + "in": "query", + "required": false, + "x-ms-parameter-location": "method" + }, + "DescriptionDataset": { + "name": "description", + "description": "The description to be given to the dataset.", + "type": "string", + "in": "query", + "required": false, + "x-ms-parameter-location": "method" + }, + "DatasetId": { + "name": "datasetId", + "type": "string", + "in": "path", + "description": "The identifier for the dataset to query from.", + "required": true, + "x-ms-parameter-location": "method" + }, + "Type": { + "name": "type", + "type": "string", + "in": "query", + "description": "The type of data to create the dataset with.", + "enum": [ + "facility" + ], + "x-ms-enum": { + "name": "DatasetType", + "modelAsString": true, + "values": [ + { + "value": "facility", + "description": "Facility Maps data type." + } + ] + }, + "required": true, + "x-ms-parameter-location": "method" + }, + "ImportUdid": { + "name": "udid", + "description": "The unique data ID used to import data into the dataset. The `udid` must have been obtained from a successful call to the Data Service Upload API.", + "type": "string", + "in": "query", + "required": false, + "x-ms-parameter-location": "method" + }, + "ImportType": { + "name": "type", + "type": "string", + "in": "query", + "description": "The type of data to import into the dataset with.", + "enum": [ + "fixture" + ], + "x-ms-enum": { + "name": "ImportDataType", + "modelAsString": true, + "values": [ + { + "value": "fixture", + "description": "Area and point element data." + } + ] + }, + "required": true, + "x-ms-parameter-location": "method" + }, + "AppendDatasetId": { + "name": "datasetId", + "type": "string", + "in": "query", + "description": "The ID for the dataset to append to.", + "required": false, + "x-ms-parameter-location": "method" + }, + "StatusId": { + "name": "statusId", + "type": "string", + "in": "path", + "description": "The ID to query the status for the dataset create/import request.", + "required": true, + "x-ms-parameter-location": "method" + } + }, + "paths": { + "/dataset/create": { + "post": { + "x-publish": true, + "description": "**Dataset Create API**\n\n**Applies to:** S1 pricing tier.\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API \nand SDK. The Dataset APIs are part of Creator. This API allows the caller to create a dataset from data that \nwas uploaded to the Azure Maps Data Service.\n\nYou can use this API in a scenario like uploading a DWG zip package for a building, converting the zip package using \nthe Azure Maps Conversion Service, creating a dataset from the converted zip package. The created dataset can be \nused to create tilesets using the Azure Maps Tileset Service and can be queried via the Azure Maps WFS Service.\n\n## Submit Create Request\n\nTo create your dataset, you will use a `POST` request where the `conversionId` query parameter is an id that represents \nthe converted DWG zip package, the `type` parameter will describe the data type to use for the dataset, the `datasetId`\nparameter will describe if the provided data should be appended to a current dataset and, optionally, the \n`description` query parameter will contain a description (if description is not provided a default description will be \ngiven).\n\nThe Create API is a \n[long-running request](https://aka.ms/am-creator-lrt).", + "operationId": "Dataset_CreatePreview", + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-examples": { + "Create dataset from a converted CAD file provided by conversionId": { + "$ref": "./examples/Dataset_Create.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/ConversionIdQuery" + }, + { + "$ref": "#/parameters/UdidDataset" + }, + { + "$ref": "#/parameters/Type" + }, + { + "$ref": "#/parameters/AppendDatasetId" + }, + { + "$ref": "#/parameters/DescriptionDataset" + } + ], + "responses": { + "201": { + "$ref": "#/responses/201Async" + }, + "202": { + "$ref": "#/responses/202Async" + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + }, + "/dataset/import/{datasetId}": { + "patch": { + "x-publish": true, + "description": "**Dataset Import API**\n\n**Applies to:** S1 pricing tier.\n
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API \nand SDK. The Dataset APIs are part of Creator. This API allows the caller to bulk import data into a dataset \nfrom data that was uploaded to the Azure Maps Data service.
\n\n### Submit Import Request\n\nTo import data into your dataset, you will use a `PATCH` request where the `datasetId` query parameter is the \ndataset you want to import your data into, the `udid` query parameter is the data you want to import, and the `type` \nparameter will describe the data type to use for the import data.
\n\nThe Import API is a \n[long-running request](https://aka.ms/am-creator-lrt).", + "operationId": "Dataset_ImportPreview", + "x-ms-examples": { + "Import data into previously created dataset": { + "$ref": "./examples/Dataset_Import.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/DatasetId" + }, + { + "$ref": "#/parameters/ImportUdid" + }, + { + "$ref": "#/parameters/ImportType" + } + ], + "responses": { + "200": { + "$ref": "#/responses/200Async" + }, + "202": { + "$ref": "#/responses/202Async" + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + }, + "/dataset/{datasetId}": { + "delete": { + "x-publish": true, + "description": "**Dataset Delete API**\n\n**Applies to:** S1 pricing tier.\n
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Dataset APIs are part of Creator.\nThis API allows the caller to delete a previously created dataset.
\nYou can also use this API to delete old/unused datasets to create space for new Creator content.\n\n\n### Submit Delete Request\n\nTo delete your content you will issue a `DELETE` request where the path will contain the `datasetId` of the dataset to delete.
\n\n\n### Delete Data Response\n\nThe Delete API returns a HTTP `204 No Content` response if the dataset resource was deleted successfully.
", + "operationId": "Dataset_DeletePreview", + "x-ms-examples": { + "Delete previously created dataset": { + "$ref": "./examples/Dataset_Delete.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/DatasetId" + } + ], + "responses": { + "204": { + "description": "The dataset delete request completed successfully. The resource referenced by the `datasetId` was deleted from the server.", + "schema": { + "$ref": "#/definitions/DatasetDeleteResponse" + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + }, + "/dataset": { + "get": { + "x-publish": true, + "description": "**Dataset List API**\n\n**Applies to:** S1 pricing tier.\n
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Dataset APIs are part of Creator.\nThis API allows the caller to fetch a list of all previously successfully created datasets.\n\n\n### Submit List Request\n\nTo list all your datasets, you will issue a `GET` request with no additional parameters.
\n\n\n### List Data Response\n\nThe List API returns the complete list of all datasets in `json` format. The response contains the following fields (if they are not null or empty):\n > created - The timestamp the dataset was created.\n > datasetId - The id for the dataset.\n > description - The description for the dataset.\n > datasetSources - The source data that was used when the create request was issued.\n\nThe `datasetSources` describes the source data that was used when the create request was issued and contains the following elements (if they are not null or empty):\n > conversionIds - The list of `conversionId` (null if none were provided).\n > udids - The list of `udid` (null if none were provided).\n > appendDatasetId - The `datasetId` that was used for an append operation (null if none was used).\n > type - The type of data stored in the dataset that was created.\n\nHere's a sample response returning the `timestamp`, `datasetId`, `description`, and `datasetSources` of 3 dataset resources:\n\n
\n\n```json\n{\n \"datasets\": [\n {\n \"timestamp\": \"2020-01-01T22:50:48+00:00\",\n \"datasetId\": \"f6495f62-94f8-0ec2-c252-45626f82fcb2\",\n \"description\": \"Some description or comment for the dataset.\",\n \"datasetSources\": {\n \"conversionIds\": [\n \"15d21452-c9bb-27b6-5e79-743ca5c3205d\"\n ],\n \"type\": \"facility\"\n },\n \"status\": \"Succeeded\"\n },\n {\n \"timestamp\": \"2020-01-01T22:57:53+00:00\",\n \"datasetId\": \"8b1288fa-1958-4a2b-b68e-13a7i5af7d7c\",\n \"description\": \"Create from upload '0c1288fa-2058-4a1b-b68d-13a5f5af7d7c'.\",\n \"datasetSources\": {\n \"udids\": [\n \"0c1288fa-2058-4a1b-b68d-13a5f5af7d7c\"\n ],\n \"type\": \"facility\"\n },\n \"status\": \"Succeeded\"\n },\n {\n \"timestamp\": \"2020-01-01T20:39:36+00:00\",\n \"datasetId\": \"7c1288fa-2058-4a1b-b68f-13a6h5af7d7c\",\n \"description\": \"Some other description or comment for the dataset.\",\n \"datasetSources\": {\n \"conversionIds\": [\n \"15d21452-c9bb-27b6-5e79-743ca5c3205d\"\n ],\n \"appendDatasetId\": \"8b1288fa-1958-4a2b-b68e-13a7i5af7d7c\",\n \"type\": \"facility\"\n },\n \"status\": \"Succeeded\"\n }\n ]\n}\n```\n
", + "operationId": "Dataset_ListPreview", + "x-ms-examples": { + "List all the previously created datasets": { + "$ref": "./examples/Dataset_List.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + } + ], + "responses": { + "200": { + "description": "The list dataset request completed successfully. The response body contains a list of all the previously created datasets.", + "schema": { + "$ref": "#/definitions/DatasetListResponse" + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + } + }, + "definitions": { + "ODataErrorResponse": { + "type": "object", + "description": "This response object is returned when an error occurs in the Maps API.", + "properties": { + "error": { + "$ref": "#/definitions/ODataError" + } + } + }, + "ODataError": { + "type": "object", + "description": "This object is returned when an error occurs in the Maps API.", + "properties": { + "code": { + "type": "string", + "readOnly": true, + "description": "The ODataError code." + }, + "message": { + "type": "string", + "readOnly": true, + "description": "If available, a human readable description of the error." + }, + "details": { + "type": "array", + "items": { + "$ref": "#/definitions/ODataError" + } + }, + "target": { + "type": "string", + "readOnly": true, + "description": "If available, the target causing the error." + } + } + }, + "LongRunningOperationResult": { + "description": "The response model for a Long-Running Operations API.", + "type": "object", + "properties": { + "operationId": { + "description": "The Id for this long-running operation.", + "type": "string" + }, + "status": { + "description": "The status state of the request.", + "type": "string", + "enum": [ + "NotStarted", + "Running", + "Failed", + "Succeeded" + ], + "x-ms-enum": { + "name": "type", + "modelAsString": true, + "values": [ + { + "value": "NotStarted", + "description": "The request has not started processing yet." + }, + { + "value": "Running", + "description": "The request has started processing." + }, + { + "value": "Failed", + "description": "The request has one or more failures." + }, + { + "value": "Succeeded", + "description": "The request has successfully completed." + } + ] + }, + "readOnly": true + }, + "created": { + "description": "The created timestamp.", + "type": "string", + "readOnly": true + }, + "resourceLocation": { + "description": "The location URI for details about the created resource. This is only provided when the request was successfully completed.", + "type": "string", + "readOnly": true + }, + "error": { + "$ref": "#/definitions/ODataError" + }, + "warning": { + "$ref": "#/definitions/ODataError" + } + } + }, + "DatasetDeleteResponse": { + "description": "The response model for the Dataset Delete API. The response body will be empty signifying there's no content available for the `datasetId` anymore.", + "type": "object" + }, + "DatasetListResponse": { + "description": "The response model for the Dataset List API. The response body will contain a list of all the previously created datasets.", + "type": "object", + "properties": { + "datasets": { + "description": "A list of all the previously created datasets.", + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/DatasetDetailInfo" + } + } + } + }, + "DatasetDetailInfo": { + "description": "Detail information for the dataset.", + "type": "object", + "properties": { + "created": { + "description": "The created timestamp for the dataset.", + "type": "string", + "readOnly": true + }, + "datasetId": { + "description": "The id for the dataset.", + "type": "string", + "readOnly": true + }, + "description": { + "description": "The description for the dataset.", + "type": "string", + "readOnly": true + }, + "datasetSources": { + "$ref": "#/definitions/DatasetSources" + }, + "featureCounts": { + "description": "The feature counts for the dataset.", + "type": "object", + "readOnly": true + } + } + }, + "DatasetSources": { + "description": "Information about the details of the create request for the dataset.", + "type": "object", + "properties": { + "conversionIds": { + "description": "The list of `conversionId` that were used to create the dataset.", + "type": "array", + "readOnly": true, + "items": { + "type": "string" + } + }, + "udids": { + "description": "The list of `conversionId` that were used to create the dataset.", + "type": "array", + "readOnly": true, + "items": { + "type": "string" + } + }, + "appendDatasetId": { + "description": "The dataset that was appended to to create the current dataset.", + "type": "string", + "readOnly": true + }, + "type": { + "description": "The type of data stored in the dataset.", + "type": "string", + "readOnly": true + } + } + }, + "DatasetGetDetailsResponse": { + "$ref": "#/definitions/DatasetDetailInfo" + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Create.json b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Create.json new file mode 100644 index 000000000000..6d8513252576 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Create.json @@ -0,0 +1,73 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]", + "conversionId": "[conversionId]", + "type": "facility" + }, + "responses": { + "201": { + "headers": { + "Location": "https://atlas.microsoft.com/dataset/{datasetId}?api-version=1.0", + "Access-Control-Expose-Headers": "Location" + }, + "body": { + "operationId": "{operationId}", + "status": "Succeeded", + "created": "2020-01-02 1:02:03 AM +00:00", + "resourceLocation": "https://atlas.microsoft.com/dataset/{datasetId}?api-version=1.0" + } + }, + "202": { + "headers": { + "Location": "https://atlas.microsoft.com/dataset/operations/{operationId}?api-version=1.0", + "Access-Control-Expose-Headers": "Location" + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request - Error message." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found - The requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "Unknown error - An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Delete.json b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Delete.json new file mode 100644 index 000000000000..3ad9cf60de1c --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Delete.json @@ -0,0 +1,57 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]", + "datasetId": "[datasetId]" + }, + "responses": { + "204": { + "body": {} + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request - One or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found - The requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "Unknown error - An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Import.json b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Import.json new file mode 100644 index 000000000000..fa4cb9ca8950 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Import.json @@ -0,0 +1,71 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]", + "datasetId": "[conversionId]", + "udid": "[udid]", + "type": "fixture" + }, + "responses": { + "200": { + "headers": {}, + "body": { + "operationId": "{operationId}", + "status": "Succeeded", + "created": "2020-01-02 03:04:05 AM +00:00", + "resourceLocation": "https://atlas.microsoft.com/dataset/{datasetId}?api-version=1.0" + } + }, + "202": { + "headers": { + "Location": "https://atlas.microsoft.com/dataset/operations/{operationId}?api-version=1.0", + "Access-Control-Expose-Headers": "Location" + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request - Error message." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found - The requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "Unknown error - An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_List.json b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_List.json new file mode 100644 index 000000000000..4937c40e2e95 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_List.json @@ -0,0 +1,116 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]" + }, + "responses": { + "200": { + "body": { + "datasets": [ + { + "created": "2020-01-02 3:04:05 AM +00:00", + "datasetId": "f6495f62-94f8-0ec2-c252-45626f82fcb2", + "description": "Some description or comment for the dataset.", + "datasetSources": { + "conversionIds": [ + "15d21452-c9bb-27b6-5e79-743ca5c3205d" + ], + "type": "facility" + }, + "featureCounts": { + "directoryInfo": 1, + "category": 18, + "facility": 1, + "level": 6, + "unit": 775, + "opening": 471, + "areaElement": 496 + } + }, + { + "created": "2020-01-02 3:04:05 PM +00:00", + "datasetId": "8b1288fa-1958-4a2b-b68e-13a7i5af7d7c", + "description": "Create from upload '0c1288fa-2058-4a1b-b68d-13a5f5af7d7c'.", + "datasetSources": { + "udids": [ + "0c1288fa-2058-4a1b-b68d-13a5f5af7d7c" + ], + "type": "facility" + }, + "featureCounts": { + "directoryInfo": 1, + "category": 2, + "facility": 1, + "level": 6, + "unit": 19 + } + }, + { + "created": "2020-01-02 3:04:05 AM +00:00", + "datasetId": "7c1288fa-2058-4a1b-b68f-13a6h5af7d7c", + "description": "Some other description or comment for the dataset.", + "datasetSources": { + "conversionIds": [ + "15d21452-c9bb-27b6-5e79-743ca5c3205d" + ], + "appendDatasetId": "8b1288fa-1958-4a2b-b68e-13a7i5af7d7c", + "type": "facility" + }, + "featureCounts": { + "directoryInfo": 1, + "category": 1, + "facility": 1, + "level": 1, + "unit": 10 + } + } + ] + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request - One or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found - The requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "Unknown error - An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json new file mode 100644 index 000000000000..df01ad77d8df --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json @@ -0,0 +1,474 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Maps Conversion Service", + "version": "1.0", + "description": "APIs for converting DWG Packages in Azure Maps." + }, + "host": "atlas.microsoft.com", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [ + "application/json" + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "These are the [Azure Active Directory OAuth2](https://docs.microsoft.com/en-us/azure/active-directory/develop/v1-overview) Flows. When paired with [Azure Role Based Access](https://docs.microsoft.com/en-us/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.\n\nTo 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.\n\n#### Note\n* 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).\n* The `Authorization URL` is specific to the Azure public cloud instance. Sovereign clouds have unique Authorization URLs and Azure Active directory configurations. \n* 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.\n* Usage of the [Azure Maps Web SDK](https://aka.ms/amaadmc) allows for configuration based setup of an application for multiple use cases.\n* Currently Azure Active Directory [v1.0](https://docs.microsoft.com/en-us/azure/active-directory/develop/azure-ad-endpoint-comparison) tokens are supported.", + "scopes": { + "user_impersonation": "Impersonates a user's Azure Active Directory account." + } + }, + "apiKeyQuery": { + "type": "apiKey", + "description": "This is a shared key which is provisioned when creating an [Azure Maps resource](https://aka.ms/amauth) through the Azure management plane via Azure portal, Powershell, CLI, Azure SDKs, or REST APIs. With this key, any application is authorized to access all REST APIs. In other words, these can currently be treated as master keys to the account which they are issued for. For publicly exposed applications our recommendation is to use server to server access of Azure Maps REST APIs where this key can be securely stored.", + "name": "subscription-key", + "in": "query" + } + }, + "security": [ + { + "azure_auth": [] + }, + { + "apiKeyQuery": [] + } + ], + "responses": { + "400": { + "description": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "401": { + "description": "Access denied due to invalid subscription key or invalid Azure Active Directory bearer token. Make sure to provide a valid key for an active Azure subscription and Maps resource. Otherwise, verify the [WWW-Authenticate](https://tools.ietf.org/html/rfc6750#section-3.1) header for error code and description of the provided AAD bearer token.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + }, + "headers": { + "WWW-Authenticate": { + "type": "string", + "description": "Bearer realm=\"https://atlas.microsoft.com/\", error=\"invalid_token\", error_description=\"The access token expired\"" + } + } + }, + "403": { + "description": "Permission, capacity, or authentication issues.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "404": { + "description": "Not Found: the requested resource could not be found, but it may be available again in the future.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "500": { + "description": "An error occurred while processing the request. Please try again later.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "201Async": { + "description": "The resource has been created successfully.", + "schema": { + "$ref": "#/definitions/LongRunningOperationResult" + }, + "headers": { + "Location": { + "type": "string", + "description": "A URI where details on the newly created resource can be found." + } + } + }, + "202Async": { + "description": "**Supported only for async request.**\nRequest Accepted: The request has been accepted for processing. Please use the URL in the Location Header to retry or access the results.", + "headers": { + "Location": { + "type": "string", + "description": "New URL to check for the results of the long running process." + } + } + } + }, + "parameters": { + "ClientId": { + "name": "x-ms-client-id", + "description": "Specifies which account is intended for usage in conjunction with the Azure AD security model. It represents a unique ID for the Azure Maps account and can be retrieved from Azure Maps management plane Account API. To use Azure AD security in Azure Maps see the following [articles](https://aka.ms/amauthdetails) for guidance.", + "type": "string", + "in": "header", + "required": false, + "x-ms-parameter-location": "client" + }, + "SubscriptionKey": { + "name": "subscription-key", + "description": "One of the Azure Maps keys provided from an Azure Map Account. Please refer to this [article](https://docs.microsoft.com/azure/azure-maps/how-to-manage-authentication) for details on how to manage authentication.", + "type": "string", + "in": "query", + "required": false, + "x-ms-parameter-location": "client" + }, + "ApiVersion": { + "name": "api-version", + "description": "Version number of Azure Maps API. Current version is 1.0", + "type": "string", + "in": "query", + "required": true, + "default": "1.0", + "x-ms-parameter-location": "client" + }, + "UdidQuery": { + "name": "udid", + "description": "The unique data id for the content. The `udid` must have been obtained from a successful [Data Upload API](https://docs.microsoft.com/en-us/rest/api/maps/data/uploadpreview) call.", + "type": "string", + "in": "query", + "required": true, + "x-ms-parameter-location": "method" + }, + "ConversionId": { + "name": "conversionId", + "description": "The conversion id for the content. The `conversionId` must have been obtained from a successful [Conversion API](https://docs.microsoft.com/en-us/rest/api/maps/conversion/convertpreview) call.", + "type": "string", + "in": "path", + "required": true, + "x-ms-parameter-location": "method" + }, + "ConversionInputType": { + "name": "inputType", + "description": "Input type of the content being converted. Currently, only `DWG` type is supported.", + "type": "string", + "in": "query", + "required": true, + "enum": [ + "DWG" + ], + "x-ms-enum": { + "name": "ConversionInputType", + "modelAsString": true, + "values": [ + { + "value": "DWG", + "description": "DWG file format." + } + ] + }, + "x-ms-parameter-location": "method" + }, + "DescriptionDwgConversion": { + "name": "description", + "description": "User provided description of the content being converted.", + "type": "string", + "in": "query", + "required": false, + "x-ms-parameter-location": "method" + } + }, + "paths": { + "/conversion/convert": { + "post": { + "x-publish": true, + "description": "**Conversion Create API**\n\n**Applies to:** S1 pricing tier.
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and \nSDK. The Conversion API is part of Creator.
\n\nThe Conversion API lets the caller import a set of DWG design files as a zipped [Drawing Package](https://aka.ms/am-drawing-package) into Azure Maps. The [Drawing Package](https://aka.ms/am-drawing-package) should first be \nuploaded using the [Azure Maps Data Service](https://docs.microsoft.com/rest/api/maps/data). Once uploaded, use the \n`udid` returned by the [Data Upload API](https://docs.microsoft.com/rest/api/maps/data/uploadpreview) to call \nthis Conversion API.\n\n## Convert DWG package\n\nThe Conversion API performs a \n[long-running request](https://aka.ms/am-creator-lrt).\n\n## Debug DWG package issues\n\n\nDuring the Conversion process, if there are any issues with the DWG package [errors and warnings](https://aka.ms/am-conversion-errors) are provided in the response along with a *diagnostic package* to visualize \nand diagnose these issues. In case any issues are encountered with your DWG package, the Conversion operation status process as detailed \n[here](https://aka.ms/am-creator-lrt) returns the location of the *diagnostic\npackage* that can be downloaded by the caller to help them visualize and diagnose these issues. The *diagnostic package* location\ncan be found in the properties section of the conversion operation status response and looks like the following:\n\n```json\n{\n \"properties\": {\n \"diagnosticPackageLocation\": \"https://atlas.microsoft.com/mapdata/{DiagnosticPackageId}?api-version=1.0\" \n } \n}\n```\n\nThe *diagnostic package* can be downloaded by executing a `HTTP GET` request on the `diagnosticPackageLocation`.\nFor more details on how to use the tool to visualize and diagnose all the errors and warnings see [Drawing Error Visualizer](https://aka.ms/am-drawing-errors-visualizer).
\n\nA conversion operation will be marked as *success* if there are zero or more warnings but will be marked as *failed* if any errors are encountered. ", + "operationId": "Conversion_ConvertPreview", + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-examples": { + "Convert previously uploaded DWG Package": { + "$ref": "./examples/Conversion.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ClientId" + }, + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/UdidQuery" + }, + { + "$ref": "#/parameters/ConversionInputType" + }, + { + "$ref": "#/parameters/DescriptionDwgConversion" + } + ], + "responses": { + "201": { + "$ref": "#/responses/201Async" + }, + "202": { + "$ref": "#/responses/202Async" + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + }, + "/conversion": { + "get": { + "x-publish": true, + "description": "**Conversion List API**\n\n**Applies to:** S1 pricing tier.
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Conversion API is part of Creator.
\n\nThis API allows the caller to fetch a list of all successful data conversions submitted previously using the [Conversion API](https://docs.microsoft.com/en-us/rest/api/maps/conversion/convertpreview). \n\n### Submit List Request\n\nTo list all successful conversions you will issue a `GET` request with no additional parameters.\n\n### List Data Response\n\nThe Conversion List API returns the complete list of all conversion details in `json` format.
\n\nHere is a sample response returning the details of two successful conversion requests: \n\n
\n\n```json\n{\n \"conversions\": \n [\n {\n \"conversionId\": \"54398242-ea6c-1f31-4fa6-79b1ae0fc24d\",\n \"udid\": \"31838736-8b84-11ea-bc55-0242ac130003\",\n \"created\": \"5/19/2020 9:00:00 AM +00:00\",\n \"description\": \"User provided description.\",\n \"featureCounts\": {\n \"DIR\": 1,\n \"LVL\": 3,\n \"FCL\": 1,\n \"UNIT\": 150,\n \"CTG\": 8,\n \"AEL\": 0,\n \"OPN\": 10\n }\n },\n {\n \"conversionId\": \"2acf7d32-8b84-11ea-bc55-0242ac130003\",\n \"udid\": \"1214bc58-8b84-11ea-bc55-0242ac1300039\",\n \"created\": \"5/19/2020 9:00:00 AM +00:00\",\n \"description\": \"User provided description.\",\n \"featureCounts\": {\n \"DIR\": 1,\n \"LVL\": 3,\n \"FCL\": 1,\n \"UNIT\": 150,\n \"CTG\": 8,\n \"AEL\": 0,\n \"OPN\": 10\n }\n }\n ]\n}\n```\n\n
", + "operationId": "Conversion_ListPreview", + "x-ms-examples": { + "Returns a list of all the data processed by the Conversion Service for the account": { + "$ref": "./examples/List.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ClientId" + }, + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + } + ], + "responses": { + "200": { + "description": "List request completed successfully.", + "schema": { + "$ref": "#/definitions/ConversionListResponse" + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + }, + "/conversion/{conversionId}": { + "delete": { + "x-publish": true, + "description": "**Conversion Delete API**\n\n**Applies to:** S1 pricing tier.
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Delete API is part of Creator.
\n\nThis API allows the caller to delete any data conversions created previously using the [Conversion API](https://docs.microsoft.com/en-us/rest/api/maps/conversion/convertpreview).\n\n### Submit Delete Request\n\nTo delete your conversion data you will issue a `DELETE` request where the path will contain the `conversionId` of the data to delete.\n\n### Conversion Delete Response\n\nThe Conversion Delete API returns a HTTP `204 No Content` response with an empty body, if the converted data resources were deleted successfully.
\nA HTTP `400 Bad Request` error response will be returned if no resource associated with the passed-in `conversionId` is found. ", + "operationId": "Conversion_DeletePreview", + "x-ms-examples": { + "Delete previously converted content": { + "$ref": "./examples/Delete.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ClientId" + }, + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/ConversionId" + } + ], + "responses": { + "204": { + "description": "Conversion delete request completed successfully. The content for `conversionId` was deleted on the server.", + "schema": { + "$ref": "#/definitions/ConversionDeleteResponse" + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + } + }, + "definitions": { + "ODataErrorResponse": { + "type": "object", + "description": "This response object is returned when an error occurs in the Maps API.", + "properties": { + "error": { + "$ref": "#/definitions/ODataError" + } + } + }, + "ODataError": { + "type": "object", + "description": "This object is returned when an error occurs in the Maps API.", + "properties": { + "code": { + "type": "string", + "readOnly": true, + "description": "The ODataError code." + }, + "message": { + "type": "string", + "readOnly": true, + "description": "If available, a human readable description of the error." + }, + "details": { + "type": "array", + "items": { + "$ref": "#/definitions/ODataError" + } + }, + "target": { + "type": "string", + "readOnly": true, + "description": "If available, the target causing the error." + } + } + }, + "LongRunningOperationResult": { + "description": "The response model for a Long-Running Operations API.", + "type": "object", + "properties": { + "operationId": { + "description": "The Id for this long-running operation.", + "type": "string" + }, + "status": { + "description": "The status state of the request.", + "type": "string", + "enum": [ + "NotStarted", + "Running", + "Failed", + "Succeeded" + ], + "x-ms-enum": { + "name": "type", + "modelAsString": true, + "values": [ + { + "value": "NotStarted", + "description": "The request has not started processing yet." + }, + { + "value": "Running", + "description": "The request has started processing." + }, + { + "value": "Failed", + "description": "The request has one or more failures." + }, + { + "value": "Succeeded", + "description": "The request has successfully completed." + } + ] + }, + "readOnly": true + }, + "created": { + "description": "The created timestamp.", + "type": "string", + "readOnly": true + }, + "resourceLocation": { + "description": "The location URI for details about the created resource. This is only provided when the request was successfully completed.", + "type": "string", + "readOnly": true + }, + "error": { + "$ref": "#/definitions/ODataError" + }, + "warning": { + "$ref": "#/definitions/ODataError" + } + } + }, + "ConversionListResponse": { + "description": "The response model for the Conversion List API.", + "type": "object", + "properties": { + "conversions": { + "description": "A list of all the previously submitted conversion requests.", + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/ConversionListDetailInfo" + } + } + } + }, + "ConversionListDetailInfo": { + "description": "Detail information for the conversion requests.", + "type": "object", + "properties": { + "conversionId": { + "description": "A unique id that represents the artifact of a _successfully_ completed conversion process.", + "type": "string", + "readOnly": true + }, + "udid": { + "description": "The unique id of the content provided to create this conversion.", + "type": "string", + "readOnly": true + }, + "created": { + "description": "The date and time of this conversion.", + "type": "string", + "readOnly": true + }, + "description": { + "description": "User provided description of the content being converted.", + "type": "string", + "readOnly": true + }, + "featureCounts": { + "description": "A summary of feature counts in this conversion.", + "type": "object", + "readOnly": true + } + } + }, + "ConversionDeleteResponse": { + "description": "The response model for the Conversion Delete API. The response body will be empty signifying there's no content available for the `conversionId` anymore.", + "type": "object" + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/Conversion.json b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/Conversion.json new file mode 100644 index 000000000000..b9af945a36d8 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/Conversion.json @@ -0,0 +1,73 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]", + "udid": "25084fb7-307a-4720-8f91-7952a0b91012", + "inputType": "DWG" + }, + "responses": { + "201": { + "headers": { + "Location": "https://atlas.microsoft.com/conversion/{conversionId}?api-version=1.0", + "Access-Control-Expose-Headers": "Location" + }, + "body": { + "operationId": "{operationId}", + "status": "Succeeded", + "created": "2020-01-02 1:02:03 AM +00:00", + "resourceLocation": "https://atlas.microsoft.com/conversion/{conversionId}?api-version=1.0" + } + }, + "202": { + "headers": { + "Location": "https://atlas.microsoft.com/conversion/operations/{operationId}?api-version=1.0", + "Access-Control-Expose-Headers": "Location" + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/Delete.json b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/Delete.json new file mode 100644 index 000000000000..a0858462d16c --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/Delete.json @@ -0,0 +1,57 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]", + "conversionId": "99884fb7-87a9-0920-7f93-7952a0b91012" + }, + "responses": { + "204": { + "body": {} + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/List.json b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/List.json new file mode 100644 index 000000000000..357a0d0ab352 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/List.json @@ -0,0 +1,89 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]" + }, + "responses": { + "200": { + "body": { + "conversions": [ + { + "conversionId": "54398242-ea6c-1f31-4fa6-79b1ae0fc24d", + "udid": "31838736-8b84-11ea-bc55-0242ac130003", + "created": "5/19/2020 9:00:00 AM +00:00", + "description": "User provided description.", + "featureCounts": { + "directoryInfo": 1, + "level": 3, + "facility": 1, + "unit": 150, + "category": 8, + "areaElement": 0, + "opening": 10 + } + }, + { + "conversionId": "2acf7d32-8b84-11ea-bc55-0242ac130003", + "udid": "1214bc58-8b84-11ea-bc55-0242ac1300039", + "created": "5/19/2020 9:00:00 AM +00:00", + "description": "User provided description.", + "featureCounts": { + "directoryInfo": 1, + "level": 3, + "facility": 1, + "unit": 150, + "category": 8, + "areaElement": 0, + "opening": 10 + } + } + ] + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/CreateStateset.json b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/CreateStateset.json new file mode 100644 index 000000000000..4867a31308b1 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/CreateStateset.json @@ -0,0 +1,116 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]", + "datasetId": "5d34fbe8-87b7-f7c0-3144-c50e003a3c75", + "statesetCreateRequestBody": { + "styles": [ + { + "keyname": "s1", + "type": "boolean", + "rules": [ + { + "true": "#FF0000", + "false": "#00FF00" + } + ] + }, + { + "keyname": "s2", + "type": "number", + "rules": [ + { + "range": { + "exclusiveMaximum": 50 + }, + "color": "#343deb" + }, + { + "range": { + "minimum": 50, + "exclusiveMaximum": 70 + }, + "color": "#34ebb1" + }, + { + "range": { + "minimum": 70, + "exclusiveMaximum": 90 + }, + "color": "#eba834" + }, + { + "range": { + "minimum": 90 + }, + "color": "#eb3434" + } + ] + }, + { + "keyname": "s3", + "type": "string", + "rules": [ + { + "stateValue1": "#FF0000", + "stateValue2": "#FF00AA", + "stateValueN": "#00FF00" + } + ] + } + ] + } + }, + "responses": { + "200": { + "body": { + "statesetId": "b24bdb73-1305-3212-1909-a428d937b64f" + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/DeleteFeatureState.json b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/DeleteFeatureState.json new file mode 100644 index 000000000000..86a97a62d209 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/DeleteFeatureState.json @@ -0,0 +1,66 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]", + "statesetId": "b24bdb73-1305-3212-1909-a428d937b64", + "featureId": "SPC4709", + "stateKeyName": "keyName1" + }, + "responses": { + "200": {}, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "409": { + "headers": {}, + "body": { + "error": { + "code": "409 Conflict", + "message": "The request could not be completed due to a conflict with the current state of the resource." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/DeleteStateset.json b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/DeleteStateset.json new file mode 100644 index 000000000000..e6bf9ebe20a6 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/DeleteStateset.json @@ -0,0 +1,55 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]", + "statesetId": "b24bdb73-1305-3212-1909-a428d937b64f" + }, + "responses": { + "204": {}, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/GetStates.json b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/GetStates.json new file mode 100644 index 000000000000..e581ce3b7b5d --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/GetStates.json @@ -0,0 +1,66 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]", + "statesetId": "b24bdb73-1305-3212-1909-a428d937b64", + "featureId": "SPC4709" + }, + "responses": { + "200": { + "body": { + "states": [ + { + "keyName": "s1", + "value": true, + "eventTimestamp": "2019-08-16 13:01" + } + ] + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/GetStateset.json b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/GetStateset.json new file mode 100644 index 000000000000..5d2a45831fbf --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/GetStateset.json @@ -0,0 +1,117 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]", + "statesetId": "b24bdb73-1305-3212-1909-a428d937b64" + }, + "responses": { + "200": { + "body": { + "datasetIdList": [ + "8d700cc7-fd2c-4e21-b402-ad3f5e524f36" + ], + "statesetStyle": { + "styles": [ + { + "keyName": "s1", + "type": "boolean", + "rules": [ + { + "true": "#FFFF00", + "false": "#FFFFFF" + } + ] + }, + { + "keyName": "s2", + "type": "number", + "rules": [ + { + "range": { + "minimum": null, + "maximum": null, + "exclusiveMinumum": null, + "exclusiveMaximum": "50" + }, + "color": "#343deb" + }, + { + "range": { + "minimum": "50", + "maximum": null, + "exclusiveMinumum": null, + "exclusiveMaximum": "69" + }, + "color": "#34ebb1" + }, + { + "range": { + "minimum": "69", + "maximum": null, + "exclusiveMinumum": null, + "exclusiveMaximum": "90" + }, + "color": "#eba834" + }, + { + "range": { + "minimum": "90", + "maximum": null, + "exclusiveMinumum": null, + "exclusiveMaximum": null + }, + "color": "#eb3434" + } + ] + } + ] + } + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/Stateset_List.json b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/Stateset_List.json new file mode 100644 index 000000000000..bf547d808b57 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/Stateset_List.json @@ -0,0 +1,121 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]" + }, + "responses": { + "200": { + "body": { + "statesetDetailList": [ + { + "statesetId": "09abcdf8-cad0-b3dd-a38f-d5ee3cff5eea", + "datasetIdList": [ + "8d700cc7-fd2c-4e21-b402-ad3f5e524f36" + ], + "statesetStyle": { + "styles": [ + { + "keyName": "s1", + "type": "boolean", + "rules": [ + { + "true": "#0FFF00", + "false": "#00FFF0" + } + ] + }, + { + "keyName": "s2", + "type": "number", + "rules": [ + { + "range": { + "minimum": null, + "maximum": null, + "exclusiveMinumum": null, + "exclusiveMaximum": "50" + }, + "color": "#343deb" + }, + { + "range": { + "minimum": "50", + "maximum": null, + "exclusiveMinumum": null, + "exclusiveMaximum": "69" + }, + "color": "#34ebb1" + }, + { + "range": { + "minimum": "69", + "maximum": null, + "exclusiveMinumum": null, + "exclusiveMaximum": "90" + }, + "color": "#eba834" + }, + { + "range": { + "minimum": "90", + "maximum": null, + "exclusiveMinumum": null, + "exclusiveMaximum": null + }, + "color": "#eb3434" + } + ] + } + ] + } + } + ] + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/UpdateStates.json b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/UpdateStates.json new file mode 100644 index 000000000000..d19d997f16f9 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/UpdateStates.json @@ -0,0 +1,65 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]", + "statesetId": "b24bdb73-1305-3212-1909-a428d937b64", + "featureId": "SPC4709", + "featureStateUpdateRequestBody": { + "states": [ + { + "keyName": "s1", + "value": true, + "eventTimestamp": "2019-08-16 13:01" + } + ] + } + }, + "responses": { + "200": {}, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/UpdateStateset.json b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/UpdateStateset.json new file mode 100644 index 000000000000..e540bcda431a --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/UpdateStateset.json @@ -0,0 +1,101 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]", + "statesetId": "b24bdb73-1305-3212-1909-a428d937b64", + "statesetStyleUpdateRequestBody": { + "styles": [ + { + "keyname": "s1", + "type": "boolean", + "rules": [ + { + "true": "#FFFF00", + "false": "#FFFFFF" + } + ] + }, + { + "keyname": "s2", + "type": "number", + "rules": [ + { + "range": { + "exclusiveMaximum": 50 + }, + "color": "#343deb" + }, + { + "range": { + "minimum": 50, + "exclusiveMaximum": 69 + }, + "color": "#34ebb1" + }, + { + "range": { + "minimum": 69, + "exclusiveMaximum": 90 + }, + "color": "#eba834" + }, + { + "range": { + "minimum": 90 + }, + "color": "#eb3434" + } + ] + } + ] + } + }, + "responses": { + "200": {}, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/featurestate.json b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/featurestate.json new file mode 100644 index 000000000000..5f16128d33da --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/featurestate.json @@ -0,0 +1,841 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Maps Feature State Service", + "version": "1.0", + "description": "APIs for managing the dynamic feature states in Azure Maps." + }, + "host": "atlas.microsoft.com", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [ + "application/json" + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "These are the [Azure Active Directory OAuth2](https://docs.microsoft.com/en-us/azure/active-directory/develop/v1-overview) Flows. When paired with [Azure Role Based Access](https://docs.microsoft.com/en-us/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.\n\nTo 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.\n\n#### Note\n* 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).\n* The `Authorization URL` is specific to the Azure public cloud instance. Sovereign clouds have unique Authorization URLs and Azure Active directory configurations. \n* 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.\n* Usage of the [Azure Maps Web SDK](https://aka.ms/amaadmc) allows for configuration based setup of an application for multiple use cases.\n* Currently Azure Active Directory [v1.0](https://docs.microsoft.com/en-us/azure/active-directory/develop/azure-ad-endpoint-comparison) tokens are supported.", + "scopes": { + "user_impersonation": "Impersonates a user's Azure Active Directory account." + } + }, + "apiKeyQuery": { + "type": "apiKey", + "description": "This is a shared key which is provisioned when creating an [Azure Maps resource](https://aka.ms/amauth) through the Azure management plane via Azure portal, Powershell, CLI, Azure SDKs, or REST APIs. With this key, any application is authorized to access all REST APIs. In other words, these can currently be treated as master keys to the account which they are issued for. For publicly exposed applications our recommendation is to use server to server access of Azure Maps REST APIs where this key can be securely stored.", + "name": "subscription-key", + "in": "query" + } + }, + "security": [ + { + "azure_auth": [] + }, + { + "apiKeyQuery": [] + } + ], + "responses": { + "400": { + "description": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "401": { + "description": "Access denied due to invalid subscription key or invalid Azure Active Directory bearer token. Make sure to provide a valid key for an active Azure subscription and Maps resource. Otherwise, verify the [WWW-Authenticate](https://tools.ietf.org/html/rfc6750#section-3.1) header for error code and description of the provided AAD bearer token.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + }, + "headers": { + "WWW-Authenticate": { + "type": "string", + "description": "Bearer realm=\"https://atlas.microsoft.com/\", error=\"invalid_token\", error_description=\"The access token expired\"" + } + } + }, + "403": { + "description": "Permission, capacity, or authentication issues.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "404": { + "description": "Not Found: the requested resource could not be found, but it may be available again in the future.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "409": { + "description": "The request could not be completed due to a conflict with the current state of the resource. Likely caused by a parallel update to the same resource.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "500": { + "description": "An error occurred while processing the request. Please try again later.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + } + }, + "parameters": { + "SubscriptionKey": { + "name": "subscription-key", + "description": "One of the Azure Maps keys provided from an Azure Map Account. Please refer to this [article](https://docs.microsoft.com/azure/azure-maps/how-to-manage-authentication) for details on how to manage authentication.", + "type": "string", + "in": "query", + "required": false, + "x-ms-parameter-location": "client" + }, + "ApiVersion": { + "name": "api-version", + "description": "Version number of Azure Maps API. Current version is 1.0", + "type": "string", + "in": "query", + "required": true, + "default": "1.0", + "x-ms-parameter-location": "client" + }, + "DatasetIdForCreate": { + "name": "datasetId", + "description": "The datasetId must have been obtained from a successful [Dataset Create API](https://review.docs.microsoft.com/en-us/rest-staging/api/maps-master/dataset/createpreview?branch=lbs) call.", + "type": "string", + "in": "query", + "required": true, + "x-ms-parameter-location": "method" + }, + "StatesetId": { + "name": "statesetId", + "description": "The stateset id that was created.", + "type": "string", + "in": "query", + "required": true, + "x-ms-parameter-location": "method" + }, + "StatesetIdInPath": { + "name": "statesetId", + "description": "The stateset id that was created.", + "type": "string", + "in": "path", + "required": true, + "x-ms-parameter-location": "method" + }, + "FeatureIdSet": { + "name": "featureId", + "description": "The id of a feature in the given dataset. If the featureId is not present in the dataset, Bad Request response will be returned.", + "type": "string", + "in": "query", + "required": true, + "x-ms-parameter-location": "method" + }, + "FeatureIdGet": { + "name": "featureId", + "description": "The id of a feature in the given stateset. If no state was set for the featureId in the stateset earlier, Bad Request response will be returned.", + "type": "string", + "in": "query", + "required": true, + "x-ms-parameter-location": "method" + }, + "FeatureIdDelete": { + "name": "featureId", + "description": "The id of a feature in the given stateset. If no state was set for the featureId in the stateset earlier, Bad Request response will be returned.", + "type": "string", + "in": "query", + "required": true, + "x-ms-parameter-location": "method" + }, + "StateKeyNameDelete": { + "name": "stateKeyName", + "description": "The Name of the state to be deleted.", + "type": "string", + "in": "query", + "required": true, + "x-ms-parameter-location": "method" + } + }, + "paths": { + "/featureState/stateset/{statesetId}": { + "get": { + "x-publish": true, + "description": "**Applies to:** S1 pricing tier.\n
\n\nThis GET API allows the user to get the stateset Information.\n\nThe stateset Information includes the datasetId associated to the stateset, and the styles of that stateset.", + "operationId": "FeatureState_GetStatesetPreview", + "x-ms-examples": { + "Get stateset information with a statesetId": { + "$ref": "./examples/GetStateset.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/StatesetIdInPath" + } + ], + "responses": { + "200": { + "description": "Get request completed successfully.", + "schema": { + "$ref": "#/definitions/StatesetGetResponse" + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + }, + "delete": { + "x-publish": true, + "description": "**Applies to:** S1 pricing tier.
This DELETE API allows the user to delete the stateset and the associated data.", + "operationId": "FeatureState_DeleteStatesetPreview", + "x-ms-examples": { + "Delete an existing stateset": { + "$ref": "./examples/DeleteStateset.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/StatesetIdInPath" + } + ], + "responses": { + "204": { + "description": "Stateset Deleted." + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + }, + "put": { + "x-publish": true, + "description": "**Applies to:** S1 pricing tier.\n
\n\nThis PUT API allows the user to update the stateset style rules.", + "operationId": "FeatureState_PutStatesetPreview", + "x-ms-examples": { + "Update stateset style rules with a statesetId": { + "$ref": "./examples/UpdateStateset.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/StatesetIdInPath" + }, + { + "name": "statesetStyleUpdateRequestBody", + "in": "body", + "description": "The stateset style JSON data. Only style rules are allowed to be updated, update on keyname and type is not allowed.", + "required": true, + "schema": { + "$ref": "#/definitions/StylesObject" + } + } + ], + "responses": { + "200": { + "description": "Stateset styles are updated successfully." + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + }, + "/featureState/stateset": { + "post": { + "x-publish": true, + "description": "**Applies to:** S1 pricing tier.\n
\n\nThis POST API allows the user to create a new Stateset and define stateset style using request body.\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Feature State API is part of Creator. \n\nThe Feature State service allows the user to update the states of a feature and query them to be used in other services. The dynamic properties of a feature that don't belong to the dataset are referred to as *states* here.\n\nThis Feature State service pivot on the Stateset. Like Tileset, Stateset encapsulates the storage mechanism for feature states for a dataset.\n\nOnce the stateset is created, users can use that statesetId to post feature state updates and retrieve the current feature states. A feature can have only one state at a given point in time. \n\nFeature state is defined by the key name, value and the timestamp. When a feature state update is posted to Azure Maps, the state value gets updated only if the provided state’s timestamp is later than the stored timestamp. \n\nAzure Maps MapControl provides a way to use these feature states to style the features. Please refer to the State Tile documentation for more information.", + "operationId": "FeatureState_CreateStatesetPreview", + "x-ms-examples": { + "Create a new stateset with a datasetId": { + "$ref": "./examples/CreateStateset.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/DatasetIdForCreate" + }, + { + "name": "statesetCreateRequestBody", + "in": "body", + "description": "The stateset style JSON data.", + "required": true, + "schema": { + "$ref": "#/definitions/StylesObject" + } + } + ], + "responses": { + "200": { + "description": "Stateset created.", + "schema": { + "$ref": "#/definitions/StatesetCreatedResponse" + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + }, + "get": { + "x-publish": true, + "description": "**Applies to:** S1 pricing tier.
This API allows the caller to fetch a list of all previously successfully created statesets.", + "operationId": "FeatureState_ListStatesetPreview", + "x-ms-examples": { + "List all the previously created statesets": { + "$ref": "./examples/Stateset_List.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + } + ], + "responses": { + "200": { + "description": "The list stateset request completed successfully. The response body contains a list of all the previously created statesets.", + "schema": { + "$ref": "#/definitions/StatesetListResponse" + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + }, + "/featureState/state": { + "get": { + "x-publish": true, + "operationId": "FeatureState_GetStatesPreview", + "description": "**Applies to:** S1 pricing tier.
This API returns the current state information associated with the given feature in the given stateset.", + "x-ms-examples": { + "Get the current states of a feature": { + "$ref": "./examples/GetStates.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/StatesetId" + }, + { + "$ref": "#/parameters/FeatureIdGet" + } + ], + "responses": { + "200": { + "description": "Get request completed successfully.", + "schema": { + "$ref": "#/definitions/FeatureStatesStructure" + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + }, + "post": { + "x-publish": true, + "operationId": "FeatureState_UpdateStatesPreview", + "description": "**Applies to:** S1 pricing tier.
\nThis POST API allows the user to update the state of the given feature in the given stateset.", + "x-ms-examples": { + "Update the states of a feature": { + "$ref": "./examples/UpdateStates.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/StatesetId" + }, + { + "$ref": "#/parameters/FeatureIdSet" + }, + { + "name": "featureStateUpdateRequestBody", + "in": "body", + "description": "The feature state JSON data. A feature can have only one state at a given point in time. The specified state keyname must have been defined during the stateset creation.", + "required": true, + "schema": { + "$ref": "#/definitions/FeatureStatesStructure" + } + } + ], + "responses": { + "200": { + "description": "Feature states are updated successfully." + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + }, + "delete": { + "x-publish": true, + "operationId": "FeatureState_DeleteStatePreview", + "description": "**Applies to:** S1 pricing tier.
This API deletes the state information identified by the StateKeyName parameter for the feature identified by the FeatureId parameter in the the stateset.", + "x-ms-examples": { + "Delete the given feature state": { + "$ref": "./examples/DeleteFeatureState.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/StatesetId" + }, + { + "$ref": "#/parameters/FeatureIdDelete" + }, + { + "$ref": "#/parameters/StateKeyNameDelete" + } + ], + "responses": { + "200": { + "description": "Feature states deleted successfully." + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "409": { + "$ref": "#/responses/409" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + } + }, + "definitions": { + "ODataErrorResponse": { + "type": "object", + "description": "This response object is returned when an error occurs in the Maps API.", + "properties": { + "error": { + "$ref": "#/definitions/ODataError" + } + } + }, + "ODataError": { + "type": "object", + "description": "This object is returned when an error occurs in the Maps API.", + "properties": { + "code": { + "type": "string", + "readOnly": true, + "description": "The ODataError code." + }, + "message": { + "type": "string", + "readOnly": true, + "description": "If available, a human readable description of the error." + }, + "details": { + "type": "array", + "items": { + "$ref": "#/definitions/ODataError" + } + }, + "target": { + "type": "string", + "readOnly": true, + "description": "If available, the target causing the error." + } + } + }, + "StatesetGetResponse": { + "description": "The response model for the successful Stateset Get API.", + "type": "object", + "properties": { + "datasetIdList": { + "description": "Dataset ID associated with the stateset.", + "type": "array", + "items": { + "type": "string" + } + }, + "statesetStyle": { + "$ref": "#/definitions/StylesObject" + } + } + }, + "StatesetListResponse": { + "description": "The response model for the successful Stateset List API.", + "type": "object", + "properties": { + "statesetDetailList": { + "description": "A list of statesets information.", + "type": "array", + "items": { + "$ref": "#/definitions/StatesetInfoObject" + } + } + } + }, + "StatesetInfoObject": { + "description": "The stateset information detail.", + "type": "object", + "properties": { + "statesetId": { + "description": "The stateset ID of this stateset.", + "type": "string" + }, + "datasetIdList": { + "description": "Dataset ID associated with the stateset.", + "type": "array", + "items": { + "type": "string" + } + }, + "statesetStyle": { + "$ref": "#/definitions/StylesObject" + } + } + }, + "StatesetCreatedResponse": { + "description": "The response model for the successful Stateset Create API.", + "type": "object", + "properties": { + "statesetId": { + "description": "The ID for the new stateset created.", + "type": "string", + "readOnly": true + } + } + }, + "FeatureStatesStructure": { + "description": "The feature states model for a feature.", + "type": "object", + "properties": { + "states": { + "description": "The feature states array.", + "type": "array", + "items": { + "$ref": "#/definitions/FeatureStateObject" + } + } + } + }, + "FeatureStateObject": { + "description": "Single feature state model.", + "type": "object", + "properties": { + "keyName": { + "description": "Feature state Keyname.", + "type": "string" + }, + "value": { + "description": "Value for the feature state.", + "type": "object" + }, + "eventTimestamp": { + "description": "Timestamp when the feature state was captured.", + "type": "string" + } + } + }, + "StylesObject": { + "description": "The styles model.", + "type": "object", + "properties": { + "styles": { + "description": "An array of stateset styles. The style rule could be a numeric or string or a boolean type style rule. Refer to NumberRuleObject, StringRuleObject and BooleanRuleObject definitions [here](https://aka.ms/AzureMapsStatesetStylesObject). ", + "type": "array", + "items": { + "$ref": "#/definitions/StyleObject" + } + } + } + }, + "StyleObject": { + "description": "The stateset style model. The style rule could be a numeric type style rule or a boolean type style rule. Refer to NumberRuleObject, StringRuleObject and BooleanRuleObject definitions [here](https://aka.ms/AzureMapsStatesetStylesObject). ", + "type": "object" + }, + "NumberRuleObject": { + "description": "The numeric rule", + "type": "object", + "properties": { + "range": { + "$ref": "#/definitions/RangeObject" + }, + "color": { + "description": "Color is a JSON string in a variety of permitted formats, HTML-style hex values, RGB (\"#ff0\", \"#ffff00\", \"rgb(255, 255, 0)\"), RGBA (\"rgba(255, 255, 0, 1)\"), HSL(\"hsl(100, 50%, 50%)\"), and HSLA(\"hsla(100, 50%, 50%, 1)\"). Predefined HTML colors names, like yellow and blue, are also permitted.", + "type": "string" + } + } + }, + "RangeObject": { + "description": "The numeric value range for this style rule, If the value is in the range, all the conditions must hold true.", + "type": "object", + "properties": { + "minimum": { + "description": "All the number x that x ≥ minimum.", + "type": "number", + "format": "double" + }, + "maximum": { + "description": "All the number x that x ≤ maximum.", + "type": "number", + "format": "double" + }, + "exclusiveMinimum": { + "description": "All the number x that x > exclusiveMinimum.", + "type": "number", + "format": "double" + }, + "exclusiveMaximum": { + "description": "All the number x that x < exclusiveMaximum.", + "type": "number", + "format": "double" + } + } + }, + "BooleanRuleObject": { + "description": "the boolean rule", + "type": "object", + "properties": { + "true": { + "description": "The color when value is true.", + "type": "string" + }, + "false": { + "description": "The color when value is false.", + "type": "string" + } + } + }, + "StringRuleObject": { + "description": "The string rule. The string value matching is case sensitive. If a feature's state doesn't match any of the values defined here, that feature will not have any dynamic style. If duplicate string values are given, the first one takes precedence.", + "type": "object", + "properties": { + "stateValue1": { + "description": "The color when value string is stateValue1.", + "type": "string" + }, + "stateValue2": { + "description": "The color when value string is stateValue2.", + "type": "string" + }, + "stateValueN": { + "description": "The color when value string is stateValueN.", + "type": "string" + } + } + }, + "StyleRuleBase": { + "description": "contains common properties for numeric, string and boolean style rules.", + "discriminator": "type", + "required": [ + "keyName", + "type" + ], + "properties": { + "keyName": { + "description": "Stateset style key name. Key names are random strings but they should be unique inside style array.", + "type": "string" + }, + "type": { + "description": "The type of stateset style.", + "type": "string", + "enum": [ + "number", + "boolean", + "string" + ] + } + } + }, + "BooleanTypeStyleRule": { + "description": "the boolean type style rule object.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/StyleRuleBase" + } + ], + "properties": { + "rules": { + "description": "Boolean style rules.", + "type": "array", + "items": { + "$ref": "#/definitions/BooleanRuleObject" + } + } + } + }, + "NumberTypeStyleRule": { + "description": "The numeric type style rule object.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/StyleRuleBase" + } + ], + "properties": { + "rules": { + "description": "Numeric style rules.", + "type": "array", + "items": { + "$ref": "#/definitions/NumberRuleObject" + } + } + } + }, + "StringTypeStyleRule": { + "description": "The string type style rule object.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/StyleRuleBase" + } + ], + "properties": { + "rules": { + "description": "String style rules.", + "type": "array", + "items": { + "$ref": "#/definitions/StringRuleObject" + } + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/Create.json b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/Create.json new file mode 100644 index 000000000000..8767d242b699 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/Create.json @@ -0,0 +1,72 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]", + "datasetId": "[dataset-Id]" + }, + "responses": { + "201": { + "headers": { + "Location": "https://atlas.microsoft.com/tileset/{tilesetId}?api-version=1.0", + "Access-Control-Expose-Headers": "Location" + }, + "body": { + "operationId": "{operationId}", + "status": "Succeeded", + "created": "2020-01-02 1:02:03 AM +00:00", + "resourceLocation": "https://atlas.microsoft.com/tileset/{tilesetId}?api-version=1.0" + } + }, + "202": { + "headers": { + "Location": "https://atlas.microsoft.com/tileset/operations/{operationId}?api-version=1.0", + "Access-Control-Expose-Headers": "Location" + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/Delete.json b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/Delete.json new file mode 100644 index 000000000000..8f36f5a7d813 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/Delete.json @@ -0,0 +1,57 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]", + "tilesetId": "25084fb7-307a-4720-8f91-7952a0b91012" + }, + "responses": { + "204": { + "body": {} + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/List.json b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/List.json new file mode 100644 index 000000000000..382cb4025edf --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/List.json @@ -0,0 +1,85 @@ +{ + "parameters": { + "api-version": "1.0", + "subscription-key": "[subscription-key]" + }, + "responses": { + "200": { + "body": { + "tilesets": [ + { + "tilesetId": "d8fa86de-bb0f-4a02-a6ff-62ae7545dd84", + "datasetId": "63b18a6b-ac35-4b23-a1d9-ffa1003ad50b", + "description": "My first tileset", + "minZoom": 16, + "maxZoom": 18, + "bbox": [ + -122.13595, + 47.636524, + -122.1329, + 47.637525 + ] + }, + { + "tilesetId": "b8dca8b3-8aad-4afe-abd6-0efe37b5a2e3", + "datasetId": "c0a01139-662e-4d5a-bf5f-92ea4a292aad", + "description": "My second tileset", + "minZoom": 19, + "maxZoom": 19, + "bbox": [ + -122.13595, + 47.636524, + -122.1329, + 47.637525 + ] + } + ] + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json new file mode 100644 index 000000000000..9960c7dd7251 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json @@ -0,0 +1,479 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Maps Tileset Service", + "version": "1.0", + "description": "APIs for managing Tilesets." + }, + "host": "atlas.microsoft.com", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [ + "application/json" + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "These are the [Azure Active Directory OAuth2](https://docs.microsoft.com/en-us/azure/active-directory/develop/v1-overview) Flows. When paired with [Azure Role Based Access](https://docs.microsoft.com/en-us/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.\n\nTo 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.\n\n#### Note\n* 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).\n* The `Authorization URL` is specific to the Azure public cloud instance. Sovereign clouds have unique Authorization URLs and Azure Active directory configurations. \n* 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.\n* Usage of the [Azure Maps Web SDK](https://aka.ms/amaadmc) allows for configuration based setup of an application for multiple use cases.\n* Currently Azure Active Directory [v1.0](https://docs.microsoft.com/en-us/azure/active-directory/develop/azure-ad-endpoint-comparison) tokens are supported.", + "scopes": { + "user_impersonation": "Impersonates a user's Azure Active Directory account." + } + }, + "apiKeyQuery": { + "type": "apiKey", + "description": "This is a shared key which is provisioned when creating an [Azure Maps resource](https://aka.ms/amauth) through the Azure management plane via Azure portal, Powershell, CLI, Azure SDKs, or REST APIs. With this key, any application is authorized to access all REST APIs. In other words, these can currently be treated as master keys to the account which they are issued for. For publicly exposed applications our recommendation is to use server to server access of Azure Maps REST APIs where this key can be securely stored.", + "name": "subscription-key", + "in": "query" + } + }, + "security": [ + { + "azure_auth": [] + }, + { + "apiKeyQuery": [] + } + ], + "responses": { + "400": { + "description": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "401": { + "description": "Access denied due to invalid subscription key or invalid Azure Active Directory bearer token. Make sure to provide a valid key for an active Azure subscription and Maps resource. Otherwise, verify the [WWW-Authenticate](https://tools.ietf.org/html/rfc6750#section-3.1) header for error code and description of the provided AAD bearer token.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + }, + "headers": { + "WWW-Authenticate": { + "type": "string", + "description": "Bearer realm=\"https://atlas.microsoft.com/\", error=\"invalid_token\", error_description=\"The access token expired\"" + } + } + }, + "403": { + "description": "Permission, capacity, or authentication issues.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "404": { + "description": "Not Found: the requested resource could not be found, but it may be available again in the future.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "500": { + "description": "An error occurred while processing the request. Please try again later.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "201Async": { + "description": "The resource has been created successfully.", + "schema": { + "$ref": "#/definitions/LongRunningOperationResult" + }, + "headers": { + "Location": { + "type": "string", + "description": "A URI where details on the newly created resource can be found." + } + } + }, + "202Async": { + "description": "**Supported only for async request.**\nRequest Accepted: The request has been accepted for processing. Please use the URL in the Location Header to retry or access the results.", + "headers": { + "Location": { + "type": "string", + "description": "New URL to check for the results of the long running process." + } + } + } + }, + "parameters": { + "ClientId": { + "name": "x-ms-client-id", + "description": "Specifies which account is intended for usage in conjunction with the Azure AD security model. It represents a unique ID for the Azure Maps account and can be retrieved from Azure Maps management plane Account API. To use Azure AD security in Azure Maps see the following [articles](https://aka.ms/amauthdetails) for guidance.", + "type": "string", + "in": "header", + "required": false, + "x-ms-parameter-location": "client" + }, + "SubscriptionKey": { + "name": "subscription-key", + "description": "One of the Azure Maps keys provided from an Azure Map Account. Please refer to this [article](https://docs.microsoft.com/azure/azure-maps/how-to-manage-authentication) for details on how to manage authentication.", + "type": "string", + "in": "query", + "required": false, + "x-ms-parameter-location": "client" + }, + "ApiVersion": { + "name": "api-version", + "description": "Version number of Azure Maps API. Current version is 1.0", + "type": "string", + "in": "query", + "required": true, + "default": "1.0", + "x-ms-parameter-location": "client" + }, + "JsonFormat": { + "name": "format", + "description": "Desired format of the response. Only `json` format is supported.", + "type": "string", + "in": "path", + "required": true, + "enum": [ + "json" + ], + "x-ms-enum": { + "name": "JsonFormat", + "modelAsString": true, + "values": [ + { + "value": "json", + "description": "[The JavaScript Object Notation Data Interchange Format](https://tools.ietf.org/html/rfc8259)" + } + ] + }, + "x-ms-parameter-location": "method" + }, + "DatasetIdQuery": { + "name": "datasetId", + "description": "The unique `datasetId` that the tileset create API uses to retrieve features to generate tiles. The `datasetId` must have been obtained from a successful [Dataset Create API](/en-us/rest/api/maps/dataset/createpreview) call.", + "type": "string", + "in": "query", + "required": true, + "x-ms-parameter-location": "client" + }, + "TilesetId": { + "name": "tilesetId", + "description": "The Tileset Id", + "type": "string", + "in": "path", + "required": true, + "x-ms-parameter-location": "method" + }, + "DescriptionTileset": { + "name": "description", + "description": "User provided description of the tileset.", + "type": "string", + "in": "query", + "required": false, + "x-ms-parameter-location": "method" + } + }, + "paths": { + "/tileset/create/vector": { + "post": { + "x-publish": true, + "description": "**Tileset Create API**\n\n**Applies to**: S1 pricing tier.\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API \nand SDK. The Tileset API is part of Creator.\n\nThe Tileset Create API allows the caller to create a tileset from a dataset. A tileset contains a set of tiles that can be consumed \nfrom the [Get Map Tile](/rest/api/maps/render/getmaptile) to retrieve custom tiles. To make a dataset, use the \n[DataSet Create API](/rest/api/maps/dataset/createpreview).\n\n## Submit Create Request\n\nTo create your tileset you will make a `POST` request with an empty body. The `datasetId` query parameter will be \nused as the source of the tileset data.\n\nThe Create Tileset API is a \n[long-running request](https://aka.ms/am-creator-lrt).", + "operationId": "Tileset_CreatePreview", + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-examples": { + "Create Tileset by providing a Dataset Id": { + "$ref": "./examples/Create.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ClientId" + }, + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/DatasetIdQuery" + }, + { + "$ref": "#/parameters/DescriptionTileset" + } + ], + "responses": { + "201": { + "$ref": "#/responses/201Async" + }, + "202": { + "$ref": "#/responses/202Async" + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + }, + "/tileset": { + "get": { + "x-publish": true, + "description": "**Tileset List API**\n\n**Applies to:** S1 pricing tier.\n
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Tileset API is part of Creator.\nThis API allows the caller to fetch a list of all tilesets created. \n
", + "operationId": "Tileset_ListPreview", + "x-ms-examples": { + "Get a list of all tilesets": { + "$ref": "./examples/List.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ClientId" + }, + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + } + ], + "responses": { + "200": { + "description": "List tileset request completed successfully. The response body contains a list of all tilesets.", + "schema": { + "$ref": "#/definitions/TilesetListResponse" + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + }, + "/tileset/{tilesetId}": { + "delete": { + "x-publish": true, + "description": "**Tileset Delete API**\n\n**Applies to:** S1 pricing tier.\n
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Tileset API is part of Creator.\nThis API allows the caller to delete a created tileset.
\nYou can use this API if a tileset is no longer needed. \n\n### Submit Delete Request\n\nTo delete your content you will issue a `DELETE` request where the path will contain the `tilesetId` of the tileset to delete.
\n\n#### Delete request \"Successful\"\n\nThe Tileset Delete API returns a HTTP `204 No Content` response with an empty body, if the tileset was deleted successfully.
\n\n#### Delete request \"Failed\"\n\nA HTTP `400 Bad Request` error response will be returned if the tileset with the passed-in `tilesetId` is not found. \n\nHere is a sample error response:\n\n
\n\n```json\n{\n \"error\": {\n \"code\": \"400 BadRequest\",\n \"message\": \"Bad request - Tileset Id: d85b5b27-5fc4-4599-8b50-47160e90f8ce does not exist.\"\n }\n}\n```", + "operationId": "Tileset_DeletePreview", + "x-ms-examples": { + "Delete a created tileset": { + "$ref": "./examples/Delete.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ClientId" + }, + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/TilesetId" + } + ], + "responses": { + "204": { + "description": "Tileset delete request completed successfully.", + "schema": { + "$ref": "#/definitions/TilesetDeleteResponse" + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + } + }, + "definitions": { + "ODataErrorResponse": { + "type": "object", + "description": "This response object is returned when an error occurs in the Maps API.", + "properties": { + "error": { + "$ref": "#/definitions/ODataError" + } + } + }, + "ODataError": { + "type": "object", + "description": "This object is returned when an error occurs in the Maps API.", + "properties": { + "code": { + "type": "string", + "readOnly": true, + "description": "The ODataError code." + }, + "message": { + "type": "string", + "readOnly": true, + "description": "If available, a human readable description of the error." + }, + "details": { + "type": "array", + "items": { + "$ref": "#/definitions/ODataError" + } + }, + "target": { + "type": "string", + "readOnly": true, + "description": "If available, the target causing the error." + } + } + }, + "LongRunningOperationResult": { + "description": "The response model for a Long-Running Operations API.", + "type": "object", + "properties": { + "operationId": { + "description": "The Id for this long-running operation.", + "type": "string" + }, + "status": { + "description": "The status state of the request.", + "type": "string", + "enum": [ + "NotStarted", + "Running", + "Failed", + "Succeeded" + ], + "x-ms-enum": { + "name": "type", + "modelAsString": true, + "values": [ + { + "value": "NotStarted", + "description": "The request has not started processing yet." + }, + { + "value": "Running", + "description": "The request has started processing." + }, + { + "value": "Failed", + "description": "The request has one or more failures." + }, + { + "value": "Succeeded", + "description": "The request has successfully completed." + } + ] + }, + "readOnly": true + }, + "created": { + "description": "The created timestamp.", + "type": "string", + "readOnly": true + }, + "resourceLocation": { + "description": "The location URI for details about the created resource. This is only provided when the request was successfully completed.", + "type": "string", + "readOnly": true + }, + "error": { + "$ref": "#/definitions/ODataError" + }, + "warning": { + "$ref": "#/definitions/ODataError" + } + } + }, + "TilesetListResponse": { + "description": "The response model for the Tileset List API. Returns a list of all tilesets.", + "type": "object", + "properties": { + "tilesets": { + "description": "A list of all tilesets.", + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/TilesetDetailInfo" + } + } + } + }, + "TilesetDetailInfo": { + "description": "Detail information for the data.", + "type": "object", + "properties": { + "tilesetId": { + "description": "The unique tileset id for the tileset.", + "type": "string", + "readOnly": true + }, + "datasetId": { + "description": "The unique dataset Id used to create the tileset.", + "type": "string", + "readOnly": true + }, + "description": { + "description": "The description the caller provided when creating the tileset. Maximum length 1024 characters.", + "type": "string", + "readOnly": true + }, + "minZoom": { + "description": "The lowest tile zoom level tile generated for the tileset.", + "type": "integer", + "readOnly": true + }, + "maxZoom": { + "description": "The highest tile zoom level tile generated for the tileset.", + "type": "integer", + "readOnly": true + }, + "bbox": { + "description": "Bounding box which all features of the tileset lay within. Projection used - EPSG:3857. Format : 'minLon, minLat, maxLon, maxLat'.", + "type": "array", + "readOnly": true, + "items": { + "type": "number" + } + } + } + }, + "TilesetDeleteResponse": { + "description": "The response model for the Delete API. The response body will be empty signifying there's no content available for the `tilesetId` anymore.", + "type": "object" + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/DeleteItem.json b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/DeleteItem.json new file mode 100644 index 000000000000..127a25dc1639 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/DeleteItem.json @@ -0,0 +1,57 @@ +{ + "parameters": { + "api-version": "1.0", + "datasetid": "018fda98-e638-0edf-5ef7-28491ff3bed4", + "subscription-key": "[subscription-key]", + "collectionId": "facility", + "featureId": "FCL39" + }, + "responses": { + "204": {}, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollection.json b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollection.json new file mode 100644 index 000000000000..583b150414ee --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollection.json @@ -0,0 +1,78 @@ +{ + "parameters": { + "api-version": "1.0", + "datasetid": "018fda98-e638-0edf-5ef7-28491ff3bed4", + "subscription-key": "[subscription-key]", + "collectionId": "unit" + }, + "responses": { + "200": { + "body": { + "name": "unit", + "description": "A physical and non-overlapping area which might be occupied and traversed by a navigating agent. Can be a hallway, a room, a courtyard, etc. It is surrounded by physical obstruction (wall), unless the isOpenArea attribute is equal to true, and one must add openings where the obstruction shouldn't be there. If isOpenArea attribute is equal to true, all the sides are assumed open to the surroundings and walls are to be added where needed. Walls for open areas are represented as a lineElement or areaElement with isObstruction equal to true.", + "links": [ + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/unit/definition?api-version=1.0", + "rel": "describedBy", + "title": "Metadata catalogue for unit" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/unit/items?api-version=1.0", + "rel": "data", + "title": "unit" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/unit?api-version=1.0", + "rel": "self", + "title": "Metadata catalogue for unit" + } + ] + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollectionDefinition.json b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollectionDefinition.json new file mode 100644 index 000000000000..e4d17ccf6650 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollectionDefinition.json @@ -0,0 +1,196 @@ +{ + "parameters": { + "api-version": "1.0", + "datasetid": "018fda98-e638-0edf-5ef7-28491ff3bed4", + "subscription-key": "[subscription-key]", + "collectionId": "unit" + }, + "responses": { + "200": { + "body": { + "idPrefix": "UNIT", + "name": "unit", + "description": "A physical and non-overlapping area which might be occupied and traversed by a navigating agent. Can be a hallway, a room, a courtyard, etc. It is surrounded by physical obstruction (wall), unless the isOpenArea attribute is equal to true, and one must add openings where the obstruction shouldn't be there. If isOpenArea attribute is equal to true, all the sides are assumed open to the surroundings and walls are to be added where needed. Walls for open areas are represented as a lineElement or areaElement with isObstruction equal to true.", + "geometryType": "Polygon", + "featureTypes": [], + "properties": [ + { + "name": "externalId", + "required": false, + "type": "text" + }, + { + "name": "originalId", + "required": false, + "type": "text" + }, + { + "name": "categoryId", + "required": true, + "type": { + "featureId": "category" + } + }, + { + "name": "isOpenArea", + "required": false, + "type": "boolean" + }, + { + "name": "navigableBy", + "required": false, + "type": { + "array": { + "enum": [ + "pedestrian", + "wheelchair", + "machine", + "bicycle", + "automobile", + "hiredAuto", + "bus", + "railcar", + "emergency", + "ferry", + "boat" + ] + } + } + }, + { + "name": "isRoutable", + "required": false, + "type": "boolean" + }, + { + "name": "routeThroughBehavior", + "required": false, + "type": { + "enum": [ + "disallowed", + "allowed", + "preferred" + ] + } + }, + { + "name": "nonPublic", + "required": false, + "type": "boolean" + }, + { + "name": "levelId", + "required": true, + "type": { + "featureId": "level" + } + }, + { + "name": "occupants", + "required": false, + "type": { + "array": { + "featureId": "directoryInfo" + } + } + }, + { + "name": "addressId", + "required": false, + "type": { + "featureId": "directoryInfo" + } + }, + { + "name": "addressRoomNumber", + "required": false, + "type": "text" + }, + { + "name": "name", + "required": false, + "type": "text" + }, + { + "name": "nameSubtitle", + "required": false, + "type": "text" + }, + { + "name": "nameAlt", + "required": false, + "type": "text" + }, + { + "name": "anchorPoint", + "required": false, + "type": { + "geometry": [ + "Point" + ], + "isFragmented": false, + "srid": 4326 + } + } + ], + "links": [ + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/unit/definition?api-version=1.0", + "rel": "self", + "title": "Metadata catalogue for unit" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/unit/items?api-version=1.0", + "rel": "data", + "title": "unit" + } + ] + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollections.json b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollections.json new file mode 100644 index 000000000000..7048a3299237 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollections.json @@ -0,0 +1,297 @@ +{ + "parameters": { + "api-version": "1.0", + "datasetid": "018fda98-e638-0edf-5ef7-28491ff3bed4", + "subscription-key": "[subscription-key]" + }, + "responses": { + "200": { + "body": { + "collections": [ + { + "name": "unit", + "description": "A physical and non-overlapping area which might be occupied and traversed by a navigating agent. Can be a hallway, a room, a courtyard, etc. It is surrounded by physical obstruction (wall), unless the isOpenArea attribute is equal to true, and one must add openings where the obstruction shouldn't be there. If isOpenArea attribute is equal to true, all the sides are assumed open to the surroundings and walls are to be added where needed. Walls for open areas are represented as a lineElement or areaElement with isObstruction equal to true.", + "links": [ + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/unit/definition?api-version=1.0", + "rel": "describedBy", + "title": "Metadata catalogue for unit" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/unit/items?api-version=1.0", + "rel": "data", + "title": "unit" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/unit?api-version=1.0", + "rel": "self", + "title": "Metadata catalogue for unit" + } + ] + }, + { + "name": "zone", + "description": "A virtual area. ex, wifi zone, emergency assembly area. Zones can be used as destinations but not meant for through traffic.", + "links": [ + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/zone/definition?api-version=1.0", + "rel": "describedBy", + "title": "Metadata catalogue for zone" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/zone/items?api-version=1.0", + "rel": "data", + "title": "zone" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/zone?api-version=1.0", + "rel": "self", + "title": "Metadata catalogue for zone" + } + ] + }, + { + "name": "level", + "description": "An indication of the extent and vertical position of a set of features.", + "links": [ + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/level/definition?api-version=1.0", + "rel": "describedBy", + "title": "Metadata catalogue for level" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/level/items?api-version=1.0", + "rel": "data", + "title": "level" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/level?api-version=1.0", + "rel": "self", + "title": "Metadata catalogue for level" + } + ] + }, + { + "name": "facility", + "description": "Area of the site, building footprint etc.", + "links": [ + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/facility/definition?api-version=1.0", + "rel": "describedBy", + "title": "Metadata catalogue for facility" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/facility/items?api-version=1.0", + "rel": "data", + "title": "facility" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/facility?api-version=1.0", + "rel": "self", + "title": "Metadata catalogue for facility" + } + ] + }, + { + "name": "verticalPenetration", + "description": "An area that, when used in a set, represents a method of navigating vertically between levels. It can be used to model stairs, elevators etc. Geometry can overlap units and other vertical penetration features.", + "links": [ + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/verticalPenetration/definition?api-version=1.0", + "rel": "describedBy", + "title": "Metadata catalogue for verticalPenetration" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/verticalPenetration/items?api-version=1.0", + "rel": "data", + "title": "verticalPenetration" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/verticalPenetration?api-version=1.0", + "rel": "self", + "title": "Metadata catalogue for verticalPenetration" + } + ] + }, + { + "name": "opening", + "description": "A usually-traversable boundary between two units, or a unit and verticalPenetration.", + "links": [ + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/opening/definition?api-version=1.0", + "rel": "describedBy", + "title": "Metadata catalogue for opening" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/opening/items?api-version=1.0", + "rel": "data", + "title": "opening" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/opening?api-version=1.0", + "rel": "self", + "title": "Metadata catalogue for opening" + } + ] + }, + { + "name": "directoryInfo", + "description": "Name, address, phone number, website, and hours of operation for a unit, facility, or an occupant of a unit or facility.", + "links": [ + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/directoryInfo/definition?api-version=1.0", + "rel": "describedBy", + "title": "Metadata catalogue for directoryInfo" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/directoryInfo/items?api-version=1.0", + "rel": "data", + "title": "directoryInfo" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/directoryInfo?api-version=1.0", + "rel": "self", + "title": "Metadata catalogue for directoryInfo" + } + ] + }, + { + "name": "pointElement", + "description": "A point feature in a unit, such as a first aid kit or a sprinkler head.", + "links": [ + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/pointElement/definition?api-version=1.0", + "rel": "describedBy", + "title": "Metadata catalogue for pointElement" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/pointElement/items?api-version=1.0", + "rel": "data", + "title": "pointElement" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/pointElement?api-version=1.0", + "rel": "self", + "title": "Metadata catalogue for pointElement" + } + ] + }, + { + "name": "lineElement", + "description": "A line feature in a unit, such as a dividing wall, window.", + "links": [ + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/lineElement/definition?api-version=1.0", + "rel": "describedBy", + "title": "Metadata catalogue for lineElement" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/lineElement/items?api-version=1.0", + "rel": "data", + "title": "lineElement" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/lineElement?api-version=1.0", + "rel": "self", + "title": "Metadata catalogue for lineElement" + } + ] + }, + { + "name": "areaElement", + "description": "A polygon feature in a unit, such as an area open to below, an obstruction like an island in a unit.", + "links": [ + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/areaElement/definition?api-version=1.0", + "rel": "describedBy", + "title": "Metadata catalogue for areaElement" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/areaElement/items?api-version=1.0", + "rel": "data", + "title": "areaElement" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/areaElement?api-version=1.0", + "rel": "self", + "title": "Metadata catalogue for areaElement" + } + ] + }, + { + "name": "category", + "description": "Category names. e.g. \"room.conference\". The isRoutable attribute puts a feature with that category on the routing graph. The routeThroughBehavior attribute determines whether a feature can be used for through traffic or not.", + "links": [ + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/category/definition?api-version=1.0", + "rel": "describedBy", + "title": "Metadata catalogue for category" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/category/items?api-version=1.0", + "rel": "data", + "title": "category" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/category?api-version=1.0", + "rel": "self", + "title": "Metadata catalogue for category" + } + ] + } + ], + "links": [ + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections?api-version=1.0", + "rel": "self" + } + ] + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetConformance.json b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetConformance.json new file mode 100644 index 000000000000..2087dca71fe4 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetConformance.json @@ -0,0 +1,64 @@ +{ + "parameters": { + "api-version": "1.0", + "datasetid": "018fda98-e638-0edf-5ef7-28491ff3bed4", + "subscription-key": "[subscription-key]" + }, + "responses": { + "200": { + "body": { + "conformsTo": [ + "http://www.opengis.net/spec/wfs-1/3.0/req/core", + "http://www.opengis.net/spec/wfs-1/3.0/req/oas30", + "http://www.opengis.net/spec/wfs-1/3.0/req/geojson", + "http://tempuri.org/wfs/3.0/edit" + ] + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetItem.json b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetItem.json new file mode 100644 index 000000000000..a83972b09aa0 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetItem.json @@ -0,0 +1,128 @@ +{ + "parameters": { + "api-version": "1.0", + "datasetid": "018fda98-e638-0edf-5ef7-28491ff3bed4", + "subscription-key": "[subscription-key]", + "collectionId": "unit", + "featureId": "UNIT39" + }, + "responses": { + "200": { + "body": { + "feature": { + "type": "feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 139.63304057829211, + 35.457686686108559 + ], + [ + 139.63296283234274, + 35.457783904258683 + ], + [ + 139.63308672404617, + 35.457850229062018 + ], + [ + 139.63314516916711, + 35.457777145699858 + ], + [ + 139.63312747036289, + 35.457767670747167 + ], + [ + 139.63314677109963, + 35.457743535881377 + ], + [ + 139.63304057829211, + 35.457686686108559 + ] + ] + ] + }, + "properties": { + "originalId": "ddbbb583-4621-4e11-8859-299d1057e843", + "categoryId": "CTG10", + "isOpenArea": false, + "navigableBy": [ + "pedestrian" + ], + "isRoutable": false, + "routeThroughBehavior": "allowed", + "nonPublic": false, + "levelId": "LVL18", + "occupants": [], + "addressId": "DIR16", + "addressRoomNumber": "", + "name": "21N13", + "nameSubtitle": "", + "nameAlt": "" + }, + "id": "UNIT39", + "featureType": "" + }, + "links": [ + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/unit/items/UNIT39?api-version=1.0", + "rel": "self" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/unit?api-version=1.0", + "rel": "data" + } + ] + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetItems.json b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetItems.json new file mode 100644 index 000000000000..0d83c6416334 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetItems.json @@ -0,0 +1,137 @@ +{ + "parameters": { + "api-version": "1.0", + "datasetid": "018fda98-e638-0edf-5ef7-28491ff3bed4", + "subscription-key": "[subscription-key]", + "collectionId": "unit", + "limit": 1, + "bbox": "-122, 47, -120, 46" + }, + "responses": { + "200": { + "body": { + "type": "FeatureCollection", + "features": [ + { + "type": "feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 139.63304057829211, + 35.457686686108559 + ], + [ + 139.63296283234274, + 35.457783904258683 + ], + [ + 139.63308672404617, + 35.457850229062018 + ], + [ + 139.63314516916711, + 35.457777145699858 + ], + [ + 139.63312747036289, + 35.457767670747167 + ], + [ + 139.63314677109963, + 35.457743535881377 + ], + [ + 139.63304057829211, + 35.457686686108559 + ] + ] + ] + }, + "properties": { + "originalId": "ddbbb583-4621-4e11-8859-299d1057e843", + "categoryId": "CTG10", + "isOpenArea": false, + "navigableBy": [ + "pedestrian" + ], + "isRoutable": false, + "routeThroughBehavior": "allowed", + "nonPublic": false, + "levelId": "LVL18", + "occupants": [], + "addressId": "DIR16", + "addressRoomNumber": "", + "name": "21N13", + "nameSubtitle": "", + "nameAlt": "" + }, + "id": "UNIT39", + "featureType": "" + } + ], + "numberReturned": 1, + "links": [ + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/unit/items?api-version=1.0&limit=1", + "rel": "self" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/unit?api-version=1.0", + "rel": "data" + }, + { + "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/unit/items?n=PMRG4ZLYOQRDUMJMEJYHEZLWEI5C2ML5&api-version=1.0&limit=1", + "rel": "next" + } + ] + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetLandingPage.json b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetLandingPage.json new file mode 100644 index 000000000000..028fa8cfe0aa --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetLandingPage.json @@ -0,0 +1,85 @@ +{ + "parameters": { + "api-version": "1.0", + "datasetid": "018fda98-e638-0edf-5ef7-28491ff3bed4", + "subscription-key": "[subscription-key]" + }, + "responses": { + "200": { + "body": { + "links": [ + { + "href": "https://atlas.microsoft.com/wfs/datasets/018fda98-e638-0edf-5ef7-28491ff3bed4", + "rel": "self", + "title": "Azure Maps WFS" + }, + { + "href": "https://atlas.microsoft.com/wfs/datasets/018fda98-e638-0edf-5ef7-28491ff3bed4/api", + "rel": "service", + "title": "The API definition" + }, + { + "href": "https://atlas.microsoft.com/wfs/datasets/018fda98-e638-0edf-5ef7-28491ff3bed4/conformance", + "rel": "conformance", + "title": "WFS 3.0 conformance classes implemented by this server" + }, + { + "href": "https://atlas.microsoft.com/wfs/datasets/018fda98-e638-0edf-5ef7-28491ff3bed4/version", + "rel": "data", + "title": "The version information" + }, + { + "href": "https://atlas.microsoft.com/wfs/datasets/018fda98-e638-0edf-5ef7-28491ff3bed4/collections", + "rel": "data", + "title": "Metadata about the feature collections" + } + ] + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/wfs.json b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/wfs.json new file mode 100644 index 000000000000..962c2490603e --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/wfs.json @@ -0,0 +1,984 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Maps Web Feature Service", + "version": "1.0", + "description": "Azure Maps Web Feature REST APIs" + }, + "host": "atlas.microsoft.com", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [ + "application/json", + "application/xml" + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "These are the [Azure Active Directory OAuth2](https://docs.microsoft.com/en-us/azure/active-directory/develop/v1-overview) Flows. When paired with [Azure Role Based Access](https://docs.microsoft.com/en-us/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.\n\nTo 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.\n\n#### Note\n* 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).\n* The `Authorization URL` is specific to the Azure public cloud instance. Sovereign clouds have unique Authorization URLs and Azure Active directory configurations. \n* 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.\n* Usage of the [Azure Maps Web SDK](https://aka.ms/amaadmc) allows for configuration based setup of an application for multiple use cases.\n* Currently Azure Active Directory [v1.0](https://docs.microsoft.com/en-us/azure/active-directory/develop/azure-ad-endpoint-comparison) tokens are supported.", + "scopes": { + "user_impersonation": "Impersonates a user's Azure Active Directory account." + } + }, + "apiKeyQuery": { + "type": "apiKey", + "description": "This is a shared key which is provisioned when creating an [Azure Maps resource](https://aka.ms/amauth) through the Azure management plane via Azure portal, Powershell, CLI, Azure SDKs, or REST APIs. With this key, any application is authorized to access all REST APIs. In other words, these can currently be treated as master keys to the account which they are issued for. For publicly exposed applications our recommendation is to use server to server access of Azure Maps REST APIs where this key can be securely stored.", + "name": "subscription-key", + "in": "query" + } + }, + "security": [ + { + "azure_auth": [] + }, + { + "apiKeyQuery": [] + } + ], + "responses": { + "202": { + "description": "Request Accepted: The request has been accepted for processing. Please use the URL in the Location Header to retry or access the results.", + "headers": { + "Location": { + "type": "string", + "description": "New URL to check for the results of the long running process." + } + } + }, + "400": { + "description": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "401": { + "description": "Access denied due to invalid subscription key or invalid Azure Active Directory bearer token. Make sure to provide a valid key for an active Azure subscription and Maps resource. Otherwise, verify the [WWW-Authenticate](https://tools.ietf.org/html/rfc6750#section-3.1) header for error code and description of the provided AAD bearer token.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + }, + "headers": { + "WWW-Authenticate": { + "type": "string", + "description": "Bearer realm=\"https://atlas.microsoft.com/\", error=\"invalid_token\", error_description=\"The access token expired\"" + } + } + }, + "403": { + "description": "Permission, capacity, or authentication issues.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "404": { + "description": "Not Found: the requested resource could not be found, but it may be available again in the future.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + }, + "500": { + "description": "An error occurred while processing the request. Please try again later.", + "schema": { + "$ref": "#/definitions/ODataErrorResponse" + } + } + }, + "parameters": { + "ClientId": { + "name": "x-ms-client-id", + "description": "Specifies which account is intended for usage in conjunction with the Azure AD security model. It represents a unique ID for the Azure Maps account and can be retrieved from Azure Maps management plane Account API. To use Azure AD security in Azure Maps see the following [articles](https://aka.ms/amauthdetails) for guidance.", + "type": "string", + "in": "header", + "required": false, + "x-ms-parameter-location": "client" + }, + "SubscriptionKey": { + "name": "subscription-key", + "description": "One of the Azure Maps keys provided from an Azure Map Account. Please refer to this [article](https://docs.microsoft.com/azure/azure-maps/how-to-manage-authentication) for details on how to manage authentication.", + "type": "string", + "in": "query", + "required": false, + "x-ms-parameter-location": "client" + }, + "ApiVersion": { + "name": "api-version", + "description": "Version number of Azure Maps API. Current version is 1.0", + "type": "string", + "in": "query", + "required": true, + "default": "1.0", + "x-ms-parameter-location": "client" + }, + "Datasetid": { + "name": "datasetid", + "type": "string", + "in": "path", + "description": "The identifier for the dataset to query from.", + "required": true, + "x-ms-parameter-location": "method" + }, + "LimitWfs": { + "name": "limit", + "in": "query", + "type": "number", + "minimum": 1, + "maximum": 50, + "default": 10, + "description": "The optional limit parameter limits the number of features that are presented in the response document.\nOnly features that are on the first level of the collection in the response document are counted. Nested objects contained within the explicitly requested features shall not be counted.\n* Minimum = 1 * Maximum = 50 * Default = 10", + "x-ms-parameter-location": "method" + }, + "Filter": { + "name": "filter", + "in": "query", + "type": "string", + "description": "Filter expression to search for features with specific property values in a given collection. Only feature properties of scalar type and equals operator are supported.\nThis is a special parameter where the parameter name is the property name. The scheme for this parameter is {property name}={property value}. Unless \"filter\" is one of the property names in the collection, \"filter\" should not be used as a parameter name. To search for features with \"name\" property value \"21N13\", use \"name=21N13\".\nMultiple filters are supported and should be represented as multiple query parameters. E.g., =&= String values are case sensitive.", + "x-ms-parameter-location": "method" + }, + "Bbox": { + "name": "bbox", + "in": "query", + "type": "string", + "description": "Only features that have a geometry that intersects the supplied bounding box are selected.\n* Lower left corner, coordinate axis 1 * Lower left corner, coordinate axis 2 * Upper right corner, coordinate axis 1 * Upper right corner, coordinate axis 2\nThe coordinate reference system of the values is WGS84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84) unless a different coordinate reference system is specified in the parameter `bbox-crs`.\nFor WGS84 longitude/latitude the values are in most cases the sequence of minimum longitude, minimum latitude, maximum longitude and maximum latitude. However, in cases where the box spans the antimeridian the first value (west-most box edge) is larger than the third value (east-most box edge).", + "required": false, + "x-ms-parameter-location": "method" + }, + "CollectionId": { + "name": "collectionId", + "in": "path", + "type": "string", + "required": true, + "description": "Identifier (name) of a specific collection", + "x-ms-parameter-location": "method" + }, + "FeatureId": { + "name": "featureId", + "in": "path", + "type": "string", + "description": "Local identifier of a specific feature", + "required": true, + "x-ms-parameter-location": "method" + } + }, + "paths": { + "/wfs/datasets/{datasetid}/": { + "get": { + "x-publish": true, + "description": "Creator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Web Feature Service (WFS) API is part of Creator. WFS API follows the [Open Geospatial Consortium API standard for Features](http://docs.opengeospatial.org/is/17-069r3/17-069r3.html) to query [Datasets](https://docs.microsoft.com/en-us/rest/api/maps/dataset/createpreview). \nA dataset consists of multiple feature collections. A feature collection is a collection of features of a similar type, based on a common schema.\nThe Get Landing Page API provides links to the API definition, the Conformance statements and the metadata about the feature data in this dataset.", + "operationId": "WFS_GetLandingPagePreview", + "x-ms-examples": { + "GetLandingPage": { + "$ref": "./examples/GetLandingPage.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ClientId" + }, + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/Datasetid" + } + ], + "responses": { + "200": { + "description": "Ok", + "schema": { + "$ref": "#/definitions/Root" + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + }, + "/wfs/datasets/{datasetid}/conformance": { + "get": { + "description": "Creator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Web Feature Service (WFS) API is part of Creator. WFS API follows the [Open Geospatial Consortium API standard for Features](http://docs.opengeospatial.org/is/17-069r3/17-069r3.html) to query [Datasets](https://docs.microsoft.com/en-us/rest/api/maps/dataset/createpreview). \nA dataset consists of multiple feature collections. A feature collection is a collection of features of a similar type, based on a common schema.\nThe Get Requirements Classes lists all requirements classes specified in the standard that the server conforms to.", + "x-publish": true, + "operationId": "WFS_GetRequirementsClassesPreview", + "x-ms-examples": { + "GetConformance": { + "$ref": "./examples/GetConformance.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ClientId" + }, + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/Datasetid" + } + ], + "responses": { + "200": { + "description": "Ok", + "schema": { + "$ref": "#/definitions/ReqClasses" + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + }, + "/wfs/datasets/{datasetid}/collections": { + "get": { + "description": "Creator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Web Feature Service (WFS) API is part of Creator. WFS API follows the [Open Geospatial Consortium API standard for Features](http://docs.opengeospatial.org/is/17-069r3/17-069r3.html) to query [Datasets](https://docs.microsoft.com/en-us/rest/api/maps/dataset/createpreview). \nA dataset consists of multiple feature collections. A feature collection is a collection of features of a similar type, based on a common schema.\nThe Collections Description API provides descriptions of all the collections in a given dataset.", + "operationId": "WFS_CollectionsDescriptionPreview", + "x-publish": true, + "x-ms-examples": { + "GetCollections": { + "$ref": "./examples/GetCollections.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ClientId" + }, + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/Datasetid" + } + ], + "responses": { + "200": { + "description": "Ok", + "schema": { + "$ref": "#/definitions/Content" + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + }, + "/wfs/datasets/{datasetid}/collections/{collectionId}": { + "get": { + "description": "Creator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Web Feature Service (WFS) API is part of Creator. WFS API follows the [Open Geospatial Consortium API standard for Features](http://docs.opengeospatial.org/is/17-069r3/17-069r3.html) to query [Datasets](https://docs.microsoft.com/en-us/rest/api/maps/dataset/createpreview). \nA dataset consists of multiple feature collections. A feature collection is a collection of features of a similar type, based on a common schema.\n \nThe Collection Description API provides the description of a given collection. It includes the links to the operations that can be performed on the collection.", + "operationId": "WFS_CollectionDescriptionPreview", + "x-publish": true, + "x-ms-examples": { + "GetCollection": { + "$ref": "./examples/GetCollection.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ClientId" + }, + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/Datasetid" + }, + { + "$ref": "#/parameters/CollectionId" + } + ], + "responses": { + "200": { + "description": "Ok", + "schema": { + "$ref": "#/definitions/CollectionInfo" + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + }, + "/wfs/datasets/{datasetid}/collections/{collectionId}/definition": { + "get": { + "description": "Creator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Web Feature Service (WFS) API is part of Creator. WFS API follows the [Open Geospatial Consortium API standard for Features](http://docs.opengeospatial.org/is/17-069r3/17-069r3.html) to query [Datasets](https://docs.microsoft.com/en-us/rest/api/maps/dataset/createpreview). \nA dataset consists of multiple feature collections. A feature collection is a collection of features of a similar type, based on a common schema.\n \nThe Collection Definition API provides the detailed data model of a given collection.", + "operationId": "WFS_CollectionDefinitionPreview", + "x-publish": true, + "x-ms-examples": { + "GetCollectionDefinition": { + "$ref": "./examples/GetCollectionDefinition.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ClientId" + }, + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/Datasetid" + }, + { + "$ref": "#/parameters/CollectionId" + } + ], + "responses": { + "200": { + "description": "Ok", + "schema": { + "$ref": "#/definitions/CollectionDefinition" + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + }, + "/wfs/datasets/{datasetid}/collections/{collectionId}/items": { + "get": { + "description": "Creator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Web Feature Service (WFS) API is part of Creator. WFS API follows the [Open Geospatial Consortium API standard for Features](http://docs.opengeospatial.org/is/17-069r3/17-069r3.html) to query [Datasets](https://docs.microsoft.com/en-us/rest/api/maps/dataset/createpreview). \nA dataset consists of multiple feature collections. A feature collection is a collection of features of a similar type, based on a common schema.\nThe Get Features API returns the list of features in the given collection.", + "operationId": "WFS_GetFeaturesPreview", + "x-publish": true, + "x-ms-examples": { + "Getitems": { + "$ref": "./examples/GetItems.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ClientId" + }, + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/Datasetid" + }, + { + "$ref": "#/parameters/CollectionId" + }, + { + "$ref": "#/parameters/LimitWfs" + }, + { + "$ref": "#/parameters/Bbox" + }, + { + "$ref": "#/parameters/Filter" + } + ], + "responses": { + "200": { + "description": "Ok", + "schema": { + "$ref": "#/definitions/FeatureCollectionGeoJSON" + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + }, + "/wfs/datasets/{datasetid}/collections/{collectionId}/items/{featureId}": { + "get": { + "description": "Creator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Web Feature Service (WFS) API is part of Creator. WFS API follows the [Open Geospatial Consortium API standard for Features](http://docs.opengeospatial.org/is/17-069r3/17-069r3.html) to query [Datasets](https://docs.microsoft.com/en-us/rest/api/maps/dataset/createpreview). \nA dataset consists of multiple feature collections. A feature collection is a collection of features of a similar type, based on a common schema.\nThe Get Feature API returns the feature identified by the provided id in the given collection.", + "x-publish": true, + "operationId": "WFS_GetFeaturePreview", + "x-ms-examples": { + "GetFeature": { + "$ref": "./examples/GetItem.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/Datasetid" + }, + { + "$ref": "#/parameters/CollectionId" + }, + { + "$ref": "#/parameters/FeatureId" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Feature" + } + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + }, + "delete": { + "description": "Creator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Web Feature Service (WFS) API is part of Creator. WFS API follows the [Open Geospatial Consortium API standard for Features](http://docs.opengeospatial.org/is/17-069r3/17-069r3.html) to query [Datasets](https://docs.microsoft.com/en-us/rest/api/maps/dataset/createpreview). \nA dataset consists of multiple feature collections. A feature collection is a collection of features of a similar type, based on a common schema.\nThe Delete Feature API deletes the feature identified by the provided id in the given collection. At this point this API supports only facility features. Deleting a facility feature deletes all the child features of that facility recursively.", + "x-publish": true, + "operationId": "WFS_DeleteFeaturePreview", + "x-ms-examples": { + "GetFeature": { + "$ref": "./examples/DeleteItem.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionKey" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/Datasetid" + }, + { + "$ref": "#/parameters/CollectionId" + }, + { + "$ref": "#/parameters/FeatureId" + } + ], + "responses": { + "204": { + "description": "Feature Deleted." + }, + "400": { + "$ref": "#/responses/400" + }, + "401": { + "$ref": "#/responses/401" + }, + "403": { + "$ref": "#/responses/403" + }, + "404": { + "$ref": "#/responses/404" + }, + "500": { + "$ref": "#/responses/500" + } + } + } + } + }, + "definitions": { + "ODataErrorResponse": { + "type": "object", + "description": "This response object is returned when an error occurs in the Maps API.", + "properties": { + "error": { + "$ref": "#/definitions/ODataError" + } + } + }, + "ODataError": { + "type": "object", + "description": "This object is returned when an error occurs in the Maps API.", + "properties": { + "code": { + "type": "string", + "readOnly": true, + "description": "The ODataError code." + }, + "message": { + "type": "string", + "readOnly": true, + "description": "If available, a human readable description of the error." + }, + "details": { + "type": "array", + "items": { + "$ref": "#/definitions/ODataError" + } + }, + "target": { + "type": "string", + "readOnly": true, + "description": "If available, the target causing the error." + } + } + }, + "Exception": { + "type": "object", + "required": [ + "code" + ], + "properties": { + "code": { + "type": "string" + }, + "description": { + "type": "string" + } + } + }, + "Root": { + "type": "object", + "required": [ + "links" + ], + "properties": { + "links": { + "type": "array", + "items": { + "$ref": "#/definitions/Link" + } + } + } + }, + "ReqClasses": { + "type": "object", + "required": [ + "conformsTo" + ], + "properties": { + "conformsTo": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "http://www.opengis.net/spec/wfs-1/3.0/req/core", + "http://www.opengis.net/spec/wfs-1/3.0/req/oas30", + "http://www.opengis.net/spec/wfs-1/3.0/req/html", + "http://www.opengis.net/spec/wfs-1/3.0/req/geojson" + ] + } + } + }, + "Link": { + "description": "Links to other WFS endpoints", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "type": "string" + }, + "rel": { + "type": "string", + "example": "prev" + }, + "type": { + "type": "string", + "example": "application/geo+json" + }, + "hreflang": { + "type": "string", + "example": "en" + }, + "title": { + "type": "string" + } + } + }, + "Content": { + "type": "object", + "required": [ + "links", + "collections" + ], + "properties": { + "links": { + "type": "array", + "items": { + "$ref": "#/definitions/Link" + }, + "example": [ + { + "href": "http://data.example.org/collections.json", + "rel": "self", + "type": "application/json", + "title": "this document" + }, + { + "href": "http://data.example.org/collections.html", + "rel": "alternate", + "type": "text/html", + "title": "this document as HTML" + }, + { + "href": "http://schemas.example.org/1.0/foobar.xsd", + "rel": "describedBy", + "type": "application/xml", + "title": "XML schema for Acme Corporation data" + } + ] + }, + "collections": { + "type": "array", + "items": { + "$ref": "#/definitions/CollectionInfo" + } + } + } + }, + "Version": { + "type": "object", + "required": [ + "version", + "revisionTimestamp", + "links" + ], + "properties": { + "version": { + "description": "version number of the dataset", + "type": "string", + "example": "1.0.0" + }, + "revisionTimestamp": { + "description": "timestamp of the revision", + "type": "string", + "example": "2020-01-02T03:04:05" + }, + "links": { + "type": "array", + "items": { + "$ref": "#/definitions/Link" + }, + "example": [ + { + "href": "http://data.example.org/collections.json", + "rel": "self", + "type": "application/json", + "title": "this document" + }, + { + "href": "http://data.example.org/collections.html", + "rel": "alternate", + "type": "text/html", + "title": "this document as HTML" + }, + { + "href": "http://schemas.example.org/1.0/foobar.xsd", + "rel": "describedBy", + "type": "application/xml", + "title": "XML schema for Acme Corporation data" + } + ] + } + } + }, + "CollectionInfo": { + "type": "object", + "required": [ + "name", + "links" + ], + "properties": { + "name": { + "description": "identifier of the collection used, for example, in URIs", + "type": "string", + "example": "buildings" + }, + "title": { + "description": "human readable title of the collection", + "type": "string", + "example": "Buildings" + }, + "description": { + "description": "a description of the features in the collection", + "type": "string", + "example": "Buildings in the city of Bonn." + }, + "links": { + "type": "array", + "items": { + "$ref": "#/definitions/Link" + }, + "example": [ + { + "href": "http://data.example.org/collections/buildings/items", + "rel": "item", + "type": "application/geo+json", + "title": "Buildings" + }, + { + "href": "http://example.org/concepts/building.html", + "rel": "describedBy", + "type": "text/html", + "title": "Feature catalogue for buildings" + } + ] + } + } + }, + "CollectionDefinition": { + "description": "collection of GeoJSON features", + "type": "object", + "required": [ + "idPrefix", + "name", + "geometryType", + "featureTypes" + ], + "properties": { + "description": { + "description": "describes the collection", + "type": "string" + }, + "idPrefix": { + "description": "prefix of the collection used", + "type": "string", + "example": "BLD" + }, + "name": { + "description": "identifier of the collection used, for example, in URIs", + "type": "string", + "example": "buildings" + }, + "title": { + "description": "title of collection", + "type": "string", + "example": "Feature Class buildings" + }, + "geometryType": { + "description": "type of geometry returned", + "type": "string", + "enum": [ + "Point", + "MultiPoint", + "LineString", + "MultiLineString", + "Polygon", + "MultiPolygon", + "GeometryCollection" + ] + }, + "featureTypes": { + "description": "type of features returned", + "type": "array", + "items": { + "type": "string" + } + }, + "properties": { + "description": "attributes of the collection used", + "type": "array", + "items": { + "$ref": "#/definitions/DefinitionProperties" + } + }, + "links": { + "type": "array", + "items": { + "$ref": "#/definitions/Link" + } + } + } + }, + "DefinitionProperties": { + "type": "object", + "required": [ + "name", + "required", + "type" + ], + "properties": { + "name": { + "description": "name of attribute", + "type": "string", + "example": "external_id" + }, + "required": { + "description": "is attribute required", + "type": "boolean" + }, + "type": { + "description": "type of attribute", + "type": "object" + } + } + }, + "FeatureCollectionGeoJSON": { + "type": "object", + "required": [ + "type", + "features" + ], + "properties": { + "type": { + "type": "string" + }, + "numberReturned": { + "type": "integer" + }, + "features": { + "type": "array", + "items": { + "$ref": "#/definitions/FeatureGeoJSON" + } + }, + "links": { + "type": "array", + "items": { + "$ref": "#/definitions/Link" + } + } + } + }, + "Feature": { + "type": "object", + "required": [ + "feature" + ], + "properties": { + "feature": { + "$ref": "#/definitions/FeatureGeoJSON" + }, + "links": { + "type": "array", + "items": { + "$ref": "#/definitions/Link" + } + } + } + }, + "FeatureGeoJSON": { + "description": "GeoJSON Feature", + "type": "object", + "required": [ + "type", + "geometry", + "properties" + ], + "properties": { + "type": { + "description": "feature", + "type": "string" + }, + "geometry": { + "description": "This represents the geometry for one or more geographical features (parks, state boundary etc.) and should be a `GeoJSON` compliant type. Please refer to [RFC 7946](https://tools.ietf.org/html/rfc7946) for details.", + "type": "object" + }, + "properties": { + "description": "Additional properties of the feature.", + "type": "object" + }, + "id": { + "description": "Identifier for the feature.", + "type": "string" + }, + "featureType": { + "description": "The type of the feature. The value depends on the data model the current feature is part of. Some data models may have an empty value.", + "type": "string" + } + } + } + } +} From c0ccaec9005bcaf54b7a326ea3ee93ae3b03d0d0 Mon Sep 17 00:00:00 2001 From: Jeff Couckuyt Date: Tue, 13 Apr 2021 17:06:44 -0700 Subject: [PATCH 20/38] update api-version in examples --- .../Microsoft.Maps/Alias/preview/2.0/examples/Alias_Assign.json | 2 +- .../Microsoft.Maps/Alias/preview/2.0/examples/Alias_Delete.json | 2 +- .../Alias/preview/2.0/examples/Alias_GetDetails.json | 2 +- .../Microsoft.Maps/Alias/preview/2.0/examples/Alias_List.json | 2 +- .../Microsoft.Maps/Data/preview/2.0/examples/Delete.json | 2 +- .../Microsoft.Maps/Data/preview/2.0/examples/Download.json | 2 +- .../Microsoft.Maps/Data/preview/2.0/examples/List.json | 2 +- .../Microsoft.Maps/Data/preview/2.0/examples/Update.json | 2 +- .../Microsoft.Maps/Data/preview/2.0/examples/Upload.json | 2 +- .../Dataset/preview/2.0/examples/Dataset_Create.json | 2 +- .../Dataset/preview/2.0/examples/Dataset_Delete.json | 2 +- .../Dataset/preview/2.0/examples/Dataset_Import.json | 2 +- .../Dataset/preview/2.0/examples/Dataset_List.json | 2 +- .../DwgConversion/preview/2.0/examples/Conversion.json | 2 +- .../DwgConversion/preview/2.0/examples/Delete.json | 2 +- .../Microsoft.Maps/DwgConversion/preview/2.0/examples/List.json | 2 +- .../FeatureState/preview/2.0/examples/CreateStateset.json | 2 +- .../FeatureState/preview/2.0/examples/DeleteFeatureState.json | 2 +- .../FeatureState/preview/2.0/examples/DeleteStateset.json | 2 +- .../FeatureState/preview/2.0/examples/GetStates.json | 2 +- .../FeatureState/preview/2.0/examples/GetStateset.json | 2 +- .../FeatureState/preview/2.0/examples/Stateset_List.json | 2 +- .../FeatureState/preview/2.0/examples/UpdateStates.json | 2 +- .../FeatureState/preview/2.0/examples/UpdateStateset.json | 2 +- .../Microsoft.Maps/Tileset/preview/2.0/examples/Create.json | 2 +- .../Microsoft.Maps/Tileset/preview/2.0/examples/Delete.json | 2 +- .../Microsoft.Maps/Tileset/preview/2.0/examples/List.json | 2 +- .../Microsoft.Maps/WFS/preview/2.0/examples/DeleteItem.json | 2 +- .../Microsoft.Maps/WFS/preview/2.0/examples/GetCollection.json | 2 +- .../WFS/preview/2.0/examples/GetCollectionDefinition.json | 2 +- .../Microsoft.Maps/WFS/preview/2.0/examples/GetCollections.json | 2 +- .../Microsoft.Maps/WFS/preview/2.0/examples/GetConformance.json | 2 +- .../Microsoft.Maps/WFS/preview/2.0/examples/GetItem.json | 2 +- .../Microsoft.Maps/WFS/preview/2.0/examples/GetItems.json | 2 +- .../Microsoft.Maps/WFS/preview/2.0/examples/GetLandingPage.json | 2 +- 35 files changed, 35 insertions(+), 35 deletions(-) diff --git a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Assign.json b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Assign.json index 166b467d4961..17ef376b66e6 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Assign.json +++ b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Assign.json @@ -1,6 +1,6 @@ { "parameters": { - "api-version": "1.0", + "api-version": "2.0", "subscription-key": "[subscription-key]", "aliasId": "[aliasId]", "resourceId": "[resourceId]" diff --git a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Delete.json b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Delete.json index 11adb1e66418..61522b3f0426 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Delete.json +++ b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Delete.json @@ -1,6 +1,6 @@ { "parameters": { - "api-version": "1.0", + "api-version": "2.0", "subscription-key": "[subscription-key]", "aliasId": "[aliasId]" }, diff --git a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_GetDetails.json b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_GetDetails.json index cf8cfa8458e4..ac676a4829ef 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_GetDetails.json +++ b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_GetDetails.json @@ -1,6 +1,6 @@ { "parameters": { - "api-version": "1.0", + "api-version": "2.0", "subscription-key": "[subscription-key]", "aliasId": "[aliasId]" }, diff --git a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_List.json b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_List.json index e74d2c24197f..2ddf8c51529f 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_List.json +++ b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_List.json @@ -1,6 +1,6 @@ { "parameters": { - "api-version": "1.0", + "api-version": "2.0", "subscription-key": "[subscription-key]" }, "responses": { diff --git a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Delete.json b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Delete.json index ccf95148e20a..30c3d32a8a1d 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Delete.json +++ b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Delete.json @@ -1,6 +1,6 @@ { "parameters": { - "api-version": "1.0", + "api-version": "2.0", "subscription-key": "[subscription-key]", "udid": "25084fb7-307a-4720-8f91-7952a0b91012" }, diff --git a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Download.json b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Download.json index 1c065fe041ea..3a87ff2a25ce 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Download.json +++ b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Download.json @@ -1,6 +1,6 @@ { "parameters": { - "api-version": "1.0", + "api-version": "2.0", "subscription-key": "[subscription-key]", "udid": "25084fb7-307a-4720-8f91-7952a0b91012" }, diff --git a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/List.json b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/List.json index 741fdd026baf..3fdae8df7727 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/List.json +++ b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/List.json @@ -1,6 +1,6 @@ { "parameters": { - "api-version": "1.0", + "api-version": "2.0", "subscription-key": "[subscription-key]" }, "responses": { diff --git a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Update.json b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Update.json index 20caaf53f5d6..2f3a6ad9eeda 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Update.json +++ b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Update.json @@ -1,6 +1,6 @@ { "parameters": { - "api-version": "1.0", + "api-version": "2.0", "subscription-key": "[subscription-key]", "udid": "25084fb7-307a-4720-8f91-7952a0b91012", "UpdateContent": { diff --git a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Upload.json b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Upload.json index dd663049a9a0..20635cf766b5 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Upload.json +++ b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Upload.json @@ -1,6 +1,6 @@ { "parameters": { - "api-version": "1.0", + "api-version": "2.0", "subscription-key": "[subscription-key]", "dataFormat": "geojson", "UploadContent": { diff --git a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Create.json b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Create.json index 6d8513252576..0a4ad200c0a6 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Create.json +++ b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Create.json @@ -1,6 +1,6 @@ { "parameters": { - "api-version": "1.0", + "api-version": "2.0", "subscription-key": "[subscription-key]", "conversionId": "[conversionId]", "type": "facility" diff --git a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Delete.json b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Delete.json index 3ad9cf60de1c..3f1f24259f51 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Delete.json +++ b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Delete.json @@ -1,6 +1,6 @@ { "parameters": { - "api-version": "1.0", + "api-version": "2.0", "subscription-key": "[subscription-key]", "datasetId": "[datasetId]" }, diff --git a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Import.json b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Import.json index fa4cb9ca8950..f22ee820f50a 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Import.json +++ b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Import.json @@ -1,6 +1,6 @@ { "parameters": { - "api-version": "1.0", + "api-version": "2.0", "subscription-key": "[subscription-key]", "datasetId": "[conversionId]", "udid": "[udid]", diff --git a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_List.json b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_List.json index 4937c40e2e95..b23d44d66076 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_List.json +++ b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_List.json @@ -1,6 +1,6 @@ { "parameters": { - "api-version": "1.0", + "api-version": "2.0", "subscription-key": "[subscription-key]" }, "responses": { diff --git a/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/Conversion.json b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/Conversion.json index b9af945a36d8..9abd6c602448 100644 --- a/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/Conversion.json +++ b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/Conversion.json @@ -1,6 +1,6 @@ { "parameters": { - "api-version": "1.0", + "api-version": "2.0", "subscription-key": "[subscription-key]", "udid": "25084fb7-307a-4720-8f91-7952a0b91012", "inputType": "DWG" diff --git a/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/Delete.json b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/Delete.json index a0858462d16c..4b0b60569ebc 100644 --- a/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/Delete.json +++ b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/Delete.json @@ -1,6 +1,6 @@ { "parameters": { - "api-version": "1.0", + "api-version": "2.0", "subscription-key": "[subscription-key]", "conversionId": "99884fb7-87a9-0920-7f93-7952a0b91012" }, diff --git a/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/List.json b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/List.json index 357a0d0ab352..a1c323869aa7 100644 --- a/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/List.json +++ b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/List.json @@ -1,6 +1,6 @@ { "parameters": { - "api-version": "1.0", + "api-version": "2.0", "subscription-key": "[subscription-key]" }, "responses": { diff --git a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/CreateStateset.json b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/CreateStateset.json index 4867a31308b1..04135a049589 100644 --- a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/CreateStateset.json +++ b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/CreateStateset.json @@ -1,6 +1,6 @@ { "parameters": { - "api-version": "1.0", + "api-version": "2.0", "subscription-key": "[subscription-key]", "datasetId": "5d34fbe8-87b7-f7c0-3144-c50e003a3c75", "statesetCreateRequestBody": { diff --git a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/DeleteFeatureState.json b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/DeleteFeatureState.json index 86a97a62d209..eb1b23c8a8f6 100644 --- a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/DeleteFeatureState.json +++ b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/DeleteFeatureState.json @@ -1,6 +1,6 @@ { "parameters": { - "api-version": "1.0", + "api-version": "2.0", "subscription-key": "[subscription-key]", "statesetId": "b24bdb73-1305-3212-1909-a428d937b64", "featureId": "SPC4709", diff --git a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/DeleteStateset.json b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/DeleteStateset.json index e6bf9ebe20a6..de8559bf30c1 100644 --- a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/DeleteStateset.json +++ b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/DeleteStateset.json @@ -1,6 +1,6 @@ { "parameters": { - "api-version": "1.0", + "api-version": "2.0", "subscription-key": "[subscription-key]", "statesetId": "b24bdb73-1305-3212-1909-a428d937b64f" }, diff --git a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/GetStates.json b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/GetStates.json index e581ce3b7b5d..8f6ec63b9330 100644 --- a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/GetStates.json +++ b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/GetStates.json @@ -1,6 +1,6 @@ { "parameters": { - "api-version": "1.0", + "api-version": "2.0", "subscription-key": "[subscription-key]", "statesetId": "b24bdb73-1305-3212-1909-a428d937b64", "featureId": "SPC4709" diff --git a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/GetStateset.json b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/GetStateset.json index 5d2a45831fbf..4bc31bb12934 100644 --- a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/GetStateset.json +++ b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/GetStateset.json @@ -1,6 +1,6 @@ { "parameters": { - "api-version": "1.0", + "api-version": "2.0", "subscription-key": "[subscription-key]", "statesetId": "b24bdb73-1305-3212-1909-a428d937b64" }, diff --git a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/Stateset_List.json b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/Stateset_List.json index bf547d808b57..6c5a2dbb1008 100644 --- a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/Stateset_List.json +++ b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/Stateset_List.json @@ -1,6 +1,6 @@ { "parameters": { - "api-version": "1.0", + "api-version": "2.0", "subscription-key": "[subscription-key]" }, "responses": { diff --git a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/UpdateStates.json b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/UpdateStates.json index d19d997f16f9..9dee6b24f9dd 100644 --- a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/UpdateStates.json +++ b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/UpdateStates.json @@ -1,6 +1,6 @@ { "parameters": { - "api-version": "1.0", + "api-version": "2.0", "subscription-key": "[subscription-key]", "statesetId": "b24bdb73-1305-3212-1909-a428d937b64", "featureId": "SPC4709", diff --git a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/UpdateStateset.json b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/UpdateStateset.json index e540bcda431a..d9ea407ecdb1 100644 --- a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/UpdateStateset.json +++ b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/UpdateStateset.json @@ -1,6 +1,6 @@ { "parameters": { - "api-version": "1.0", + "api-version": "2.0", "subscription-key": "[subscription-key]", "statesetId": "b24bdb73-1305-3212-1909-a428d937b64", "statesetStyleUpdateRequestBody": { diff --git a/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/Create.json b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/Create.json index 8767d242b699..4b94b198f19a 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/Create.json +++ b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/Create.json @@ -1,6 +1,6 @@ { "parameters": { - "api-version": "1.0", + "api-version": "2.0", "subscription-key": "[subscription-key]", "datasetId": "[dataset-Id]" }, diff --git a/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/Delete.json b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/Delete.json index 8f36f5a7d813..0a20b5058bb6 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/Delete.json +++ b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/Delete.json @@ -1,6 +1,6 @@ { "parameters": { - "api-version": "1.0", + "api-version": "2.0", "subscription-key": "[subscription-key]", "tilesetId": "25084fb7-307a-4720-8f91-7952a0b91012" }, diff --git a/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/List.json b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/List.json index 382cb4025edf..d76a6c0448c2 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/List.json +++ b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/List.json @@ -1,6 +1,6 @@ { "parameters": { - "api-version": "1.0", + "api-version": "2.0", "subscription-key": "[subscription-key]" }, "responses": { diff --git a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/DeleteItem.json b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/DeleteItem.json index 127a25dc1639..da4d41a75b6f 100644 --- a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/DeleteItem.json +++ b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/DeleteItem.json @@ -1,6 +1,6 @@ { "parameters": { - "api-version": "1.0", + "api-version": "2.0", "datasetid": "018fda98-e638-0edf-5ef7-28491ff3bed4", "subscription-key": "[subscription-key]", "collectionId": "facility", diff --git a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollection.json b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollection.json index 583b150414ee..2c32f984b30a 100644 --- a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollection.json +++ b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollection.json @@ -1,6 +1,6 @@ { "parameters": { - "api-version": "1.0", + "api-version": "2.0", "datasetid": "018fda98-e638-0edf-5ef7-28491ff3bed4", "subscription-key": "[subscription-key]", "collectionId": "unit" diff --git a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollectionDefinition.json b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollectionDefinition.json index e4d17ccf6650..b0b1e6c0c93a 100644 --- a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollectionDefinition.json +++ b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollectionDefinition.json @@ -1,6 +1,6 @@ { "parameters": { - "api-version": "1.0", + "api-version": "2.0", "datasetid": "018fda98-e638-0edf-5ef7-28491ff3bed4", "subscription-key": "[subscription-key]", "collectionId": "unit" diff --git a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollections.json b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollections.json index 7048a3299237..9846be679edb 100644 --- a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollections.json +++ b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollections.json @@ -1,6 +1,6 @@ { "parameters": { - "api-version": "1.0", + "api-version": "2.0", "datasetid": "018fda98-e638-0edf-5ef7-28491ff3bed4", "subscription-key": "[subscription-key]" }, diff --git a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetConformance.json b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetConformance.json index 2087dca71fe4..2ba8ad476b28 100644 --- a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetConformance.json +++ b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetConformance.json @@ -1,6 +1,6 @@ { "parameters": { - "api-version": "1.0", + "api-version": "2.0", "datasetid": "018fda98-e638-0edf-5ef7-28491ff3bed4", "subscription-key": "[subscription-key]" }, diff --git a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetItem.json b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetItem.json index a83972b09aa0..321cac694692 100644 --- a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetItem.json +++ b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetItem.json @@ -1,6 +1,6 @@ { "parameters": { - "api-version": "1.0", + "api-version": "2.0", "datasetid": "018fda98-e638-0edf-5ef7-28491ff3bed4", "subscription-key": "[subscription-key]", "collectionId": "unit", diff --git a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetItems.json b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetItems.json index 0d83c6416334..259d973bdf83 100644 --- a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetItems.json +++ b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetItems.json @@ -1,6 +1,6 @@ { "parameters": { - "api-version": "1.0", + "api-version": "2.0", "datasetid": "018fda98-e638-0edf-5ef7-28491ff3bed4", "subscription-key": "[subscription-key]", "collectionId": "unit", diff --git a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetLandingPage.json b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetLandingPage.json index 028fa8cfe0aa..8e1f79e175c6 100644 --- a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetLandingPage.json +++ b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetLandingPage.json @@ -1,6 +1,6 @@ { "parameters": { - "api-version": "1.0", + "api-version": "2.0", "datasetid": "018fda98-e638-0edf-5ef7-28491ff3bed4", "subscription-key": "[subscription-key]" }, From 37ef296a6be1d6263658a42b056f21dd264b6ebf Mon Sep 17 00:00:00 2001 From: Jeff Couckuyt Date: Wed, 14 Apr 2021 17:58:50 -0700 Subject: [PATCH 21/38] add v2 files to readme --- specification/maps/data-plane/readme.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/specification/maps/data-plane/readme.md b/specification/maps/data-plane/readme.md index 7a7187bb6990..cd93b9d99169 100644 --- a/specification/maps/data-plane/readme.md +++ b/specification/maps/data-plane/readme.md @@ -48,6 +48,24 @@ These settings apply only when `--tag=package-preview-2.0` is specified on the c ```yaml $(tag) == 'package-preview-2.0' input-file: - Microsoft.Maps/Alias/preview/2.0/alias.json + - Microsoft.Maps/Data/preview/2.0/data.json + - Microsoft.Maps/Dataset/preview/2.0/dataset.json + - Microsoft.Maps/DEM/preview/1.0/elevation.json + - Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json + - Microsoft.Maps/FeatureState/preview/2.0/featurestate.json + - Microsoft.Maps/Feedback/preview/1.0/feedback.json + - Microsoft.Maps/Geolocation/preview/1.0/geolocation.json + - Microsoft.Maps/Mobility/preview/1.0/mobility.json + - Microsoft.Maps/Render/preview/1.0/render.json + - Microsoft.Maps/Render/preview/2.0/render.json + - Microsoft.Maps/Route/preview/1.0/route.json + - Microsoft.Maps/Search/preview/1.0/search.json + - Microsoft.Maps/Spatial/preview/1.0/spatial.json + - Microsoft.Maps/Tileset/preview/2.0/tileset.json + - Microsoft.Maps/Timezone/preview/1.0/timezone.json + - Microsoft.Maps/Traffic/preview/1.0/traffic.json + - Microsoft.Maps/Weather/preview/1.0/weather.json + - Microsoft.Maps/WFS/preview/2.0/wfs.json ``` ### Tag: package-1.0-preview From 70be3ef914c3566fd82fcaea1b8f389e5b963a21 Mon Sep 17 00:00:00 2001 From: Jeff Couckuyt Date: Wed, 14 Apr 2021 18:05:17 -0700 Subject: [PATCH 22/38] fix avacado errors --- .../Microsoft.Maps/Data/preview/2.0/data.json | 2 +- .../preview/2.0/examples/Dataset_Import.json | 71 ------------------- .../Tileset/preview/2.0/tileset.json | 2 +- 3 files changed, 2 insertions(+), 73 deletions(-) delete mode 100644 specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Import.json diff --git a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/data.json b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/data.json index d8c6d8599876..9711a57d6b1b 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/data.json +++ b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/data.json @@ -465,7 +465,7 @@ ], "responses": { "204": { - "description": "Data delete request completed successfully. The content for `udid` was deleted on the server.", + "description": "Data delete request completed successfully. The content for `udid` was deleted on the server." }, "400": { "$ref": "#/responses/400" diff --git a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Import.json b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Import.json deleted file mode 100644 index f22ee820f50a..000000000000 --- a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Import.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "parameters": { - "api-version": "2.0", - "subscription-key": "[subscription-key]", - "datasetId": "[conversionId]", - "udid": "[udid]", - "type": "fixture" - }, - "responses": { - "200": { - "headers": {}, - "body": { - "operationId": "{operationId}", - "status": "Succeeded", - "created": "2020-01-02 03:04:05 AM +00:00", - "resourceLocation": "https://atlas.microsoft.com/dataset/{datasetId}?api-version=1.0" - } - }, - "202": { - "headers": { - "Location": "https://atlas.microsoft.com/dataset/operations/{operationId}?api-version=1.0", - "Access-Control-Expose-Headers": "Location" - } - }, - "400": { - "headers": {}, - "body": { - "error": { - "code": "400 BadRequest", - "message": "Bad request - Error message." - } - } - }, - "401": { - "headers": {}, - "body": { - "error": { - "code": "401 Unauthorized", - "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." - } - } - }, - "403": { - "headers": {}, - "body": { - "error": { - "code": "403 Forbidden", - "message": "Permission, capacity, or authentication issues." - } - } - }, - "404": { - "headers": {}, - "body": { - "error": { - "code": "404 NotFound", - "message": "Not Found - The requested resource could not be found, but it may be available again in the future." - } - } - }, - "500": { - "headers": {}, - "body": { - "error": { - "code": "500 InternalServerError", - "message": "Unknown error - An error occurred while processing the request. Please try again later." - } - } - } - } -} diff --git a/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json index 6d25a42f36bc..6fd464b7f855 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json +++ b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json @@ -2,7 +2,7 @@ "swagger": "2.0", "info": { "title": "Azure Maps Tileset Service", - "version": "1.0", + "version": "2.0", "description": "APIs for managing Tilesets." }, "host": "atlas.microsoft.com", From 7eef688d36de216995325892e7ae7142bbcd31ec Mon Sep 17 00:00:00 2001 From: Subbarayudu Kamma Date: Thu, 15 Apr 2021 12:25:11 -0700 Subject: [PATCH 23/38] Adding string length limit to the descriptions for feature state. Adding string length limit to the descriptions for feature state. --- .../FeatureState/preview/2.0/featurestate.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/featurestate.json b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/featurestate.json index c462bd170749..280c63b0e856 100644 --- a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/featurestate.json +++ b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/featurestate.json @@ -660,15 +660,15 @@ "type": "object", "properties": { "keyName": { - "description": "Feature state Keyname.", + "description": "Feature state Keyname. Maximum length allowed is 1024.", "type": "string" }, "value": { - "description": "Value for the feature state.", + "description": "Value for the feature state. Type should comply with the style definition attached to the featurestate. Maximum length allowed for string type is 1024.", "type": "object" }, "eventTimestamp": { - "description": "Timestamp when the feature state was captured.", + "description": "Valid Timestamp when the feature state was captured.", "type": "string" } } @@ -770,7 +770,7 @@ ], "properties": { "keyName": { - "description": "Stateset style key name. Key names are random strings but they should be unique inside style array.", + "description": "Stateset style key name. Key names are random strings but they should be unique inside style array. Maximum length allowed is 1024.", "type": "string" }, "type": { From b6d5b6f124eaabb4cbbf35ceb5daca3e94742195 Mon Sep 17 00:00:00 2001 From: Subbarayudu Kamma Date: Thu, 15 Apr 2021 12:45:57 -0700 Subject: [PATCH 24/38] Adding ontology element to the WFS resopnse examples. Adding ontology element to the WFS resopnse examples. --- .../Microsoft.Maps/WFS/preview/2.0/examples/GetCollection.json | 1 + .../WFS/preview/2.0/examples/GetCollectionDefinition.json | 1 + .../Microsoft.Maps/WFS/preview/2.0/examples/GetCollections.json | 1 + .../Microsoft.Maps/WFS/preview/2.0/examples/GetItem.json | 1 + .../Microsoft.Maps/WFS/preview/2.0/examples/GetItems.json | 1 + .../Microsoft.Maps/WFS/preview/2.0/examples/GetLandingPage.json | 1 + 6 files changed, 6 insertions(+) diff --git a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollection.json b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollection.json index 2c32f984b30a..9b230a40ebe5 100644 --- a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollection.json +++ b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollection.json @@ -10,6 +10,7 @@ "body": { "name": "unit", "description": "A physical and non-overlapping area which might be occupied and traversed by a navigating agent. Can be a hallway, a room, a courtyard, etc. It is surrounded by physical obstruction (wall), unless the isOpenArea attribute is equal to true, and one must add openings where the obstruction shouldn't be there. If isOpenArea attribute is equal to true, all the sides are assumed open to the surroundings and walls are to be added where needed. Walls for open areas are represented as a lineElement or areaElement with isObstruction equal to true.", + "ontology" : "Facility-2.0", "links": [ { "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/unit/definition?api-version=1.0", diff --git a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollectionDefinition.json b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollectionDefinition.json index b0b1e6c0c93a..7f8193ee261d 100644 --- a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollectionDefinition.json +++ b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollectionDefinition.json @@ -11,6 +11,7 @@ "idPrefix": "UNIT", "name": "unit", "description": "A physical and non-overlapping area which might be occupied and traversed by a navigating agent. Can be a hallway, a room, a courtyard, etc. It is surrounded by physical obstruction (wall), unless the isOpenArea attribute is equal to true, and one must add openings where the obstruction shouldn't be there. If isOpenArea attribute is equal to true, all the sides are assumed open to the surroundings and walls are to be added where needed. Walls for open areas are represented as a lineElement or areaElement with isObstruction equal to true.", + "ontology" : "Facility-2.0", "geometryType": "Polygon", "featureTypes": [], "properties": [ diff --git a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollections.json b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollections.json index 9846be679edb..eebee378acc3 100644 --- a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollections.json +++ b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollections.json @@ -7,6 +7,7 @@ "responses": { "200": { "body": { + "ontology" : "Facility-2.0", "collections": [ { "name": "unit", diff --git a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetItem.json b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetItem.json index 321cac694692..80c50119fea0 100644 --- a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetItem.json +++ b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetItem.json @@ -9,6 +9,7 @@ "responses": { "200": { "body": { + "ontology" : "Facility-2.0", "feature": { "type": "feature", "geometry": { diff --git a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetItems.json b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetItems.json index 259d973bdf83..05c60140e766 100644 --- a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetItems.json +++ b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetItems.json @@ -11,6 +11,7 @@ "200": { "body": { "type": "FeatureCollection", + "ontology" : "Facility-2.0", "features": [ { "type": "feature", diff --git a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetLandingPage.json b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetLandingPage.json index 8e1f79e175c6..c292c180da00 100644 --- a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetLandingPage.json +++ b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetLandingPage.json @@ -7,6 +7,7 @@ "responses": { "200": { "body": { + "ontology" : "Facility-2.0", "links": [ { "href": "https://atlas.microsoft.com/wfs/datasets/018fda98-e638-0edf-5ef7-28491ff3bed4", From 76a8953727d1b9127dcd0854903de0d58e506c93 Mon Sep 17 00:00:00 2001 From: Subbarayudu Kamma Date: Thu, 15 Apr 2021 15:41:42 -0700 Subject: [PATCH 25/38] Updating length to 1000 from 1024. Updating length to 1000 from 1024. --- .../Microsoft.Maps/FeatureState/preview/2.0/featurestate.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/featurestate.json b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/featurestate.json index 280c63b0e856..43d03e639cd6 100644 --- a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/featurestate.json +++ b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/featurestate.json @@ -660,7 +660,7 @@ "type": "object", "properties": { "keyName": { - "description": "Feature state Keyname. Maximum length allowed is 1024.", + "description": "Feature state Keyname. Maximum length allowed is 1000.", "type": "string" }, "value": { @@ -770,7 +770,7 @@ ], "properties": { "keyName": { - "description": "Stateset style key name. Key names are random strings but they should be unique inside style array. Maximum length allowed is 1024.", + "description": "Stateset style key name. Key names are random strings but they should be unique inside style array. Maximum length allowed is 1000.", "type": "string" }, "type": { From fccba923bb1a0deba9f4a9d43946f00f9746b073 Mon Sep 17 00:00:00 2001 From: Robert Johnson Date: Mon, 19 Apr 2021 13:33:25 -0700 Subject: [PATCH 26/38] Update dataset v2 descriptions and examples. --- .../Dataset/preview/2.0/dataset.json | 19 +++-- .../preview/2.0/examples/Dataset_Create.json | 19 +---- .../2.0/examples/Dataset_GetDetails.json | 85 +++++++++++++++++++ .../preview/2.0/examples/Dataset_List.json | 18 ++-- 4 files changed, 109 insertions(+), 32 deletions(-) create mode 100644 specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_GetDetails.json diff --git a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json index 3a8da5d49458..8ce30a1c5194 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json +++ b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json @@ -118,7 +118,7 @@ }, "ConversionIdQuery": { "name": "conversionId", - "description": "The unique ID used to create the dataset. The `conversionId` must have been obtained from a successful call to the Conversion Service Convert API and must be provided with multiple query parameters with same name (if more than one is provided).", + "description": "The unique ID used to create the dataset. The `conversionId` must have been obtained from a successful call to the Conversion Service Convert API and may be provided with multiple query parameters with same name (if more than one is provided).", "type": "string", "in": "query", "required": true, @@ -144,7 +144,7 @@ "name": "datasetId", "type": "string", "in": "query", - "description": "The ID for the dataset to append to. ** the dataset must originate from a conversion ontology that matches conversionId", + "description": "The ID for the dataset to append with. The dataset must originate from a conversion ontology that matches conversionId", "required": false, "x-ms-parameter-location": "method" }, @@ -161,7 +161,7 @@ "/datasets": { "post": { "x-publish": true, - "description": "**Dataset Create API**\n\n**Applies to:** S1 pricing tier.\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API \nand SDK. The Dataset APIs are part of Creator. This API allows the caller to create a dataset from data that \nwas uploaded to the Azure Maps Data Service.\n\nYou can use this API in a scenario like uploading a DWG zip package for a building, converting the zip package using \nthe Azure Maps Conversion Service, creating a dataset from the converted zip package. The created dataset can be \nused to create tilesets using the Azure Maps Tileset Service and can be queried via the Azure Maps WFS Service.\n\n## Submit Create Request\n\nTo create your dataset, you will use a `POST` request where the `conversionId` query parameter is an id that represents \nthe converted DWG zip package, the `type` parameter will describe the data type to use for the dataset, the `datasetId`\nparameter will describe if the provided data should be appended to a current dataset and, optionally, the \n`description` query parameter will contain a description (if description is not provided a default description will be \ngiven).\n\nThe Create API is a \n[long-running request](https://aka.ms/am-creator-lrt).", + "description": "## Dataset Create API\n\n### Applies to: S1 pricing tier.\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Dataset APIs are part of Creator. This API allows the caller to create a dataset from data that was uploaded to the Azure Maps Data Service and converted using the Azure Maps Conversion Service.\n\nYou can use this API in a scenario like uploading a DWG zip package for a building, converting the zip package using the Azure Maps Conversion Service, and creating a dataset from the converted zip package. The created dataset can be used to create tilesets using the Azure Maps Tileset Service and can be queried via the Azure Maps WFS Service.\n\n### Submit Create Request\n\nTo create your dataset, you will use a `POST` request where the `conversionId` query parameter is an ID that represents the converted DWG zip package, the `datasetId` parameter will be the ID of a previously created dataset to append with the current dataset and, optionally, the `description` query parameter will contain a description (if description is not provided a default description will be given).\n\nThe Create API is a [long-running request](https://aka.ms/am-creator-lrt).", "operationId": "Dataset_CreatePreview", "x-ms-long-running-operation": true, "x-ms-long-running-operation-options": { @@ -212,7 +212,7 @@ }, "get": { "x-publish": true, - "description": "**Dataset List API**\n\n**Applies to:** S1 pricing tier.\n
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Dataset APIs are part of Creator.\nThis API allows the caller to fetch a list of all previously successfully created datasets.\n\n\n### Submit List Request\n\nTo list all your datasets, you will issue a `GET` request with no additional parameters.
\n\n\n### List Data Response\n\nThe List API returns the complete list of all datasets in `json` format. The response contains the following fields (if they are not null or empty):\n > created - The timestamp the dataset was created.\n > datasetId - The id for the dataset.\n > description - The description for the dataset.\n > datasetSources - The source data that was used when the create request was issued.\n\nThe `datasetSources` describes the source data that was used when the create request was issued and contains the following elements (if they are not null or empty):\n > conversionIds - The list of `conversionId` (null if none were provided).\n > udids - The list of `udid` (null if none were provided).\n > appendDatasetId - The `datasetId` that was used for an append operation (null if none was used).\n > type - The type of data stored in the dataset that was created.\n\nHere's a sample response returning the `timestamp`, `datasetId`, `description`, and `datasetSources` of 3 dataset resources:\n\n
\n\n```json\n{\n \"datasets\": [\n {\n \"timestamp\": \"2020-01-01T22:50:48+00:00\",\n \"datasetId\": \"f6495f62-94f8-0ec2-c252-45626f82fcb2\",\n \"description\": \"Some description or comment for the dataset.\",\n \"datasetSources\": {\n \"conversionIds\": [\n \"15d21452-c9bb-27b6-5e79-743ca5c3205d\"\n ],\n \"type\": \"facility\"\n },\n \"status\": \"Succeeded\"\n },\n {\n \"timestamp\": \"2020-01-01T22:57:53+00:00\",\n \"datasetId\": \"8b1288fa-1958-4a2b-b68e-13a7i5af7d7c\",\n \"description\": \"Create from upload '0c1288fa-2058-4a1b-b68d-13a5f5af7d7c'.\",\n \"datasetSources\": {\n \"udids\": [\n \"0c1288fa-2058-4a1b-b68d-13a5f5af7d7c\"\n ],\n \"type\": \"facility\"\n },\n \"status\": \"Succeeded\"\n },\n {\n \"timestamp\": \"2020-01-01T20:39:36+00:00\",\n \"datasetId\": \"7c1288fa-2058-4a1b-b68f-13a6h5af7d7c\",\n \"description\": \"Some other description or comment for the dataset.\",\n \"datasetSources\": {\n \"conversionIds\": [\n \"15d21452-c9bb-27b6-5e79-743ca5c3205d\"\n ],\n \"appendDatasetId\": \"8b1288fa-1958-4a2b-b68e-13a7i5af7d7c\",\n \"type\": \"facility\"\n },\n \"status\": \"Succeeded\"\n }\n ]\n}\n```\n
", + "description": "## Dataset List API\n\n### Applies to: S1 pricing tier.\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Dataset APIs are part of Creator.\n\nThis API allows the caller to fetch a list of all previously successfully created datasets.\n\n### Submit List Request\n\nTo list all your datasets, you will issue a `GET` request with no additional parameters.\n\n\n### List Data Response\n\nThe List API returns the complete list of all datasets in `json` format. The response contains the following fields (if they are not null or empty):\n> created - The timestamp the dataset was created.\n> datasetId - The id for the dataset.\n> description - The description for the dataset.\n> datasetSources - The source data that was used when the create request was issued.\n> ontology - The source ontology that was used in the conversion service for the input data.
\n\nThe `datasetSources` describes the source data that was used when the create request was issued and contains the following elements (if they are not null or empty):\n\n> conversionIds - The list of `conversionId` (null if none were provided).\n> appendDatasetId - The `datasetId` that was used for an append operation (null if none was used).\n>featureCounts - The counts for each feature type in the dataset.
\n\nHere's a sample response returning the `timestamp`, `datasetId`, `description`, `datasetSources`, and `ontology` of 3 dataset resources:\n\n\n```json\n{\n \"datasets\": [\n {\n \"timestamp\": \"2020-01-01T22:50:48.123Z\",\n \"datasetId\": \"f6495f62-94f8-0ec2-c252-45626f82fcb2\",\n \"description\": \"Some description or comment for the dataset.\",\n \"datasetSources\": {\n \"conversionIds\": [\n \"15d21452-c9bb-27b6-5e79-743ca5c3205d\"\n ], },\n \"ontology\": \"facility-2.0\",\n \"featureCounts\": {\n \"directoryInfo\": 2,\n \"category\": 10,\n \"facility\": 1,\n \"level\": 3,\n \"unit\": 183,\n \"zone\": 3,\n \"verticalPenetration\": 6,\n \"opening\": 48,\n \"areaElement\": 108\n }\n },\n {\n \"timestamp\": \"2020-01-01T22:57:53.123Z\",\n \"datasetId\": \"8b1288fa-1958-4a2b-b68e-13a7i5af7d7c\",\n \"description\": \"Create from upload '0c1288fa-2058-4a1b-b68d-13a5f5af7d7c'.\",\n \"datasetSources\": {\n \"conversionIds\": [\n \"0c1288fa-2058-4a1b-b68d-13a5f5af7d7c\"\n ],\n \"appendDatasetId\": \"46d1edb6-d29e-4786-9589-dbd4efd7a977\"\n },\n \"ontology\": \"facility-2.0\",\n \"featureCounts\": {\n \"directoryInfo\": 2,\n \"category\": 10,\n \"facility\": 1,\n \"level\": 3,\n \"unit\": 183,\n \"zone\": 3,\n \"verticalPenetration\": 6,\n \"opening\": 48,\n \"areaElement\": 108\n }\n }\n ]\n}\n```", "operationId": "Dataset_ListPreview", "x-ms-examples": { "List all the previously created datasets": { @@ -255,8 +255,13 @@ "/datasets/{datasetId}": { "get": { "x-publish": true, - "description": "**Dataset Get API**\n\n**Applies to:** S1 pricing tier.\n
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Dataset APIs are part of Creator.\nThis API allows the caller to fetch a previously successfully created dataset.\n", + "description": "## Dataset Get Details API\n\n### Applies to: S1 pricing tier.\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Dataset APIs are part of Creator.\n\nThis API allows the caller to fetch a previously successfully created dataset.\n\n### Submit Get Details Request\n\nTo get the details for a previously created dataset, you will issue a `GET` request with the `datasetId` in the path.\n\n### Get Details Response\n\nThe Get Details API returns the details for a dataset in `json` format. The response contains the following fields (if they are not null or empty):\n> created - The timestamp the dataset was created.\n> datasetId - The id for the dataset.\n> description - The description for the dataset.\n> datasetSources - The source data that was used when the create request was issued.\n> ontology - The source ontology that was used in the conversion service for the input data.
\n\nThe `datasetSources` describes the source data that was used when the create request was issued and contains the following elements (if they are not null or empty):\n> conversionIds - The list of `conversionId` (null if none were provided).\n> appendDatasetId - The `datasetId` that was used for an append operation (null if none was used).\n>featureCounts - The counts for each feature type in the dataset.
\n\nHere's a sample response returning the `timestamp`, `datasetId`, `description`, `datasetSources`, and `ontology` of a dataset resource:\n\n```json\n{\n \"timestamp\": \"2020-01-01T22:50:48.123Z\",\n \"datasetId\": \"f6495f62-94f8-0ec2-c252-45626f82fcb2\",\n \"description\": \"Some description or comment for the dataset.\",\n \"datasetSources\": {\n \"conversionIds\": [\n \"15d21452-c9bb-27b6-5e79-743ca5c3205d\"\n ],\n },\n \"ontology\": \"facility-2.0\",\n \"featureCounts\": {\n \"directoryInfo\": 2,\n \"category\": 10,\n \"facility\": 1,\n \"level\": 3,\n \"unit\": 183,\n \"zone\": 3,\n \"verticalPenetration\": 6,\n \"opening\": 48,\n \"areaElement\": 108\n }\n }\n```", "operationId": "Dataset_GetPreview", + "x-ms-examples": { + "Get details for a previously created dataset": { + "$ref": "./examples/Dataset_GetDetails.json" + } + }, "parameters": [ { "$ref": "#/parameters/DatasetId" @@ -294,7 +299,7 @@ }, "delete": { "x-publish": true, - "description": "**Dataset Delete API**\n\n**Applies to:** S1 pricing tier.\n
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Dataset APIs are part of Creator.\nThis API allows the caller to delete a previously created dataset.
\nYou can also use this API to delete old/unused datasets to create space for new Creator content.\n\n\n### Submit Delete Request\n\nTo delete your content you will issue a `DELETE` request where the path will contain the `datasetId` of the dataset to delete.
\n\n\n### Delete Data Response\n\nThe Delete API returns a HTTP `204 No Content` response if the dataset resource was deleted successfully.
", + "description": "## Dataset Delete API\n\n### Applies to:S1 pricing tier.\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Dataset APIs are part of Creator. This API allows the caller to delete a previously created dataset.\n\nYou can also use this API to delete old/unused datasets to create space for new Creator content.\n\n### Submit Delete Request\n\nTo delete your content you will issue a `DELETE` request where the path will contain the `datasetId` of the dataset to delete.", "operationId": "Dataset_DeletePreview", "x-ms-examples": { "Delete previously created dataset": { @@ -336,7 +341,7 @@ }, "/datasets/operations/{operationId}": { "get": { - "description": "This path will be obtained from a call to /datasets/create. While in progress, an http200 will be returned with no extra headers - followed by an http200 with Resource-Location header once successfully completed.", + "description": "## Dataset Operations API\n\n### Applies to: S1 pricing tier\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Dataset APIs are part of Creator. This API allows the caller to view the current progress of a dataset operation and the path is obtained from a call to the Create API.\n\n### Submit Operations Request\n\nTo view the current progress of a dataset operation, you will use a `GET` request where the `operationId` given the path is the ID that represents the operation.\n\n### Operation Response\n\nWhile in progress, a `200-OK` http status code will be returned with no extra headers. If the operation succeeds, a `200-OK` http status code with Resource-Location header will be returned.", "parameters": [ { "$ref": "#/parameters/SubscriptionKey" diff --git a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Create.json b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Create.json index 0a4ad200c0a6..eeb5e5d59bc4 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Create.json +++ b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Create.json @@ -2,26 +2,13 @@ "parameters": { "api-version": "2.0", "subscription-key": "[subscription-key]", - "conversionId": "[conversionId]", - "type": "facility" + "conversionId": "[conversionId]" }, "responses": { - "201": { - "headers": { - "Location": "https://atlas.microsoft.com/dataset/{datasetId}?api-version=1.0", - "Access-Control-Expose-Headers": "Location" - }, - "body": { - "operationId": "{operationId}", - "status": "Succeeded", - "created": "2020-01-02 1:02:03 AM +00:00", - "resourceLocation": "https://atlas.microsoft.com/dataset/{datasetId}?api-version=1.0" - } - }, "202": { "headers": { - "Location": "https://atlas.microsoft.com/dataset/operations/{operationId}?api-version=1.0", - "Access-Control-Expose-Headers": "Location" + "Operation-Location": "https://atlas.microsoft.com/dataset/operations/{operationId}?api-version=1.0", + "Access-Control-Expose-Headers": "Operation-Location" } }, "400": { diff --git a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_GetDetails.json b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_GetDetails.json new file mode 100644 index 000000000000..f14fd8e485c4 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_GetDetails.json @@ -0,0 +1,85 @@ +{ + "parameters": { + "api-version": "2.0", + "subscription-key": "[subscription-key]", + "datasetId": "[datasetId]" + }, + "responses": { + "201": { + "headers": { + "Location": "https://atlas.microsoft.com/dataset/{datasetId}?api-version=1.0", + "Access-Control-Expose-Headers": "Resource-Location" + }, + "body": { + "created": "2021-05-21T01:02:03.456Z", + "datasetId": "{datasetId}", + "description": "Some description or comment about the dataset", + "datasetSources": { + "conversionIds": [ + "{conversionId1}", + "{conversionId2}" + ], + "appendDatasetId": "{appendDatasetId}" + }, + "featureCounts": { + "directoryInfo": 2, + "category": 10, + "facility": 1, + "level": 3, + "unit": 183, + "zone": 3, + "verticalPenetration": 6, + "opening": 48, + "areaElement": 108 + }, + "ontology": "facility-2.0" + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request - Error message." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found - The requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "Unknown error - An error occurred while processing the request. Please try again later." + } + } + } + } + } + \ No newline at end of file diff --git a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_List.json b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_List.json index b23d44d66076..08f534251178 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_List.json +++ b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_List.json @@ -14,8 +14,7 @@ "datasetSources": { "conversionIds": [ "15d21452-c9bb-27b6-5e79-743ca5c3205d" - ], - "type": "facility" + ] }, "featureCounts": { "directoryInfo": 1, @@ -25,7 +24,8 @@ "unit": 775, "opening": 471, "areaElement": 496 - } + }, + "ontology": "facility-2.0" }, { "created": "2020-01-02 3:04:05 PM +00:00", @@ -34,8 +34,7 @@ "datasetSources": { "udids": [ "0c1288fa-2058-4a1b-b68d-13a5f5af7d7c" - ], - "type": "facility" + ] }, "featureCounts": { "directoryInfo": 1, @@ -43,7 +42,8 @@ "facility": 1, "level": 6, "unit": 19 - } + }, + "ontology": "facility-2.0" }, { "created": "2020-01-02 3:04:05 AM +00:00", @@ -53,8 +53,7 @@ "conversionIds": [ "15d21452-c9bb-27b6-5e79-743ca5c3205d" ], - "appendDatasetId": "8b1288fa-1958-4a2b-b68e-13a7i5af7d7c", - "type": "facility" + "appendDatasetId": "8b1288fa-1958-4a2b-b68e-13a7i5af7d7c" }, "featureCounts": { "directoryInfo": 1, @@ -62,7 +61,8 @@ "facility": 1, "level": 1, "unit": 10 - } + }, + "ontology": "facility-2.0" } ] } From c9948c0fcdd8feaaf8dbf662d97f08252aa34e23 Mon Sep 17 00:00:00 2001 From: Robert Johnson Date: Mon, 19 Apr 2021 13:43:43 -0700 Subject: [PATCH 27/38] Update the examples to have the right details. --- .../2.0/examples/Dataset_GetDetails.json | 8 ++--- .../preview/2.0/examples/Dataset_List.json | 36 ++++++------------- 2 files changed, 15 insertions(+), 29 deletions(-) diff --git a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_GetDetails.json b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_GetDetails.json index f14fd8e485c4..27924ac1d0e9 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_GetDetails.json +++ b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_GetDetails.json @@ -12,14 +12,14 @@ }, "body": { "created": "2021-05-21T01:02:03.456Z", - "datasetId": "{datasetId}", + "datasetId": "[datasetId]", "description": "Some description or comment about the dataset", "datasetSources": { "conversionIds": [ - "{conversionId1}", - "{conversionId2}" + "15d21452-c9bb-27b6-5e79-743ca5c3205d", + "c39de51c-b4f5-4733-aeeb-d8cb6f8b2f1d" ], - "appendDatasetId": "{appendDatasetId}" + "appendDatasetId": "6a49a490-1d9c-4f05-bf1e-51998fbc4733" }, "featureCounts": { "directoryInfo": 2, diff --git a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_List.json b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_List.json index 08f534251178..a0206f1bba72 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_List.json +++ b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_List.json @@ -8,12 +8,12 @@ "body": { "datasets": [ { - "created": "2020-01-02 3:04:05 AM +00:00", + "created": "2021-05-21T03:04:05.678Z", "datasetId": "f6495f62-94f8-0ec2-c252-45626f82fcb2", "description": "Some description or comment for the dataset.", "datasetSources": { "conversionIds": [ - "15d21452-c9bb-27b6-5e79-743ca5c3205d" + "db63843c-3c70-4b4e-94ff-dfcf4013c4a9" ] }, "featureCounts": { @@ -28,25 +28,7 @@ "ontology": "facility-2.0" }, { - "created": "2020-01-02 3:04:05 PM +00:00", - "datasetId": "8b1288fa-1958-4a2b-b68e-13a7i5af7d7c", - "description": "Create from upload '0c1288fa-2058-4a1b-b68d-13a5f5af7d7c'.", - "datasetSources": { - "udids": [ - "0c1288fa-2058-4a1b-b68d-13a5f5af7d7c" - ] - }, - "featureCounts": { - "directoryInfo": 1, - "category": 2, - "facility": 1, - "level": 6, - "unit": 19 - }, - "ontology": "facility-2.0" - }, - { - "created": "2020-01-02 3:04:05 AM +00:00", + "created": "2021-05-21T03:04:05.678Z", "datasetId": "7c1288fa-2058-4a1b-b68f-13a6h5af7d7c", "description": "Some other description or comment for the dataset.", "datasetSources": { @@ -56,11 +38,15 @@ "appendDatasetId": "8b1288fa-1958-4a2b-b68e-13a7i5af7d7c" }, "featureCounts": { - "directoryInfo": 1, - "category": 1, + "directoryInfo": 2, + "category": 10, "facility": 1, - "level": 1, - "unit": 10 + "level": 3, + "unit": 183, + "zone": 3, + "verticalPenetration": 6, + "opening": 48, + "areaElement": 108 }, "ontology": "facility-2.0" } From 7b42804f45160b36e72381d921eeb5bcba9a6a4d Mon Sep 17 00:00:00 2001 From: Jeff Couckuyt Date: Tue, 20 Apr 2021 14:20:51 -0700 Subject: [PATCH 28/38] reran linter; added spellcheck words --- custom-words.txt | 2 + .../2.0/examples/Alias_GetDetails.json | 105 ++++++------ .../Microsoft.Maps/Data/preview/2.0/data.json | 18 +-- .../2.0/examples/Dataset_GetDetails.json | 149 +++++++++--------- .../preview/2.0/examples/GetCollection.json | 2 +- .../2.0/examples/GetCollectionDefinition.json | 2 +- .../preview/2.0/examples/GetCollections.json | 2 +- .../WFS/preview/2.0/examples/GetItem.json | 2 +- .../WFS/preview/2.0/examples/GetItems.json | 2 +- .../preview/2.0/examples/GetLandingPage.json | 2 +- 10 files changed, 141 insertions(+), 145 deletions(-) diff --git a/custom-words.txt b/custom-words.txt index 0eb0f8abdb77..7dfb5437526a 100644 --- a/custom-words.txt +++ b/custom-words.txt @@ -577,6 +577,7 @@ Dsms DTDL Dtus duration'PT +dwgzippackage EAPMSCHA EAPMSCHAP EAPTLS @@ -661,6 +662,7 @@ fconfig FDID fearthecowboy featurecapabilities +featurestate Featurization featurized Featurizer diff --git a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_GetDetails.json b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_GetDetails.json index ac676a4829ef..80e806e96fc5 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_GetDetails.json +++ b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_GetDetails.json @@ -1,63 +1,62 @@ { - "parameters": { - "api-version": "2.0", - "subscription-key": "[subscription-key]", - "aliasId": "[aliasId]" + "parameters": { + "api-version": "2.0", + "subscription-key": "[subscription-key]", + "aliasId": "[aliasId]" + }, + "responses": { + "200": { + "body": { + "createdTimestamp": "2020-02-13T21:19:11+00:00", + "aliasId": "a8a4b8bb-ecf4-fb27-a618-f41721552766", + "resourceId": "e89aebb9-70a3-8fe1-32bb-1fbd0c725f14", + "lastUpdatedTimestamp": "2020-02-13T21:19:22+00:00" + } }, - "responses": { - "200": { - "body": { - "createdTimestamp": "2020-02-13T21:19:11+00:00", - "aliasId": "a8a4b8bb-ecf4-fb27-a618-f41721552766", - "resourceId": "e89aebb9-70a3-8fe1-32bb-1fbd0c725f14", - "lastUpdatedTimestamp": "2020-02-13T21:19:22+00:00" - } - }, - "400": { - "headers": {}, - "body": { - "error": { - "code": "400 BadRequest", - "message": "Bad request - One or more parameters were incorrectly specified or are mutually exclusive." - } + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request - One or more parameters were incorrectly specified or are mutually exclusive." } - }, - "401": { - "headers": {}, - "body": { - "error": { - "code": "401 Unauthorized", - "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." - } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." } - }, - "403": { - "headers": {}, - "body": { - "error": { - "code": "403 Forbidden", - "message": "Permission, capacity, or authentication issues." - } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." } - }, - "404": { - "headers": {}, - "body": { - "error": { - "code": "404 NotFound", - "message": "Not Found - The requested resource could not be found, but it may be available again in the future." - } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found - The requested resource could not be found, but it may be available again in the future." } - }, - "500": { - "headers": {}, - "body": { - "error": { - "code": "500 InternalServerError", - "message": "Unknown error - An error occurred while processing the request. Please try again later." - } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "Unknown error - An error occurred while processing the request. Please try again later." } } } } - \ No newline at end of file +} diff --git a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/data.json b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/data.json index 9711a57d6b1b..9c70fca81016 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/data.json +++ b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/data.json @@ -199,7 +199,6 @@ "required": true, "x-ms-parameter-location": "method" } - }, "paths": { "/mapData": { @@ -499,8 +498,7 @@ "$ref": "#/parameters/OperationId" } ], - - "responses":{ + "responses": { "200": { "$ref": "#/responses/200Async" }, @@ -510,8 +508,6 @@ } } } - - }, "definitions": { "ODataErrorResponse": { @@ -653,14 +649,14 @@ "readOnly": true }, "dataFormat": { - "description": "", - "type":"string", - "readOnly": true + "description": "", + "type": "string", + "readOnly": true }, "description": { - "description": "", - "type":"string", - "readOnly": true + "description": "", + "type": "string", + "readOnly": true } } } diff --git a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_GetDetails.json b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_GetDetails.json index 27924ac1d0e9..b3635ed93e38 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_GetDetails.json +++ b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_GetDetails.json @@ -1,85 +1,84 @@ { - "parameters": { - "api-version": "2.0", - "subscription-key": "[subscription-key]", - "datasetId": "[datasetId]" - }, - "responses": { - "201": { - "headers": { - "Location": "https://atlas.microsoft.com/dataset/{datasetId}?api-version=1.0", - "Access-Control-Expose-Headers": "Resource-Location" - }, - "body": { - "created": "2021-05-21T01:02:03.456Z", - "datasetId": "[datasetId]", - "description": "Some description or comment about the dataset", - "datasetSources": { - "conversionIds": [ - "15d21452-c9bb-27b6-5e79-743ca5c3205d", - "c39de51c-b4f5-4733-aeeb-d8cb6f8b2f1d" - ], - "appendDatasetId": "6a49a490-1d9c-4f05-bf1e-51998fbc4733" - }, - "featureCounts": { - "directoryInfo": 2, - "category": 10, - "facility": 1, - "level": 3, - "unit": 183, - "zone": 3, - "verticalPenetration": 6, - "opening": 48, - "areaElement": 108 - }, - "ontology": "facility-2.0" - } + "parameters": { + "api-version": "2.0", + "subscription-key": "[subscription-key]", + "datasetId": "[datasetId]" + }, + "responses": { + "201": { + "headers": { + "Location": "https://atlas.microsoft.com/dataset/{datasetId}?api-version=1.0", + "Access-Control-Expose-Headers": "Resource-Location" }, - "400": { - "headers": {}, - "body": { - "error": { - "code": "400 BadRequest", - "message": "Bad request - Error message." - } + "body": { + "created": "2021-05-21T01:02:03.456Z", + "datasetId": "[datasetId]", + "description": "Some description or comment about the dataset", + "datasetSources": { + "conversionIds": [ + "15d21452-c9bb-27b6-5e79-743ca5c3205d", + "c39de51c-b4f5-4733-aeeb-d8cb6f8b2f1d" + ], + "appendDatasetId": "6a49a490-1d9c-4f05-bf1e-51998fbc4733" + }, + "featureCounts": { + "directoryInfo": 2, + "category": 10, + "facility": 1, + "level": 3, + "unit": 183, + "zone": 3, + "verticalPenetration": 6, + "opening": 48, + "areaElement": 108 + }, + "ontology": "facility-2.0" + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request - Error message." } - }, - "401": { - "headers": {}, - "body": { - "error": { - "code": "401 Unauthorized", - "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." - } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." } - }, - "403": { - "headers": {}, - "body": { - "error": { - "code": "403 Forbidden", - "message": "Permission, capacity, or authentication issues." - } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." } - }, - "404": { - "headers": {}, - "body": { - "error": { - "code": "404 NotFound", - "message": "Not Found - The requested resource could not be found, but it may be available again in the future." - } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found - The requested resource could not be found, but it may be available again in the future." } - }, - "500": { - "headers": {}, - "body": { - "error": { - "code": "500 InternalServerError", - "message": "Unknown error - An error occurred while processing the request. Please try again later." - } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "Unknown error - An error occurred while processing the request. Please try again later." } } } } - \ No newline at end of file +} diff --git a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollection.json b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollection.json index 9b230a40ebe5..498c1c64ab00 100644 --- a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollection.json +++ b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollection.json @@ -10,7 +10,7 @@ "body": { "name": "unit", "description": "A physical and non-overlapping area which might be occupied and traversed by a navigating agent. Can be a hallway, a room, a courtyard, etc. It is surrounded by physical obstruction (wall), unless the isOpenArea attribute is equal to true, and one must add openings where the obstruction shouldn't be there. If isOpenArea attribute is equal to true, all the sides are assumed open to the surroundings and walls are to be added where needed. Walls for open areas are represented as a lineElement or areaElement with isObstruction equal to true.", - "ontology" : "Facility-2.0", + "ontology": "Facility-2.0", "links": [ { "href": "https://atlas.microsoft.com/wfs/dataset/4a25a249-8bd4-3f78-8cd8-eff11751d35b/collections/unit/definition?api-version=1.0", diff --git a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollectionDefinition.json b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollectionDefinition.json index 7f8193ee261d..1b054f862796 100644 --- a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollectionDefinition.json +++ b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollectionDefinition.json @@ -11,7 +11,7 @@ "idPrefix": "UNIT", "name": "unit", "description": "A physical and non-overlapping area which might be occupied and traversed by a navigating agent. Can be a hallway, a room, a courtyard, etc. It is surrounded by physical obstruction (wall), unless the isOpenArea attribute is equal to true, and one must add openings where the obstruction shouldn't be there. If isOpenArea attribute is equal to true, all the sides are assumed open to the surroundings and walls are to be added where needed. Walls for open areas are represented as a lineElement or areaElement with isObstruction equal to true.", - "ontology" : "Facility-2.0", + "ontology": "Facility-2.0", "geometryType": "Polygon", "featureTypes": [], "properties": [ diff --git a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollections.json b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollections.json index eebee378acc3..ae9b4d3d3938 100644 --- a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollections.json +++ b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetCollections.json @@ -7,7 +7,7 @@ "responses": { "200": { "body": { - "ontology" : "Facility-2.0", + "ontology": "Facility-2.0", "collections": [ { "name": "unit", diff --git a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetItem.json b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetItem.json index 80c50119fea0..bb4b406d2a1b 100644 --- a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetItem.json +++ b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetItem.json @@ -9,7 +9,7 @@ "responses": { "200": { "body": { - "ontology" : "Facility-2.0", + "ontology": "Facility-2.0", "feature": { "type": "feature", "geometry": { diff --git a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetItems.json b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetItems.json index 05c60140e766..c4ba03fd6d91 100644 --- a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetItems.json +++ b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetItems.json @@ -11,7 +11,7 @@ "200": { "body": { "type": "FeatureCollection", - "ontology" : "Facility-2.0", + "ontology": "Facility-2.0", "features": [ { "type": "feature", diff --git a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetLandingPage.json b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetLandingPage.json index c292c180da00..1ff1f81bbcca 100644 --- a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetLandingPage.json +++ b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/examples/GetLandingPage.json @@ -7,7 +7,7 @@ "responses": { "200": { "body": { - "ontology" : "Facility-2.0", + "ontology": "Facility-2.0", "links": [ { "href": "https://atlas.microsoft.com/wfs/datasets/018fda98-e638-0edf-5ef7-28491ff3bed4", From ba125ba525c9b245341aeb4855ec2caa0a990de7 Mon Sep 17 00:00:00 2001 From: Jeff Couckuyt Date: Tue, 20 Apr 2021 16:11:20 -0700 Subject: [PATCH 29/38] more linting: 202 description alignment --- .../Microsoft.Maps/Dataset/preview/2.0/dataset.json | 2 +- .../Microsoft.Maps/Tileset/preview/2.0/tileset.json | 2 +- .../data-plane/Microsoft.Maps/WFS/preview/2.0/wfs.json | 9 --------- 3 files changed, 2 insertions(+), 11 deletions(-) diff --git a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json index 8ce30a1c5194..67881e769cc5 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json +++ b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json @@ -89,7 +89,7 @@ } }, "202": { - "description": "Request Accepted: The request has been accepted for processing. Please use the URL in the location Header to obtain status.", + "description": "Request Accepted: The request has been accepted for processing. Please use the URL in the Operation-Location Header to obtain status.", "headers": { "Operation-Location": { "type": "string", diff --git a/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json index 6fd464b7f855..e277ab93bc92 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json +++ b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json @@ -88,7 +88,7 @@ } }, "202": { - "description": "Request Accepted: The request has been accepted for processing. Please use the URL in the location Header to obtain status.", + "description": "Request Accepted: The request has been accepted for processing. Please use the URL in the Operation-Location Header to obtain status.", "headers": { "Operation-Location": { "type": "string", diff --git a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/wfs.json b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/wfs.json index 5990bb34b4da..39ffb1b438f8 100644 --- a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/wfs.json +++ b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/wfs.json @@ -40,15 +40,6 @@ } ], "responses": { - "202": { - "description": "Request Accepted: The request has been accepted for processing. Please use the URL in the Location Header to retry or access the results.", - "headers": { - "Location": { - "type": "string", - "description": "New URL to check for the results of the long running process." - } - } - }, "400": { "description": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive.", "schema": { From c4c54431fdfb9d0e0b8f03eaf7b6d819559de5ca Mon Sep 17 00:00:00 2001 From: Jeff Couckuyt Date: Wed, 21 Apr 2021 16:03:43 -0700 Subject: [PATCH 30/38] fixed example linting for alias, data, dataset --- .../Alias/preview/2.0/examples/Alias_Assign.json | 2 +- .../Alias/preview/2.0/examples/Alias_Delete.json | 1 - .../Microsoft.Maps/Data/preview/2.0/data.json | 10 +++++----- .../Data/preview/2.0/examples/Delete.json | 1 - .../Data/preview/2.0/examples/Update.json | 16 ++-------------- .../Data/preview/2.0/examples/Upload.json | 16 ++-------------- .../Dataset/preview/2.0/dataset.json | 8 ++++---- .../preview/2.0/examples/Dataset_Delete.json | 1 - .../preview/2.0/examples/Dataset_GetDetails.json | 2 +- 9 files changed, 15 insertions(+), 42 deletions(-) diff --git a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Assign.json b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Assign.json index 17ef376b66e6..32e0c1f2871c 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Assign.json +++ b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Assign.json @@ -6,7 +6,7 @@ "resourceId": "[resourceId]" }, "responses": { - "204": { + "200": { "body": { "createdTimestamp": "2021-05-01T01:02:03.456Z", "aliasId": "25084fb7-307a-4720-8f91-7952a0b91012", diff --git a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Delete.json b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Delete.json index 61522b3f0426..755cf3ed4564 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Delete.json +++ b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Delete.json @@ -6,7 +6,6 @@ }, "responses": { "204": { - "body": {} }, "400": { "headers": {}, diff --git a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/data.json b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/data.json index 9c70fca81016..399031cf60a2 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/data.json +++ b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/data.json @@ -205,7 +205,7 @@ "post": { "x-publish": true, "description": "**Data Upload API**\n\n**Applies to:** S1 pricing tier.\n\nThe Data Upload API allows the caller to upload data content to the Azure Maps service.\nYou can use this API in a scenario like uploading a collection of Geofences in `GeoJSON` \nformat, for use in our [Azure Maps Geofencing Service](https://docs.microsoft.com/rest/api/maps/spatial).\n\n## Submit Upload Request\n\nTo upload your content you will use a `POST` request. The request body will contain the data to upload. The \n`dataFormat` query parameter will contain the format for the data, the `dataSharingLevel` query parameter \ncan contain the sharing level for the data. The `Content-Type` header will be set to the content type of the \ndata.\n\nFor example, to upload a collection of geofences in `GeoJSON` format, set the request body to the geofence \ncontent. Set the `dataFormat` query parameter to _geojson_, and set the `Content-Type` header to either one \nof the following media types:\n\n- `application/json`\n- `application/vnd.geo+json`\n- `application/octet-stream`\n\nHere's a sample request body for uploading a simple Geofence represented as a circle geometry using a center \npoint and a radius. The sample below is in `GeoJSON`:\n\n```json\n{\n \"type\": \"FeatureCollection\",\n \"features\": [{\n \"type\": \"Feature\",\n \"geometry\": {\n \"type\": \"Point\",\n \"coordinates\": [-122.126986, 47.639754]\n },\n \"properties\": {\n \"geometryId\": \"001\",\n \"radius\": 500\n }\n }]\n}\n```\n\nThe Data Upload API performs a \n[long-running request](https://docs.microsoft.com/azure/azure-maps/private-atlas-long-running-operation).\n\n## Data Upload Limits\n\nPlease, be aware that currently every Azure Maps account has a [data storage limit](https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/azure-subscription-service-limits#azure-maps-limits). \nOnce the storage limit is reached, all the new upload API calls will return a `409 Conflict` http error response. \nYou can always use the [Data Delete API](https://docs.microsoft.com/rest/api/maps/data/deletepreview) to \ndelete old/unused content and create space for new uploads.", - "operationId": "Data_UploadPreview", + "operationId": "Data_Upload", "x-ms-long-running-operation": true, "x-ms-long-running-operation-options": { "final-state-via": "location" @@ -271,7 +271,7 @@ "get": { "x-publish": true, "description": "**Data List API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to fetch a list of all content uploaded previously using the [Data Upload API](https://docs.microsoft.com/en-us/rest/api/maps/data/uploadpreview). \n\n\n### Submit List Request\n\nTo list all your map data content you will issue a `GET` request with no additional parameters.\n\n\n### List Data Response\n\nThe Data List API returns the complete list of all data in `json` format. The response contains the following details for each data resource:\n\n > udid - The unique data id for the data resource.\n\n > location - The location of the data resource. Execute a HTTP `GET` on this location to download the data.\n\n\nHere's a sample response returning the `udid` and `location` of 3 data resources: \n\n
\n\n```json\n{\n \"mapDataList\": \n [\n {\n \"udid\": \"9a1288fa-1858-4a3b-b68d-13a8j5af7d7c\",\n \"location\": \"https://atlas.microsoft.com/mapData/9a1288fa-1858-4a3b-b68d-13a8j5af7d7c?api-version=1.0\",\n \"sizeInBytes\": 29920,\n \"uploadStatus\": \"Completed\"\n },\n {\n \"udid\": \"8b1288fa-1958-4a2b-b68e-13a7i5af7d7c\",\n \"location\": \"https://atlas.microsoft.com/mapData/8b1288fa-1958-4a2b-b68e-13a7i5af7d7c?api-version=1.0\",\n \"sizeInBytes\": 1339,\n \"uploadStatus\": \"Completed\"\n },\n {\n \"udid\": \"7c1288fa-2058-4a1b-b68f-13a6h5af7d7c\",\n \"location\": \"https://atlas.microsoft.com/mapData/7c1288fa-2058-4a1b-b68f-13a6h5af7d7c?api-version=1.0\",\n \"sizeInBytes\": 1650,\n \"uploadStatus\": \"Pending\"\n }]\n}\n```\n\n
", - "operationId": "Data_ListPreview", + "operationId": "Data_List", "x-ms-examples": { "List all the previously uploaded data": { "$ref": "./examples/List.json" @@ -323,7 +323,7 @@ "put": { "x-publish": true, "description": "**Data Update API**\n\n**Applies to:** S1 pricing tier.\n\nThe Data Update API allows the caller to update a previously uploaded data content.\n\nYou can use this API in a scenario like adding or removing geofences to or from an existing collection of geofences. \nGeofences are uploaded using the [Data Upload API](https://docs.microsoft.com/rest/api/maps/data/uploadpreview), for \nuse in the [Azure Maps Geofencing Service](https://docs.microsoft.com/rest/api/maps/spatial).\n\nPlease note that the Update API will *replace* and *override* the existing data content.\n\n## Submit Update Request\n\nTo update your content you will use a `PUT` request. The request body will contain the new data that will replace \nthe existing data. The `Content-Type` header will be set to the content type of the data, and the path will contain \nthe `udid` of the data to be update.\n\nFor example, to update a collection of geofences that were previously uploaded using the Upload API, place the new \ngeofence content in the request body. Set the `udid` parameter in the path to the `udid` of the data received \npreviously in the upload API response. And set the `Content-Type` header to one of the following media types:\n\n- `application/json`\n- `application/vnd.geo+json`\n- `application/octet-stream`\n\nHere's a sample request body for updating a simple Geofence. It's represented as a circle geometry using a center \npoint and a radius. The sample below is in `GeoJSON`:\n\n```json\n{\n \"type\": \"FeatureCollection\",\n \"features\": [{\n \"type\": \"Feature\",\n \"geometry\": {\n \"type\": \"Point\",\n \"coordinates\": [-122.126986, 47.639754]\n },\n \"properties\": {\n \"geometryId\": \"001\",\n \"radius\": 500\n }\n }]\n}\n```\n\nThe previously uploaded geofence had a radius of 100m. The above request will update it to 500m.\n\nThe Data Update API performs a \n[long-running request](https://docs.microsoft.com/azure/azure-maps/private-atlas-long-running-operation).\n\n## Data Update Limits\n\nPlease, be aware that currently every Azure Maps account has a [data storage limit](https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/azure-subscription-service-limits#azure-maps-limits). \nOnce the storage limit is reached, all the new upload API calls will return a `409 Conflict` http error response. \nYou can always use the [Data Delete API](https://docs.microsoft.com/rest/api/maps/data/deletepreview) to \ndelete old/unused content and create space for new uploads.", - "operationId": "Data_UpdatePreview", + "operationId": "Data_Update", "x-ms-long-running-operation": true, "x-ms-long-running-operation-options": { "final-state-via": "location" @@ -389,7 +389,7 @@ "get": { "x-publish": true, "description": "**Data Download API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to download a previously uploaded data content.
\nYou can use this API in a scenario like downloading an existing collection of geofences uploaded previously using the [Data Upload API](https://docs.microsoft.com/en-us/rest/api/maps/data/uploadpreview) for use in our [Azure Maps Geofencing Service](https://docs.microsoft.com/en-us/rest/api/maps/spatial). \n\n\n### Submit Download Request\n\nTo download your content you will use a `GET` request where the path will contain the `udid` of the data to download. Optionally, you can also pass in an `Accept` header to specify a preference for the `Content-Type` of the data response.
\nFor example, to download a collection of geofences previously uploaded using the Upload API, set the `udid` parameter in the path to the `udid` of the data received previously in the upload API response and set the `Accept` header to either one of the following media types: \n \n - `application/json`\n - `application/vnd.geo+json`\n - `application/octet-stream`\n\n\n### Download Data Response\n\nThe Download API will return a HTTP `200 OK` response if the data resource with the passed-in `udid` is found, where the response body will contain the content of the data resource.
\nA HTTP `400 Bad Request` error response will be returned if the data resource with the passed-in `udid` is not found.
\n\nHere's a sample response body for a simple geofence represented in `GeoJSON` uploaded previously using the Upload API:\n
\n\n```json\n{\n \"type\": \"FeatureCollection\",\n \"features\": [{\n \"type\": \"Feature\",\n \"geometry\": {\n \"type\": \"Point\",\n \"coordinates\": [-122.126986, 47.639754]\n },\n \"properties\": {\n \"geometryId\": \"001\",\n \"radius\": 500\n }\n }]\n}\n```", - "operationId": "Data_DownloadPreview", + "operationId": "Data_Download", "x-ms-examples": { "Download previously uploaded GeoJSON data containing geometries that represent a collection of geofences": { "$ref": "./examples/Download.json" @@ -442,7 +442,7 @@ "delete": { "x-publish": true, "description": "**Data Delete API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to delete a previously uploaded data content.
\nYou can use this API in a scenario like removing geofences previously uploaded using the [Data Upload API](https://docs.microsoft.com/en-us/rest/api/maps/data/uploadpreview) for use in our [Azure Maps Geofencing Service](https://docs.microsoft.com/en-us/rest/api/maps/spatial). You can also use this API to delete old/unused uploaded content and create space for new content.\n\n\n### Submit Delete Request\n\nTo delete your content you will issue a `DELETE` request where the path will contain the `udid` of the data to delete.
\nFor example, to delete a collection of geofences previously uploaded using the Upload API, set the `udid` parameter in the path to the `udid` of the data received previously in the upload API response. \n\n\n### Delete Data Response\n\nThe Data Delete API returns a HTTP `204 No Content` response with an empty body, if the data resource was deleted successfully.
\nA HTTP `400 Bad Request` error response will be returned if the data resource with the passed-in `udid` is not found. ", - "operationId": "Data_DeletePreview", + "operationId": "Data_Delete", "x-ms-examples": { "Delete previously uploaded GeoJSON data containing geometries that represent a collection of geofences": { "$ref": "./examples/Delete.json" diff --git a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Delete.json b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Delete.json index 30c3d32a8a1d..766c199b8d7c 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Delete.json +++ b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Delete.json @@ -6,7 +6,6 @@ }, "responses": { "204": { - "body": {} }, "400": { "headers": {}, diff --git a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Update.json b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Update.json index 2f3a6ad9eeda..3cf184fe3ab6 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Update.json +++ b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Update.json @@ -24,22 +24,10 @@ } }, "responses": { - "201": { - "headers": { - "Location": "https://atlas.microsoft.com/mapData/metadata/{udid}?api-version=1.0", - "Access-Control-Expose-Headers": "Location" - }, - "body": { - "operationId": "{operationId}", - "status": "Succeeded", - "created": "2020-01-02 1:02:03 AM +00:00", - "resourceLocation": "https://atlas.microsoft.com/mapData/metadata/{resourceId}?api-version=1.0" - } - }, "202": { "headers": { - "Location": "https://atlas.microsoft.com/mapData/operations/{operationId}?api-version=1.0", - "Access-Control-Expose-Headers": "Location" + "Operation-Location": "https://atlas.microsoft.com/mapData/operations/{operationId}?api-version=1.0", + "Access-Control-Expose-Headers": "Operation-Location" } }, "200": { diff --git a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Upload.json b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Upload.json index 20635cf766b5..6346fad6b59c 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Upload.json +++ b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Upload.json @@ -24,22 +24,10 @@ } }, "responses": { - "201": { - "headers": { - "Location": "https://atlas.microsoft.com/mapData/metadata/{udid}?api-version=1.0", - "Access-Control-Expose-Headers": "Location" - }, - "body": { - "operationId": "{operationId}", - "status": "Succeeded", - "created": "2020-01-02 1:02:03 AM +00:00", - "resourceLocation": "https://atlas.microsoft.com/mapData/metadata/{resourceId}?api-version=1.0" - } - }, "202": { "headers": { - "Location": "https://atlas.microsoft.com/mapData/operations/{operationId}?api-version=1.0", - "Access-Control-Expose-Headers": "Location" + "Operation-Location": "https://atlas.microsoft.com/mapData/metadata/{udid}?api-version=1.0", + "Access-Control-Expose-Headers": "Operation-Location" } }, "200": { diff --git a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json index 67881e769cc5..6746b4ff2c56 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json +++ b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json @@ -162,7 +162,7 @@ "post": { "x-publish": true, "description": "## Dataset Create API\n\n### Applies to: S1 pricing tier.\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Dataset APIs are part of Creator. This API allows the caller to create a dataset from data that was uploaded to the Azure Maps Data Service and converted using the Azure Maps Conversion Service.\n\nYou can use this API in a scenario like uploading a DWG zip package for a building, converting the zip package using the Azure Maps Conversion Service, and creating a dataset from the converted zip package. The created dataset can be used to create tilesets using the Azure Maps Tileset Service and can be queried via the Azure Maps WFS Service.\n\n### Submit Create Request\n\nTo create your dataset, you will use a `POST` request where the `conversionId` query parameter is an ID that represents the converted DWG zip package, the `datasetId` parameter will be the ID of a previously created dataset to append with the current dataset and, optionally, the `description` query parameter will contain a description (if description is not provided a default description will be given).\n\nThe Create API is a [long-running request](https://aka.ms/am-creator-lrt).", - "operationId": "Dataset_CreatePreview", + "operationId": "Dataset_Create", "x-ms-long-running-operation": true, "x-ms-long-running-operation-options": { "final-state-via": "location" @@ -213,7 +213,7 @@ "get": { "x-publish": true, "description": "## Dataset List API\n\n### Applies to: S1 pricing tier.\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Dataset APIs are part of Creator.\n\nThis API allows the caller to fetch a list of all previously successfully created datasets.\n\n### Submit List Request\n\nTo list all your datasets, you will issue a `GET` request with no additional parameters.\n\n\n### List Data Response\n\nThe List API returns the complete list of all datasets in `json` format. The response contains the following fields (if they are not null or empty):\n> created - The timestamp the dataset was created.\n> datasetId - The id for the dataset.\n> description - The description for the dataset.\n> datasetSources - The source data that was used when the create request was issued.\n> ontology - The source ontology that was used in the conversion service for the input data.
\n\nThe `datasetSources` describes the source data that was used when the create request was issued and contains the following elements (if they are not null or empty):\n\n> conversionIds - The list of `conversionId` (null if none were provided).\n> appendDatasetId - The `datasetId` that was used for an append operation (null if none was used).\n>featureCounts - The counts for each feature type in the dataset.
\n\nHere's a sample response returning the `timestamp`, `datasetId`, `description`, `datasetSources`, and `ontology` of 3 dataset resources:\n\n\n```json\n{\n \"datasets\": [\n {\n \"timestamp\": \"2020-01-01T22:50:48.123Z\",\n \"datasetId\": \"f6495f62-94f8-0ec2-c252-45626f82fcb2\",\n \"description\": \"Some description or comment for the dataset.\",\n \"datasetSources\": {\n \"conversionIds\": [\n \"15d21452-c9bb-27b6-5e79-743ca5c3205d\"\n ], },\n \"ontology\": \"facility-2.0\",\n \"featureCounts\": {\n \"directoryInfo\": 2,\n \"category\": 10,\n \"facility\": 1,\n \"level\": 3,\n \"unit\": 183,\n \"zone\": 3,\n \"verticalPenetration\": 6,\n \"opening\": 48,\n \"areaElement\": 108\n }\n },\n {\n \"timestamp\": \"2020-01-01T22:57:53.123Z\",\n \"datasetId\": \"8b1288fa-1958-4a2b-b68e-13a7i5af7d7c\",\n \"description\": \"Create from upload '0c1288fa-2058-4a1b-b68d-13a5f5af7d7c'.\",\n \"datasetSources\": {\n \"conversionIds\": [\n \"0c1288fa-2058-4a1b-b68d-13a5f5af7d7c\"\n ],\n \"appendDatasetId\": \"46d1edb6-d29e-4786-9589-dbd4efd7a977\"\n },\n \"ontology\": \"facility-2.0\",\n \"featureCounts\": {\n \"directoryInfo\": 2,\n \"category\": 10,\n \"facility\": 1,\n \"level\": 3,\n \"unit\": 183,\n \"zone\": 3,\n \"verticalPenetration\": 6,\n \"opening\": 48,\n \"areaElement\": 108\n }\n }\n ]\n}\n```", - "operationId": "Dataset_ListPreview", + "operationId": "Dataset_List", "x-ms-examples": { "List all the previously created datasets": { "$ref": "./examples/Dataset_List.json" @@ -256,7 +256,7 @@ "get": { "x-publish": true, "description": "## Dataset Get Details API\n\n### Applies to: S1 pricing tier.\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Dataset APIs are part of Creator.\n\nThis API allows the caller to fetch a previously successfully created dataset.\n\n### Submit Get Details Request\n\nTo get the details for a previously created dataset, you will issue a `GET` request with the `datasetId` in the path.\n\n### Get Details Response\n\nThe Get Details API returns the details for a dataset in `json` format. The response contains the following fields (if they are not null or empty):\n> created - The timestamp the dataset was created.\n> datasetId - The id for the dataset.\n> description - The description for the dataset.\n> datasetSources - The source data that was used when the create request was issued.\n> ontology - The source ontology that was used in the conversion service for the input data.
\n\nThe `datasetSources` describes the source data that was used when the create request was issued and contains the following elements (if they are not null or empty):\n> conversionIds - The list of `conversionId` (null if none were provided).\n> appendDatasetId - The `datasetId` that was used for an append operation (null if none was used).\n>featureCounts - The counts for each feature type in the dataset.
\n\nHere's a sample response returning the `timestamp`, `datasetId`, `description`, `datasetSources`, and `ontology` of a dataset resource:\n\n```json\n{\n \"timestamp\": \"2020-01-01T22:50:48.123Z\",\n \"datasetId\": \"f6495f62-94f8-0ec2-c252-45626f82fcb2\",\n \"description\": \"Some description or comment for the dataset.\",\n \"datasetSources\": {\n \"conversionIds\": [\n \"15d21452-c9bb-27b6-5e79-743ca5c3205d\"\n ],\n },\n \"ontology\": \"facility-2.0\",\n \"featureCounts\": {\n \"directoryInfo\": 2,\n \"category\": 10,\n \"facility\": 1,\n \"level\": 3,\n \"unit\": 183,\n \"zone\": 3,\n \"verticalPenetration\": 6,\n \"opening\": 48,\n \"areaElement\": 108\n }\n }\n```", - "operationId": "Dataset_GetPreview", + "operationId": "Dataset_Get", "x-ms-examples": { "Get details for a previously created dataset": { "$ref": "./examples/Dataset_GetDetails.json" @@ -300,7 +300,7 @@ "delete": { "x-publish": true, "description": "## Dataset Delete API\n\n### Applies to:S1 pricing tier.\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Dataset APIs are part of Creator. This API allows the caller to delete a previously created dataset.\n\nYou can also use this API to delete old/unused datasets to create space for new Creator content.\n\n### Submit Delete Request\n\nTo delete your content you will issue a `DELETE` request where the path will contain the `datasetId` of the dataset to delete.", - "operationId": "Dataset_DeletePreview", + "operationId": "Dataset_Delete", "x-ms-examples": { "Delete previously created dataset": { "$ref": "./examples/Dataset_Delete.json" diff --git a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Delete.json b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Delete.json index 3f1f24259f51..eda2d41f8c30 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Delete.json +++ b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Delete.json @@ -6,7 +6,6 @@ }, "responses": { "204": { - "body": {} }, "400": { "headers": {}, diff --git a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_GetDetails.json b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_GetDetails.json index b3635ed93e38..e6805c6e88d1 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_GetDetails.json +++ b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_GetDetails.json @@ -5,7 +5,7 @@ "datasetId": "[datasetId]" }, "responses": { - "201": { + "200": { "headers": { "Location": "https://atlas.microsoft.com/dataset/{datasetId}?api-version=1.0", "Access-Control-Expose-Headers": "Resource-Location" From fdd5b1641eeddcbde97acde653646046fba7f4c7 Mon Sep 17 00:00:00 2001 From: Jeff Couckuyt Date: Wed, 21 Apr 2021 18:10:24 -0700 Subject: [PATCH 31/38] example linting changes for conv, fs, tileset --- .../preview/2.0/dwgconversion.json | 8 ++--- .../preview/2.0/examples/Conversion.json | 19 +++------- .../preview/2.0/examples/Delete.json | 1 - .../2.0/examples/DeleteFeatureState.json | 2 +- .../preview/2.0/examples/GetStates.json | 10 ++---- .../preview/2.0/examples/UpdateStates.json | 10 ++---- .../preview/2.0/featurestate.json | 36 ++++++++----------- .../Tileset/preview/2.0/examples/Create.json | 16 ++------- .../Tileset/preview/2.0/examples/Delete.json | 1 - .../Tileset/preview/2.0/tileset.json | 8 ++--- 10 files changed, 35 insertions(+), 76 deletions(-) diff --git a/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json index 774cd8c5466e..56e6a0392d53 100644 --- a/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json +++ b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json @@ -169,7 +169,7 @@ "post": { "x-publish": true, "description": "**Conversion Create API**\n\n**Applies to:** S1 pricing tier.
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and \nSDK. The Conversion API is part of Creator.
\n\nThe Conversion API lets the caller import a set of DWG design files as a zipped [Drawing Package](https://aka.ms/am-drawing-package) into Azure Maps. The [Drawing Package](https://aka.ms/am-drawing-package) should first be \nuploaded using the [Azure Maps Data Service](https://docs.microsoft.com/rest/api/maps/data). Once uploaded, use the \n`udid` returned by the [Data Upload API](https://docs.microsoft.com/rest/api/maps/data/uploadpreview) to call \nthis Conversion API.\n\n## Convert DWG package\n\nThe Conversion API performs a \n[long-running request](https://aka.ms/am-creator-lrt).\n\n## Debug DWG package issues\n\n\nDuring the Conversion process, if there are any issues with the DWG package [errors and warnings](https://aka.ms/am-conversion-errors) are provided in the response along with a *diagnostic package* to visualize \nand diagnose these issues. In case any issues are encountered with your DWG package, the Conversion operation status process as detailed \n[here](https://aka.ms/am-creator-lrt) returns the location of the *diagnostic\npackage* that can be downloaded by the caller to help them visualize and diagnose these issues. The *diagnostic package* location\ncan be found in the properties section of the conversion operation status response and looks like the following:\n\n```json\n{\n \"properties\": {\n \"diagnosticPackageLocation\": \"https://atlas.microsoft.com/mapdata/{DiagnosticPackageId}?api-version=1.0\" \n } \n}\n```\n\nThe *diagnostic package* can be downloaded by executing a `HTTP GET` request on the `diagnosticPackageLocation`.\nFor more details on how to use the tool to visualize and diagnose all the errors and warnings see [Drawing Error Visualizer](https://aka.ms/am-drawing-errors-visualizer).
\n\nA conversion operation will be marked as *success* if there are zero or more warnings but will be marked as *failed* if any errors are encountered. ", - "operationId": "Conversion_ConvertPreview", + "operationId": "Conversion_Convert", "x-ms-long-running-operation": true, "x-ms-long-running-operation-options": { "final-state-via": "location" @@ -223,7 +223,7 @@ "get": { "x-publish": true, "description": "**Conversion List API**\n\n**Applies to:** S1 pricing tier.
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Conversion API is part of Creator.
\n\nThis API allows the caller to fetch a list of all successful data conversions submitted previously using the [Conversion API](https://docs.microsoft.com/en-us/rest/api/maps/conversion/convertpreview). \n\n### Submit List Request\n\nTo list all successful conversions you will issue a `GET` request with no additional parameters.\n\n### List Data Response\n\nThe Conversion List API returns the complete list of all conversion details in `json` format.
\n\nHere is a sample response returning the details of two successful conversion requests: \n\n
\n\n```json\n{\n \"conversions\": \n [\n {\n \"conversionId\": \"54398242-ea6c-1f31-4fa6-79b1ae0fc24d\",\n \"udid\": \"31838736-8b84-11ea-bc55-0242ac130003\",\n \"created\": \"5/19/2020 9:00:00 AM +00:00\",\n \"description\": \"User provided description.\",\n \"featureCounts\": {\n \"DIR\": 1,\n \"LVL\": 3,\n \"FCL\": 1,\n \"UNIT\": 150,\n \"CTG\": 8,\n \"AEL\": 0,\n \"OPN\": 10\n }\n },\n {\n \"conversionId\": \"2acf7d32-8b84-11ea-bc55-0242ac130003\",\n \"udid\": \"1214bc58-8b84-11ea-bc55-0242ac1300039\",\n \"created\": \"5/19/2020 9:00:00 AM +00:00\",\n \"description\": \"User provided description.\",\n \"featureCounts\": {\n \"DIR\": 1,\n \"LVL\": 3,\n \"FCL\": 1,\n \"UNIT\": 150,\n \"CTG\": 8,\n \"AEL\": 0,\n \"OPN\": 10\n }\n }\n ]\n}\n```\n\n
", - "operationId": "Conversion_ListPreview", + "operationId": "Conversion_List", "x-ms-examples": { "Returns a list of all the data processed by the Conversion Service for the account": { "$ref": "./examples/List.json" @@ -269,7 +269,7 @@ "get": { "x-publish": true, "description": "**Conversion Get API**\n\n**Applies to:** S1 pricing tier.
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Conversion API is part of Creator.
\n\nThis API allows the caller to fetch a successful data conversion submitted previously using the [Conversion API](https://docs.microsoft.com/en-us/rest/api/maps/conversion/convertpreview). ", - "operationId": "Conversion_GetPreview", + "operationId": "Conversion_Get", "parameters": [ { "$ref": "#/parameters/ClientId" @@ -311,7 +311,7 @@ "delete": { "x-publish": true, "description": "**Conversion Delete API**\n\n**Applies to:** S1 pricing tier.
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Delete API is part of Creator.
\n\nThis API allows the caller to delete any data conversions created previously using the [Conversion API](https://docs.microsoft.com/en-us/rest/api/maps/conversion/convertpreview).\n\n### Submit Delete Request\n\nTo delete your conversion data you will issue a `DELETE` request where the path will contain the `conversionId` of the data to delete.\n\n### Conversion Delete Response\n\nThe Conversion Delete API returns a HTTP `204 No Content` response with an empty body, if the converted data resources were deleted successfully.
\nA HTTP `400 Bad Request` error response will be returned if no resource associated with the passed-in `conversionId` is found. ", - "operationId": "Conversion_DeletePreview", + "operationId": "Conversion_Delete", "x-ms-examples": { "Delete previously converted content": { "$ref": "./examples/Delete.json" diff --git a/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/Conversion.json b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/Conversion.json index 9abd6c602448..7f9e7c8fba2b 100644 --- a/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/Conversion.json +++ b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/Conversion.json @@ -3,25 +3,14 @@ "api-version": "2.0", "subscription-key": "[subscription-key]", "udid": "25084fb7-307a-4720-8f91-7952a0b91012", - "inputType": "DWG" + "inputType": "DWG", + "outputOntology": "facility-2.0" }, "responses": { - "201": { - "headers": { - "Location": "https://atlas.microsoft.com/conversion/{conversionId}?api-version=1.0", - "Access-Control-Expose-Headers": "Location" - }, - "body": { - "operationId": "{operationId}", - "status": "Succeeded", - "created": "2020-01-02 1:02:03 AM +00:00", - "resourceLocation": "https://atlas.microsoft.com/conversion/{conversionId}?api-version=1.0" - } - }, "202": { "headers": { - "Location": "https://atlas.microsoft.com/conversion/operations/{operationId}?api-version=1.0", - "Access-Control-Expose-Headers": "Location" + "Operation-Location": "https://atlas.microsoft.com/conversion/{conversionId}?api-version=1.0", + "Access-Control-Expose-Headers": "Operation-Location" } }, "400": { diff --git a/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/Delete.json b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/Delete.json index 4b0b60569ebc..cf462f150115 100644 --- a/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/Delete.json +++ b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/Delete.json @@ -6,7 +6,6 @@ }, "responses": { "204": { - "body": {} }, "400": { "headers": {}, diff --git a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/DeleteFeatureState.json b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/DeleteFeatureState.json index eb1b23c8a8f6..deeb823677e5 100644 --- a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/DeleteFeatureState.json +++ b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/DeleteFeatureState.json @@ -7,7 +7,7 @@ "stateKeyName": "keyName1" }, "responses": { - "200": {}, + "204": {}, "400": { "headers": {}, "body": { diff --git a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/GetStates.json b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/GetStates.json index 8f6ec63b9330..b5bcb992f690 100644 --- a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/GetStates.json +++ b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/GetStates.json @@ -8,13 +8,9 @@ "responses": { "200": { "body": { - "states": [ - { - "keyName": "s1", - "value": true, - "eventTimestamp": "2019-08-16 13:01" - } - ] + "keyName": "s1", + "value": true, + "eventTimestamp": "2019-08-16 13:01" } }, "400": { diff --git a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/UpdateStates.json b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/UpdateStates.json index 9dee6b24f9dd..d707df4ffaab 100644 --- a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/UpdateStates.json +++ b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/UpdateStates.json @@ -5,13 +5,9 @@ "statesetId": "b24bdb73-1305-3212-1909-a428d937b64", "featureId": "SPC4709", "featureStateUpdateRequestBody": { - "states": [ - { - "keyName": "s1", - "value": true, - "eventTimestamp": "2019-08-16 13:01" - } - ] + "keyName": "s1", + "value": true, + "eventTimestamp": "2019-08-16 13:01" } }, "responses": { diff --git a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/featurestate.json b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/featurestate.json index 43d03e639cd6..acc80fbcbc5d 100644 --- a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/featurestate.json +++ b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/featurestate.json @@ -108,14 +108,6 @@ "required": true, "x-ms-parameter-location": "method" }, - "StatesetId": { - "name": "statesetId", - "description": "The stateset id that was created.", - "type": "string", - "in": "query", - "required": true, - "x-ms-parameter-location": "method" - }, "StatesetIdInPath": { "name": "statesetId", "description": "The stateset id that was created.", @@ -128,7 +120,7 @@ "name": "featureId", "description": "The id of a feature in the given dataset. If the featureId is not present in the dataset, Bad Request response will be returned.", "type": "string", - "in": "query", + "in": "path", "required": true, "x-ms-parameter-location": "method" }, @@ -136,7 +128,7 @@ "name": "featureId", "description": "The id of a feature in the given stateset. If no state was set for the featureId in the stateset earlier, Bad Request response will be returned.", "type": "string", - "in": "query", + "in": "path", "required": true, "x-ms-parameter-location": "method" }, @@ -144,7 +136,7 @@ "name": "featureId", "description": "The id of a feature in the given stateset. If no state was set for the featureId in the stateset earlier, Bad Request response will be returned.", "type": "string", - "in": "query", + "in": "path", "required": true, "x-ms-parameter-location": "method" }, @@ -162,7 +154,7 @@ "post": { "x-publish": true, "description": "**Applies to:** S1 pricing tier.\n
\n\nThis POST API allows the user to create a new Stateset and define stateset style using request body.\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Feature State API is part of Creator. \n\nThe Feature State service allows the user to update the states of a feature and query them to be used in other services. The dynamic properties of a feature that don't belong to the dataset are referred to as *states* here.\n\nThis Feature State service pivot on the Stateset. Like Tileset, Stateset encapsulates the storage mechanism for feature states for a dataset.\n\nOnce the stateset is created, users can use that statesetId to post feature state updates and retrieve the current feature states. A feature can have only one state at a given point in time. \n\nFeature state is defined by the key name, value and the timestamp. When a feature state update is posted to Azure Maps, the state value gets updated only if the provided state’s timestamp is later than the stored timestamp. \n\nAzure Maps MapControl provides a way to use these feature states to style the features. Please refer to the State Tile documentation for more information.", - "operationId": "FeatureState_CreateStatesetPreview", + "operationId": "FeatureState_CreateStateset", "x-ms-examples": { "Create a new stateset with a datasetId": { "$ref": "./examples/CreateStateset.json" @@ -215,7 +207,7 @@ "get": { "x-publish": true, "description": "**Applies to:** S1 pricing tier.
This API allows the caller to fetch a list of all previously successfully created statesets.", - "operationId": "FeatureState_ListStatesetPreview", + "operationId": "FeatureState_ListStateset", "x-ms-examples": { "List all the previously created statesets": { "$ref": "./examples/Stateset_List.json" @@ -258,7 +250,7 @@ "patch": { "x-publish": true, "description": "**Applies to:** S1 pricing tier.\n
\n\nThis PATCH API allows the user to update the stateset style rules.", - "operationId": "FeatureState_PutStatesetPreview", + "operationId": "FeatureState_PutStateset", "x-ms-examples": { "Update stateset style rules with a statesetId": { "$ref": "./examples/UpdateStateset.json" @@ -308,7 +300,7 @@ "delete": { "x-publish": true, "description": "**Applies to:** S1 pricing tier.
This DELETE API allows the user to delete the stateset and the associated data.", - "operationId": "FeatureState_DeleteStatesetPreview", + "operationId": "FeatureState_DeleteStateset", "x-ms-examples": { "Delete an existing stateset": { "$ref": "./examples/DeleteStateset.json" @@ -349,7 +341,7 @@ "get": { "x-publish": true, "description": "**Applies to:** S1 pricing tier.\n
\n\nThis GET API allows the user to get the stateset Information.\n\nThe stateset Information includes the datasetId associated to the stateset, and the styles of that stateset.", - "operationId": "FeatureState_GetStatesetPreview", + "operationId": "FeatureState_GetStateset", "x-ms-examples": { "Get stateset information with a statesetId": { "$ref": "./examples/GetStateset.json" @@ -394,7 +386,7 @@ "/featureStateSets/{statesetId}/featureStates/{featureId}": { "put": { "x-publish": true, - "operationId": "FeatureState_UpdateStatesPreview", + "operationId": "FeatureState_UpdateStates", "description": "**Applies to:** S1 pricing tier.
\nThis PUT API allows the user to update the state of the given feature in the given stateset.", "x-ms-examples": { "Update the states of a feature": { @@ -409,7 +401,7 @@ "$ref": "#/parameters/ApiVersion" }, { - "$ref": "#/parameters/StatesetId" + "$ref": "#/parameters/StatesetIdInPath" }, { "$ref": "#/parameters/FeatureIdSet" @@ -447,7 +439,7 @@ }, "delete": { "x-publish": true, - "operationId": "FeatureState_DeleteStatePreview", + "operationId": "FeatureState_DeleteState", "description": "**Applies to:** S1 pricing tier.
This API deletes the state information identified by the StateKeyName parameter for the feature identified by the FeatureId parameter in the the stateset.", "x-ms-examples": { "Delete the given feature state": { @@ -462,7 +454,7 @@ "$ref": "#/parameters/ApiVersion" }, { - "$ref": "#/parameters/StatesetId" + "$ref": "#/parameters/StatesetIdInPath" }, { "$ref": "#/parameters/FeatureIdDelete" @@ -497,7 +489,7 @@ }, "get": { "x-publish": true, - "operationId": "FeatureState_GetStatesPreview", + "operationId": "FeatureState_GetStates", "description": "**Applies to:** S1 pricing tier.
This API returns the current state information associated with the given feature in the given stateset.", "x-ms-examples": { "Get the current states of a feature": { @@ -512,7 +504,7 @@ "$ref": "#/parameters/ApiVersion" }, { - "$ref": "#/parameters/StatesetId" + "$ref": "#/parameters/StatesetIdInPath" }, { "$ref": "#/parameters/FeatureIdGet" diff --git a/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/Create.json b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/Create.json index 4b94b198f19a..8932a64a5551 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/Create.json +++ b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/Create.json @@ -5,22 +5,10 @@ "datasetId": "[dataset-Id]" }, "responses": { - "201": { - "headers": { - "Location": "https://atlas.microsoft.com/tileset/{tilesetId}?api-version=1.0", - "Access-Control-Expose-Headers": "Location" - }, - "body": { - "operationId": "{operationId}", - "status": "Succeeded", - "created": "2020-01-02 1:02:03 AM +00:00", - "resourceLocation": "https://atlas.microsoft.com/tileset/{tilesetId}?api-version=1.0" - } - }, "202": { "headers": { - "Location": "https://atlas.microsoft.com/tileset/operations/{operationId}?api-version=1.0", - "Access-Control-Expose-Headers": "Location" + "Operation-Location": "https://atlas.microsoft.com/tileset/{tilesetId}?api-version=1.0", + "Access-Control-Expose-Headers": "Operation-Location" } }, "400": { diff --git a/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/Delete.json b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/Delete.json index 0a20b5058bb6..a3c2747cf5de 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/Delete.json +++ b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/Delete.json @@ -6,7 +6,6 @@ }, "responses": { "204": { - "body": {} }, "400": { "headers": {}, diff --git a/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json index e277ab93bc92..96af8ee27e26 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json +++ b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json @@ -182,7 +182,7 @@ "post": { "x-publish": true, "description": "**Tileset Create API**\n\n**Applies to**: S1 pricing tier.\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API \nand SDK. The Tileset API is part of Creator.\n\nThe Tileset Create API allows the caller to create a tileset from a dataset. A tileset contains a set of tiles that can be consumed \nfrom the [Get Map Tile](/rest/api/maps/render/getmaptile) to retrieve custom tiles. To make a dataset, use the \n[DataSet Create API](/rest/api/maps/dataset/createpreview).\n\n## Submit Create Request\n\nTo create your tileset you will make a `POST` request with an empty body. The `datasetId` query parameter will be \nused as the source of the tileset data.\n\nThe Create Tileset API is a \n[long-running request](https://aka.ms/am-creator-lrt).", - "operationId": "Tileset_CreatePreview", + "operationId": "Tileset_Create", "x-ms-long-running-operation": true, "x-ms-long-running-operation-options": { "final-state-via": "location" @@ -233,7 +233,7 @@ "get": { "x-publish": true, "description": "**Tileset List API**\n\n**Applies to:** S1 pricing tier.\n
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Tileset API is part of Creator.\nThis API allows the caller to fetch a list of all tilesets created. \n
", - "operationId": "Tileset_ListPreview", + "operationId": "Tileset_List", "x-ms-examples": { "Get a list of all tilesets": { "$ref": "./examples/List.json" @@ -279,7 +279,7 @@ "get": { "x-publish": true, "description": "**Tileset Get API**\n\n**Applies to:** S1 pricing tier.\n
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Tileset API is part of Creator.\nThis API allows the caller to fetch a tileset.", - "operationId": "Tileset_GetPreview", + "operationId": "Tileset_Get", "parameters": [ { "$ref": "#/parameters/ClientId" @@ -321,7 +321,7 @@ "delete": { "x-publish": true, "description": "**Tileset Delete API**\n\n**Applies to:** S1 pricing tier.\n
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Tileset API is part of Creator.\nThis API allows the caller to delete a created tileset.
\nYou can use this API if a tileset is no longer needed. \n\n### Submit Delete Request\n\nTo delete your content you will issue a `DELETE` request where the path will contain the `tilesetId` of the tileset to delete.
\n\n#### Delete request \"Successful\"\n\nThe Tileset Delete API returns a HTTP `204 No Content` response with an empty body, if the tileset was deleted successfully.
\n\n#### Delete request \"Failed\"\n\nA HTTP `400 Bad Request` error response will be returned if the tileset with the passed-in `tilesetId` is not found. \n\nHere is a sample error response:\n\n
\n\n```json\n{\n \"error\": {\n \"code\": \"400 BadRequest\",\n \"message\": \"Bad request - Tileset Id: d85b5b27-5fc4-4599-8b50-47160e90f8ce does not exist.\"\n }\n}\n```", - "operationId": "Tileset_DeletePreview", + "operationId": "Tileset_Delete", "x-ms-examples": { "Delete a created tileset": { "$ref": "./examples/Delete.json" From f056190e070c47c55f2bfbb4a3347d9949ae6613 Mon Sep 17 00:00:00 2001 From: Jeff Couckuyt Date: Thu, 22 Apr 2021 09:02:03 -0700 Subject: [PATCH 32/38] change featurestateset patch to put --- .../Microsoft.Maps/FeatureState/preview/2.0/featurestate.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/featurestate.json b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/featurestate.json index acc80fbcbc5d..6d8011c3859a 100644 --- a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/featurestate.json +++ b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/featurestate.json @@ -247,9 +247,9 @@ } }, "/featureStateSets/{statesetId}": { - "patch": { + "put": { "x-publish": true, - "description": "**Applies to:** S1 pricing tier.\n
\n\nThis PATCH API allows the user to update the stateset style rules.", + "description": "**Applies to:** S1 pricing tier.\n
\n\nThis PUT API allows the user to update the stateset style rules.", "operationId": "FeatureState_PutStateset", "x-ms-examples": { "Update stateset style rules with a statesetId": { From 675e9c5ae0479ec913aee9a22205a5c37ff7e6ae Mon Sep 17 00:00:00 2001 From: Jeff Couckuyt Date: Thu, 22 Apr 2021 10:26:24 -0700 Subject: [PATCH 33/38] autorest linting fixes --- .../Microsoft.Maps/Data/preview/2.0/data.json | 14 +++++++------- .../Dataset/preview/2.0/dataset.json | 14 +++++++------- .../DwgConversion/preview/2.0/dwgconversion.json | 12 ++++++------ .../Tileset/preview/2.0/tileset.json | 14 +++++++------- 4 files changed, 27 insertions(+), 27 deletions(-) diff --git a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/data.json b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/data.json index 399031cf60a2..6b2b02168642 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/data.json +++ b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/data.json @@ -87,7 +87,7 @@ } } }, - "202": { + "202Accepted": { "description": "Request Accepted: The request has been accepted for processing. Please use the URL in the Operation-Location Header to obtain status.", "headers": { "Operation-Location": { @@ -134,7 +134,7 @@ ], "x-ms-enum": { "name": "JsonFormat", - "modelAsString": false, + "modelAsString": true, "values": [ { "value": "json", @@ -191,7 +191,7 @@ "required": false, "x-ms-parameter-location": "method" }, - "OperationId": { + "DataUploadOperationId": { "name": "operationId", "type": "string", "in": "path", @@ -249,7 +249,7 @@ } }, "202": { - "$ref": "#/responses/202" + "$ref": "#/responses/202Accepted" }, "400": { "$ref": "#/responses/400" @@ -367,7 +367,7 @@ } }, "202": { - "$ref": "#/responses/202" + "$ref": "#/responses/202Accepted" }, "400": { "$ref": "#/responses/400" @@ -495,7 +495,7 @@ "$ref": "#/parameters/ApiVersion" }, { - "$ref": "#/parameters/OperationId" + "$ref": "#/parameters/DataUploadOperationId" } ], "responses": { @@ -565,7 +565,7 @@ ], "x-ms-enum": { "name": "type", - "modelAsString": false, + "modelAsString": true, "values": [ { "value": "NotStarted", diff --git a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json index 6746b4ff2c56..30d739c75ea5 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json +++ b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json @@ -77,18 +77,18 @@ } }, "200Async": { - "description": "The operation is complete. If the operation was successful, use the Resource-Location header to obtain the path to the result.", + "description": "The operation is running or complete. If the operation was successful, use the Resource-Location header to obtain the path to the result.", "schema": { "$ref": "#/definitions/LongRunningOperationResult" }, "headers": { "Resource-Location": { "type": "string", - "description": "A URI where details on the newly created resource can be found." + "description": "If successful, a URI where details on the newly created resource can be found." } } }, - "202": { + "202Accepted": { "description": "Request Accepted: The request has been accepted for processing. Please use the URL in the Operation-Location Header to obtain status.", "headers": { "Operation-Location": { @@ -148,7 +148,7 @@ "required": false, "x-ms-parameter-location": "method" }, - "OperationId": { + "DatasetOperationId": { "name": "operationId", "type": "string", "in": "path", @@ -191,7 +191,7 @@ ], "responses": { "202": { - "$ref": "#/responses/202" + "$ref": "#/responses/202Accepted" }, "400": { "$ref": "#/responses/400" @@ -350,7 +350,7 @@ "$ref": "#/parameters/ApiVersion" }, { - "$ref": "#/parameters/OperationId" + "$ref": "#/parameters/DatasetOperationId" } ], "responses": { @@ -420,7 +420,7 @@ ], "x-ms-enum": { "name": "type", - "modelAsString": false, + "modelAsString": true, "values": [ { "value": "NotStarted", diff --git a/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json index 56e6a0392d53..f403dd5129d4 100644 --- a/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json +++ b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json @@ -76,7 +76,7 @@ } }, "200Async": { - "description": "The operation is complete. If the operation was successful, use the Resource-Location header to obtain the path to the result.", + "description": "The operation is running or complete. If the operation was successful, use the Resource-Location header to obtain the path to the result.", "schema": { "$ref": "#/definitions/LongRunningOperationResult" }, @@ -87,7 +87,7 @@ } } }, - "202": { + "202Accepted": { "description": "Request Accepted: The request has been accepted for processing. Please use the URL in the Operation-Location Header to obtain status.", "headers": { "Operation-Location": { @@ -155,7 +155,7 @@ "required": false, "x-ms-parameter-location": "method" }, - "OperationId": { + "ConversionOperationId": { "name": "operationId", "type": "string", "in": "path", @@ -201,7 +201,7 @@ ], "responses": { "202": { - "$ref": "#/responses/202" + "$ref": "#/responses/202Accepted" }, "400": { "$ref": "#/responses/400" @@ -364,7 +364,7 @@ "$ref": "#/parameters/ApiVersion" }, { - "$ref": "#/parameters/OperationId" + "$ref": "#/parameters/ConversionOperationId" } ], "responses": { @@ -434,7 +434,7 @@ ], "x-ms-enum": { "name": "type", - "modelAsString": false, + "modelAsString": true, "values": [ { "value": "NotStarted", diff --git a/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json index 96af8ee27e26..69b908c394a1 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json +++ b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json @@ -76,7 +76,7 @@ } }, "200Async": { - "description": "The operation is complete. If the operation was successful, use the Resource-Location header to obtain the path to the result.", + "description": "The operation is running or complete. If the operation was successful, use the Resource-Location header to obtain the path to the result.", "schema": { "$ref": "#/definitions/LongRunningOperationResult" }, @@ -87,7 +87,7 @@ } } }, - "202": { + "202Accepted": { "description": "Request Accepted: The request has been accepted for processing. Please use the URL in the Operation-Location Header to obtain status.", "headers": { "Operation-Location": { @@ -134,7 +134,7 @@ ], "x-ms-enum": { "name": "JsonFormat", - "modelAsString": false, + "modelAsString": true, "values": [ { "value": "json", @@ -168,7 +168,7 @@ "required": false, "x-ms-parameter-location": "method" }, - "OperationId": { + "TilesetOperationId": { "name": "operationId", "type": "string", "in": "path", @@ -211,7 +211,7 @@ ], "responses": { "202": { - "$ref": "#/responses/202" + "$ref": "#/responses/202Accepted" }, "400": { "$ref": "#/responses/400" @@ -374,7 +374,7 @@ "$ref": "#/parameters/ApiVersion" }, { - "$ref": "#/parameters/OperationId" + "$ref": "#/parameters/TilesetOperationId" } ], "responses": { @@ -444,7 +444,7 @@ ], "x-ms-enum": { "name": "type", - "modelAsString": false, + "modelAsString": true, "values": [ { "value": "NotStarted", From 2e3beabebcf5598c6827e3520b295f06650e9596 Mon Sep 17 00:00:00 2001 From: Subbarayudu Kamma Date: Thu, 22 Apr 2021 13:40:54 -0700 Subject: [PATCH 34/38] Reverting FeatureState body to include array to match V1 body and response. --- .../FeatureState/preview/2.0/examples/GetStates.json | 10 +++++++--- .../preview/2.0/examples/UpdateStates.json | 10 +++++++--- .../FeatureState/preview/2.0/featurestate.json | 12 ++++++++---- 3 files changed, 22 insertions(+), 10 deletions(-) diff --git a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/GetStates.json b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/GetStates.json index b5bcb992f690..8f6ec63b9330 100644 --- a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/GetStates.json +++ b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/GetStates.json @@ -8,9 +8,13 @@ "responses": { "200": { "body": { - "keyName": "s1", - "value": true, - "eventTimestamp": "2019-08-16 13:01" + "states": [ + { + "keyName": "s1", + "value": true, + "eventTimestamp": "2019-08-16 13:01" + } + ] } }, "400": { diff --git a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/UpdateStates.json b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/UpdateStates.json index d707df4ffaab..9dee6b24f9dd 100644 --- a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/UpdateStates.json +++ b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/examples/UpdateStates.json @@ -5,9 +5,13 @@ "statesetId": "b24bdb73-1305-3212-1909-a428d937b64", "featureId": "SPC4709", "featureStateUpdateRequestBody": { - "keyName": "s1", - "value": true, - "eventTimestamp": "2019-08-16 13:01" + "states": [ + { + "keyName": "s1", + "value": true, + "eventTimestamp": "2019-08-16 13:01" + } + ] } }, "responses": { diff --git a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/featurestate.json b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/featurestate.json index 6d8011c3859a..f1cb104081d4 100644 --- a/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/featurestate.json +++ b/specification/maps/data-plane/Microsoft.Maps/FeatureState/preview/2.0/featurestate.json @@ -412,7 +412,7 @@ "description": "The feature state JSON data. A feature can have only one state at a given point in time. The specified state keyname must have been defined during the stateset creation.", "required": true, "schema": { - "$ref": "#/definitions/FeatureStateObject" + "$ref": "#/definitions/FeatureStatesStructure" } } ], @@ -514,7 +514,7 @@ "200": { "description": "Get request completed successfully.", "schema": { - "$ref": "#/definitions/FeatureStateObject" + "$ref": "#/definitions/FeatureStatesStructure" } }, "400": { @@ -642,8 +642,12 @@ "description": "The feature states model for a feature.", "type": "object", "properties": { - "state": { - "$ref": "#/definitions/FeatureStateObject" + "states": { + "description": "The feature states array.", + "type": "array", + "items": { + "$ref": "#/definitions/FeatureStateObject" + } } } }, From 2f24c211989231999f9a1a241e16d3e5fedf2e6e Mon Sep 17 00:00:00 2001 From: Jeff Couckuyt Date: Fri, 23 Apr 2021 11:57:50 -0700 Subject: [PATCH 35/38] adding missing operationIds --- .../Microsoft.Maps/Data/preview/2.0/data.json | 1 + .../Dataset/preview/2.0/dataset.json | 1 + .../DwgConversion/preview/2.0/dwgconversion.json | 1 + .../Tileset/preview/2.0/tileset.json | 1 + .../Microsoft.Maps/WFS/preview/2.0/wfs.json | 16 ++++++++-------- 5 files changed, 12 insertions(+), 8 deletions(-) diff --git a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/data.json b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/data.json index 6b2b02168642..62bfb320137e 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/data.json +++ b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/data.json @@ -487,6 +487,7 @@ "/mapData/operations/{operationId}": { "get": { "description": "This path will be obtained from a call to POST /mapData. While in progress, an http200 will be returned with no extra headers - followed by an http200 with Resource-Location header once completed.", + "operationId": "Data_GetOperation", "parameters": [ { "$ref": "#/parameters/SubscriptionKey" diff --git a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json index 30d739c75ea5..6f723a3351f0 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json +++ b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json @@ -342,6 +342,7 @@ "/datasets/operations/{operationId}": { "get": { "description": "## Dataset Operations API\n\n### Applies to: S1 pricing tier\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Dataset APIs are part of Creator. This API allows the caller to view the current progress of a dataset operation and the path is obtained from a call to the Create API.\n\n### Submit Operations Request\n\nTo view the current progress of a dataset operation, you will use a `GET` request where the `operationId` given the path is the ID that represents the operation.\n\n### Operation Response\n\nWhile in progress, a `200-OK` http status code will be returned with no extra headers. If the operation succeeds, a `200-OK` http status code with Resource-Location header will be returned.", + "operationId": "Dataset_GetOperation", "parameters": [ { "$ref": "#/parameters/SubscriptionKey" diff --git a/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json index f403dd5129d4..c865e7f88786 100644 --- a/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json +++ b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json @@ -356,6 +356,7 @@ "/conversions/operations/{operationId}": { "get": { "description": "This path will be obtained from a call to POST /conversions. While in progress, an http200 will be returned with no extra headers - followed by an http200 with Resource-Location header once successfully completed.", + "operationId": "Conversion_GetOperation", "parameters": [ { "$ref": "#/parameters/SubscriptionKey" diff --git a/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json index 69b908c394a1..c4a53f8af996 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json +++ b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json @@ -366,6 +366,7 @@ "/tilesets/operations/{operationId}": { "get": { "description": "This path will be obtained from a call to /tilesets/create. While in progress, an http200 will be returned with no extra headers - followed by an http200 with Resource-Location header once successfully completed.", + "operationId": "Tileset_GetOperation", "parameters": [ { "$ref": "#/parameters/SubscriptionKey" diff --git a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/wfs.json b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/wfs.json index 39ffb1b438f8..f34917a29d28 100644 --- a/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/wfs.json +++ b/specification/maps/data-plane/Microsoft.Maps/WFS/preview/2.0/wfs.json @@ -158,7 +158,7 @@ "get": { "x-publish": true, "description": "Creator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Web Feature Service (WFS) API is part of Creator. WFS API follows the [Open Geospatial Consortium API standard for Features](http://docs.opengeospatial.org/is/17-069r3/17-069r3.html) to query [Datasets](https://docs.microsoft.com/en-us/rest/api/maps/dataset/createpreview). \nA dataset consists of multiple feature collections. A feature collection is a collection of features of a similar type, based on a common schema.\nThe Get Landing Page API provides links to the API definition, the Conformance statements and the metadata about the feature data in this dataset.", - "operationId": "WFS_GetLandingPagePreview", + "operationId": "WFS_GetLandingPage", "x-ms-examples": { "GetLandingPage": { "$ref": "./examples/GetLandingPage.json" @@ -207,7 +207,7 @@ "get": { "description": "Creator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Web Feature Service (WFS) API is part of Creator. WFS API follows the [Open Geospatial Consortium API standard for Features](http://docs.opengeospatial.org/is/17-069r3/17-069r3.html) to query [Datasets](https://docs.microsoft.com/en-us/rest/api/maps/dataset/createpreview). \nA dataset consists of multiple feature collections. A feature collection is a collection of features of a similar type, based on a common schema.\nThe Get Requirements Classes lists all requirements classes specified in the standard that the server conforms to.", "x-publish": true, - "operationId": "WFS_GetRequirementsClassesPreview", + "operationId": "WFS_GetRequirementsClasses", "x-ms-examples": { "GetConformance": { "$ref": "./examples/GetConformance.json" @@ -255,7 +255,7 @@ "/wfs/datasets/{datasetid}/collections": { "get": { "description": "Creator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Web Feature Service (WFS) API is part of Creator. WFS API follows the [Open Geospatial Consortium API standard for Features](http://docs.opengeospatial.org/is/17-069r3/17-069r3.html) to query [Datasets](https://docs.microsoft.com/en-us/rest/api/maps/dataset/createpreview). \nA dataset consists of multiple feature collections. A feature collection is a collection of features of a similar type, based on a common schema.\nThe Collections Description API provides descriptions of all the collections in a given dataset.", - "operationId": "WFS_CollectionsDescriptionPreview", + "operationId": "WFS_CollectionsDescription", "x-publish": true, "x-ms-examples": { "GetCollections": { @@ -304,7 +304,7 @@ "/wfs/datasets/{datasetid}/collections/{collectionId}": { "get": { "description": "Creator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Web Feature Service (WFS) API is part of Creator. WFS API follows the [Open Geospatial Consortium API standard for Features](http://docs.opengeospatial.org/is/17-069r3/17-069r3.html) to query [Datasets](https://docs.microsoft.com/en-us/rest/api/maps/dataset/createpreview). \nA dataset consists of multiple feature collections. A feature collection is a collection of features of a similar type, based on a common schema.\n \nThe Collection Description API provides the description of a given collection. It includes the links to the operations that can be performed on the collection.", - "operationId": "WFS_CollectionDescriptionPreview", + "operationId": "WFS_CollectionDescription", "x-publish": true, "x-ms-examples": { "GetCollection": { @@ -356,7 +356,7 @@ "/wfs/datasets/{datasetid}/collections/{collectionId}/definition": { "get": { "description": "Creator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Web Feature Service (WFS) API is part of Creator. WFS API follows the [Open Geospatial Consortium API standard for Features](http://docs.opengeospatial.org/is/17-069r3/17-069r3.html) to query [Datasets](https://docs.microsoft.com/en-us/rest/api/maps/dataset/createpreview). \nA dataset consists of multiple feature collections. A feature collection is a collection of features of a similar type, based on a common schema.\n \nThe Collection Definition API provides the detailed data model of a given collection.", - "operationId": "WFS_CollectionDefinitionPreview", + "operationId": "WFS_CollectionDefinition", "x-publish": true, "x-ms-examples": { "GetCollectionDefinition": { @@ -408,7 +408,7 @@ "/wfs/datasets/{datasetid}/collections/{collectionId}/items": { "get": { "description": "Creator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Web Feature Service (WFS) API is part of Creator. WFS API follows the [Open Geospatial Consortium API standard for Features](http://docs.opengeospatial.org/is/17-069r3/17-069r3.html) to query [Datasets](https://docs.microsoft.com/en-us/rest/api/maps/dataset/createpreview). \nA dataset consists of multiple feature collections. A feature collection is a collection of features of a similar type, based on a common schema.\nThe Get Features API returns the list of features in the given collection.", - "operationId": "WFS_GetFeaturesPreview", + "operationId": "WFS_GetFeatures", "x-publish": true, "x-ms-examples": { "Getitems": { @@ -470,7 +470,7 @@ "get": { "description": "Creator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Web Feature Service (WFS) API is part of Creator. WFS API follows the [Open Geospatial Consortium API standard for Features](http://docs.opengeospatial.org/is/17-069r3/17-069r3.html) to query [Datasets](https://docs.microsoft.com/en-us/rest/api/maps/dataset/createpreview). \nA dataset consists of multiple feature collections. A feature collection is a collection of features of a similar type, based on a common schema.\nThe Get Feature API returns the feature identified by the provided id in the given collection.", "x-publish": true, - "operationId": "WFS_GetFeaturePreview", + "operationId": "WFS_GetFeature", "x-ms-examples": { "GetFeature": { "$ref": "./examples/GetItem.json" @@ -520,7 +520,7 @@ "delete": { "description": "Creator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Web Feature Service (WFS) API is part of Creator. WFS API follows the [Open Geospatial Consortium API standard for Features](http://docs.opengeospatial.org/is/17-069r3/17-069r3.html) to query [Datasets](https://docs.microsoft.com/en-us/rest/api/maps/dataset/createpreview). \nA dataset consists of multiple feature collections. A feature collection is a collection of features of a similar type, based on a common schema.\nThe Delete Feature API deletes the feature identified by the provided id in the given collection. At this point this API supports only facility features. Deleting a facility feature deletes all the child features of that facility recursively.", "x-publish": true, - "operationId": "WFS_DeleteFeaturePreview", + "operationId": "WFS_DeleteFeature", "x-ms-examples": { "GetFeature": { "$ref": "./examples/DeleteItem.json" From d716e4d61a6107999d9161f065d63a77f2f500ea Mon Sep 17 00:00:00 2001 From: Jeff Couckuyt Date: Fri, 23 Apr 2021 14:42:49 -0700 Subject: [PATCH 36/38] added examples; more linting --- .../preview/2.0/examples/Alias_Delete.json | 3 +- .../Microsoft.Maps/Data/preview/2.0/data.json | 8 +++ .../Data/preview/2.0/examples/Delete.json | 3 +- .../preview/2.0/examples/GetOperation.json | 29 ++++++++ .../examples/GetOperationStillRunning.json | 25 +++++++ .../Dataset/preview/2.0/dataset.json | 8 +++ .../preview/2.0/examples/Dataset_Delete.json | 3 +- .../preview/2.0/examples/GetOperation.json | 29 ++++++++ .../examples/GetOperationStillRunning.json | 25 +++++++ .../preview/2.0/dwgconversion.json | 13 ++++ .../preview/2.0/examples/Delete.json | 3 +- .../preview/2.0/examples/Get.json | 71 +++++++++++++++++++ .../preview/2.0/examples/GetOperation.json | 43 +++++++++++ .../examples/GetOperationStillRunning.json | 25 +++++++ .../Tileset/preview/2.0/examples/Delete.json | 3 +- .../Tileset/preview/2.0/examples/Get.json | 69 ++++++++++++++++++ .../preview/2.0/examples/GetOperation.json | 29 ++++++++ .../examples/GetOperationStillRunning.json | 25 +++++++ .../Tileset/preview/2.0/tileset.json | 13 ++++ 19 files changed, 417 insertions(+), 10 deletions(-) create mode 100644 specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/GetOperation.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/GetOperationStillRunning.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/GetOperation.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/GetOperationStillRunning.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/Get.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/GetOperation.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/GetOperationStillRunning.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/Get.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/GetOperation.json create mode 100644 specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/GetOperationStillRunning.json diff --git a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Delete.json b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Delete.json index 755cf3ed4564..e153d57bb648 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Delete.json +++ b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Delete.json @@ -5,8 +5,7 @@ "aliasId": "[aliasId]" }, "responses": { - "204": { - }, + "204": {}, "400": { "headers": {}, "body": { diff --git a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/data.json b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/data.json index 62bfb320137e..8f3b42e591d7 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/data.json +++ b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/data.json @@ -488,6 +488,14 @@ "get": { "description": "This path will be obtained from a call to POST /mapData. While in progress, an http200 will be returned with no extra headers - followed by an http200 with Resource-Location header once completed.", "operationId": "Data_GetOperation", + "x-ms-examples": { + "Get the status of an operation which is still running": { + "$ref": "./examples/GetOperationStillRunning.json" + }, + "Get the status of an operation which has finished successfully": { + "$ref": "./examples/GetOperation.json" + } + }, "parameters": [ { "$ref": "#/parameters/SubscriptionKey" diff --git a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Delete.json b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Delete.json index 766c199b8d7c..dbad7c4b3afd 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Delete.json +++ b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/Delete.json @@ -5,8 +5,7 @@ "udid": "25084fb7-307a-4720-8f91-7952a0b91012" }, "responses": { - "204": { - }, + "204": {}, "400": { "headers": {}, "body": { diff --git a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/GetOperation.json b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/GetOperation.json new file mode 100644 index 000000000000..7e8fc138e4b5 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/GetOperation.json @@ -0,0 +1,29 @@ +{ + "parameters": { + "api-version": "2.0", + "subscription-key": "[subscription-key]", + "operationId": "8b1288fa-1958-4a2b-b68e-13a7i5af7d7c" + }, + "responses": { + "200": { + "body": { + "operationId": "8b1288fa-1958-4a2b-b68e-13a7i5af7d7c", + "created": "2021-04-20T22:43:14.9401559+00:00", + "status": "Succeeded", + "resourceLocation": "https://us.atlas.microsoft.com/mapData/3e36b996-f6d1-b068-0fcb-dd6b014c3447?api-version=2.0" + }, + "headers": { + "Resource-Location": "https://us.atlas.microsoft.com/mapData/3e36b996-f6d1-b068-0fcb-dd6b014c3447?api-version=2.0" + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/GetOperationStillRunning.json b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/GetOperationStillRunning.json new file mode 100644 index 000000000000..0a160c590eb8 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/Data/preview/2.0/examples/GetOperationStillRunning.json @@ -0,0 +1,25 @@ +{ + "parameters": { + "api-version": "2.0", + "subscription-key": "[subscription-key]", + "operationId": "8b1288fa-1958-4a2b-b68e-13a7i5af7d7c" + }, + "responses": { + "200": { + "body": { + "operationId": "8b1288fa-1958-4a2b-b68e-13a7i5af7d7c", + "created": "2021-04-23T19:14:03.2452596+00:00", + "status": "Running" + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json index 6f723a3351f0..597fa9ac8941 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json +++ b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json @@ -343,6 +343,14 @@ "get": { "description": "## Dataset Operations API\n\n### Applies to: S1 pricing tier\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Dataset APIs are part of Creator. This API allows the caller to view the current progress of a dataset operation and the path is obtained from a call to the Create API.\n\n### Submit Operations Request\n\nTo view the current progress of a dataset operation, you will use a `GET` request where the `operationId` given the path is the ID that represents the operation.\n\n### Operation Response\n\nWhile in progress, a `200-OK` http status code will be returned with no extra headers. If the operation succeeds, a `200-OK` http status code with Resource-Location header will be returned.", "operationId": "Dataset_GetOperation", + "x-ms-examples": { + "Get the status of an operation which is still running": { + "$ref": "./examples/GetOperationStillRunning.json" + }, + "Get the status of an operation which has finished successfully": { + "$ref": "./examples/GetOperation.json" + } + }, "parameters": [ { "$ref": "#/parameters/SubscriptionKey" diff --git a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Delete.json b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Delete.json index eda2d41f8c30..1d9549b628ef 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Delete.json +++ b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/Dataset_Delete.json @@ -5,8 +5,7 @@ "datasetId": "[datasetId]" }, "responses": { - "204": { - }, + "204": {}, "400": { "headers": {}, "body": { diff --git a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/GetOperation.json b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/GetOperation.json new file mode 100644 index 000000000000..72d36d856052 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/GetOperation.json @@ -0,0 +1,29 @@ +{ + "parameters": { + "api-version": "2.0", + "subscription-key": "[subscription-key]", + "operationId": "8b1288fa-1958-4a2b-b68e-13a7i5af7d7c" + }, + "responses": { + "200": { + "body": { + "operationId": "8b1288fa-1958-4a2b-b68e-13a7i5af7d7c", + "created": "2021-04-20T22:43:14.9401559+00:00", + "status": "Succeeded", + "resourceLocation": "https://us.atlas.microsoft.com/datasets/3e36b996-f6d1-b068-0fcb-dd6b014c3447?api-version=2.0" + }, + "headers": { + "Resource-Location": "https://us.atlas.microsoft.com/datasets/3e36b996-f6d1-b068-0fcb-dd6b014c3447?api-version=2.0" + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/GetOperationStillRunning.json b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/GetOperationStillRunning.json new file mode 100644 index 000000000000..0a160c590eb8 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/examples/GetOperationStillRunning.json @@ -0,0 +1,25 @@ +{ + "parameters": { + "api-version": "2.0", + "subscription-key": "[subscription-key]", + "operationId": "8b1288fa-1958-4a2b-b68e-13a7i5af7d7c" + }, + "responses": { + "200": { + "body": { + "operationId": "8b1288fa-1958-4a2b-b68e-13a7i5af7d7c", + "created": "2021-04-23T19:14:03.2452596+00:00", + "status": "Running" + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json index c865e7f88786..67fc45fa3082 100644 --- a/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json +++ b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json @@ -270,6 +270,11 @@ "x-publish": true, "description": "**Conversion Get API**\n\n**Applies to:** S1 pricing tier.
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Conversion API is part of Creator.
\n\nThis API allows the caller to fetch a successful data conversion submitted previously using the [Conversion API](https://docs.microsoft.com/en-us/rest/api/maps/conversion/convertpreview). ", "operationId": "Conversion_Get", + "x-ms-examples": { + "Get the details for one conversion operation": { + "$ref": "./examples/Get.json" + } + }, "parameters": [ { "$ref": "#/parameters/ClientId" @@ -357,6 +362,14 @@ "get": { "description": "This path will be obtained from a call to POST /conversions. While in progress, an http200 will be returned with no extra headers - followed by an http200 with Resource-Location header once successfully completed.", "operationId": "Conversion_GetOperation", + "x-ms-examples": { + "Get the status of an operation which is still running": { + "$ref": "./examples/GetOperationStillRunning.json" + }, + "Get the status of an operation which has finished successfully, with non-fatal warnings": { + "$ref": "./examples/GetOperation.json" + } + }, "parameters": [ { "$ref": "#/parameters/SubscriptionKey" diff --git a/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/Delete.json b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/Delete.json index cf462f150115..747fd54584af 100644 --- a/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/Delete.json +++ b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/Delete.json @@ -5,8 +5,7 @@ "conversionId": "99884fb7-87a9-0920-7f93-7952a0b91012" }, "responses": { - "204": { - }, + "204": {}, "400": { "headers": {}, "body": { diff --git a/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/Get.json b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/Get.json new file mode 100644 index 000000000000..dd71e0e018a7 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/Get.json @@ -0,0 +1,71 @@ +{ + "parameters": { + "api-version": "2.0", + "subscription-key": "[subscription-key]", + "conversionId": "54398242-ea6c-1f31-4fa6-79b1ae0fc24d" + }, + "responses": { + "200": { + "body": { + "conversionId": "54398242-ea6c-1f31-4fa6-79b1ae0fc24d", + "udid": "31838736-8b84-11ea-bc55-0242ac130003", + "created": "5/19/2020 9:00:00 AM +00:00", + "description": "User provided description.", + "featureCounts": { + "directoryInfo": 1, + "level": 3, + "facility": 1, + "unit": 150, + "category": 8, + "areaElement": 0, + "opening": 10 + } + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/GetOperation.json b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/GetOperation.json new file mode 100644 index 000000000000..3adc6d5b192f --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/GetOperation.json @@ -0,0 +1,43 @@ +{ + "parameters": { + "api-version": "2.0", + "subscription-key": "[subscription-key]", + "operationId": "8b1288fa-1958-4a2b-b68e-13a7i5af7d7c" + }, + "responses": { + "200": { + "body": { + "operationId": "8b1288fa-1958-4a2b-b68e-13a7i5af7d7c", + "created": "2021-04-20T22:43:14.9401559+00:00", + "status": "Succeeded", + "resourceLocation": "https://us.atlas.microsoft.com/conversions/3e36b996-f6d1-b068-0fcb-dd6b014c3447?api-version=2.0", + "warning": { + "code": "dwgConversionProblem", + "details": [ + { + "code": "warning", + "details": [ + { + "code": "manifestWarning", + "message": "Ignoring unexpected JSON property: unitProperties[0].nonWheelchairAccessible with value False" + } + ] + } + ] + } + }, + "headers": { + "Resource-Location": "https://us.atlas.microsoft.com/conversions/3e36b996-f6d1-b068-0fcb-dd6b014c3447?api-version=2.0" + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/GetOperationStillRunning.json b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/GetOperationStillRunning.json new file mode 100644 index 000000000000..0a160c590eb8 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/examples/GetOperationStillRunning.json @@ -0,0 +1,25 @@ +{ + "parameters": { + "api-version": "2.0", + "subscription-key": "[subscription-key]", + "operationId": "8b1288fa-1958-4a2b-b68e-13a7i5af7d7c" + }, + "responses": { + "200": { + "body": { + "operationId": "8b1288fa-1958-4a2b-b68e-13a7i5af7d7c", + "created": "2021-04-23T19:14:03.2452596+00:00", + "status": "Running" + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/Delete.json b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/Delete.json index a3c2747cf5de..b220a8b3f7e3 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/Delete.json +++ b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/Delete.json @@ -5,8 +5,7 @@ "tilesetId": "25084fb7-307a-4720-8f91-7952a0b91012" }, "responses": { - "204": { - }, + "204": {}, "400": { "headers": {}, "body": { diff --git a/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/Get.json b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/Get.json new file mode 100644 index 000000000000..f1f020fb3e03 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/Get.json @@ -0,0 +1,69 @@ +{ + "parameters": { + "api-version": "2.0", + "subscription-key": "[subscription-key]", + "tilesetId": "d8fa86de-bb0f-4a02-a6ff-62ae7545dd84" + }, + "responses": { + "200": { + "body": { + "tilesetId": "d8fa86de-bb0f-4a02-a6ff-62ae7545dd84", + "datasetId": "63b18a6b-ac35-4b23-a1d9-ffa1003ad50b", + "description": "My first tileset", + "minZoom": 16, + "maxZoom": 18, + "bbox": [ + -122.13595, + 47.636524, + -122.1329, + 47.637525 + ] + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + }, + "401": { + "headers": {}, + "body": { + "error": { + "code": "401 Unauthorized", + "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "403": { + "headers": {}, + "body": { + "error": { + "code": "403 Forbidden", + "message": "Permission, capacity, or authentication issues." + } + } + }, + "404": { + "headers": {}, + "body": { + "error": { + "code": "404 NotFound", + "message": "Not Found: the requested resource could not be found, but it may be available again in the future." + } + } + }, + "500": { + "headers": {}, + "body": { + "error": { + "code": "500 InternalServerError", + "message": "An error occurred while processing the request. Please try again later." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/GetOperation.json b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/GetOperation.json new file mode 100644 index 000000000000..3edd1f0bb893 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/GetOperation.json @@ -0,0 +1,29 @@ +{ + "parameters": { + "api-version": "2.0", + "subscription-key": "[subscription-key]", + "operationId": "8b1288fa-1958-4a2b-b68e-13a7i5af7d7c" + }, + "responses": { + "200": { + "body": { + "operationId": "8b1288fa-1958-4a2b-b68e-13a7i5af7d7c", + "created": "2021-04-20T22:43:14.9401559+00:00", + "status": "Succeeded", + "resourceLocation": "https://us.atlas.microsoft.com/tilesets/3e36b996-f6d1-b068-0fcb-dd6b014c3447?api-version=2.0" + }, + "headers": { + "Resource-Location": "https://us.atlas.microsoft.com/tilesets/3e36b996-f6d1-b068-0fcb-dd6b014c3447?api-version=2.0" + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/GetOperationStillRunning.json b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/GetOperationStillRunning.json new file mode 100644 index 000000000000..0a160c590eb8 --- /dev/null +++ b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/examples/GetOperationStillRunning.json @@ -0,0 +1,25 @@ +{ + "parameters": { + "api-version": "2.0", + "subscription-key": "[subscription-key]", + "operationId": "8b1288fa-1958-4a2b-b68e-13a7i5af7d7c" + }, + "responses": { + "200": { + "body": { + "operationId": "8b1288fa-1958-4a2b-b68e-13a7i5af7d7c", + "created": "2021-04-23T19:14:03.2452596+00:00", + "status": "Running" + } + }, + "400": { + "headers": {}, + "body": { + "error": { + "code": "400 BadRequest", + "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." + } + } + } + } +} diff --git a/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json index c4a53f8af996..59e131241f94 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json +++ b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json @@ -280,6 +280,11 @@ "x-publish": true, "description": "**Tileset Get API**\n\n**Applies to:** S1 pricing tier.\n
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Tileset API is part of Creator.\nThis API allows the caller to fetch a tileset.", "operationId": "Tileset_Get", + "x-ms-examples": { + "Gets the details for a single tileset": { + "$ref": "./examples/Get.json" + } + }, "parameters": [ { "$ref": "#/parameters/ClientId" @@ -367,6 +372,14 @@ "get": { "description": "This path will be obtained from a call to /tilesets/create. While in progress, an http200 will be returned with no extra headers - followed by an http200 with Resource-Location header once successfully completed.", "operationId": "Tileset_GetOperation", + "x-ms-examples": { + "Get the status of an operation which is still running": { + "$ref": "./examples/GetOperationStillRunning.json" + }, + "Get the status of an operation which has finished successfully": { + "$ref": "./examples/GetOperation.json" + } + }, "parameters": [ { "$ref": "#/parameters/SubscriptionKey" From 2e671bbdc7d5427905ee9fdabb8721eb60002794 Mon Sep 17 00:00:00 2001 From: Jeff Couckuyt Date: Fri, 23 Apr 2021 16:12:20 -0700 Subject: [PATCH 37/38] remove x-ms-long-running --- .../Microsoft.Maps/Dataset/preview/2.0/dataset.json | 4 ---- .../DwgConversion/preview/2.0/dwgconversion.json | 4 ---- .../Microsoft.Maps/Tileset/preview/2.0/tileset.json | 4 ---- 3 files changed, 12 deletions(-) diff --git a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json index 597fa9ac8941..cdad35c58577 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json +++ b/specification/maps/data-plane/Microsoft.Maps/Dataset/preview/2.0/dataset.json @@ -163,10 +163,6 @@ "x-publish": true, "description": "## Dataset Create API\n\n### Applies to: S1 pricing tier.\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. The Dataset APIs are part of Creator. This API allows the caller to create a dataset from data that was uploaded to the Azure Maps Data Service and converted using the Azure Maps Conversion Service.\n\nYou can use this API in a scenario like uploading a DWG zip package for a building, converting the zip package using the Azure Maps Conversion Service, and creating a dataset from the converted zip package. The created dataset can be used to create tilesets using the Azure Maps Tileset Service and can be queried via the Azure Maps WFS Service.\n\n### Submit Create Request\n\nTo create your dataset, you will use a `POST` request where the `conversionId` query parameter is an ID that represents the converted DWG zip package, the `datasetId` parameter will be the ID of a previously created dataset to append with the current dataset and, optionally, the `description` query parameter will contain a description (if description is not provided a default description will be given).\n\nThe Create API is a [long-running request](https://aka.ms/am-creator-lrt).", "operationId": "Dataset_Create", - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "location" - }, "x-ms-examples": { "Create dataset from a converted CAD file provided by conversionId": { "$ref": "./examples/Dataset_Create.json" diff --git a/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json index 67fc45fa3082..83ccd4f709d4 100644 --- a/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json +++ b/specification/maps/data-plane/Microsoft.Maps/DwgConversion/preview/2.0/dwgconversion.json @@ -170,10 +170,6 @@ "x-publish": true, "description": "**Conversion Create API**\n\n**Applies to:** S1 pricing tier.
\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and \nSDK. The Conversion API is part of Creator.
\n\nThe Conversion API lets the caller import a set of DWG design files as a zipped [Drawing Package](https://aka.ms/am-drawing-package) into Azure Maps. The [Drawing Package](https://aka.ms/am-drawing-package) should first be \nuploaded using the [Azure Maps Data Service](https://docs.microsoft.com/rest/api/maps/data). Once uploaded, use the \n`udid` returned by the [Data Upload API](https://docs.microsoft.com/rest/api/maps/data/uploadpreview) to call \nthis Conversion API.\n\n## Convert DWG package\n\nThe Conversion API performs a \n[long-running request](https://aka.ms/am-creator-lrt).\n\n## Debug DWG package issues\n\n\nDuring the Conversion process, if there are any issues with the DWG package [errors and warnings](https://aka.ms/am-conversion-errors) are provided in the response along with a *diagnostic package* to visualize \nand diagnose these issues. In case any issues are encountered with your DWG package, the Conversion operation status process as detailed \n[here](https://aka.ms/am-creator-lrt) returns the location of the *diagnostic\npackage* that can be downloaded by the caller to help them visualize and diagnose these issues. The *diagnostic package* location\ncan be found in the properties section of the conversion operation status response and looks like the following:\n\n```json\n{\n \"properties\": {\n \"diagnosticPackageLocation\": \"https://atlas.microsoft.com/mapdata/{DiagnosticPackageId}?api-version=1.0\" \n } \n}\n```\n\nThe *diagnostic package* can be downloaded by executing a `HTTP GET` request on the `diagnosticPackageLocation`.\nFor more details on how to use the tool to visualize and diagnose all the errors and warnings see [Drawing Error Visualizer](https://aka.ms/am-drawing-errors-visualizer).
\n\nA conversion operation will be marked as *success* if there are zero or more warnings but will be marked as *failed* if any errors are encountered. ", "operationId": "Conversion_Convert", - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "location" - }, "x-ms-examples": { "Convert previously uploaded DWG Package": { "$ref": "./examples/Conversion.json" diff --git a/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json index 59e131241f94..997ecb96e397 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json +++ b/specification/maps/data-plane/Microsoft.Maps/Tileset/preview/2.0/tileset.json @@ -183,10 +183,6 @@ "x-publish": true, "description": "**Tileset Create API**\n\n**Applies to**: S1 pricing tier.\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API \nand SDK. The Tileset API is part of Creator.\n\nThe Tileset Create API allows the caller to create a tileset from a dataset. A tileset contains a set of tiles that can be consumed \nfrom the [Get Map Tile](/rest/api/maps/render/getmaptile) to retrieve custom tiles. To make a dataset, use the \n[DataSet Create API](/rest/api/maps/dataset/createpreview).\n\n## Submit Create Request\n\nTo create your tileset you will make a `POST` request with an empty body. The `datasetId` query parameter will be \nused as the source of the tileset data.\n\nThe Create Tileset API is a \n[long-running request](https://aka.ms/am-creator-lrt).", "operationId": "Tileset_Create", - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "location" - }, "x-ms-examples": { "Create Tileset by providing a Dataset Id": { "$ref": "./examples/Create.json" From 339cec5593fb778b6d28a61e814c074f272bd531 Mon Sep 17 00:00:00 2001 From: Robert Johnson Date: Thu, 29 Apr 2021 10:55:34 -0700 Subject: [PATCH 38/38] Update alias documentation for resourceId -> creatorDataItemId change --- .../Alias/preview/2.0/alias.json | 34 +++++++++---------- .../preview/2.0/examples/Alias_Assign.json | 4 +-- .../preview/2.0/examples/Alias_Create.json | 2 +- .../2.0/examples/Alias_GetDetails.json | 2 +- .../preview/2.0/examples/Alias_List.json | 4 +-- 5 files changed, 23 insertions(+), 23 deletions(-) diff --git a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/alias.json b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/alias.json index 43f366d32951..664e1312eae7 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/alias.json +++ b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/alias.json @@ -98,17 +98,17 @@ "default": "2.0", "x-ms-parameter-location": "client" }, - "CreateResourceId": { - "name": "resourceId", - "description": "The unique id that references a resource to be aliased.", + "CreateCreatorDataItemId": { + "name": "creatorDataItemId", + "description": "The unique id that references a creator data item to be aliased.", "type": "string", "in": "query", "required": false, "x-ms-parameter-location": "method" }, - "AssignResourceId": { - "name": "resourceId", - "description": "The unique id that references a resource to be aliased.", + "AssignCreatorDataItemId": { + "name": "creatorDataItemId", + "description": "The unique id that references a creator data item to be aliased.", "type": "string", "in": "query", "required": true, @@ -127,7 +127,7 @@ "/aliases": { "post": { "x-publish": true, - "description": "**Alias - Create API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to create an alias. You can also assign the alias during the create request.
\nAn alias can reference an ID generated by a creator service, but cannot reference another alias ID.\n\n\n### Submit Create Request\n\nTo create your alias, you will use a `POST` request. If you would like to assign the alias during the creation, you will pass the `resourceId` query parameter.
\n\n\n### Create Alias Response\n\nThe Create API returns a HTTP `201 Created` response with the alias resource in the body.\n\nA sample response from creating an alias:
\n\n```json\n{\n \"createdTimestamp\": \"2020-02-13T21:19:11.123Z\",\n \"aliasId\": \"a8a4b8bb-ecf4-fb27-a618-f41721552766\",\n \"resourceId\": \"e89aebb9-70a3-8fe1-32bb-1fbd0c725f14\",\n \"lastUpdatedTimestamp\": \"2020-02-13T21:19:22.123Z\"\n}\n```\n\n
", + "description": "## Alias - Create API\n\n### Applies to: S1 pricing tier.\n\nThis API allows the caller to create an alias. You can also assign the alias during the create request. An alias can reference an ID generated by a creator service, but cannot reference another alias ID.\n\n### Submit Create Request\n\nTo create your alias, you will use a `POST` request. If you would like to assign the alias during the creation, you will pass the `resourceId` query parameter.\n\n### Create Alias Response\n\nThe Create API returns a HTTP `201 Created` response with the alias resource in the body.\n\nA sample response from creating an alias:\n\n```json\n{\n \"createdTimestamp\": \"2020-02-13T21:19:11.123Z\",\n \"aliasId\": \"a8a4b8bb-ecf4-fb27-a618-f41721552766\",\n \"creatorDataItemId\": \"e89aebb9-70a3-8fe1-32bb-1fbd0c725f14\",\n \"lastUpdatedTimestamp\": \"2020-02-13T21:19:22.123Z\"\n}\n```", "operationId": "Alias_Create", "x-ms-examples": { "Create an alias that does not reference any resource": { @@ -142,7 +142,7 @@ "$ref": "#/parameters/ApiVersion" }, { - "$ref": "#/parameters/CreateResourceId" + "$ref": "#/parameters/CreateCreatorDataItemId" } ], "responses": { @@ -177,7 +177,7 @@ }, "get": { "x-publish": true, - "description": "**Alias - List API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to fetch a list of all previously successfully created aliases.\n\n\n### Submit List Request\n\nTo list all your aliases, you will issue a `GET` request with no additional parameters.
\n\n\n### List Data Response\n\nThe List API returns the complete list of all aliases in `json` format. The response contains the following details for each alias resource:\n\n > createdTimestamp - The timestamp that the alias was created. Format yyyy-MM-ddTHH:mm:ss.sssZ\n > aliasId - The id for the alias.\n > resourceId - The id for the resource that this alias references (could be null if the alias has not been assigned).\n > lastUpdatedTimestamp - The last time the alias was assigned to a resource. Format yyyy-MM-ddTHH:mm:ss.sssZ\n\n\nA sample response returning 2 alias resources:
\n\n```json\n{\n \"aliases\": [\n {\n \"createdTimestamp\": \"2020-02-13T21:19:11.123Z\",\n \"aliasId\": \"a8a4b8bb-ecf4-fb27-a618-f41721552766\",\n \"resourceId\": \"e89aebb9-70a3-8fe1-32bb-1fbd0c725f14\",\n \"lastUpdatedTimestamp\": \"2020-02-13T21:19:22.123Z\"\n },\n {\n \"createdTimestamp\": \"2020-02-18T19:53:33.123Z\",\n \"aliasId\": \"1856dbfc-7a66-ee5a-bf8d-51dbfe1906f6\",\n \"resourceId\": null,\n \"lastUpdatedTimestamp\": \"2020-02-18T19:53:33.123Z\"\n }\n ]\n}\n```\n\n
", + "description": "## Alias - List API\n\n### Applies to: S1 pricing tier.\n\nThis API allows the caller to fetch a list of all previously successfully created aliases.\n\n### Submit List Request\n\nTo list all your aliases, you will issue a `GET` request with no additional parameters.\n\n### List Data Response\n\nThe List API returns the complete list of all aliases in `json` format. The response contains the following details for each alias resource:\n > createdTimestamp - The timestamp that the alias was created. Format yyyy-MM-ddTHH:mm:ss.sssZ\n > aliasId - The id for the alias.\n > creatorDataItemId - The id for the creator data item that this alias references (could be null if the alias has not been assigned).\n > lastUpdatedTimestamp - The last time the alias was assigned to a resource. Format yyyy-MM-ddTHH:mm:ss.sssZ\n\nA sample response returning 2 alias resources:\n\n```json\n{\n \"aliases\": [\n {\n \"createdTimestamp\": \"2020-02-13T21:19:11.123Z\",\n \"aliasId\": \"a8a4b8bb-ecf4-fb27-a618-f41721552766\",\n \"creatorDataItemId\": \"e89aebb9-70a3-8fe1-32bb-1fbd0c725f14\",\n \"lastUpdatedTimestamp\": \"2020-02-13T21:19:22.123Z\"\n },\n {\n \"createdTimestamp\": \"2020-02-18T19:53:33.123Z\",\n \"aliasId\": \"1856dbfc-7a66-ee5a-bf8d-51dbfe1906f6\",\n \"creatorDataItemId\": null,\n \"lastUpdatedTimestamp\": \"2020-02-18T19:53:33.123Z\"\n }\n ]\n}\n```", "operationId": "Alias_List", "x-ms-examples": { "List all the previously created aliases": { @@ -220,7 +220,7 @@ "/aliases/{aliasId}": { "put": { "x-publish": true, - "description": "**Alias - Assign API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to assign an alias to reference a resource.
\n\n\n### Submit Assign Request\n\nTo assign your alias to a resource, you will use a `PUT` request with the `aliasId` in the path and the `resourceId` passed as a query parameter.
\n\n\n### Assign Alias Response\n\nThe Assign API returns a HTTP `200 OK` response with the updated alias resource in the body, if the alias was assigned successfully. A sample of the assign response is
\n\n```json\n{\n \"createdTimestamp\": \"2020-02-13T21:19:11.123Z\",\n \"aliasId\": \"a8a4b8bb-ecf4-fb27-a618-f41721552766\",\n \"resourceId\": \"e89aebb9-70a3-8fe1-32bb-1fbd0c725f14\",\n \"lastUpdatedTimestamp\": \"2020-02-13T21:19:22.123Z\"\n}\n```", + "description": "## Alias - Assign API\n\n### Applies to: S1 pricing tier.\n\nThis API allows the caller to assign an alias to reference a resource.\n\n### Submit Assign Request\n\nTo assign your alias to a resource, you will use a `PUT` request with the `aliasId` in the path and the `creatorDataItemId` passed as a query parameter.\n\n### Assign Alias Response\n\nThe Assign API returns a HTTP `200 OK` response with the updated alias resource in the body, if the alias was assigned successfully. A sample of the assign response is\n\n```json\n{\n \"createdTimestamp\": \"2020-02-13T21:19:11.123Z\",\n \"aliasId\": \"a8a4b8bb-ecf4-fb27-a618-f41721552766\",\n \"creatorDataItemId\": \"e89aebb9-70a3-8fe1-32bb-1fbd0c725f14\",\n \"lastUpdatedTimestamp\": \"2020-02-13T21:19:22.123Z\"\n}\n```", "operationId": "Alias_Assign", "x-ms-examples": { "Assign an alias to a resource": { @@ -238,7 +238,7 @@ "$ref": "#/parameters/ApiVersion" }, { - "$ref": "#/parameters/AssignResourceId" + "$ref": "#/parameters/AssignCreatorDataItemId" } ], "responses": { @@ -267,7 +267,7 @@ }, "delete": { "x-publish": true, - "description": "**Alias - Delete API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to delete a previously created alias.
\nYou can also use this API to delete old/unused aliases to create space for new content.\nThis API does not delete the references resource, only the alias referencing the resource.\n\n\n### Submit Delete Request\n\nTo delete your alias you will issue a `DELETE` request where the path will contain the `aliasId` of the alias to delete.
\n\n\n### Delete Alias Response\n\nThe Delete API returns a HTTP `204 No Content` response with an empty body, if the alias was deleted successfully.
\nA HTTP `400 Bad Request` error response will be returned if the alias with the passed-in `aliasId` is not found. ", + "description": "## Alias - Delete API\n\n### Applies to: S1 pricing tier.\n\nThis API allows the caller to delete a previously created alias. You can also use this API to delete old/unused aliases to create space for new content.This API does not delete the references resource, only the alias referencing the resource.\n\n### Submit Delete Request\n\nTo delete your alias you will issue a `DELETE` request where the path will contain the `aliasId` of the alias to delete.\n\n### Delete Alias Response\n\nThe Delete API returns a HTTP `204 No Content` response with an empty body, if the alias was deleted successfully.", "operationId": "Alias_Delete", "x-ms-examples": { "Delete previously created alias": { @@ -308,7 +308,7 @@ }, "get": { "x-publish": true, - "description": "**Alias - Get Details API**\n\n**Applies to:** S1 pricing tier.\n
\n\nThis API allows the caller to fetch the details of a previously created alias.\n\n\n### Submit Get Details Request\n\nTo get the details of your alias, you will issue a `GET` request with the `aliasId` in the path.
\n\n\n### Get Details Response\n\nThe Get Details API returns the previously created alias in `json` format. The response contains the following details for the alias resource:\n\n > createdTimestamp - The timestamp that the alias was created.\n > aliasId - The id for the alias.\n > resourceId - The id for the resource that this alias references (could be null if the alias has not been assigned).\n > lastUpdatedTimestamp - The last time the alias was assigned to a resource.\n\n\nHere's a sample response: \n\n
\n\n```json\n{\n \"createdTimestamp\": \"2020-02-13T21:19:11.123Z\",\n \"aliasId\": \"a8a4b8bb-ecf4-fb27-a618-f41721552766\",\n \"resourceId\": \"e89aebb9-70a3-8fe1-32bb-1fbd0c725f14\",\n \"lastUpdatedTimestamp\": \"2020-02-13T21:19:22.123Z\"\n}\n```", + "description": "## Alias - Get Details API\n\n### Applies to: S1 pricing tier.\n\nThis API allows the caller to fetch the details of a previously created alias.\n\n### Submit Get Details Request\n\nTo get the details of your alias, you will issue a `GET` request with the `aliasId` in the path.\n\n### Get Details Response\n\nThe Get Details API returns the previously created alias in `json` format. The response contains the following details for the alias resource:\n > createdTimestamp - The timestamp that the alias was created.\n > aliasId - The id for the alias.\n > creatorDataItemId - The id for the creator data item that this alias references (could be null if the alias has not been assigned).\n > lastUpdatedTimestamp - The last time the alias was assigned to a resource.\n\nHere's a sample response:\n```json\n{\n \"createdTimestamp\": \"2020-02-13T21:19:11.123Z\",\n \"aliasId\": \"a8a4b8bb-ecf4-fb27-a618-f41721552766\",\n \"creatorDataItemId\": \"e89aebb9-70a3-8fe1-32bb-1fbd0c725f14\",\n \"lastUpdatedTimestamp\": \"2020-02-13T21:19:22.123Z\"\n}\n```", "operationId": "Alias_GetDetails", "x-ms-examples": { "Get a previously created alias": { @@ -403,8 +403,8 @@ "type": "string", "readOnly": true }, - "resourceId": { - "description": "The id for the resource that this alias references (could be null if the alias has not been assigned).", + "creatorDataItemId": { + "description": "The id for the creator data item that this alias references (could be null if the alias has not been assigned).", "type": "string", "readOnly": true }, @@ -448,8 +448,8 @@ "type": "string", "readOnly": true }, - "resourceId": { - "description": "The id for the resource that this alias references (could be null if the alias has not been assigned).", + "creatorDataItemId": { + "description": "The id for the creator data item that this alias references (could be null if the alias has not been assigned).", "type": "string", "readOnly": true }, diff --git a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Assign.json b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Assign.json index 32e0c1f2871c..7ae554db0c33 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Assign.json +++ b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Assign.json @@ -3,14 +3,14 @@ "api-version": "2.0", "subscription-key": "[subscription-key]", "aliasId": "[aliasId]", - "resourceId": "[resourceId]" + "creatorDataItemId": "[creatorDataItemId]" }, "responses": { "200": { "body": { "createdTimestamp": "2021-05-01T01:02:03.456Z", "aliasId": "25084fb7-307a-4720-8f91-7952a0b91012", - "resourceId": "633a009a-dfa2-4d51-a419-420122e11c94", + "creatorDataItemId": "633a009a-dfa2-4d51-a419-420122e11c94", "lastUpdatedTimestamp": "2021-05-01T01:02:03.456Z" } }, diff --git a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Create.json b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Create.json index 17f9d0be1ace..12fc7a5b47dd 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Create.json +++ b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_Create.json @@ -9,7 +9,7 @@ "body": { "createdTimestamp": "2021-05-01T01:02:03.456Z", "aliasId": "25084fb7-307a-4720-8f91-7952a0b91012", - "resourceId": null, + "creatorDataItemId": null, "lastUpdatedTimestamp": "2021-05-01T01:02:03.456Z" } }, diff --git a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_GetDetails.json b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_GetDetails.json index 80e806e96fc5..374920bb0467 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_GetDetails.json +++ b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_GetDetails.json @@ -9,7 +9,7 @@ "body": { "createdTimestamp": "2020-02-13T21:19:11+00:00", "aliasId": "a8a4b8bb-ecf4-fb27-a618-f41721552766", - "resourceId": "e89aebb9-70a3-8fe1-32bb-1fbd0c725f14", + "creatorDataItemId": "e89aebb9-70a3-8fe1-32bb-1fbd0c725f14", "lastUpdatedTimestamp": "2020-02-13T21:19:22+00:00" } }, diff --git a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_List.json b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_List.json index 2ddf8c51529f..347e400b1c1a 100644 --- a/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_List.json +++ b/specification/maps/data-plane/Microsoft.Maps/Alias/preview/2.0/examples/Alias_List.json @@ -10,13 +10,13 @@ { "createdTimestamp": "2020-02-13T21:19:11+00:00", "aliasId": "a8a4b8bb-ecf4-fb27-a618-f41721552766", - "resourceId": "e89aebb9-70a3-8fe1-32bb-1fbd0c725f14", + "creatorDataItemId": "e89aebb9-70a3-8fe1-32bb-1fbd0c725f14", "lastUpdatedTimestamp": "2020-02-13T21:19:22+00:00" }, { "createdTimestamp": "2020-02-13T21:19:11+00:00", "aliasId": "1856dbfc-7a66-ee5a-bf8d-51dbfe1906f6", - "resourceId": null, + "creatorDataItemId": null, "lastUpdatedTimestamp": "2020-02-13T21:19:11+00:00" } ]