diff --git a/custom-words.txt b/custom-words.txt index 87ccbffef54f..859808c373db 100644 --- a/custom-words.txt +++ b/custom-words.txt @@ -1181,6 +1181,7 @@ manualupgrade mapbox mapred mapreduce +Maputnik mariadb Marketo marketplaceagreementsapi @@ -1992,6 +1993,9 @@ streamingendpoint streamingjobs streamingservice structdef +stylerecipe +styleset +stylesets subcause subcode subcomponent diff --git a/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/mapconfiguration/MapConfiguration_Create.json b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/mapconfiguration/MapConfiguration_Create.json new file mode 100644 index 000000000000..49112ece1b04 --- /dev/null +++ b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/mapconfiguration/MapConfiguration_Create.json @@ -0,0 +1,49 @@ +{ + "parameters": { + "geography": "us", + "api-version": "2022-01-01-preview", + "alias": "sample-alias", + "description": "This is my first map configuration.", + "MapConfiguration": { + "version": 1.0, + "description": "This is Microsoft default indoor map configuration", + "defaultStyle": "microsoft_light", + "styles": [ + { + "name": "indoor_light", + "displayName": "Indoor light", + "description": "A base style for Azure Maps.", + "theme": "light", + "baseMap": "microsoft_light", + "layers": [ + { + "tilesetId": "b7485951-f6d9-e5ba-a332-8adb08fc7fb7", + "styleId": "microsoft-maps:indoor_2022-01-01" + } + ] + }, + { + "name": "indoor_dark", + "displayName": "Indoor dark", + "description": "A base style for Azure Maps.", + "theme": "dark", + "baseMap": "microsoft_dark", + "layers": [ + { + "tilesetId": "b7485951-f6d9-e5ba-a332-8adb08fc7fb7", + "styleId": "microsoft-maps:indoor_dark_2022-01-01" + } + ] + } + ] + } + }, + "responses": { + "202": { + "headers": { + "Operation-Location": "https://us.atlas.microsoft.com/styles/mapConfigurations/operations/{operationId}?api-version=2022-01-01-preview", + "Access-Control-Expose-Headers": "Operation-Location" + } + } + } +} \ No newline at end of file diff --git a/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/mapconfiguration/MapConfiguration_Delete.json b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/mapconfiguration/MapConfiguration_Delete.json new file mode 100644 index 000000000000..4123b29db9f6 --- /dev/null +++ b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/mapconfiguration/MapConfiguration_Delete.json @@ -0,0 +1,10 @@ +{ + "parameters": { + "geography": "us", + "api-version": "2022-01-01-preview", + "mapConfigurationId": "25084fb7-307a-4720-8f91-7952a0b91012" + }, + "responses": { + "204": {} + } +} diff --git a/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/mapconfiguration/MapConfiguration_Get.json b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/mapconfiguration/MapConfiguration_Get.json new file mode 100644 index 000000000000..8a30a07085d9 --- /dev/null +++ b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/mapconfiguration/MapConfiguration_Get.json @@ -0,0 +1,15 @@ +{ + "parameters": { + "geography": "us", + "api-version": "2022-01-01-preview", + "mapConfigurationId": "25084fb7-307a-4720-8f91-7952a0b91012" + }, + "responses": { + "200": { + "headers": { + "Content-Type": "application/zip" + }, + "body": "binary zip string, can be saved as zip file. The zip file will contain a `configuration.json` file and optional thumbnail files defined in the configuration file." + } + } +} diff --git a/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/mapconfiguration/MapConfiguration_GetOperation.json b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/mapconfiguration/MapConfiguration_GetOperation.json new file mode 100644 index 000000000000..ad8daeda6a90 --- /dev/null +++ b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/mapconfiguration/MapConfiguration_GetOperation.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "geography": "us", + "api-version": "2022-01-01-preview", + "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" + }, + "headers": { + "Resource-Location": "https://us.atlas.microsoft.com/styles/mapConfigurations/3e36b996-f6d1-b068-0fcb-dd6b014c3447?api-version=2022-01-01-preview" + } + } + } +} diff --git a/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/mapconfiguration/MapConfiguration_GetOperationStillRunning.json b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/mapconfiguration/MapConfiguration_GetOperationStillRunning.json new file mode 100644 index 000000000000..245506ef8536 --- /dev/null +++ b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/mapconfiguration/MapConfiguration_GetOperationStillRunning.json @@ -0,0 +1,16 @@ +{ + "parameters": { + "geography": "us", + "api-version": "2022-01-01-preview", + "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" + } + } + } +} diff --git a/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/mapconfiguration/MapConfiguration_List.json b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/mapconfiguration/MapConfiguration_List.json new file mode 100644 index 000000000000..7ae4686511ea --- /dev/null +++ b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/mapconfiguration/MapConfiguration_List.json @@ -0,0 +1,26 @@ +{ + "parameters": { + "geography": "us", + "api-version": "2022-01-01-preview" + }, + "responses": { + "200": { + "body": { + "mapConfigurations": [ + { + "mapConfigurationId": "83f95b58-bd21-0c90-f904-341a0eb8f86e", + "description": "map configuration with indoor dark style", + "alias": "indoor_dark", + "created": "2022-04-13T06:30:42+00:00" + }, + { + "mapConfigurationId": "36f67fb9-893d-019e-32ca-d26db5ee764a", + "description": "Auto-generated map configuration for indoor tileset 28b8160a-68d8-4247-be0b-786c51963142.", + "alias": "defaultIndoor_28b8160a-68d8-4247-be0b-786c51963142", + "created": "2022-04-13T22:39:50+00:00" + } + ] + } + } + } +} diff --git a/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/style/Style_Delete.json b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/style/Style_Delete.json new file mode 100644 index 000000000000..404112fcbbd1 --- /dev/null +++ b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/style/Style_Delete.json @@ -0,0 +1,10 @@ +{ + "parameters": { + "geography": "us", + "api-version": "2022-01-01-preview", + "styleId": "25084fb7-307a-4720-8f91-7952a0b91012" + }, + "responses": { + "204": {} + } +} diff --git a/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/style/Style_Export.json b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/style/Style_Export.json new file mode 100644 index 000000000000..a03ced440943 --- /dev/null +++ b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/style/Style_Export.json @@ -0,0 +1,15 @@ +{ + "parameters": { + "geography": "us", + "api-version": "2022-01-01-preview", + "styleId": "25084fb7-307a-4720-8f91-7952a0b91012" + }, + "responses": { + "200": { + "headers": { + "Content-Type": "application/zip" + }, + "body": "binary zip string, can be saved as zip file. The zip file will contain a style json file and optional sprites image and json index files." + } + } +} diff --git a/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/style/Style_GetOperation.json b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/style/Style_GetOperation.json new file mode 100644 index 000000000000..6ef1fbefe5bf --- /dev/null +++ b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/style/Style_GetOperation.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "geography": "us", + "api-version": "2022-01-01-preview", + "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" + }, + "headers": { + "Resource-Location": "https://us.atlas.microsoft.com/styles/3e36b996-f6d1-b068-0fcb-dd6b014c3447?api-version=2022-01-01-preview" + } + } + } +} diff --git a/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/style/Style_GetOperationStillRunning.json b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/style/Style_GetOperationStillRunning.json new file mode 100644 index 000000000000..245506ef8536 --- /dev/null +++ b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/style/Style_GetOperationStillRunning.json @@ -0,0 +1,16 @@ +{ + "parameters": { + "geography": "us", + "api-version": "2022-01-01-preview", + "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" + } + } + } +} diff --git a/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/style/Style_Import.json b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/style/Style_Import.json new file mode 100644 index 000000000000..7a0669fe20e5 --- /dev/null +++ b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/style/Style_Import.json @@ -0,0 +1,64 @@ +{ + "parameters": { + "geography": "us", + "api-version": "2022-01-01-preview", + "alias": "test-alias", + "ImportContent": { + "layers": [ + { + "id": "background", + "type": "background", + "source-layer": "bg-source", + "minzoom": 18, + "maxzoom": 20, + "layout": { + "visibility": "none", + "symbol-placement": "point", + "symbol-avoid-edges": true, + "text-field": "{name}", + "text-keep-upright": true, + "text-font": [ + "SegoeUi-SemiBold" + ], + "text-letter-spacing": 0.1, + "text-size": { + "stops": [ + [ + 18.5, + 6.5 + ], + [ + 19, + 8 + ], + [ + 19.5, + 9.5 + ], + [ + 20, + 11 + ] + ] + }, + "text-anchor": "center" + }, + "paint": { + "text-color": "rgb(0, 0, 0)", + "text-halo-color": "rgb(255, 255, 255)", + "text-halo-width": 1, + "text-halo-blur": 0.5 + } + } + ] + } + }, + "responses": { + "202": { + "headers": { + "Operation-Location": "https://us.atlas.microsoft.com/styles/operations/{operationId}?api-version=2022-01-01-preview", + "Access-Control-Expose-Headers": "Operation-Location" + } + } + } +} diff --git a/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/style/Style_List.json b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/style/Style_List.json new file mode 100644 index 000000000000..3fc8489d9027 --- /dev/null +++ b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/style/Style_List.json @@ -0,0 +1,20 @@ +{ + "parameters": { + "geography": "us", + "api-version": "2022-01-01-preview" + }, + "responses": { + "200": { + "body": { + "styles": [ + { + "styleId": "9c451b0a-6527-49a7-9154-1b3d9486487f", + "description": "Some optional description", + "alias": "indoor_style", + "created": "2022-01-21T03:04:05.678Z" + } + ] + } + } + } +} diff --git a/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/tileset/Tileset_Create.json b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/tileset/Tileset_Create.json new file mode 100644 index 000000000000..370ca7dd934b --- /dev/null +++ b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/tileset/Tileset_Create.json @@ -0,0 +1,50 @@ +{ + "parameters": { + "geography": "us", + "api-version": "2022-01-01-preview", + "datasetId": "[dataset-Id]", + "description": "Example description.", + "TilesetConfiguration": { + "version": 1, + "layers": { + "Indoor unit": { + "minZoom": 10, + "maxZoom": 18, + "features": { + "featureClasses": [ + "unit", + "wall" + ], + "filter": [ + "any", + [ + "!=", + [ + "get", + "roomType" + ], + "conference" + ], + [ + "!=", + [ + "get", + "roomType" + ], + "restroom" + ] + ] + } + } + } + } + }, + "responses": { + "202": { + "headers": { + "Operation-Location": "https://us.atlas.microsoft.com/tilesets/operations/{operationId}?api-version=2022-01-01-preview", + "Access-Control-Expose-Headers": "Operation-Location" + } + } + } +} diff --git a/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/tileset/Tileset_Delete.json b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/tileset/Tileset_Delete.json new file mode 100644 index 000000000000..470b4fcf8e54 --- /dev/null +++ b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/tileset/Tileset_Delete.json @@ -0,0 +1,10 @@ +{ + "parameters": { + "geography": "us", + "api-version": "2022-01-01-preview", + "tilesetId": "25084fb7-307a-4720-8f91-7952a0b91012" + }, + "responses": { + "204": {} + } +} diff --git a/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/tileset/Tileset_Get.json b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/tileset/Tileset_Get.json new file mode 100644 index 000000000000..eb6049d9ae45 --- /dev/null +++ b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/tileset/Tileset_Get.json @@ -0,0 +1,58 @@ +{ + "parameters": { + "geography": "us", + "api-version": "2022-01-01-preview", + "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 + ] + }, + "ontology": "facility-2.0", + "tilesetRecipe": { + "version": 1, + "layers": { + "Indoor facility": { + "minZoom": 13, + "maxZoom": 20, + "features": { + "featureClasses": [ + "facility" + ] + } + }, + "Indoor unit": { + "minZoom": 16, + "maxZoom": 19, + "features": { + "featureClasses": [ + "unit" + ] + } + }, + "Indoor opening": { + "minZoom": 16, + "maxZoom": 19, + "features": { + "featureClasses": [ + "opening" + ] + } + } + } + }, + "defaultStyleSetId": "5d70a5a8-a11b-abbc-517f-ddd32a23fab1" + } + } +} diff --git a/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/tileset/Tileset_GetConfiguration.json b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/tileset/Tileset_GetConfiguration.json new file mode 100644 index 000000000000..4a00fb6a2802 --- /dev/null +++ b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/tileset/Tileset_GetConfiguration.json @@ -0,0 +1,44 @@ +{ + "parameters": { + "geography": "us", + "api-version": "2022-01-01-preview", + "datasetId": "[datasetId]" + }, + "responses": { + "200": { + "body": { + "version": 1, + "layers": { + "Indoor unit": { + "minZoom": 10, + "maxZoom": 18, + "features": { + "featureClasses": [ + "unit", + "wall" + ], + "filter": [ + "any", + [ + "!=", + [ + "get", + "roomType" + ], + "conference" + ], + [ + ">=", + [ + "zoom" + ], + 12 + ] + ] + } + } + } + } + } + } +} diff --git a/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/tileset/Tileset_GetOperation.json b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/tileset/Tileset_GetOperation.json new file mode 100644 index 000000000000..901d785d4e68 --- /dev/null +++ b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/tileset/Tileset_GetOperation.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "geography": "us", + "api-version": "2022-01-01-preview", + "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" + }, + "headers": { + "Resource-Location": "https://us.atlas.microsoft.com/tilesets/3e36b996-f6d1-b068-0fcb-dd6b014c3447?api-version=2022-01-01-preview" + } + } + } +} diff --git a/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/tileset/Tileset_GetOperationStillRunning.json b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/tileset/Tileset_GetOperationStillRunning.json new file mode 100644 index 000000000000..245506ef8536 --- /dev/null +++ b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/tileset/Tileset_GetOperationStillRunning.json @@ -0,0 +1,16 @@ +{ + "parameters": { + "geography": "us", + "api-version": "2022-01-01-preview", + "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" + } + } + } +} diff --git a/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/tileset/Tileset_List.json b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/tileset/Tileset_List.json new file mode 100644 index 000000000000..aa89f5c8690c --- /dev/null +++ b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/tileset/Tileset_List.json @@ -0,0 +1,99 @@ +{ + "parameters": { + "geography": "us", + "api-version": "2022-01-01-preview" + }, + "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 + ], + "ontology": "facility-2.0", + "tilesetConfiguration": { + "version": 1, + "layers": { + "Indoor facility": { + "minZoom": 13, + "maxZoom": 20, + "features": { + "featureClasses": [ + "facility" + ] + } + }, + "Indoor unit": { + "minZoom": 16, + "maxZoom": 19, + "features": { + "featureClasses": [ + "unit" + ] + } + } + } + }, + "defaultStyleSetId": "5d70a5a8-a11b-abbc-517f-ddd32a23fab1" + }, + { + "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 + ], + "ontology": "facility-2.0", + "tilesetConfiguration": { + "version": 1, + "layers": { + "Indoor facility": { + "minZoom": 13, + "maxZoom": 20, + "features": { + "featureClasses": [ + "facility" + ] + } + }, + "Indoor unit": { + "minZoom": 16, + "maxZoom": 19, + "features": { + "featureClasses": [ + "unit" + ] + } + }, + "Indoor opening": { + "minZoom": 16, + "maxZoom": 19, + "features": { + "featureClasses": [ + "opening" + ] + } + } + } + }, + "defaultStyleSetId": "5d70a5a8-a11b-abbc-517f-ddd32a23fab2" + } + ] + } + } + } +} diff --git a/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/tileset/Tileset_ValidateConfiguration.json b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/tileset/Tileset_ValidateConfiguration.json new file mode 100644 index 000000000000..e08ebbef525f --- /dev/null +++ b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/tileset/Tileset_ValidateConfiguration.json @@ -0,0 +1,52 @@ +{ + "parameters": { + "geography": "us", + "api-version": "2022-01-01-preview", + "datasetId": "[datasetId]", + "TilesetRecipe": { + "version": 1, + "layers": { + "Indoor unit": { + "minzoom": 10, + "maxzoom": 18, + "features": { + "featureClasses": [ + "unit", + "wall" + ], + "filter": [ + "any", + [ + "!=", + [ + "get", + "roomType" + ], + "conference" + ], + [ + "!=", + [ + "get", + "roomType" + ], + "restroom" + ] + ] + } + } + } + } + }, + "responses": { + "200": { + "body": { + "valid": false, + "warnings": [], + "errors": [ + "minzoom 12 cannot be larger than maxzoom 11 for Indoor unit layer." + ] + } + } + } +} diff --git a/specification/maps/data-plane/Creator/preview/2022-01-01-preview/mapconfiguration.json b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/mapconfiguration.json new file mode 100644 index 000000000000..e1919f259022 --- /dev/null +++ b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/mapconfiguration.json @@ -0,0 +1,459 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Maps Map Configuration Service", + "version": "2022-01-01-preview", + "description": "This is an extension of the Azure Maps Tileset API to serve custom styles. It will allow a client to create a list of map styling information which can be combined with tilesetIds to create a map configuration that can be consumed directly by front-end services (map control web & mobile SDKs, styling tools like [Maputnik](https://maputnik.github.io/editor/)). Map configuration can be viewed as the backend representation for a style picker at frontend." + }, + "x-ms-parameterized-host": { + "hostTemplate": "{geography}.atlas.microsoft.com", + "parameters": [ + { + "$ref": "../../../Common/preview/1.0/common.json#/parameters/GeographicResourceLocation" + } + ] + }, + "schemes": [ + "https" + ], + "consumes": [], + "produces": [ + "application/json" + ], + "securityDefinitions": { + "AADToken": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "These are the [Azure Active Directory OAuth2](https://docs.microsoft.com/azure/active-directory/develop/v1-overview) Flows. When paired with [Azure role-based access](https://docs.microsoft.com/azure/role-based-access-control/overview) control it can be used to control access to Azure Maps REST APIs. Azure role-based access controls are used to designate access to one or more Azure Maps resource account or sub-resources. Any user, group, or service principal can be granted access via a built-in role or a custom role composed of one or more permissions to Azure Maps REST APIs.\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#### Notes\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* \nThe `Authorization URL` is specific to the Azure public cloud instance. Sovereign clouds have unique Authorization URLs and Azure Active directory configurations. \n* \nThe 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* \nUsage 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 or v2.0](https://docs.microsoft.com/azure/active-directory/develop/azure-ad-endpoint-comparison) supports Work, School, and Guests but does not support Personal accounts.", + "scopes": { + "https://atlas.microsoft.com/.default": "https://atlas.microsoft.com/.default" + } + }, + "SharedKey": { + "type": "apiKey", + "description": "This is a shared key that is provisioned when creating an [Azure Maps resource](https://aka.ms/amauth) through the Azure management plane via Azure portal, PowerShell, CLI, Azure SDKs, or REST APIs.\n\n 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.\n\n 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" + }, + "SasToken": { + "type": "apiKey", + "description": "This is a shared access signature token is created from the List SAS operation on the [Azure Maps resource](https://aka.ms/amauth) through the Azure management plane via Azure portal, PowerShell, CLI, Azure SDKs, or REST APIs.\n\n With this token, any application is authorized to access with Azure role-based access controls and fine-grain control to the expiration, rate, and region(s) of use for the particular token. In other words, the SAS Token can be used to allow applications to control access in a more secured way than the shared key.\n\n For publicly exposed applications, our recommendation is to configure a specific list of allowed origins on the [Map account resource](https://aka.ms/amauth) to limit rendering abuse and regularly renew the SAS Token.", + "name": "SAS Token", + "in": "header" + } + }, + "security": [ + { + "AADToken": [ + "https://atlas.microsoft.com/.default" + ] + }, + { + "SharedKey": [] + }, + { + "SasToken": [] + } + ], + "responses": {}, + "parameters": { + "ApiVersion": { + "name": "api-version", + "description": "Version number of Azure Maps API.", + "type": "string", + "in": "query", + "required": true, + "default": "2022-01-01-preview", + "x-ms-parameter-location": "client" + }, + "MapConfigurationId": { + "name": "mapConfigurationId", + "description": "The map configuration Id.", + "type": "string", + "in": "path", + "required": true, + "x-ms-parameter-location": "method" + }, + "DescriptionMapConfiguration": { + "name": "description", + "description": "User provided description of the map configuration. Maximum length 1024 characters.", + "type": "string", + "in": "query", + "x-ms-parameter-location": "method" + }, + "MapConfigurationOperationId": { + "name": "operationId", + "type": "string", + "in": "path", + "description": "The ID to query the status for the map configuration create request.", + "required": true, + "x-ms-parameter-location": "method" + }, + "Alias": { + "name": "alias", + "description": "The alias of the map configuration. Maximum length 1024 characters. Alias cannot start with `microsoft-maps` which is a preserved prefix.", + "type": "string", + "in": "query", + "required": false, + "x-ms-parameter-location": "method" + } + }, + "paths": { + "/styles/mapconfigurations": { + "post": { + "description": "**Applies to:** see pricing [tiers](https://aka.ms/AzureMapsPricingTier).\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. [This](https://docs.microsoft.com/azure/azure-maps/creator-indoor-maps) article introduces concepts and tools that apply to Azure Maps Creator.\n\nThe Map Configuration Create API allows the caller to create a map configuration from their map configuration file.\n\n## Submit Create Request\n\nTo create your map configuration you will make a `POST` request with a map configuration file. \n\n### POST Body for Create Request\nTo send the _create map configuration_ request you will use a `POST` request where the request body will contain a `json` or `zip` file. If `json` file is provided, the request body will contain a map configuration file in `json` format and the `Content-Type` header will be set to `application/json`, and if `zip` file is provided, the request body will contain a `zip` file including the map configuration json file and thumbnail images referenced in the configuration json file and the `Content-Type` header will be set to `application/zip`. Note: `json` file size limit is 1 MB and `zip` file size limit is 23 MB. Here's a sample map configuration json, refer to [map configuration specification](/rest/api/documentation-preview/map-configuration/create?#mapconfiguration) for more details:\n\n\n```json\n{\n \"version\": 1.0,\n \"description\": \"First indoor map configuration!\",\n \"defaultStyle\": \"indoor_light\",\n \"styles\": [\n {\n \"name\": \"indoor_light\",\n \"displayName\": \"Indoor light\",\n \"theme\": \"light\",\n \"thumbnail\": \"indoor_2022-01-01.png\",\n \"baseMap\": \"microsoft_light\",\n \"layers\": [\n {\n \"tilesetId\": \"9601b149-cff6-dae6-af94-396f1b795fdb\",\n \"styleId\": \"microsoft-maps:indoor_2022-01-01\"\n }\n ] \n },\n {\n \"name\": \"indoor_dark\",\n \"displayName\": \"Indoor dark\",\n \"theme\": \"dark\",\n \"baseMap\": \"microsoft_dark\",\n \"thumbnail\": \"indoor_dark_2022-01-01.png\",\n \"layers\": [\n {\n \"tilesetId\": \"9601b149-cff6-dae6-af94-396f1b795fdb\",\n \"styleId\": \"microsoft-maps:indoor_dark_2022-01-01\"\n }\n ]\n }\n ]\n}\n``` \n\n Since the map configuration json contains two thumbnail image references 'indoor_2022-01-01.png' and 'indoor_dark_2022-01-01.png', a zip file including the map configuration json file and two thumbnail images should be provided as request body to make a valid create request. \n\nThe Create Map Configuration API is a [long-running request](https://aka.ms/am-creator-lrt-v2).", + "operationId": "MapConfiguration_Create", + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-examples": { + "Create a map configuration by providing a configuration file": { + "$ref": "./examples/mapconfiguration/MapConfiguration_Create.json" + } + }, + "parameters": [ + { + "$ref": "../../../Common/preview/1.0/common.json#/parameters/ClientId" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/Alias" + }, + { + "$ref": "#/parameters/DescriptionMapConfiguration" + }, + { + "name": "MapConfiguration", + "in": "body", + "description": "The configuration file used to create the map configuration. If JSON data format is provided, then the request body should follow [MapConfiguration specification](/rest/api/documentation-preview/map-configuration/create?#mapconfiguration). If ZIP data format is provided, you should also provide the thumbnail images referenced in the configuration JSON file.", + "required": true, + "schema": { + "$ref": "#/definitions/MapConfiguration" + } + } + ], + "responses": { + "202": { + "$ref": "../../../Common/preview/1.0/common.json#/responses/202AsyncV2" + }, + "default": { + "$ref": "../../../Common/preview/1.0/common.json#/responses/default" + } + } + }, + "get": { + "description": "**Applies to:** see pricing [tiers](https://aka.ms/AzureMapsPricingTier).\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. [This](https://docs.microsoft.com/azure/azure-maps/creator-indoor-maps) article introduces concepts and tools that apply to Azure Maps Creator.\n\nThis API allows the caller to fetch a list of all map configurations created. You will see all the default map configurations which are created during tileset creation. \n
", + "operationId": "MapConfiguration_List", + "x-ms-examples": { + "Get a list of all map configurations": { + "$ref": "./examples/mapconfiguration/MapConfiguration_List.json" + } + }, + "parameters": [ + { + "$ref": "../../../Common/preview/1.0/common.json#/parameters/ClientId" + }, + { + "$ref": "#/parameters/ApiVersion" + } + ], + "x-ms-pageable": { + "itemName": "mapConfiguration", + "nextLinkName": "nextLink" + }, + "responses": { + "200": { + "description": "List map configuration request completed successfully. The response body contains a list of all map configurations.", + "schema": { + "$ref": "#/definitions/MapConfigurationListResult" + } + }, + "default": { + "$ref": "../../../Common/preview/1.0/common.json#/responses/default" + } + } + } + }, + "/styles/mapconfigurations/{mapConfigurationId}": { + "get": { + "description": "**Applies to:** see pricing [tiers](https://aka.ms/AzureMapsPricingTier).\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. [This](https://docs.microsoft.com/azure/azure-maps/creator-indoor-maps) article introduces concepts and tools that apply to Azure Maps Creator.\n\nThis API allows the caller to fetch a map configuration, the response contains a zip file which was originally used to create that map configuration. You can always get the default map configuration using predefined alias `defaultIndoor_{tilesetId}` for a given tileset if you deleted the auto-generated map configuration. The two predefined styles used in default map configuration are `microsoft-maps:indoor_2022-01-01` and `microsoft-maps:indoor_dark_2022-01-01`.", + "operationId": "MapConfiguration_Get", + "x-ms-examples": { + "Gets the details for a single map configuration": { + "$ref": "./examples/mapconfiguration/MapConfiguration_Get.json" + } + }, + "parameters": [ + { + "$ref": "../../../Common/preview/1.0/common.json#/parameters/ClientId" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/MapConfigurationId" + } + ], + "produces": [ + "application/zip" + ], + "responses": { + "200": { + "description": "Get map configuration request completed successfully. The response body contains a single map configuration zip file.", + "schema": { + "type": "object", + "format": "file", + "readOnly": true + }, + "headers": { + "Content-Type": { + "type": "string", + "description": "The content-type for the response." + } + } + }, + "default": { + "$ref": "../../../Common/preview/1.0/common.json#/responses/default" + } + } + }, + "delete": { + "description": "**Applies to:** see pricing [tiers](https://aka.ms/AzureMapsPricingTier).\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. [This](https://docs.microsoft.com/azure/azure-maps/creator-indoor-maps) article introduces concepts and tools that apply to Azure Maps Creator.\n\nThis API allows the caller to delete a created map configuration.
\nYou can use this API if a map configuration 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 `mapConfigurationId` of the map configuration to delete.
\n\n#### Delete request \"Successful\"\n\nThe Map Configuration Delete API returns a HTTP `204 No Content` response with an empty body, if the map configuration was deleted successfully.
\n\n#### Delete request \"Failed\"\n\nA HTTP `400 Bad Request` error response will be returned if the map configuration with the passed-in `mapConfigurationId` 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 - MapConfiguration Id: d85b5b27-5fc4-4599-8b50-47160e90f8ce does not exist.\"\n }\n}\n```", + "operationId": "MapConfiguration_Delete", + "x-ms-examples": { + "Delete a created map configuration": { + "$ref": "./examples/mapconfiguration/MapConfiguration_Delete.json" + } + }, + "parameters": [ + { + "$ref": "../../../Common/preview/1.0/common.json#/parameters/ClientId" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/MapConfigurationId" + } + ], + "responses": { + "204": { + "description": "Map configuration delete request completed successfully." + }, + "default": { + "$ref": "../../../Common/preview/1.0/common.json#/responses/default" + } + } + } + }, + "/styles/mapconfigurations/operations/{operationId}": { + "get": { + "description": "This path will be obtained from a call to create a map configuration. While in progress, an http200 will be returned with no extra headers - followed by an http200 with Resource-Location header once successfully completed.", + "operationId": "MapConfiguration_GetOperation", + "x-ms-examples": { + "Get the status of an operation which is still running": { + "$ref": "./examples/mapconfiguration/MapConfiguration_GetOperationStillRunning.json" + }, + "Get the status of an operation which has finished successfully": { + "$ref": "./examples/mapconfiguration/MapConfiguration_GetOperation.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/MapConfigurationOperationId" + } + ], + "responses": { + "200": { + "$ref": "../../../Common/preview/1.0/common.json#/responses/200AsyncV2" + }, + "default": { + "$ref": "../../../Common/preview/1.0/common.json#/responses/default" + } + } + } + } + }, + "definitions": { + "MapConfigurationListResult": { + "description": "The response model for the Map Configuration List API. Returns a list of all map configurations.", + "type": "object", + "properties": { + "mapConfigurations": { + "description": "A list of all map configurations.", + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/MapConfigurationListItem" + } + }, + "nextLink": { + "description": "If present, the location of the next page of data.", + "type": "string", + "readOnly": true + } + } + }, + "MapConfigurationListItem": { + "description": "One item in map configuration list.", + "type": "object", + "properties": { + "mapConfigurationId": { + "description": "The unique id for the map configuration.", + "type": "string", + "readOnly": true + }, + "description": { + "description": "The description the caller provided when creating the map configuration. Maximum length 1024 characters.", + "type": "string", + "readOnly": true + }, + "alias": { + "description": "The alias used for the map configuration. Maximum length 1024 characters. Alias cannot start with `microsoft-maps` which is a preserved prefix.", + "type": "string", + "readOnly": true + }, + "created": { + "description": "The creation date and time of this map configuration. As defined by `date-time` - [RFC3339](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14)", + "type": "string", + "format": "date-time", + "readOnly": true + } + } + }, + "MapConfiguration": { + "description": "A map configuration object which describes the map configuration json format.", + "type": "object", + "properties": { + "version": { + "description": "The version of the map configuration, currently only version 1.0 is supported.", + "type": "number" + }, + "description": { + "description": "The description the caller provided when creating the map configuration. Maximum length 1024 characters.", + "type": "string" + }, + "defaultStyle": { + "description": "The default style for the map configuration. The value can be one of the 'name' field in StyleObject under styles array.", + "type": "string" + }, + "styles": { + "description": "Styles array will allow customer to configure different map representations for their tileset. Each style configured here will be reflected as one style in style picker in client SDK. The name should be unique in the styles array.", + "items": { + "$ref": "#/definitions/StyleObject" + } + } + } + }, + "StyleObject": { + "description": "Define the format to configure a style picker and the associated map in client SDK.", + "type": "object", + "properties": { + "name": { + "description": "The name for the style.", + "type": "string" + }, + "displayName": { + "description": "The display name for the style picker in client SDK.", + "type": "string" + }, + "theme": { + "description": "The theme for client SDK widgets(style picker, zoom, level).", + "type": "string" + }, + "thumbnail": { + "description": "The thumbnail for the style picker in client SDK.", + "type": "string" + }, + "baseMap": { + "description": "The base map is a background layer for private indoor map. This property is optional, no base map will show if not provided.", + "$ref": "#/definitions/BaseMapType" + }, + "layers": { + "description": "To configure the style for tileset. You can have one style for the whole tileset. And you can have different styles for different layers in one tileset, for example, one style for `indoor unit` layer and another style for `indoor facility` layer. And you have also have one style for different tileset", + "items": { + "$ref": "#/definitions/TilesetStyleTuple" + } + } + } + }, + "TilesetStyleTuple": { + "description": "TilesetId and StyleId tuple", + "type": "object", + "properties": { + "tilesetId": { + "description": "The unique id for a tileset.", + "type": "string" + }, + "styleId": { + "description": "The unique id for an azure map style.", + "type": "string" + } + } + }, + "BaseMapType": { + "description": "The available base map types. Currently, we support 9 base map types.", + "type": "string", + "enum": [ + "microsoft_light", + "microsoft_dark", + "microsoft_grayscale_light", + "microsoft_grayscale_dark", + "microsoft_high_contrast_light", + "microsoft_high_contrast_dark", + "microsoft_shaded_relief", + "microsoft_satellite", + "microsoft_satellite_road" + ], + "x-ms-enum": { + "name": "BaseMap", + "modelAsString": true, + "values": [ + { + "value": "microsoft_light", + "description": "The base road map style." + }, + { + "value": "microsoft_dark", + "description": "The base dark road map style." + }, + { + "value": "microsoft_grayscale_light", + "description": "The grayscale light map style." + }, + { + "value": "microsoft_grayscale_dark", + "description": "The grayscale dark map style." + }, + { + "value": "microsoft_high_contrast_light", + "description": "The high contrast light map style." + }, + { + "value": "microsoft_high_contrast_dark", + "description": "The high contrast dark map style." + }, + { + "value": "microsoft_shaded_relief", + "description": "The shaded relief map style." + }, + { + "value": "microsoft_satellite", + "description": "The satellite imagery map style." + }, + { + "value": "microsoft_satellite_road", + "description": "The satellite and road map style." + } + ] + } + } + } +} \ No newline at end of file diff --git a/specification/maps/data-plane/Creator/preview/2022-01-01-preview/style.json b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/style.json new file mode 100644 index 000000000000..b11989224a71 --- /dev/null +++ b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/style.json @@ -0,0 +1,412 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Maps Style Service", + "version": "2022-01-01-preview", + "description": "This is an extension of the Azure Maps Tileset API to serve custom styles. It will allow a client to create a list of map styling information which can be combined with tilesetIds to create map configurations that can be consumed directly by front-end services (map control web & mobile SDKs, styling tools like [Maputnik](https://maputnik.github.io/editor/))." + }, + "x-ms-parameterized-host": { + "hostTemplate": "{geography}.atlas.microsoft.com", + "parameters": [ + { + "$ref": "../../../Common/preview/1.0/common.json#/parameters/GeographicResourceLocation" + } + ] + }, + "schemes": [ + "https" + ], + "consumes": [], + "produces": [ + "application/json" + ], + "securityDefinitions": { + "AADToken": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "These are the [Azure Active Directory OAuth2](https://docs.microsoft.com/azure/active-directory/develop/v1-overview) Flows. When paired with [Azure role-based access](https://docs.microsoft.com/azure/role-based-access-control/overview) control it can be used to control access to Azure Maps REST APIs. Azure role-based access controls are used to designate access to one or more Azure Maps resource account or sub-resources. Any user, group, or service principal can be granted access via a built-in role or a custom role composed of one or more permissions to Azure Maps REST APIs.\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#### Notes\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* \nThe `Authorization URL` is specific to the Azure public cloud instance. Sovereign clouds have unique Authorization URLs and Azure Active directory configurations. \n* \nThe 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* \nUsage 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 or v2.0](https://docs.microsoft.com/azure/active-directory/develop/azure-ad-endpoint-comparison) supports Work, School, and Guests but does not support Personal accounts.", + "scopes": { + "https://atlas.microsoft.com/.default": "https://atlas.microsoft.com/.default" + } + }, + "SharedKey": { + "type": "apiKey", + "description": "This is a shared key that is provisioned when creating an [Azure Maps resource](https://aka.ms/amauth) through the Azure management plane via Azure portal, PowerShell, CLI, Azure SDKs, or REST APIs.\n\n 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.\n\n 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" + }, + "SasToken": { + "type": "apiKey", + "description": "This is a shared access signature token is created from the List SAS operation on the [Azure Maps resource](https://aka.ms/amauth) through the Azure management plane via Azure portal, PowerShell, CLI, Azure SDKs, or REST APIs.\n\n With this token, any application is authorized to access with Azure role-based access controls and fine-grain control to the expiration, rate, and region(s) of use for the particular token. In other words, the SAS Token can be used to allow applications to control access in a more secured way than the shared key.\n\n For publicly exposed applications, our recommendation is to configure a specific list of allowed origins on the [Map account resource](https://aka.ms/amauth) to limit rendering abuse and regularly renew the SAS Token.", + "name": "SAS Token", + "in": "header" + } + }, + "security": [ + { + "AADToken": [ + "https://atlas.microsoft.com/.default" + ] + }, + { + "SharedKey": [] + }, + { + "SasToken": [] + } + ], + "responses": {}, + "parameters": { + "ApiVersion": { + "name": "api-version", + "description": "Version number of Azure Maps API.", + "type": "string", + "in": "query", + "required": true, + "default": "2022-01-01-preview", + "x-ms-parameter-location": "client" + }, + "StyleId": { + "name": "styleId", + "description": "The Style Id.", + "type": "string", + "in": "path", + "required": true, + "x-ms-parameter-location": "method" + }, + "DescriptionStyle": { + "name": "description", + "description": "User provided description of the style. Maximum length 1024 characters.", + "type": "string", + "in": "query", + "x-ms-parameter-location": "method" + }, + "StyleOperationId": { + "name": "operationId", + "type": "string", + "in": "path", + "description": "The ID to query the status for the style import request.", + "required": true, + "x-ms-parameter-location": "method" + }, + "Alias": { + "name": "alias", + "description": "The alias of the style. Maximum length 1024 characters. Alias cannot start with `microsoft-maps` which is a preserved prefix.", + "type": "string", + "in": "query", + "required": false, + "x-ms-parameter-location": "method" + } + }, + "paths": { + "/styles": { + "post": { + "description": "**Applies to:** see pricing [tiers](https://aka.ms/AzureMapsPricingTier).\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. [This](https://docs.microsoft.com/azure/azure-maps/creator-indoor-maps) article introduces concepts and tools that apply to Azure Maps Creator.\n\n The Style Import API allows the caller to import an azure maps style.\n\n## Submit Import Request\n\nTo import your style you will make a `POST` request with an azure maps style. \n\nThe Import Style API is a [long-running request](https://aka.ms/am-creator-lrt-v2).", + "operationId": "Style_Import", + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-examples": { + "Import Style by providing an azure maps style json file": { + "$ref": "./examples/style/Style_Import.json" + } + }, + "parameters": [ + { + "$ref": "../../../Common/preview/1.0/common.json#/parameters/ClientId" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/DescriptionStyle" + }, + { + "$ref": "#/parameters/Alias" + }, + { + "name": "ImportContent", + "in": "body", + "description": "The style content to be imported. If JSON data format is provided, then the request body should follow [Layers specification](https://maplibre.org/maplibre-gl-js-docs/style-spec/layers) in MapLibre Style specification. If ZIP data format is provided, you should also provide the sprite sheet and associated index files which contains icons used in the style configuration json file.", + "required": true, + "schema": { + "type": "object" + } + } + ], + "responses": { + "202": { + "$ref": "../../../Common/preview/1.0/common.json#/responses/202AsyncV2" + }, + "default": { + "$ref": "../../../Common/preview/1.0/common.json#/responses/default" + } + } + }, + "get": { + "description": "**Applies to:** see pricing [tiers](https://aka.ms/AzureMapsPricingTier).\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. [This](https://docs.microsoft.com/azure/azure-maps/creator-indoor-maps) article introduces concepts and tools that apply to Azure Maps Creator.\n\nThis API allows the caller to fetch a list of all styles imported. \n
", + "operationId": "Style_List", + "x-ms-examples": { + "Get a list of all styles": { + "$ref": "./examples/style/Style_List.json" + } + }, + "parameters": [ + { + "$ref": "../../../Common/preview/1.0/common.json#/parameters/ClientId" + }, + { + "$ref": "#/parameters/ApiVersion" + } + ], + "x-ms-pageable": { + "itemName": "styles", + "nextLinkName": "nextLink" + }, + "responses": { + "200": { + "description": "List style request completed successfully. The response body contains a list of all styles.", + "schema": { + "$ref": "#/definitions/StyleListResult" + } + }, + "default": { + "$ref": "../../../Common/preview/1.0/common.json#/responses/default" + } + } + } + }, + "/styles/{styleId}": { + "get": { + "description": "**Applies to:** see pricing [tiers](https://aka.ms/AzureMapsPricingTier).\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. [This](https://docs.microsoft.com/azure/azure-maps/creator-indoor-maps) article introduces concepts and tools that apply to Azure Maps Creator.\n\nThis API allows the caller to export a style. Customer can export two predefined default styles using alias `microsoft-maps:indoor_2022-01-01` for indoor light and `microsoft-maps:indoor_dark_2022-01-01` for indoor dark.", + "operationId": "Style_Export", + "x-ms-examples": { + "Exports the details for a single style": { + "$ref": "./examples/style/Style_Export.json" + } + }, + "parameters": [ + { + "$ref": "../../../Common/preview/1.0/common.json#/parameters/ClientId" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/StyleId" + } + ], + "produces": [ + "application/zip" + ], + "responses": { + "200": { + "description": "Export style request completed successfully. The response body contains a zip file with style content.", + "schema": { + "type": "object", + "format": "file", + "readOnly": true + }, + "headers": { + "Content-Type": { + "type": "string", + "description": "The content-type for the response." + } + } + }, + "default": { + "$ref": "../../../Common/preview/1.0/common.json#/responses/default" + } + } + }, + "delete": { + "description": "**Applies to:** see pricing [tiers](https://aka.ms/AzureMapsPricingTier).\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. [This](https://docs.microsoft.com/azure/azure-maps/creator-indoor-maps) article introduces concepts and tools that apply to Azure Maps Creator.\n\nThis API allows the caller to delete an imported style.
\n\n### Submit Delete Request\n\nTo delete your content you will issue a `DELETE` request where the path will contain the `styleId` of the style to delete.
\n\n#### Delete request \"Successful\"\n\nThe Style Delete API returns a HTTP `204 No Content` response with an empty body, if the style was deleted successfully.
\n\n#### Delete request \"Failed\"\n\nA HTTP `400 Bad Request` error response will be returned if the style with the passed-in `styleId` 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 - Style Id: d85b5b27-5fc4-4599-8b50-47160e90f8ce does not exist.\"\n }\n}\n```", + "operationId": "Style_Delete", + "x-ms-examples": { + "Delete an imported style": { + "$ref": "./examples/style/Style_Delete.json" + } + }, + "parameters": [ + { + "$ref": "../../../Common/preview/1.0/common.json#/parameters/ClientId" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/StyleId" + } + ], + "responses": { + "204": { + "description": "Style delete request completed successfully." + }, + "default": { + "$ref": "../../../Common/preview/1.0/common.json#/responses/default" + } + } + } + }, + "/styles/operations/{operationId}": { + "get": { + "description": "This path will be obtained from a call to create a style. While in progress, an http200 will be returned with no extra headers - followed by an http200 with Resource-Location header once successfully completed.", + "operationId": "Style_GetOperation", + "x-ms-examples": { + "Get the status of an operation which is still running": { + "$ref": "./examples/style/Style_GetOperationStillRunning.json" + }, + "Get the status of an operation which has finished successfully": { + "$ref": "./examples/style/Style_GetOperation.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/StyleOperationId" + } + ], + "responses": { + "200": { + "$ref": "../../../Common/preview/1.0/common.json#/responses/200AsyncV2" + }, + "default": { + "$ref": "../../../Common/preview/1.0/common.json#/responses/default" + } + } + } + } + }, + "definitions": { + "StyleListResult": { + "description": "The response model for the Style List API. Returns a list of all styles.", + "type": "object", + "properties": { + "styles": { + "description": "A list of all styles.", + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/StyleListItem" + } + }, + "nextLink": { + "description": "If present, the location of the next page of data.", + "type": "string", + "readOnly": true + } + } + }, + "StyleListItem": { + "description": "Detail information for the data.", + "type": "object", + "properties": { + "styleId": { + "description": "The unique style id for the style.", + "type": "string", + "readOnly": true + }, + "description": { + "description": "The description the caller provided when creating the style. Maximum length 1024 characters.", + "type": "string", + "readOnly": true + }, + "alias": { + "description": "The alias of the style. Maximum length 1024 characters. Alias cannot start with `microsoft-maps` which is a preserved prefix.", + "type": "string", + "readOnly": true + }, + "created": { + "description": "The creation date and time of this style. As defined by `date-time` - [RFC3339](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14)", + "type": "string", + "format": "date-time", + "readOnly": true + } + } + }, + "LayerObject": { + "description": "A layer object.", + "type": "object", + "properties": { + "id": { + "description": "The unique id for the layer.", + "type": "string", + "readOnly": true + }, + "type": { + "description": "The type of the layer.", + "type": "string", + "readOnly": true + }, + "source-layer": { + "description": "The source layer.", + "type": "string", + "readOnly": true + }, + "source": { + "description": "The source.", + "type": "string", + "readOnly": true + }, + "layout": { + "description": "The layout of the layer.", + "type": "object", + "readOnly": true + }, + "paint": { + "description": "The paint configuration of the layer.", + "type": "object", + "readOnly": true + } + } + }, + "Style": { + "description": "Detail information for the data.", + "type": "object", + "properties": { + "id": { + "description": "The unique style id for the style.", + "type": "string", + "readOnly": true + }, + "version": { + "description": "The version of the style.", + "type": "number", + "readOnly": true + }, + "created": { + "description": "The creation date and time of this style.", + "type": "string", + "readOnly": true + }, + "description": { + "description": "The description the caller provided when creating the style. Maximum length 1024 characters.", + "type": "string", + "readOnly": true + }, + "sources": { + "description": "Data source specifications.", + "type": "object", + "readOnly": true + }, + "sprite": { + "description": "A base URL for retrieving the sprite image and metadata.", + "type": "string", + "readOnly": true + }, + "layers": { + "description": "A style's layers property lists all the layers available in that style", + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/LayerObject" + } + } + } + } + } +} \ No newline at end of file diff --git a/specification/maps/data-plane/Creator/preview/2022-01-01-preview/tileset.json b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/tileset.json new file mode 100644 index 000000000000..1305b508da6b --- /dev/null +++ b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/tileset.json @@ -0,0 +1,504 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Maps Tileset Service", + "version": "2022-01-01-preview", + "description": "APIs for managing Tilesets." + }, + "x-ms-parameterized-host": { + "hostTemplate": "{geography}.atlas.microsoft.com", + "parameters": [ + { + "$ref": "../../../Common/preview/1.0/common.json#/parameters/GeographicResourceLocation" + } + ] + }, + "schemes": [ + "https" + ], + "consumes": [], + "produces": [ + "application/json" + ], + "securityDefinitions": { + "AADToken": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "These are the [Azure Active Directory OAuth2](https://docs.microsoft.com/azure/active-directory/develop/v1-overview) Flows. When paired with [Azure role-based access](https://docs.microsoft.com/azure/role-based-access-control/overview) control it can be used to control access to Azure Maps REST APIs. Azure role-based access controls are used to designate access to one or more Azure Maps resource account or sub-resources. Any user, group, or service principal can be granted access via a built-in role or a custom role composed of one or more permissions to Azure Maps REST APIs.\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#### Notes\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* \nThe `Authorization URL` is specific to the Azure public cloud instance. Sovereign clouds have unique Authorization URLs and Azure Active directory configurations. \n* \nThe 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* \nUsage 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 or v2022-01-01-preview](https://docs.microsoft.com/azure/active-directory/develop/azure-ad-endpoint-comparison) supports Work, School, and Guests but does not support Personal accounts.", + "scopes": { + "https://atlas.microsoft.com/.default": "https://atlas.microsoft.com/.default" + } + }, + "SharedKey": { + "type": "apiKey", + "description": "This is a shared key that is provisioned when creating an [Azure Maps resource](https://aka.ms/amauth) through the Azure management plane via Azure portal, PowerShell, CLI, Azure SDKs, or REST APIs.\n\n 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.\n\n 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" + }, + "SasToken": { + "type": "apiKey", + "description": "This is a shared access signature token is created from the List SAS operation on the [Azure Maps resource](https://aka.ms/amauth) through the Azure management plane via Azure portal, PowerShell, CLI, Azure SDKs, or REST APIs.\n\n With this token, any application is authorized to access with Azure role-based access controls and fine-grain control to the expiration, rate, and region(s) of use for the particular token. In other words, the SAS Token can be used to allow applications to control access in a more secured way than the shared key.\n\n For publicly exposed applications, our recommendation is to configure a specific list of allowed origins on the [Map account resource](https://aka.ms/amauth) to limit rendering abuse and regularly renew the SAS Token.", + "name": "SAS Token", + "in": "header" + } + }, + "security": [ + { + "AADToken": [ + "https://atlas.microsoft.com/.default" + ] + }, + { + "SharedKey": [] + }, + { + "SasToken": [] + } + ], + "responses": {}, + "parameters": { + "ApiVersion": { + "name": "api-version", + "description": "Version number of Azure Maps API.", + "type": "string", + "in": "query", + "required": true, + "default": "2022-01-01-preview", + "x-ms-parameter-location": "client" + }, + "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](https://docs.microsoft.com/en-us/rest/api/maps/v2/dataset/create) call.", + "type": "string", + "in": "query", + "required": true, + "x-ms-parameter-location": "method" + }, + "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. Maximum length 1024 characters.", + "type": "string", + "in": "query", + "x-ms-parameter-location": "method" + }, + "TilesetOperationId": { + "name": "operationId", + "type": "string", + "in": "path", + "description": "The ID to query the status for the tileset create/import request.", + "required": true, + "x-ms-parameter-location": "method" + } + }, + "paths": { + "/tilesets": { + "post": { + "description": "**Applies to:** see pricing [tiers](https://aka.ms/AzureMapsPricingTier).\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. [This](https://docs.microsoft.com/azure/azure-maps/creator-indoor-maps) article introduces concepts and tools that apply to Azure Maps Creator.\n\n [This](https://docs.microsoft.com/en-us/azure/azure-maps/creator-indoor-maps) article introduces concepts and tools that apply to Azure Maps 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/v2/dataset/create).\n\n## Submit Create Request\n\nTo create your tileset you will make a `POST` request with an **optional request body** as [tileset configuration](/rest/api/documentation-preview/tileset/create?#tilesetconfiguration). The `datasetId` query parameter will be used as the source of the tileset data.\n\nThe Create Tileset API is a [long-running request](https://aka.ms/am-creator-lrt-v2).", + "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/tileset/Tileset_Create.json" + } + }, + "parameters": [ + { + "$ref": "../../../Common/preview/1.0/common.json#/parameters/ClientId" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/DatasetIdQuery" + }, + { + "$ref": "#/parameters/DescriptionTileset" + }, + { + "name": "TilesetConfiguration", + "in": "body", + "description": "The custom tileset configuration to use.", + "required": false, + "schema": { + "$ref": "#/definitions/TilesetConfiguration" + } + } + ], + "responses": { + "202": { + "$ref": "../../../Common/preview/1.0/common.json#/responses/202AsyncV2" + }, + "default": { + "$ref": "../../../Common/preview/1.0/common.json#/responses/default" + } + } + }, + "get": { + "description": "**Applies to:** see pricing [tiers](https://aka.ms/AzureMapsPricingTier).\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. [This](https://docs.microsoft.com/azure/azure-maps/creator-indoor-maps) article introduces concepts and tools that apply to Azure Maps Creator.\n\nThis API allows the caller to fetch a list of all tilesets created. \n
", + "operationId": "Tileset_List", + "x-ms-examples": { + "Get a list of all tilesets": { + "$ref": "./examples/tileset/Tileset_List.json" + } + }, + "parameters": [ + { + "$ref": "../../../Common/preview/1.0/common.json#/parameters/ClientId" + }, + { + "$ref": "#/parameters/ApiVersion" + } + ], + "x-ms-pageable": { + "itemName": "tilesets", + "nextLinkName": "nextLink" + }, + "responses": { + "200": { + "description": "List tileset request completed successfully. The response body contains a list of all tilesets.", + "schema": { + "$ref": "#/definitions/TilesetListResult" + } + }, + "default": { + "$ref": "../../../Common/preview/1.0/common.json#/responses/default" + } + } + } + }, + "/tilesets/{tilesetId}": { + "get": { + "description": "**Applies to:** see pricing [tiers](https://aka.ms/AzureMapsPricingTier).\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. [This](https://docs.microsoft.com/azure/azure-maps/creator-indoor-maps) article introduces concepts and tools that apply to Azure Maps Creator.\n\nThis API allows the caller to fetch a tileset.", + "operationId": "Tileset_Get", + "x-ms-examples": { + "Gets the details for a single tileset": { + "$ref": "./examples/tileset/Tileset_Get.json" + } + }, + "parameters": [ + { + "$ref": "../../../Common/preview/1.0/common.json#/parameters/ClientId" + }, + { + "$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/Tileset" + } + }, + "default": { + "$ref": "../../../Common/preview/1.0/common.json#/responses/default" + } + } + }, + "delete": { + "description": "**Applies to:** see pricing [tiers](https://aka.ms/AzureMapsPricingTier).\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. [This](https://docs.microsoft.com/azure/azure-maps/creator-indoor-maps) article introduces concepts and tools that apply to Azure Maps Creator.\n\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_Delete", + "x-ms-examples": { + "Delete a created tileset": { + "$ref": "./examples/tileset/Tileset_Delete.json" + } + }, + "parameters": [ + { + "$ref": "../../../Common/preview/1.0/common.json#/parameters/ClientId" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/TilesetId" + } + ], + "responses": { + "204": { + "description": "Tileset delete request completed successfully." + }, + "default": { + "$ref": "../../../Common/preview/1.0/common.json#/responses/default" + } + } + } + }, + "/tilesets:fetchConfiguration": { + "get": { + "description": "**Applies to:** see pricing [tiers](https://aka.ms/AzureMapsPricingTier).\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. [This](https://docs.microsoft.com/azure/azure-maps/creator-indoor-maps) article introduces concepts and tools that apply to Azure Maps Creator.\n\nThis API allows the caller to get a default [tileset configuration](/rest/api/documentation-preview/tileset/get-configuration?#tilesetconfiguration) based on the dataset provided. Then the tileset configuration can be used to create custom tileset using the [Tileset Create API](/rest/api/documentation-preview/tileset/create)", + "operationId": "Tileset_GetConfiguration", + "x-ms-examples": { + "Gets the tileset configuration for a given dataset": { + "$ref": "./examples/tileset/Tileset_GetConfiguration.json" + } + }, + "parameters": [ + { + "$ref": "../../../Common/preview/1.0/common.json#/parameters/ClientId" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/DatasetIdQuery" + } + ], + "responses": { + "200": { + "description": "Get tileset configuration request completed successfully. The response body contains a default [tileset configuration](/rest/api/documentation-preview/tileset/get-configuration?#tilesetconfiguration) generated for the given dataset.", + "schema": { + "$ref": "#/definitions/TilesetConfiguration" + } + }, + "default": { + "$ref": "../../../Common/preview/1.0/common.json#/responses/default" + } + } + } + }, + "/tilesets:validateConfiguration": { + "post": { + "description": "**Applies to:** see pricing [tiers](https://aka.ms/AzureMapsPricingTier).\n\nCreator makes it possible to develop applications based on your private indoor map data using Azure Maps API and SDK. [This](https://docs.microsoft.com/azure/azure-maps/creator-indoor-maps) article introduces concepts and tools that apply to Azure Maps Creator.\n\nThis API allows the caller to validate a [tileset configuration](/rest/api/documentation-preview/tileset/validate-configuration?#tilesetconfiguration).", + "operationId": "Tileset_ValidateConfiguration", + "x-ms-examples": { + "Validates the correctness of a tileset configuration": { + "$ref": "./examples/tileset/Tileset_ValidateConfiguration.json" + } + }, + "parameters": [ + { + "$ref": "../../../Common/preview/1.0/common.json#/parameters/ClientId" + }, + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/DatasetIdQuery" + }, + { + "name": "TilesetConfiguration", + "in": "body", + "description": "The custom tileset configuration to use.", + "required": false, + "schema": { + "$ref": "#/definitions/TilesetConfiguration" + } + } + ], + "responses": { + "200": { + "description": "Validate tileset configuration request completed successfully. The response body contains the validation results.", + "schema": { + "$ref": "#/definitions/TilesetConfigurationValidationResult" + } + }, + "default": { + "$ref": "../../../Common/preview/1.0/common.json#/responses/default" + } + } + } + }, + "/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", + "x-ms-examples": { + "Get the status of an operation which is still running": { + "$ref": "./examples/tileset/Tileset_GetOperationStillRunning.json" + }, + "Get the status of an operation which has finished successfully": { + "$ref": "./examples/tileset/Tileset_GetOperation.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/TilesetOperationId" + } + ], + "responses": { + "200": { + "$ref": "../../../Common/preview/1.0/common.json#/responses/200AsyncV2" + }, + "default": { + "$ref": "../../../Common/preview/1.0/common.json#/responses/default" + } + } + } + } + }, + "definitions": { + "TilesetListResult": { + "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/Tileset" + } + }, + "nextLink": { + "description": "If present, the location of the next page of data.", + "type": "string", + "readOnly": true + } + } + }, + "Tileset": { + "description": "Detail information for the data.", + "type": "object", + "properties": { + "tilesetId": { + "description": "The unique tileset id for the tileset.", + "type": "string", + "readOnly": true + }, + "ontology": { + "$ref": "../../../Common/preview/1.0/common.json#/definitions/Ontology" + }, + "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'.", + "$ref": "../../../Common/preview/1.0/common.json#/definitions/BoundingBox" + }, + "tilesetConfiguration": { + "description": "Tileset configuration which is used to build the tileset.", + "$ref": "#/definitions/TilesetConfiguration" + }, + "defaultStyleSetId": { + "description": "The default generated style set id for the tileset", + "type": "string", + "readOnly": true + } + } + }, + "TilesetConfiguration": { + "description": "Tileset configuration top-level fields. A tileset configuration is a JSON object that must contain the following top-level fields:", + "type": "object", + "required": [ + "version", + "layers" + ], + "properties": { + "version": { + "description": "The version of Azure Maps Tiling service configuration reference that the tileset configuration uses. Currently only version 1 is allowed. Using any version other the current version or a previous version will result in an error.", + "type": "integer" + }, + "layers": { + "description": "The names of the layers and their configuration options. The configuration layers object contains key-value pairs associating the names of tile layers with their configuration. For each key-value pair, the key is the name of the layer, and the value is a LayerObject containing the configuration and options for the layer. Each layer must have a name. This is the unique identifier for the layer of data in your final tileset. In any tileset, each layer name must be unique. The layer name must be a string with only underscores (_) and alphanumeric characters. The corresponding LayerObject for each layer name describes how that vector tile layer should be created. It specifies which feature classes to retrieve feature data, the precision of the data through zoom levels, and how to transform features and render them into tiles.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/LayerObject" + } + } + } + }, + "LayerObject": { + "description": "Layer object for tileset configuration.", + "type": "object", + "required": [ + "features", + "minZoom", + "maxZoom" + ], + "properties": { + "features": { + "description": "Specifies the feature classes and filters.", + "$ref": "#/definitions/Feature" + }, + "minZoom": { + "description": "The lowest zoom level for the layer to build.", + "type": "integer" + }, + "maxZoom": { + "description": "The highest zoom level for the layer to build.", + "type": "integer" + } + } + }, + "Feature": { + "description": "Feature configuration for tileset configuration.", + "type": "object", + "required": [ + "featureClasses" + ], + "properties": { + "featureClasses": { + "description": "The list of feature classes that will be used to build the layer. The valid feature classes can be found in its ontology definition. For example, [Facility Ontology](https://docs.microsoft.com/en-us/azure/azure-maps/creator-facility-ontology)", + "type": "array", + "items": { + "type": "string" + } + }, + "filter": { + "description": "Removes features that do not match a pattern. Refer to [MapLibre filter expression](https://maplibre.org/maplibre-gl-js-docs/style-spec/layers/#filter)", + "type": "object" + } + } + }, + "TilesetConfigurationValidationResult": { + "description": "Tileset configuration validation result.", + "type": "object", + "properties": { + "valid": { + "description": "Validation result.", + "type": "boolean" + }, + "warnings": { + "description": "The list of validation warnings.", + "type": "array", + "items": { + "type": "string" + } + }, + "errors": { + "description": "The list of validation errors.", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } +} \ No newline at end of file diff --git a/specification/maps/data-plane/Creator/readme.md b/specification/maps/data-plane/Creator/readme.md index 21e84387e125..646b5f35628d 100644 --- a/specification/maps/data-plane/Creator/readme.md +++ b/specification/maps/data-plane/Creator/readme.md @@ -27,14 +27,23 @@ These are the global settings for Creator Client. ``` yaml title: CreatorClient openapi-type: data-plane -tag: 2.0-preview -# at some point those credentials will move away to Swagger according to [this](https://github.com/Azure/autorest/issues/3718) +tag: package-preview-2022-01 add-credentials: true credential-default-policy-type: BearerTokenCredentialPolicy -credential-scopes: https://atlas.microsoft.com/.default +credential-scopes: 'https://atlas.microsoft.com/.default' ``` +### Tag: package-preview-2022-01 + +These settings apply only when `--tag=package-preview-2022-01` is specified on the command line. + +```yaml $(tag) == 'package-preview-2022-01' +input-file: + - preview/2022-01-01-preview/tileset.json + - preview/2022-01-01-preview/style.json + - preview/2022-01-01-preview/mapconfiguration.json +``` ### Tag: 2.0-preview These settings apply only when `--tag=2.0-preview` is specified on the command line. @@ -58,7 +67,7 @@ input-file: This section describes what SDK should be generated by the automatic system. This is not used by Autorest itself. -```yaml $(swagger-to-sdk) +``` yaml $(swagger-to-sdk) swagger-to-sdk: - repo: azure-sdk-for-python-track2 - repo: azure-sdk-for-java @@ -75,6 +84,7 @@ swagger-to-sdk: #manually generate for now with track2 - repo: azure-sdk-for-net ``` + ## Python See configuration in [readme.python.md](./readme.python.md)