diff --git a/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/stylerecipe/StyleRecipe_Delete.json b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/stylerecipe/StyleRecipe_Delete.json
new file mode 100644
index 000000000000..7c87b65254e6
--- /dev/null
+++ b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/stylerecipe/StyleRecipe_Delete.json
@@ -0,0 +1,10 @@
+{
+ "parameters": {
+ "geography": "us",
+ "api-version": "2022-01-01-preview",
+ "styleRecipeId": "25084fb7-307a-4720-8f91-7952a0b91012"
+ },
+ "responses": {
+ "204": {}
+ }
+}
diff --git a/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/stylerecipe/StyleRecipe_Export.json b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/stylerecipe/StyleRecipe_Export.json
new file mode 100644
index 000000000000..049fdbce963b
--- /dev/null
+++ b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/stylerecipe/StyleRecipe_Export.json
@@ -0,0 +1,46 @@
+{
+ "parameters": {
+ "geography": "us",
+ "api-version": "2022-01-01-preview",
+ "styleRecipeId": "25084fb7-307a-4720-8f91-7952a0b91012",
+ "tilesetId": "d8fa86de-bb0f-4a02-a6ff-62ae7545dd84"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "9c451b0a-6527-49a7-9154-1b3d9486487f",
+ "version": 8,
+ "created": "2021-05-21T03:04:05.678Z",
+ "description": "Some optional description",
+ "sources": {
+ "dcda5d1b-c835-80cd-feee-3d6351e79eda": {
+ "type": "vector",
+ "tiles": [
+ "https://{{azMapsDomain}}/map/tile?api-version=2.0&tilesetId=dcda5d1b-c835-80cd-feee-3d6351e79eda&zoom={z}&x={x}&y={y}"
+ ],
+ "maxzoom": 20.0,
+ "minzoom": 0.0
+ }
+ },
+ "sprite": "azuremaps://sprite/e33700db-127e-4ed0-bfec-7a1830eca06d",
+ "layers": [
+ {
+ "id": "indoor_unit_store",
+ "type": "fill",
+ "layout": {
+ "visibility": "none"
+ },
+ "paint": {
+ "fill-antialias": true,
+ "fill-color": "rgba(230, 230, 230, 1)",
+ "fill-opacity": 1,
+ "fill-outline-color": "rgba(120, 120, 120, 1)"
+ },
+ "source": "dcda5d1b-c835-80cd-feee-3d6351e79eda",
+ "source-layer": "Indoor unit"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/stylerecipe/StyleRecipe_GetOperation.json b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/stylerecipe/StyleRecipe_GetOperation.json
new file mode 100644
index 000000000000..baf565099c8b
--- /dev/null
+++ b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/stylerecipe/StyleRecipe_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/styleRecipes/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/stylerecipe/StyleRecipe_GetOperationStillRunning.json b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/stylerecipe/StyleRecipe_GetOperationStillRunning.json
new file mode 100644
index 000000000000..245506ef8536
--- /dev/null
+++ b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/stylerecipe/StyleRecipe_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/stylerecipe/StyleRecipe_Import.json b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/stylerecipe/StyleRecipe_Import.json
new file mode 100644
index 000000000000..b1f10c2b8d33
--- /dev/null
+++ b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/stylerecipe/StyleRecipe_Import.json
@@ -0,0 +1,67 @@
+{
+ "parameters": {
+ "geography": "us",
+ "api-version": "2022-01-01-preview",
+ "styleFormat": "mapbox",
+ "dataFormat": "JSON",
+ "alias": "test-alias",
+ "ImportContent": {
+ "id": "9c451b0a-6527-49a7-9154-1b3d9486487f",
+ "version": 1,
+ "created": "2021-05-21T03:04:05.678Z",
+ "description": "Some optional description",
+ "sprite": "azuremaps://sprite/e33700db-127e-4ed0-bfec-7a1830eca06d",
+ "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": {
+ "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/styleRecipes/3e36b996-f6d1-b068-0fcb-dd6b014c3447?api-version=2022-01-01-preview"
+ }
+ },
+ "202": {
+ "headers": {
+ "Operation-Location": "https://us.atlas.microsoft.com/styles/styleRecipes/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/stylerecipe/StyleRecipe_List.json b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/stylerecipe/StyleRecipe_List.json
new file mode 100644
index 000000000000..26a97f8ae0a8
--- /dev/null
+++ b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/stylerecipe/StyleRecipe_List.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "geography": "us",
+ "api-version": "2022-01-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "styleRecipes": [
+ {
+ "styleRecipeId": "9c451b0a-6527-49a7-9154-1b3d9486487f",
+ "description": "Some optional description",
+ "alias": "indoor_style_recipe",
+ "created": "2022-01-21T03:04:05.678Z"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/styleset/StyleSet_Create.json b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/styleset/StyleSet_Create.json
new file mode 100644
index 000000000000..2461477b767d
--- /dev/null
+++ b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/styleset/StyleSet_Create.json
@@ -0,0 +1,27 @@
+{
+ "parameters": {
+ "geography": "us",
+ "api-version": "2022-01-01-preview",
+ "dataFormat": "ZIP",
+ "alias": "styleset-alias",
+ "description": "This is my first styleset."
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "operationId": "8b1288fa-1958-4a2b-b68e-13a7i5af7d7c",
+ "created": "2022-01-01T22:43:14.9401559+00:00",
+ "status": "Succeeded"
+ },
+ "headers": {
+ "Resource-Location": "https://us.atlas.microsoft.com/styles/styleSets/3e36b996-f6d1-b068-0fcb-dd6b014c3447?api-version=2022-01-01-preview"
+ }
+ },
+ "202": {
+ "headers": {
+ "Operation-Location": "https://us.atlas.microsoft.com/styles/styleSets/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/styleset/StyleSet_Delete.json b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/styleset/StyleSet_Delete.json
new file mode 100644
index 000000000000..8dc4e34eaf71
--- /dev/null
+++ b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/styleset/StyleSet_Delete.json
@@ -0,0 +1,10 @@
+{
+ "parameters": {
+ "geography": "us",
+ "api-version": "2022-01-01-preview",
+ "styleSetId": "25084fb7-307a-4720-8f91-7952a0b91012"
+ },
+ "responses": {
+ "204": {}
+ }
+}
diff --git a/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/styleset/StyleSet_Get.json b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/styleset/StyleSet_Get.json
new file mode 100644
index 000000000000..d8a633722045
--- /dev/null
+++ b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/styleset/StyleSet_Get.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "geography": "us",
+ "api-version": "2022-01-01-preview",
+ "styleSetId": "[styleSetId]"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "9c451b0a-6527-49a7-9154-1b3d9486487f",
+ "version": 1.0,
+ "created": "2021-05-21T03:04:05.678Z",
+ "description": "My first style set",
+ "defaultStyle": "indoor-light",
+ "styles": [
+ {
+ "name": "indoor-light",
+ "displayName": "My cool map styling",
+ "theme": "light",
+ "thumbnail": "https://us.atlas.microsoft.com/styles/thumbnail/019db5fd-1792-4a84-9e39-7a82ceaea311/indoor-light.png",
+ "url": "https://us.atlas.microsoft.com/styles/styleSet/9c451b0a-6527-49a7-9154-1b3d9486487f/indoor-light"
+ },
+ {
+ "name": "indoor-dark",
+ "displayName": "Awesome map styling",
+ "theme": "dark",
+ "thumbnail": "https://us.atlas.microsoft.com/styles/thumbnail/019db5fd-1792-4a84-9e39-7a82ceaea311/indoor-dark.png",
+ "url": "https://us.atlas.microsoft.com/styles/styleSet/9c451b0a-6527-49a7-9154-1b3d9486487f/indoor-dark"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/styleset/StyleSet_GetOperation.json b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/styleset/StyleSet_GetOperation.json
new file mode 100644
index 000000000000..8302d2677ac4
--- /dev/null
+++ b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/styleset/StyleSet_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/styleSets/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/styleset/StyleSet_GetOperationStillRunning.json b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/styleset/StyleSet_GetOperationStillRunning.json
new file mode 100644
index 000000000000..245506ef8536
--- /dev/null
+++ b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/styleset/StyleSet_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/styleset/StyleSet_GetStyle.json b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/styleset/StyleSet_GetStyle.json
new file mode 100644
index 000000000000..f57a33e9a4bf
--- /dev/null
+++ b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/styleset/StyleSet_GetStyle.json
@@ -0,0 +1,49 @@
+{
+ "parameters": {
+ "geography": "us",
+ "api-version": "2022-01-01-preview",
+ "styleSetId": "[styleSetId]",
+ "styleName": "composedStyle",
+ "styleFormat": "azureMapsStyleRecipe"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "version": 8,
+ "name": "My cool map styling",
+ "sources": {
+ "microsoft.base": {
+ "url": "https://us.atlas.microsoft.com/map/tileset?api-version=2.1&tilesetId=microsoft.base",
+ "type": "vector"
+ },
+ "64d79640-1db8-42e9-8e4a-714be32543c6": {
+ "url": "https://us.atlas.microsoft.com/tileset/64d79640-1db8-42e9-8e4a-714be32543c6",
+ "type": "vector"
+ }
+ },
+ "sprite": "https://us.atlas.microsoft.com/styles/sprites/019db5fd-1792-4a84-9e39-7a82ceaea311",
+ "glyphs": "https://us.atlas.microsoft.com/styles/glyphs/{fontstack}/{range}.pbf",
+ "layers": [
+ {
+ "id": "microsoft.maps.base.base.background:grayscale_light:microsoft.base",
+ "source": "microsoft.base",
+ "type": "background",
+ "layout": {},
+ "paint": {
+ "background-color": "hsl(55, 11%, 96%)"
+ }
+ },
+ {
+ "id": "indoorLayer:9c451b0a-6527-49a7-9154-1b3d9486487f:64d79640-1db8-42e9-8e4a-714be32543c6",
+ "source": "microsoft.base",
+ "type": "background",
+ "layout": {},
+ "paint": {
+ "background-color": "hsl(55, 11%, 96%)"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/styleset/StyleSet_List.json b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/styleset/StyleSet_List.json
new file mode 100644
index 000000000000..5eaead13e6c6
--- /dev/null
+++ b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/styleset/StyleSet_List.json
@@ -0,0 +1,37 @@
+{
+ "parameters": {
+ "geography": "us",
+ "api-version": "2022-01-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "styleSets": [
+ {
+ "id": "9c451b0a-6527-49a7-9154-1b3d9486487f",
+ "version": 1.0,
+ "created": "2021-05-21T03:04:05.678Z",
+ "description": "My greatest style set",
+ "defaultStyle": "indoor-light",
+ "styles": [
+ {
+ "name": "indoor-light",
+ "displayName": "My cool map styling",
+ "theme": "light",
+ "thumbnail": "https://us.atlas.microsoft.com/styles/thumbnail/019db5fd-1792-4a84-9e39-7a82ceaea311/indoor-light.png",
+ "url": "https://us.atlas.microsoft.com/styles/styleSet/9c451b0a-6527-49a7-9154-1b3d9486487f/indoor-light"
+ },
+ {
+ "name": "indoor-dark",
+ "displayName": "Awesome map styling",
+ "theme": "dark",
+ "thumbnail": "https://us.atlas.microsoft.com/styles/thumbnail/019db5fd-1792-4a84-9e39-7a82ceaea311/indoor-dark.png",
+ "url": "https://us.atlas.microsoft.com/styles/styleSet/9c451b0a-6527-49a7-9154-1b3d9486487f/indoor-dark"
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+}
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..5847f671f35e
--- /dev/null
+++ b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/tileset/Tileset_Create.json
@@ -0,0 +1,51 @@
+{
+ "parameters": {
+ "geography": "us",
+ "api-version": "2022-01-01-preview",
+ "datasetId": "[dataset-Id]",
+ "description": "Example description.",
+ "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": {
+ "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"
+ }
+ },
+ "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..415a0bd28413
--- /dev/null
+++ b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/tileset/Tileset_Get.json
@@ -0,0 +1,24 @@
+{
+ "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
+ ]
+ }
+ }
+ }
+}
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_GetRecipe.json b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/tileset/Tileset_GetRecipe.json
new file mode 100644
index 000000000000..1d3f60fe31db
--- /dev/null
+++ b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/tileset/Tileset_GetRecipe.json
@@ -0,0 +1,36 @@
+{
+ "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_List.json b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/tileset/Tileset_List.json
new file mode 100644
index 000000000000..a2011ca61420
--- /dev/null
+++ b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/tileset/Tileset_List.json
@@ -0,0 +1,40 @@
+{
+ "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
+ ]
+ },
+ {
+ "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
+ ]
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/tileset/Tileset_ValidateRecipe.json b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/tileset/Tileset_ValidateRecipe.json
new file mode 100644
index 000000000000..bca8bd08b2ca
--- /dev/null
+++ b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/examples/tileset/Tileset_ValidateRecipe.json
@@ -0,0 +1,43 @@
+{
+ "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/stylerecipe.json b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/stylerecipe.json
new file mode 100644
index 000000000000..78e96ea99f86
--- /dev/null
+++ b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/stylerecipe.json
@@ -0,0 +1,474 @@
+{
+ "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 compose a Mapbox style 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"
+ },
+ "StyleRecipeId": {
+ "name": "styleRecipeId",
+ "description": "The Style Recipe Id.",
+ "type": "string",
+ "in": "path",
+ "required": true,
+ "x-ms-parameter-location": "method"
+ },
+ "TilesetId": {
+ "name": "tilesetId",
+ "description": "The Tileset Id",
+ "type": "string",
+ "in": "query",
+ "required": false,
+ "x-ms-parameter-location": "method"
+ },
+ "DescriptionStyle": {
+ "name": "description",
+ "description": "User provided description of the style.",
+ "type": "string",
+ "in": "query",
+ "x-ms-parameter-location": "method"
+ },
+ "StyleRecipeOperationId": {
+ "name": "operationId",
+ "type": "string",
+ "in": "path",
+ "description": "The ID to query the status for the style recipe create/import request.",
+ "required": true,
+ "x-ms-parameter-location": "method"
+ },
+ "DataFormat": {
+ "name": "dataFormat",
+ "in": "query",
+ "description": "Defines the type of input file for a style to be created from.",
+ "required": false,
+ "type": "string",
+ "default": "JSON",
+ "enum": [
+ "JSON",
+ "ZIP"
+ ],
+ "x-ms-enum": {
+ "name": "DataFormatType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "JSON",
+ "description": "JSON style format."
+ },
+ {
+ "value": "ZIP",
+ "description": "ZIP style format."
+ }
+ ]
+ }
+ },
+ "StyleFormat": {
+ "name": "styleFormat",
+ "in": "query",
+ "description": " Defines the type of JSON object that is imported.",
+ "required": false,
+ "type": "string",
+ "default": "mapbox",
+ "enum": [
+ "mapbox",
+ "azureMapsStyleRecipe"
+ ],
+ "x-ms-enum": {
+ "name": "StyleFormatType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "mapbox",
+ "description": "mapbox style data format."
+ },
+ {
+ "value": "azureMapsStyleRecipe",
+ "description": "Azure Maps style recipe data format."
+ }
+ ]
+ }
+ },
+ "Alias": {
+ "name": "alias",
+ "description": "The alias of the style recipe.",
+ "type": "string",
+ "in": "query",
+ "required": false
+ }
+ },
+ "paths": {
+ "/styles/styleRecipes": {
+ "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 Style Import API allows the caller to import a style recipe from their style json file.\n\n## Submit Import Request\n\nTo import your style recipe you will make a `POST` request with an azure maps style or mapbox style. \n\nThe Import Style Recipe API is a \n[long-running request](https://aka.ms/am-creator-lrt-v2).",
+ "operationId": "StyleRecipe_Import",
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "x-ms-examples": {
+ "Import Style Recipe by providing a azure maps or mapbox style json file": {
+ "$ref": "./examples/stylerecipe/StyleRecipe_Import.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../Common/preview/1.0/common.json#/parameters/ClientId"
+ },
+ {
+ "$ref": "#/parameters/ApiVersion"
+ },
+ {
+ "$ref": "#/parameters/DataFormat"
+ },
+ {
+ "$ref": "#/parameters/StyleFormat"
+ },
+ {
+ "$ref": "#/parameters/DescriptionStyle"
+ },
+ {
+ "$ref": "#/parameters/Alias"
+ },
+ {
+ "name": "ImportContent",
+ "in": "body",
+ "description": "The style recipe content to be imported.",
+ "required": true,
+ "schema": {
+ "type": "object"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "$ref": "../../../Common/preview/1.0/common.json#/responses/200AsyncV2"
+ },
+ "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 style recipes imported. \n
",
+ "operationId": "StyleRecipe_List",
+ "x-ms-examples": {
+ "Get a list of all styles": {
+ "$ref": "./examples/stylerecipe/StyleRecipe_List.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../Common/preview/1.0/common.json#/parameters/ClientId"
+ },
+ {
+ "$ref": "#/parameters/ApiVersion"
+ }
+ ],
+ "x-ms-pageable": {
+ "itemName": "styleRecipes",
+ "nextLinkName": "nextLink"
+ },
+ "responses": {
+ "200": {
+ "description": "List style recipe request completed successfully. The response body contains a list of all style recipes.",
+ "schema": {
+ "$ref": "#/definitions/StyleRecipeListResult"
+ }
+ },
+ "default": {
+ "$ref": "../../../Common/preview/1.0/common.json#/responses/default"
+ }
+ }
+ }
+ },
+ "/styles/styleRecipes/{styleRecipeId}": {
+ "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 recipe.",
+ "operationId": "StyleRecipe_Export",
+ "x-ms-examples": {
+ "Exports the details for a single style recipe": {
+ "$ref": "./examples/stylerecipe/StyleRecipe_Export.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../Common/preview/1.0/common.json#/parameters/ClientId"
+ },
+ {
+ "$ref": "#/parameters/ApiVersion"
+ },
+ {
+ "$ref": "#/parameters/StyleRecipeId"
+ },
+ {
+ "$ref": "#/parameters/StyleFormat"
+ },
+ {
+ "$ref": "#/parameters/TilesetId"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Export style request completed successfully. The response body contains a single style.",
+ "schema": {
+ "$ref": "#/definitions/StyleRecipe"
+ }
+ },
+ "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 recipe.
\nYou can use this API if a style recipe 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 `styleRecipeId` of the style recipe to delete.
\n\n#### Delete request \"Successful\"\n\nThe Style Recipe Delete API returns a HTTP `204 No Content` response with an empty body, if the style recipe was deleted successfully.
\n\n#### Delete request \"Failed\"\n\nA HTTP `400 Bad Request` error response will be returned if the style recipe with the passed-in `styleRecipeId` 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 - StyleRecipe Id: d85b5b27-5fc4-4599-8b50-47160e90f8ce does not exist.\"\n }\n}\n```",
+ "operationId": "StyleRecipe_Delete",
+ "x-ms-examples": {
+ "Delete an imported style recipe": {
+ "$ref": "./examples/stylerecipe/StyleRecipe_Delete.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../Common/preview/1.0/common.json#/parameters/ClientId"
+ },
+ {
+ "$ref": "#/parameters/ApiVersion"
+ },
+ {
+ "$ref": "#/parameters/StyleRecipeId"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "Style recipe delete request completed successfully."
+ },
+ "default": {
+ "$ref": "../../../Common/preview/1.0/common.json#/responses/default"
+ }
+ }
+ }
+ },
+ "/styles/styleRecipes/operations/{operationId}": {
+ "get": {
+ "description": "This path will be obtained from a call to create a style recipe. While in progress, an http200 will be returned with no extra headers - followed by an http200 with Resource-Location header once successfully completed.",
+ "operationId": "StyleRecipe_GetOperation",
+ "x-ms-examples": {
+ "Get the status of an operation which is still running": {
+ "$ref": "./examples/stylerecipe/StyleRecipe_GetOperationStillRunning.json"
+ },
+ "Get the status of an operation which has finished successfully": {
+ "$ref": "./examples/stylerecipe/StyleRecipe_GetOperation.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion"
+ },
+ {
+ "$ref": "#/parameters/StyleRecipeOperationId"
+ }
+ ],
+ "responses": {
+ "200": {
+ "$ref": "../../../Common/preview/1.0/common.json#/responses/200AsyncV2"
+ },
+ "default": {
+ "$ref": "../../../Common/preview/1.0/common.json#/responses/default"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "StyleRecipeListResult": {
+ "description": "The response model for the Style Recipe List API. Returns a list of all styleRecipes.",
+ "type": "object",
+ "properties": {
+ "styleRecipes": {
+ "description": "A list of all styles.",
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/StyleRecipeListItem"
+ }
+ },
+ "nextLink": {
+ "description": "If present, the location of the next page of data.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "StyleRecipeListItem": {
+ "description": "Detail information for the data.",
+ "type": "object",
+ "properties": {
+ "styleRecipeId": {
+ "description": "The unique styleRecipe 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 recipe.",
+ "type": "string",
+ "readOnly": true
+ },
+ "created": {
+ "description": "The creation date and time of this styleSet.",
+ "type": "string",
+ "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
+ }
+ }
+ },
+ "StyleRecipe": {
+ "description": "Detail information for the data.",
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "The unique style recipe id for the style.",
+ "type": "string",
+ "readOnly": true
+ },
+ "version": {
+ "description": "The version of the style recipe.",
+ "type": "number",
+ "readOnly": true
+ },
+ "created": {
+ "description": "The creation date and time of this style recipe.",
+ "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"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/maps/data-plane/Creator/preview/2022-01-01-preview/styleset.json b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/styleset.json
new file mode 100644
index 000000000000..9952a09f6295
--- /dev/null
+++ b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/styleset.json
@@ -0,0 +1,476 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "Azure Maps StyleSet 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 compose a Mapbox style that can be consumed directly by front-end services (map control web & mobile SDKs, styling tools like [Maputnik](https://maputnik.github.io/editor/)). StyleSet 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"
+ },
+ "StyleSetId": {
+ "name": "styleSetId",
+ "description": "The StyleSet Id.",
+ "type": "string",
+ "in": "path",
+ "required": true,
+ "x-ms-parameter-location": "method"
+ },
+ "StyleName": {
+ "name": "styleName",
+ "description": "The StyleSet style name.",
+ "type": "string",
+ "in": "path",
+ "required": true,
+ "x-ms-parameter-location": "method"
+ },
+ "DescriptionStyleSet": {
+ "name": "description",
+ "description": "User provided description of the styleSet.",
+ "type": "string",
+ "in": "query",
+ "x-ms-parameter-location": "method"
+ },
+ "StyleSetOperationId": {
+ "name": "operationId",
+ "type": "string",
+ "in": "path",
+ "description": "The ID to query the status for the styleSet create request.",
+ "required": true,
+ "x-ms-parameter-location": "method"
+ },
+ "DataFormat": {
+ "name": "dataFormat",
+ "in": "query",
+ "description": "Defines the type of input file for a style set to be created from.",
+ "required": false,
+ "type": "string",
+ "default": "JSON",
+ "enum": [
+ "JSON",
+ "ZIP"
+ ],
+ "x-ms-enum": {
+ "name": "DataFormatType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "JSON",
+ "description": "JSON style format."
+ },
+ {
+ "value": "ZIP",
+ "description": "ZIP style format."
+ }
+ ]
+ }
+ },
+ "StyleFormat": {
+ "name": "styleFormat",
+ "in": "query",
+ "description": " Defines the type of JSON object that is exported.",
+ "required": false,
+ "type": "string",
+ "default": "mapbox",
+ "enum": [
+ "mapbox",
+ "azureMapsStyleRecipe"
+ ],
+ "x-ms-enum": {
+ "name": "StyleFormatType",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "mapbox",
+ "description": "mapbox style data format."
+ }
+ ]
+ }
+ },
+ "Alias": {
+ "name": "alias",
+ "description": "The alias of the style set.",
+ "type": "string",
+ "in": "query",
+ "required": false
+ }
+ },
+ "paths": {
+ "/styles/stylesets": {
+ "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 StyleSet Create API allows the caller to create a styleSet from their styleSet configuration file.\n\n## Submit Create Request\n\nTo create your styleset you will make a `POST` request with a styleSet configration file. \n\nThe Create StyleSet API is a \n[long-running request](https://aka.ms/am-creator-lrt-v2).",
+ "operationId": "StyleSet_Create",
+ "x-ms-long-running-operation": true,
+ "x-ms-long-running-operation-options": {
+ "final-state-via": "location"
+ },
+ "x-ms-examples": {
+ "Import Style by providing a azure maps or mapbox style json file": {
+ "$ref": "./examples/styleset/StyleSet_Create.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../Common/preview/1.0/common.json#/parameters/ClientId"
+ },
+ {
+ "$ref": "#/parameters/ApiVersion"
+ },
+ {
+ "$ref": "#/parameters/DataFormat"
+ },
+ {
+ "$ref": "#/parameters/Alias"
+ },
+ {
+ "$ref": "#/parameters/DescriptionStyleSet"
+ }
+ ],
+ "responses": {
+ "200": {
+ "$ref": "../../../Common/preview/1.0/common.json#/responses/200AsyncV2"
+ },
+ "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 styleSets created. \n
",
+ "operationId": "StyleSet_List",
+ "x-ms-examples": {
+ "Get a list of all styleSets": {
+ "$ref": "./examples/styleset/StyleSet_List.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../Common/preview/1.0/common.json#/parameters/ClientId"
+ },
+ {
+ "$ref": "#/parameters/ApiVersion"
+ }
+ ],
+ "x-ms-pageable": {
+ "itemName": "styleSets",
+ "nextLinkName": "nextLink"
+ },
+ "responses": {
+ "200": {
+ "description": "List styleSets request completed successfully. The response body contains a list of all styleSets.",
+ "schema": {
+ "$ref": "#/definitions/StyleSetListResult"
+ }
+ },
+ "default": {
+ "$ref": "../../../Common/preview/1.0/common.json#/responses/default"
+ }
+ }
+ }
+ },
+ "/styles/stylesets/{styleSetId}": {
+ "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 styleSet.",
+ "operationId": "StyleSet_Get",
+ "x-ms-examples": {
+ "Gets the details for a single styleSet": {
+ "$ref": "./examples/styleset/StyleSet_Get.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../Common/preview/1.0/common.json#/parameters/ClientId"
+ },
+ {
+ "$ref": "#/parameters/ApiVersion"
+ },
+ {
+ "$ref": "#/parameters/StyleSetId"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Get styleSet request completed successfully. The response body contains a single styleSet.",
+ "schema": {
+ "$ref": "#/definitions/StyleSetListItem"
+ }
+ },
+ "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 styleSet.
\nYou can use this API if a style 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 `styleSetId` of the styleSet to delete.
\n\n#### Delete request \"Successful\"\n\nThe StyleSet 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 styleSet with the passed-in `styleSetId` 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 - StyleSet Id: d85b5b27-5fc4-4599-8b50-47160e90f8ce does not exist.\"\n }\n}\n```",
+ "operationId": "StyleSet_Delete",
+ "x-ms-examples": {
+ "Delete a imported style": {
+ "$ref": "./examples/styleset/StyleSet_Delete.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../Common/preview/1.0/common.json#/parameters/ClientId"
+ },
+ {
+ "$ref": "#/parameters/ApiVersion"
+ },
+ {
+ "$ref": "#/parameters/StyleSetId"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "StyleSet delete request completed successfully."
+ },
+ "default": {
+ "$ref": "../../../Common/preview/1.0/common.json#/responses/default"
+ }
+ }
+ }
+ },
+ "/styles/stylesets/{styleSetId}/{styleName}": {
+ "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 composed style defined in the styleSet.",
+ "operationId": "StyleSet_GetStyle",
+ "x-ms-examples": {
+ "Gets the details for a single style in a styleSet": {
+ "$ref": "./examples/styleset/StyleSet_GetStyle.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../Common/preview/1.0/common.json#/parameters/ClientId"
+ },
+ {
+ "$ref": "#/parameters/ApiVersion"
+ },
+ {
+ "$ref": "#/parameters/StyleSetId"
+ },
+ {
+ "$ref": "#/parameters/StyleName"
+ },
+ {
+ "$ref": "#/parameters/StyleFormat"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Get composed styleSet style request completed successfully. The response body contains a single style.",
+ "schema": {
+ "type": "object"
+ }
+ },
+ "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 styleSet. While in progress, an http200 will be returned with no extra headers - followed by an http200 with Resource-Location header once successfully completed.",
+ "operationId": "StyleSet_GetOperation",
+ "x-ms-examples": {
+ "Get the status of an operation which is still running": {
+ "$ref": "./examples/styleset/StyleSet_GetOperationStillRunning.json"
+ },
+ "Get the status of an operation which has finished successfully": {
+ "$ref": "./examples/styleset/StyleSet_GetOperation.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "#/parameters/ApiVersion"
+ },
+ {
+ "$ref": "#/parameters/StyleSetOperationId"
+ }
+ ],
+ "responses": {
+ "200": {
+ "$ref": "../../../Common/preview/1.0/common.json#/responses/200AsyncV2"
+ },
+ "default": {
+ "$ref": "../../../Common/preview/1.0/common.json#/responses/default"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "StyleSetListResult": {
+ "description": "The response model for the StyleSet List API. Returns a list of all styleSets.",
+ "type": "object",
+ "properties": {
+ "styleSets": {
+ "description": "A list of all styleSets.",
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/StyleSetListItem"
+ }
+ },
+ "nextLink": {
+ "description": "If present, the location of the next page of data.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ },
+ "StyleObject": {
+ "description": "A style object.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "The name for the style.",
+ "type": "string",
+ "readOnly": true
+ },
+ "displayName": {
+ "description": "The display name for the style.",
+ "type": "string",
+ "readOnly": true
+ },
+ "theme": {
+ "description": "The theme for the style.",
+ "type": "string",
+ "readOnly": true
+ },
+ "thumbnail": {
+ "description": "The thumbnail for the style.",
+ "type": "object",
+ "readOnly": true
+ },
+ "url": {
+ "description": "The url for the style.",
+ "type": "object",
+ "readOnly": true
+ }
+ }
+ },
+ "StyleSetListItem": {
+ "description": "Detail information for the data.",
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "The unique styleSet id for the styleSet.",
+ "type": "string",
+ "readOnly": true
+ },
+ "defaultStyle": {
+ "description": "The default style used for the style set.",
+ "type": "string",
+ "readOnly": true
+ },
+ "version": {
+ "description": "The version of the style set.",
+ "type": "number",
+ "readOnly": true
+ },
+ "description": {
+ "description": "The description the caller provided when creating the styleSet. Maximum length 1024 characters.",
+ "type": "string",
+ "readOnly": true
+ },
+ "created": {
+ "description": "The creation date and time of this styleSet.",
+ "type": "string",
+ "readOnly": true
+ },
+ "styles": {
+ "description": "The available styles for the styleset.",
+ "type": "array",
+ "readOnly": true,
+ "items": {
+ "$ref": "#/definitions/StyleObject"
+ }
+ }
+ }
+ },
+ "StyleSet": {
+ "description": "Detail information for the data.",
+ "type": "object",
+ "properties": {
+ "styleSetId": {
+ "description": "The unique styleSet id for the styleSet.",
+ "type": "string",
+ "readOnly": true
+ },
+ "description": {
+ "description": "The description the caller provided when creating the styleSet. Maximum length 1024 characters.",
+ "type": "string",
+ "readOnly": true
+ },
+ "created": {
+ "description": "The creation date and time of this styleSet.",
+ "type": "string",
+ "readOnly": true
+ }
+ }
+ }
+ }
+}
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..a6867833e36e
--- /dev/null
+++ b/specification/maps/data-plane/Creator/preview/2022-01-01-preview/tileset.json
@@ -0,0 +1,499 @@
+{
+ "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.",
+ "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/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-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": "TilesetRecipe",
+ "in": "body",
+ "description": "The custom tileset recipe to use.",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/TilesetRecipe"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "$ref": "../../../Common/preview/1.0/common.json#/responses/200AsyncV2"
+ },
+ "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/recipes": {
+ "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 recipe based on the dataset provided.",
+ "operationId": "Tileset_GetRecipe",
+ "x-ms-examples": {
+ "Gets the tileset recipe for a given dataset ontology": {
+ "$ref": "./examples/tileset/Tileset_GetRecipe.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../Common/preview/1.0/common.json#/parameters/ClientId"
+ },
+ {
+ "$ref": "#/parameters/ApiVersion"
+ },
+ {
+ "$ref": "#/parameters/DatasetIdQuery"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Get tileset recipe request completed successfully. The response body contains a default tileset recipe generated for the given dataset ontology.",
+ "schema": {
+ "$ref": "#/definitions/TilesetRecipe"
+ }
+ },
+ "default": {
+ "$ref": "../../../Common/preview/1.0/common.json#/responses/default"
+ }
+ }
+ }
+ },
+ "/tilesets/recipes/validate": {
+ "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 recipe.",
+ "operationId": "Tileset_ValidateRecipe",
+ "x-ms-examples": {
+ "Validates the correctness of a tileset recipe": {
+ "$ref": "./examples/tileset/Tileset_ValidateRecipe.json"
+ }
+ },
+ "parameters": [
+ {
+ "$ref": "../../../Common/preview/1.0/common.json#/parameters/ClientId"
+ },
+ {
+ "$ref": "#/parameters/ApiVersion"
+ },
+ {
+ "$ref": "#/parameters/DatasetIdQuery"
+ },
+ {
+ "name": "TilesetRecipe",
+ "in": "body",
+ "description": "The custom tileset recipe to use.",
+ "required": false,
+ "schema": {
+ "$ref": "#/definitions/TilesetRecipe"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Validate tileset recipe request completed successfully. The response body contains the validation results.",
+ "schema": {
+ "$ref": "#/definitions/TilesetRecipeValidationResult"
+ }
+ },
+ "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"
+ },
+ "tilesetRecipe": {
+ "description": "Tileset recipe which is used to build the tileset.",
+ "$ref": "#/definitions/TilesetRecipe"
+ }
+ }
+ },
+ "TilesetRecipe": {
+ "description": "A tileset recipe object. Please refer to [Tileset Recipe Specification]() for details.",
+ "type": "object",
+ "required": [
+ "version", "layers"
+ ],
+ "properties": {
+ "version": {
+ "description": "The version of Azure Maps Tiling service recipe reference that the recipe uses.",
+ "type": "integer"
+ },
+ "layers": {
+ "description": "The names of the layers and their configuration options.",
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/LayerObject"
+ }
+ }
+ }
+ },
+ "LayerObject": {
+ "description": "Layer object for tileset recipe.",
+ "type": "object",
+ "required": [
+ "features", "minzoom", "maxzoom"
+ ],
+ "properties": {
+ "features": {
+ "description": "Specifies the output on a per feature basis.",
+ "$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 recipe.",
+ "type": "object",
+ "required": [
+ "featureClasses"
+ ],
+ "properties": {
+ "featureClasses": {
+ "description": "The list of featureClasses that will be used to build the layer.",
+ "type": "array",
+ "items":{
+ "type": "string"
+ }
+ },
+ "filter": {
+ "description": "Removes features that do not match a pattern.",
+ "type": "object"
+ }
+ }
+ },
+ "TilesetRecipeValidationResult": {
+ "description": "Tileset recipe 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"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/maps/data-plane/Creator/readme.md b/specification/maps/data-plane/Creator/readme.md
index 21e84387e125..9860c22bb3a3 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/stylerecipe.json
+ - preview/2022-01-01-preview/styleset.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)