From 0d3b1a8e1dcd2ef32ab8f3b8f118010df7c302c1 Mon Sep 17 00:00:00 2001 From: "PoAn (Baron) Chen" Date: Mon, 13 Sep 2021 19:50:23 -0700 Subject: [PATCH] [Microsoft.IoTCentral/iotApps] Removal of legacy S1 SKU, S360 Fixes, newer RP API version 2021-06-01 (#14311) * Adds base for updating Microsoft.IoTCentral from version stable/2018-09-01 to version 2021-06-01 * Updates readme * Updates API version in new specs and examples * remove legacy sku S1 * update template in example to use M3 template name * add suppress for R4009 and R3018 * add state * update * should be read only * update example * Update iotcentral.json temporary changing this for further testing in canary. * removal of f1 and deleted state --- .../examples/Apps_CheckNameAvailability.json | 32 + .../Apps_CheckSubdomainAvailability.json | 32 + .../examples/Apps_CreateOrUpdate.json | 84 ++ .../2021-06-01/examples/Apps_Delete.json | 33 + .../stable/2021-06-01/examples/Apps_Get.json | 46 + .../examples/Apps_ListByResourceGroup.json | 49 + .../examples/Apps_ListBySubscription.json | 48 + .../2021-06-01/examples/Apps_Templates.json | 555 +++++++++++ .../2021-06-01/examples/Apps_Update.json | 53 + .../2021-06-01/examples/Operations_List.json | 317 ++++++ .../stable/2021-06-01/iotcentral.json | 926 ++++++++++++++++++ .../iotcentral/resource-manager/readme.md | 29 +- 12 files changed, 2200 insertions(+), 4 deletions(-) create mode 100644 specification/iotcentral/resource-manager/Microsoft.IoTCentral/stable/2021-06-01/examples/Apps_CheckNameAvailability.json create mode 100644 specification/iotcentral/resource-manager/Microsoft.IoTCentral/stable/2021-06-01/examples/Apps_CheckSubdomainAvailability.json create mode 100644 specification/iotcentral/resource-manager/Microsoft.IoTCentral/stable/2021-06-01/examples/Apps_CreateOrUpdate.json create mode 100644 specification/iotcentral/resource-manager/Microsoft.IoTCentral/stable/2021-06-01/examples/Apps_Delete.json create mode 100644 specification/iotcentral/resource-manager/Microsoft.IoTCentral/stable/2021-06-01/examples/Apps_Get.json create mode 100644 specification/iotcentral/resource-manager/Microsoft.IoTCentral/stable/2021-06-01/examples/Apps_ListByResourceGroup.json create mode 100644 specification/iotcentral/resource-manager/Microsoft.IoTCentral/stable/2021-06-01/examples/Apps_ListBySubscription.json create mode 100644 specification/iotcentral/resource-manager/Microsoft.IoTCentral/stable/2021-06-01/examples/Apps_Templates.json create mode 100644 specification/iotcentral/resource-manager/Microsoft.IoTCentral/stable/2021-06-01/examples/Apps_Update.json create mode 100644 specification/iotcentral/resource-manager/Microsoft.IoTCentral/stable/2021-06-01/examples/Operations_List.json create mode 100644 specification/iotcentral/resource-manager/Microsoft.IoTCentral/stable/2021-06-01/iotcentral.json diff --git a/specification/iotcentral/resource-manager/Microsoft.IoTCentral/stable/2021-06-01/examples/Apps_CheckNameAvailability.json b/specification/iotcentral/resource-manager/Microsoft.IoTCentral/stable/2021-06-01/examples/Apps_CheckNameAvailability.json new file mode 100644 index 000000000000..4092e3e83096 --- /dev/null +++ b/specification/iotcentral/resource-manager/Microsoft.IoTCentral/stable/2021-06-01/examples/Apps_CheckNameAvailability.json @@ -0,0 +1,32 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2021-06-01", + "operationInputs": { + "name": "myiotcentralapp", + "type": "IoTApps" + } + }, + "responses": { + "200": { + "description": "Returns information about resource name availability", + "headers": { + "code": "200" + }, + "body": { + "nameAvailable": true + } + }, + "default": { + "description": "Error message returned for an unexpected response", + "headers": {}, + "body": { + "error": { + "code": "Error code", + "message": "Error message", + "target": "Error target" + } + } + } + } +} diff --git a/specification/iotcentral/resource-manager/Microsoft.IoTCentral/stable/2021-06-01/examples/Apps_CheckSubdomainAvailability.json b/specification/iotcentral/resource-manager/Microsoft.IoTCentral/stable/2021-06-01/examples/Apps_CheckSubdomainAvailability.json new file mode 100644 index 000000000000..b115efa593e4 --- /dev/null +++ b/specification/iotcentral/resource-manager/Microsoft.IoTCentral/stable/2021-06-01/examples/Apps_CheckSubdomainAvailability.json @@ -0,0 +1,32 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2021-06-01", + "operationInputs": { + "name": "myiotcentralapp", + "type": "IoTApps" + } + }, + "responses": { + "200": { + "description": "Returns information about resource subdomain availability", + "headers": { + "code": "200" + }, + "body": { + "nameAvailable": true + } + }, + "default": { + "description": "Error message returned for an unexpected response", + "headers": {}, + "body": { + "error": { + "code": "Error code", + "message": "Error message", + "target": "Error target" + } + } + } + } +} diff --git a/specification/iotcentral/resource-manager/Microsoft.IoTCentral/stable/2021-06-01/examples/Apps_CreateOrUpdate.json b/specification/iotcentral/resource-manager/Microsoft.IoTCentral/stable/2021-06-01/examples/Apps_CreateOrUpdate.json new file mode 100644 index 000000000000..9475c57e83b3 --- /dev/null +++ b/specification/iotcentral/resource-manager/Microsoft.IoTCentral/stable/2021-06-01/examples/Apps_CreateOrUpdate.json @@ -0,0 +1,84 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "resRg", + "resourceName": "myIoTCentralApp", + "api-version": "2021-06-01", + "App": { + "location": "westus", + "sku": { + "name": "ST2" + }, + "properties": { + "displayName": "My IoT Central App", + "subdomain": "my-iot-central-app", + "template": "iotc-pnp-preview@1.0.0" + } + } + }, + "responses": { + "200": { + "header": { + "code": "200", + "message": "OK" + }, + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/resRg/providers/Microsoft.IoTCentral/IoTApps/myIoTCentralApp", + "name": "myIoTCentralApp", + "type": "Microsoft.IoTCentral/IoTApps", + "location": "westus", + "tags": { + "key": "value" + }, + "properties": { + "applicationId": "6ebd8fd3-6e34-419e-908f-9be61ec6f6d6", + "displayName": "My IoT Central App 2", + "subdomain": "my-iot-central-app-2", + "template": "iotc-pnp-preview@1.0.0", + "state": "created" + }, + "sku": { + "name": "ST2" + } + } + }, + "201": { + "headers": { + "code": "201", + "message": "Created", + "target": "ResourceHandler.ExecutePutRequest" + }, + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/resRg/providers/Microsoft.IoTCentral/IoTApps/myIoTCentralApp", + "name": "myIoTCentralApp", + "type": "Microsoft.IoTCentral/IoTApps", + "location": "westus", + "tags": { + "key": "value" + }, + "properties": { + "applicationId": "6ebd8fd3-6e34-419e-908f-9be61ec6f6d6", + "displayName": "My IoT Central App", + "subdomain": "my-iot-central-app", + "template": "iotc-pnp-preview@1.0.0", + "state": "created" + }, + "sku": { + "name": "ST2" + } + } + }, + "202": {}, + "default": { + "description": "Error message returned for an unexpected response", + "headers": {}, + "body": { + "error": { + "code": "Error code", + "message": "Error message", + "target": "Error target" + } + } + } + } +} diff --git a/specification/iotcentral/resource-manager/Microsoft.IoTCentral/stable/2021-06-01/examples/Apps_Delete.json b/specification/iotcentral/resource-manager/Microsoft.IoTCentral/stable/2021-06-01/examples/Apps_Delete.json new file mode 100644 index 000000000000..bc5eaf8d86c7 --- /dev/null +++ b/specification/iotcentral/resource-manager/Microsoft.IoTCentral/stable/2021-06-01/examples/Apps_Delete.json @@ -0,0 +1,33 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "resRg", + "resourceName": "myIoTCentralApp", + "api-version": "2021-06-01" + }, + "responses": { + "200": { + "header": { + "code": "200", + "message": "OK", + "target": "ResourceHandler.ExecuteDeleteRequest" + } + }, + "202": {}, + "204": {}, + "default": { + "description": "Error message returned for an unexpected response", + "headers": { + "message": "Created", + "code": "200" + }, + "body": { + "error": { + "code": "Error code", + "message": "Error message", + "target": "Error target" + } + } + } + } +} diff --git a/specification/iotcentral/resource-manager/Microsoft.IoTCentral/stable/2021-06-01/examples/Apps_Get.json b/specification/iotcentral/resource-manager/Microsoft.IoTCentral/stable/2021-06-01/examples/Apps_Get.json new file mode 100644 index 000000000000..490a605e453e --- /dev/null +++ b/specification/iotcentral/resource-manager/Microsoft.IoTCentral/stable/2021-06-01/examples/Apps_Get.json @@ -0,0 +1,46 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "resRg", + "resourceName": "myIoTCentralApp", + "api-version": "2021-06-01" + }, + "responses": { + "200": { + "description": "Returns the application details", + "headers": { + "code": "200" + }, + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/resRg/providers/Microsoft.IoTCentral/iotApps/myIoTCentralApp", + "location": "westus", + "type": "Microsoft.IoTCentral/IoTApps", + "name": "myIoTCentralApp", + "tags": { + "key": "value" + }, + "properties": { + "applicationId": "6ebd8fd3-6e34-419e-908f-9be61ec6f6d6", + "displayName": "My IoT Central App", + "subdomain": "my-iot-central-app", + "template": "iotc-pnp-preview@1.0.0", + "state": "created" + }, + "sku": { + "name": "F1" + } + } + }, + "default": { + "description": "Error message returned for an unexpected response", + "headers": {}, + "body": { + "error": { + "code": "Error code", + "message": "Error message", + "target": "Error target" + } + } + } + } +} diff --git a/specification/iotcentral/resource-manager/Microsoft.IoTCentral/stable/2021-06-01/examples/Apps_ListByResourceGroup.json b/specification/iotcentral/resource-manager/Microsoft.IoTCentral/stable/2021-06-01/examples/Apps_ListByResourceGroup.json new file mode 100644 index 000000000000..bef602c32f24 --- /dev/null +++ b/specification/iotcentral/resource-manager/Microsoft.IoTCentral/stable/2021-06-01/examples/Apps_ListByResourceGroup.json @@ -0,0 +1,49 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2021-06-01", + "resourceGroupName": "resRg" + }, + "responses": { + "200": { + "headers": { + "code": "200" + }, + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/resRg/providers/Microsoft.IoTCentral/iotApps/myIoTCentralApp", + "location": "westus", + "type": "Microsoft.IoTCentral/IoTApps", + "name": "myIoTCentralApp", + "tags": { + "key": "value" + }, + "properties": { + "applicationId": "6ebd8fd3-6e34-419e-908f-9be61ec6f6d6", + "displayName": "My IoT Central App", + "subdomain": "my-iot-central-app", + "template": "iotc-pnp-preview@1.0.0", + "state": "created" + }, + "sku": { + "name": "F1" + } + } + ], + "nextLink": null + } + }, + "default": { + "description": "Error message returned for an unexpected response", + "headers": {}, + "body": { + "error": { + "code": "Error code", + "message": "Error message", + "target": "Error target" + } + } + } + } +} diff --git a/specification/iotcentral/resource-manager/Microsoft.IoTCentral/stable/2021-06-01/examples/Apps_ListBySubscription.json b/specification/iotcentral/resource-manager/Microsoft.IoTCentral/stable/2021-06-01/examples/Apps_ListBySubscription.json new file mode 100644 index 000000000000..6692ed91fff9 --- /dev/null +++ b/specification/iotcentral/resource-manager/Microsoft.IoTCentral/stable/2021-06-01/examples/Apps_ListBySubscription.json @@ -0,0 +1,48 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2021-06-01" + }, + "responses": { + "200": { + "headers": { + "code": "200" + }, + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/resRg/providers/Microsoft.IoTCentral/iotApps/myIoTCentralApp", + "location": "westus", + "type": "Microsoft.IoTCentral/IoTApps", + "name": "myIoTCentralApp", + "tags": { + "key": "value" + }, + "properties": { + "applicationId": "6ebd8fd3-6e34-419e-908f-9be61ec6f6d6", + "displayName": "My IoT Central App", + "subdomain": "my-iot-central-app", + "template": "iotc-pnp-preview@1.0.0", + "state": "created" + }, + "sku": { + "name": "F1" + } + } + ], + "nextLink": null + }, + "default": { + "description": "Error message returned for an unexpected response", + "headers": {}, + "body": { + "error": { + "code": "Error code", + "message": "Error message", + "target": "Error target" + } + } + } + } + } +} diff --git a/specification/iotcentral/resource-manager/Microsoft.IoTCentral/stable/2021-06-01/examples/Apps_Templates.json b/specification/iotcentral/resource-manager/Microsoft.IoTCentral/stable/2021-06-01/examples/Apps_Templates.json new file mode 100644 index 000000000000..0b1547f932dc --- /dev/null +++ b/specification/iotcentral/resource-manager/Microsoft.IoTCentral/stable/2021-06-01/examples/Apps_Templates.json @@ -0,0 +1,555 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2021-06-01" + }, + "responses": { + "200": { + "description": "Returns the application templates details", + "headers": { + "code": "200" + }, + "body": { + "value": [ + { + "manifestId": "iotc-condition", + "manifestVersion": "1.0.0", + "name": "Store Analytics – Condition Monitoring", + "title": "In-store Analytics – Condition Monitoring", + "order": 99, + "description": "Digitally connect and monitor your store environment to reduce operating costs and create experiences that customers love.", + "industry": "Retail", + "locations": [ + { + "id": "unitedstates", + "displayName": "United States" + }, + { + "id": "europe", + "displayName": "Europe" + }, + { + "id": "asiapacific", + "displayName": "Asia Pacific" + }, + { + "id": "australia", + "displayName": "Australia" + }, + { + "id": "uk", + "displayName": "United Kingdom" + }, + { + "id": "japan", + "displayName": "Japan" + } + ] + }, + { + "manifestId": "iotc-consumption", + "manifestVersion": "1.0.0", + "name": "IoT Central Water Consumption application template", + "title": "Water Consumption Monitoring", + "order": 99, + "description": "Enable remote tracking of water consumption to reduce field operations, detect leaks in time, while empowering cities to conserve water.", + "industry": "Government", + "locations": [ + { + "id": "unitedstates", + "displayName": "United States" + }, + { + "id": "europe", + "displayName": "Europe" + }, + { + "id": "asiapacific", + "displayName": "Asia Pacific" + }, + { + "id": "australia", + "displayName": "Australia" + }, + { + "id": "uk", + "displayName": "United Kingdom" + }, + { + "id": "japan", + "displayName": "Japan" + } + ] + }, + { + "manifestId": "iotc-distribution", + "manifestVersion": "1.0.0", + "name": "IoT Central Digital Distribution Center application template", + "title": "Digital Distribution Center", + "order": 99, + "description": "Digitally manage warehouse conveyor belt system efficiency using object detection and tracking.", + "industry": "Retail", + "locations": [ + { + "id": "unitedstates", + "displayName": "United States" + }, + { + "id": "europe", + "displayName": "Europe" + }, + { + "id": "asiapacific", + "displayName": "Asia Pacific" + }, + { + "id": "australia", + "displayName": "Australia" + }, + { + "id": "uk", + "displayName": "United Kingdom" + }, + { + "id": "japan", + "displayName": "Japan" + } + ] + }, + { + "manifestId": "iotc-inventory", + "manifestVersion": "1.0.0", + "name": "IoT Central Smart Inventory Management application template", + "title": "Smart Inventory Management", + "order": 99, + "description": "Enable accurate inventory tracking and ensure shelves are always stocked.", + "industry": "Retail", + "locations": [ + { + "id": "unitedstates", + "displayName": "United States" + }, + { + "id": "europe", + "displayName": "Europe" + }, + { + "id": "asiapacific", + "displayName": "Asia Pacific" + }, + { + "id": "australia", + "displayName": "Australia" + }, + { + "id": "uk", + "displayName": "United Kingdom" + }, + { + "id": "japan", + "displayName": "Japan" + } + ] + }, + { + "manifestId": "iotc-logistics", + "manifestVersion": "1.0.0", + "name": "IoT Central Connected Logistics application template", + "title": "Connected Logistics", + "order": 99, + "description": "Track your shipment in real-time across air, water and land with location and condition monitoring.", + "industry": "Retail", + "locations": [ + { + "id": "unitedstates", + "displayName": "United States" + }, + { + "id": "europe", + "displayName": "Europe" + }, + { + "id": "asiapacific", + "displayName": "Asia Pacific" + }, + { + "id": "australia", + "displayName": "Australia" + }, + { + "id": "uk", + "displayName": "United Kingdom" + }, + { + "id": "japan", + "displayName": "Japan" + } + ] + }, + { + "manifestId": "iotc-meter", + "manifestVersion": "1.0.0", + "name": "IoT Central Smart Meter Analytics application template", + "title": "Smart Meter Analytics", + "order": 99, + "description": "Connect utility meters to gain insights into billing, forecast consumption, and proactively detect outages.", + "industry": "Energy", + "locations": [ + { + "id": "unitedstates", + "displayName": "United States" + }, + { + "id": "europe", + "displayName": "Europe" + }, + { + "id": "asiapacific", + "displayName": "Asia Pacific" + }, + { + "id": "australia", + "displayName": "Australia" + }, + { + "id": "uk", + "displayName": "United Kingdom" + }, + { + "id": "japan", + "displayName": "Japan" + } + ] + }, + { + "manifestId": "iotc-mfc", + "manifestVersion": "1.0.0", + "name": "IoT Central Micro-fulfillment Center", + "title": "Micro-fulfillment Center", + "order": 99, + "description": "Digitally connect, monitor and manage all aspects of a fully automated fulfillment center to reduce costs by eliminating downtime while increasing security and overall efficiency.", + "industry": "Retail", + "locations": [ + { + "id": "unitedstates", + "displayName": "United States" + }, + { + "id": "europe", + "displayName": "Europe" + }, + { + "id": "asiapacific", + "displayName": "Asia Pacific" + }, + { + "id": "australia", + "displayName": "Australia" + }, + { + "id": "uk", + "displayName": "United Kingdom" + }, + { + "id": "japan", + "displayName": "Japan" + } + ] + }, + { + "manifestId": "iotc-paad", + "manifestVersion": "1.0.0", + "name": "IoT Central Phone-as-a-device application template", + "title": "Paad", + "order": 99, + "description": "Create application with [\"paad\"] capabilities.", + "industry": "Utility", + "locations": [ + { + "id": "unitedstates", + "displayName": "United States" + }, + { + "id": "europe", + "displayName": "Europe" + }, + { + "id": "asiapacific", + "displayName": "Asia Pacific" + }, + { + "id": "australia", + "displayName": "Australia" + }, + { + "id": "uk", + "displayName": "United Kingdom" + }, + { + "id": "japan", + "displayName": "Japan" + } + ] + }, + { + "manifestId": "iotc-patient", + "manifestVersion": "1.0.0", + "name": "IoT Central Continuous Patient Monitoring application template", + "title": "Continuous Patient Monitoring", + "order": 99, + "description": "Connect and manage devices for in-patient and remote monitoring to improve patient outcomes, reduce re-admissions, and manage chronic diseases.", + "industry": "Health", + "locations": [ + { + "id": "unitedstates", + "displayName": "United States" + }, + { + "id": "europe", + "displayName": "Europe" + }, + { + "id": "asiapacific", + "displayName": "Asia Pacific" + }, + { + "id": "australia", + "displayName": "Australia" + }, + { + "id": "uk", + "displayName": "United Kingdom" + }, + { + "id": "japan", + "displayName": "Japan" + } + ] + }, + { + "manifestId": "iotc-pnp-preview", + "manifestVersion": "1.0.0", + "name": "IoT Central PnP template (preview)", + "title": "Custom application", + "order": 1, + "description": "Create an application with Azure IoT Plug and Play.", + "industry": "", + "locations": [ + { + "id": "unitedstates", + "displayName": "United States" + }, + { + "id": "europe", + "displayName": "Europe" + }, + { + "id": "asiapacific", + "displayName": "Asia Pacific" + }, + { + "id": "australia", + "displayName": "Australia" + }, + { + "id": "uk", + "displayName": "United Kingdom" + }, + { + "id": "japan", + "displayName": "Japan" + } + ] + }, + { + "manifestId": "iotc-power", + "manifestVersion": "1.0.0", + "name": "IoT Central Solar Power Monitoring application template", + "title": "Solar Power Monitoring", + "order": 99, + "description": "Connect, monitor, and manage your solar panels and energy generation.", + "industry": "Energy", + "locations": [ + { + "id": "unitedstates", + "displayName": "United States" + }, + { + "id": "europe", + "displayName": "Europe" + }, + { + "id": "asiapacific", + "displayName": "Asia Pacific" + }, + { + "id": "australia", + "displayName": "Australia" + }, + { + "id": "uk", + "displayName": "United Kingdom" + }, + { + "id": "japan", + "displayName": "Japan" + } + ] + }, + { + "manifestId": "iotc-quality", + "manifestVersion": "1.0.0", + "name": "IoT Central Water Quality Monitoring application template", + "title": "Water Quality Monitoring", + "order": 99, + "description": "Improve water quality and detect issues earlier by analyzing real-time measurements across your environment.", + "industry": "Government", + "locations": [ + { + "id": "unitedstates", + "displayName": "United States" + }, + { + "id": "europe", + "displayName": "Europe" + }, + { + "id": "asiapacific", + "displayName": "Asia Pacific" + }, + { + "id": "australia", + "displayName": "Australia" + }, + { + "id": "uk", + "displayName": "United Kingdom" + }, + { + "id": "japan", + "displayName": "Japan" + } + ] + }, + { + "manifestId": "iotc-store", + "manifestVersion": "1.0.0", + "name": "Store Analytics – Checkout", + "title": "In-store Analytics – Checkout", + "order": 99, + "description": "Monitor and manage the checkout flow inside your store to improve efficiency and reduce wait times.", + "industry": "Retail", + "locations": [ + { + "id": "unitedstates", + "displayName": "United States" + }, + { + "id": "europe", + "displayName": "Europe" + }, + { + "id": "asiapacific", + "displayName": "Asia Pacific" + }, + { + "id": "australia", + "displayName": "Australia" + }, + { + "id": "uk", + "displayName": "United Kingdom" + }, + { + "id": "japan", + "displayName": "Japan" + } + ] + }, + { + "manifestId": "iotc-video-analytics-om", + "manifestVersion": "1.0.0", + "name": "IoT Central Video analytics - object and motion detection application template", + "title": "Video analytics - object and motion detection", + "order": 99, + "description": "Use cameras as a sensor in intelligent video analytics solutions powered by Azure IoT Edge, AI, and Azure Media Services.", + "industry": "Retail", + "locations": [ + { + "id": "unitedstates", + "displayName": "United States" + }, + { + "id": "europe", + "displayName": "Europe" + }, + { + "id": "asiapacific", + "displayName": "Asia Pacific" + }, + { + "id": "australia", + "displayName": "Australia" + }, + { + "id": "uk", + "displayName": "United Kingdom" + }, + { + "id": "japan", + "displayName": "Japan" + } + ] + }, + { + "manifestId": "iotc-waste", + "manifestVersion": "1.0.0", + "name": "IoT Central Connected Waste Management application template", + "title": "Connected Waste Management", + "order": 99, + "description": "Maximize efficiency in the collection of solid wastes by dispatching field operators at the right time along an optimized collection route.", + "industry": "Government", + "locations": [ + { + "id": "unitedstates", + "displayName": "United States" + }, + { + "id": "europe", + "displayName": "Europe" + }, + { + "id": "asiapacific", + "displayName": "Asia Pacific" + }, + { + "id": "australia", + "displayName": "Australia" + }, + { + "id": "uk", + "displayName": "United Kingdom" + }, + { + "id": "japan", + "displayName": "Japan" + } + ] + } + ], + "nextLink": null + }, + "default": { + "description": "Error message returned for an unexpected response", + "headers": {}, + "body": { + "error": { + "code": "Error code", + "message": "Error message", + "target": "Error target" + } + } + } + } + } +} diff --git a/specification/iotcentral/resource-manager/Microsoft.IoTCentral/stable/2021-06-01/examples/Apps_Update.json b/specification/iotcentral/resource-manager/Microsoft.IoTCentral/stable/2021-06-01/examples/Apps_Update.json new file mode 100644 index 000000000000..ac9b0261d5ab --- /dev/null +++ b/specification/iotcentral/resource-manager/Microsoft.IoTCentral/stable/2021-06-01/examples/Apps_Update.json @@ -0,0 +1,53 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "resRg", + "resourceName": "myIoTCentralApp", + "api-version": "2021-06-01", + "AppPatch": { + "properties": { + "displayName": "My IoT Central App 2" + } + } + }, + "responses": { + "200": { + "headers": { + "code": "200", + "message": "OK", + "target": "ResourceHandler.ExecutePatchRequest" + }, + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/resRg/providers/Microsoft.IoTCentral/IoTApps/myIoTCentralApp", + "location": "westus", + "type": "Microsoft.IoTCentral/IoTApps", + "name": "myIoTCentralApp", + "tags": { + "key": "value" + }, + "properties": { + "applicationId": "6ebd8fd3-6e34-419e-908f-9be61ec6f6d6", + "displayName": "My IoT Central App 2", + "subdomain": "my-iot-central-app-2", + "template": "iotc-pnp-preview@1.0.0", + "state": "created" + }, + "sku": { + "name": "ST2" + } + } + }, + "202": {}, + "default": { + "description": "Error message returned for an unexpected response", + "headers": {}, + "body": { + "error": { + "code": "Error code", + "message": "Error message", + "target": "Error target" + } + } + } + } +} diff --git a/specification/iotcentral/resource-manager/Microsoft.IoTCentral/stable/2021-06-01/examples/Operations_List.json b/specification/iotcentral/resource-manager/Microsoft.IoTCentral/stable/2021-06-01/examples/Operations_List.json new file mode 100644 index 000000000000..866bcd7498ab --- /dev/null +++ b/specification/iotcentral/resource-manager/Microsoft.IoTCentral/stable/2021-06-01/examples/Operations_List.json @@ -0,0 +1,317 @@ +{ + "parameters": { + "api-version": "2021-06-01" + }, + "responses": { + "200": { + "headers": { + "code": "200" + }, + "body": { + "value": [ + { + "name": "Microsoft.IoTCentral/IoTApps/read", + "display": { + "provider": "Azure IoT Central", + "resource": "IoTApps", + "operation": "Get IoT Central Application", + "description": "Gets a single IoT Central Application" + } + }, + { + "name": "Microsoft.IoTCentral/IoTApps/write", + "display": { + "provider": "Azure IoT Central", + "resource": "IoTApps", + "operation": "Create or Update IoT Central Application", + "description": "Creates or Updates an IoT Central Applications" + } + }, + { + "name": "Microsoft.IoTCentral/IoTApps/delete", + "display": { + "provider": "Azure IoT Central", + "resource": "IoTApps", + "operation": "Delete IoT Central Application", + "description": "Deletes an IoT Central Applications" + } + }, + { + "name": "Microsoft.IoTCentral/checkNameAvailability/action", + "display": { + "provider": "Azure IoT Central", + "resource": "", + "operation": "Check resource name availability", + "description": "Checks if an IoT Central Application name is available" + } + }, + { + "name": "Microsoft.IoTCentral/checkSubdomainAvailability/action", + "display": { + "provider": "Azure IoT Central", + "resource": "", + "operation": "Check resource subdomain availability", + "description": "Checks if an IoT Central Application subdomain is available" + } + }, + { + "name": "Microsoft.IoTCentral/operations/read", + "display": { + "provider": "Azure IoT Central", + "resource": "", + "operation": "Get all the available operations", + "description": "Gets all the available operations on IoT Central Applications" + } + }, + { + "name": "Microsoft.IoTCentral/appTemplates/action", + "display": { + "provider": "Azure IoT Central", + "resource": "Azure IoT Central Resource Provider", + "operation": "Get all available application templates", + "description": "Gets all the available application templates on Azure IoT Central" + } + }, + { + "name": "Microsoft.IoTCentral/register/action", + "display": { + "provider": "Azure IoT Central", + "resource": "Azure IoT Central Resource Provider", + "operation": "Register Azure IoT Central resource provider", + "description": "Register the subscription for Azure IoT Central resource provider" + } + }, + { + "name": "Microsoft.IoTCentral/IoTApps/providers/Microsoft.Insights/metricDefinitions/read", + "display": { + "provider": "Azure IoT Central", + "resource": "IoTApps", + "operation": "Get all available Metrics definitions", + "description": "Gets all the available Metrics definitions on Azure IoT Central" + }, + "origin": "system", + "properties": { + "serviceSpecification": { + "metricSpecifications": [ + { + "name": "connectedDeviceCount", + "displayName": "Total Connected Devices", + "displayDescription": "Number of devices connected to IoT Central", + "unit": "Count", + "aggregationType": "Average", + "supportedAggregationTypes": [ + "Average" + ], + "supportedTimeGrainTypes": [ + "PT1M", + "PT5M", + "PT15M", + "PT30M", + "PT1H", + "PT6H", + "PT12H", + "P1D" + ], + "lockAggregationType": "Total" + }, + { + "name": "c2d.property.read.success", + "displayName": "Successful Device Property Reads from IoT Central", + "displayDescription": "The count of all successful property reads initiated from IoT Central", + "unit": "Count", + "aggregationType": "Total", + "supportedAggregationTypes": [ + "Total" + ], + "supportedTimeGrainTypes": [ + "PT1M", + "PT5M", + "PT15M", + "PT30M", + "PT1H", + "PT6H", + "PT12H", + "P1D" + ] + }, + { + "name": "c2d.property.read.failure", + "displayName": "Failed Device Property Reads from IoT Central", + "displayDescription": "The count of all failed property reads initiated from IoT Central", + "unit": "Count", + "aggregationType": "Total", + "supportedAggregationTypes": [ + "Total" + ], + "supportedTimeGrainTypes": [ + "PT1M", + "PT5M", + "PT15M", + "PT30M", + "PT1H", + "PT6H", + "PT12H", + "P1D" + ] + }, + { + "name": "d2c.property.read.success", + "displayName": "Successful Device Property Reads from Devices", + "displayDescription": "The count of all successful property reads initiated from devices", + "unit": "Count", + "aggregationType": "Total", + "supportedAggregationTypes": [ + "Total" + ], + "supportedTimeGrainTypes": [ + "PT1M", + "PT5M", + "PT15M", + "PT30M", + "PT1H", + "PT6H", + "PT12H", + "P1D" + ] + }, + { + "name": "d2c.property.read.failure", + "displayName": "Failed Device Property Reads from Devices", + "displayDescription": "The count of all failed property reads initiated from devices", + "unit": "Count", + "aggregationType": "Total", + "supportedAggregationTypes": [ + "Total" + ], + "supportedTimeGrainTypes": [ + "PT1M", + "PT5M", + "PT15M", + "PT30M", + "PT1H", + "PT6H", + "PT12H", + "P1D" + ] + }, + { + "name": "c2d.property.update.success", + "displayName": "Successful Device Property Updates from IoT Central", + "displayDescription": "The count of all successful property updates initiated from IoT Central", + "unit": "Count", + "aggregationType": "Total", + "supportedAggregationTypes": [ + "Total" + ], + "supportedTimeGrainTypes": [ + "PT1M", + "PT5M", + "PT15M", + "PT30M", + "PT1H", + "PT6H", + "PT12H", + "P1D" + ] + }, + { + "name": "c2d.property.update.failure", + "displayName": "Failed Device Property Updates from IoT Central", + "displayDescription": "The count of all failed property updates initiated from IoT Central", + "unit": "Count", + "aggregationType": "Total", + "supportedAggregationTypes": [ + "Total" + ], + "supportedTimeGrainTypes": [ + "PT1M", + "PT5M", + "PT15M", + "PT30M", + "PT1H", + "PT6H", + "PT12H", + "P1D" + ] + }, + { + "name": "d2c.property.update.success", + "displayName": "Successful Device Property Updates from Devices", + "displayDescription": "The count of all successful property updates initiated from devices", + "unit": "Count", + "aggregationType": "Total", + "supportedAggregationTypes": [ + "Total" + ], + "supportedTimeGrainTypes": [ + "PT1M", + "PT5M", + "PT15M", + "PT30M", + "PT1H", + "PT6H", + "PT12H", + "P1D" + ] + }, + { + "name": "d2c.property.update.failure", + "displayName": "Failed Device Property Updates from Devices", + "displayDescription": "The count of all failed property updates initiated from devices", + "unit": "Count", + "aggregationType": "Total", + "supportedAggregationTypes": [ + "Total" + ], + "supportedTimeGrainTypes": [ + "PT1M", + "PT5M", + "PT15M", + "PT30M", + "PT1H", + "PT6H", + "PT12H", + "P1D" + ] + } + ] + } + } + }, + { + "name": "Microsoft.IoTCentral/IoTApps/providers/Microsoft.Insights/diagnosticSettings/read", + "display": { + "provider": "Azure IoT Central", + "resource": "IoTApps", + "operation": "Read diagnostic setting", + "description": "Gets the diagnostic setting for the resource" + }, + "origin": "system" + }, + { + "name": "Microsoft.IoTCentral/IoTApps/providers/Microsoft.Insights/diagnosticSettings/write", + "display": { + "provider": "Azure IoT Central", + "resource": "IoTApps", + "operation": "Write diagnostic setting", + "description": "Creates or updates the diagnostic setting for the resource" + }, + "origin": "system" + } + ], + "nextLink": null + } + }, + "default": { + "description": "Error message returned for an unexpected response", + "headers": {}, + "body": { + "error": { + "code": "Error code", + "message": "Error message", + "target": "Error target" + } + } + } + } +} diff --git a/specification/iotcentral/resource-manager/Microsoft.IoTCentral/stable/2021-06-01/iotcentral.json b/specification/iotcentral/resource-manager/Microsoft.IoTCentral/stable/2021-06-01/iotcentral.json new file mode 100644 index 000000000000..03e20a917cb9 --- /dev/null +++ b/specification/iotcentral/resource-manager/Microsoft.IoTCentral/stable/2021-06-01/iotcentral.json @@ -0,0 +1,926 @@ +{ + "swagger": "2.0", + "info": { + "version": "2021-06-01", + "title": "IotCentralClient", + "description": "Use this API to manage IoT Central Applications in your Azure subscription." + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.IoTCentral/iotApps/{resourceName}": { + "get": { + "tags": [ + "Apps" + ], + "description": "Get the metadata of an IoT Central application.", + "operationId": "Apps_Get", + "x-ms-examples": { + "Apps_Get": { + "$ref": "./examples/Apps_Get.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/api-version" + }, + { + "$ref": "#/parameters/subscriptionId" + }, + { + "$ref": "#/parameters/resourceGroupName" + }, + { + "$ref": "#/parameters/resourceName" + } + ], + "responses": { + "200": { + "description": "The body contains all the non-security properties of the IoT Central application. Security-related properties are set to null.", + "schema": { + "$ref": "#/definitions/App" + } + }, + "default": { + "description": "Default error response", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "deprecated": false + }, + "put": { + "tags": [ + "Apps" + ], + "description": "Create or update the metadata of an IoT Central application. The usual pattern to modify a property is to retrieve the IoT Central application metadata and security metadata, and then combine them with the modified values in a new body to update the IoT Central application.", + "operationId": "Apps_CreateOrUpdate", + "x-ms-long-running-operation": true, + "x-ms-examples": { + "Apps_CreateOrUpdate": { + "$ref": "./examples/Apps_CreateOrUpdate.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/api-version" + }, + { + "$ref": "#/parameters/subscriptionId" + }, + { + "$ref": "#/parameters/resourceGroupName" + }, + { + "$ref": "#/parameters/resourceName" + }, + { + "name": "App", + "in": "body", + "description": "The IoT Central application metadata and security metadata.", + "required": true, + "schema": { + "$ref": "#/definitions/App" + } + } + ], + "responses": { + "200": { + "description": "This is returned as a response to the status polling request for the create or update operation. The body contains the resource representation that indicates a transitional provisioning state.", + "schema": { + "$ref": "#/definitions/App" + } + }, + "201": { + "description": "This is returned as a response to the status polling request for the create or update operation. The body contains the resource representation that indicates a transitional provisioning state.", + "schema": { + "$ref": "#/definitions/App" + } + }, + "202": { + "description": "Accepted - Put request accepted; the operation will complete asynchronously." + }, + "default": { + "description": "DefaultErrorResponse", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "deprecated": false + }, + "patch": { + "tags": [ + "Apps" + ], + "description": "Update the metadata of an IoT Central application.", + "operationId": "Apps_Update", + "x-ms-long-running-operation": true, + "x-ms-examples": { + "Apps_Update": { + "$ref": "./examples/Apps_Update.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/api-version" + }, + { + "$ref": "#/parameters/subscriptionId" + }, + { + "$ref": "#/parameters/resourceGroupName" + }, + { + "$ref": "#/parameters/resourceName" + }, + { + "name": "AppPatch", + "in": "body", + "description": "The IoT Central application metadata and security metadata.", + "required": true, + "schema": { + "$ref": "#/definitions/AppPatch" + } + } + ], + "responses": { + "200": { + "description": "This is returned as a response to the status polling request for the create or update operation. The body contains the resource representation that indicates a transitional provisioning state.", + "schema": { + "$ref": "#/definitions/App" + } + }, + "202": { + "description": "Accepted - Put request accepted; the operation will complete asynchronously." + }, + "default": { + "description": "DefaultErrorResponse", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "deprecated": false + }, + "delete": { + "tags": [ + "Apps" + ], + "description": "Delete an IoT Central application.", + "operationId": "Apps_Delete", + "x-ms-long-running-operation": true, + "x-ms-examples": { + "Apps_Delete": { + "$ref": "./examples/Apps_Delete.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/api-version" + }, + { + "$ref": "#/parameters/subscriptionId" + }, + { + "$ref": "#/parameters/resourceGroupName" + }, + { + "$ref": "#/parameters/resourceName" + } + ], + "responses": { + "200": { + "description": "This is returned as a response to the status polling request for the delete operation. The body contains the resource representation that indicates a transitional provisioning state." + }, + "202": { + "description": "Accepted - Delete request accepted; the operation will complete asynchronously." + }, + "204": { + "description": "Once the long running delete operation completes successfully, a 204 No Content status code is returned when the status polling request finds the IoT Central application metadata in the service and the status of the delete operation is set to a completed state." + }, + "default": { + "description": "DefaultErrorResponse", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.IoTCentral/iotApps": { + "get": { + "tags": [ + "Apps" + ], + "description": "Get all IoT Central Applications in a subscription.", + "operationId": "Apps_ListBySubscription", + "x-ms-examples": { + "Apps_ListBySubscription": { + "$ref": "./examples/Apps_ListBySubscription.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "parameters": [ + { + "$ref": "#/parameters/api-version" + }, + { + "$ref": "#/parameters/subscriptionId" + } + ], + "responses": { + "200": { + "description": "This is a synchronous operation. The body contains a JSON-serialized array of the metadata from all the IoT Central Applications in the subscription.", + "schema": { + "$ref": "#/definitions/AppListResult" + } + }, + "default": { + "description": "DefaultErrorResponse", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "deprecated": false + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.IoTCentral/iotApps": { + "get": { + "tags": [ + "Apps" + ], + "description": "Get all the IoT Central Applications in a resource group.", + "operationId": "Apps_ListByResourceGroup", + "x-ms-examples": { + "Apps_ListByResourceGroup": { + "$ref": "./examples/Apps_ListByResourceGroup.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "parameters": [ + { + "$ref": "#/parameters/api-version" + }, + { + "$ref": "#/parameters/subscriptionId" + }, + { + "$ref": "#/parameters/resourceGroupName" + } + ], + "responses": { + "200": { + "description": "This is a synchronous operation. The body contains a JSON-serialized array of the metadata from all the IoT Central Applications in the resource group.", + "schema": { + "$ref": "#/definitions/AppListResult" + } + }, + "default": { + "description": "DefaultErrorResponse", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "deprecated": false + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.IoTCentral/checkNameAvailability": { + "post": { + "tags": [ + "Apps" + ], + "description": "Check if an IoT Central application name is available.", + "operationId": "Apps_CheckNameAvailability", + "x-ms-examples": { + "Apps_CheckNameAvailability": { + "$ref": "./examples/Apps_CheckNameAvailability.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/api-version" + }, + { + "$ref": "#/parameters/subscriptionId" + }, + { + "name": "operationInputs", + "in": "body", + "description": "Set the name parameter in the OperationInputs structure to the name of the IoT Central application to check.", + "required": true, + "schema": { + "$ref": "#/definitions/OperationInputs" + } + } + ], + "responses": { + "200": { + "description": "This is a synchronous operation. The body contains a JSON-serialized response that specifies whether the IoT Central application name is available. If the name is not available, the body contains the reason.", + "schema": { + "$ref": "#/definitions/AppAvailabilityInfo" + } + }, + "default": { + "description": "DefaultErrorResponse", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "deprecated": false + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.IoTCentral/checkSubdomainAvailability": { + "post": { + "tags": [ + "Apps" + ], + "description": "Check if an IoT Central application subdomain is available.", + "operationId": "Apps_CheckSubdomainAvailability", + "x-ms-examples": { + "Apps_SubdomainAvailability": { + "$ref": "./examples/Apps_CheckSubdomainAvailability.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/api-version" + }, + { + "$ref": "#/parameters/subscriptionId" + }, + { + "name": "operationInputs", + "in": "body", + "description": "Set the name parameter in the OperationInputs structure to the subdomain of the IoT Central application to check.", + "required": true, + "schema": { + "$ref": "#/definitions/OperationInputs" + } + } + ], + "responses": { + "200": { + "description": "This is a synchronous operation. The body contains a JSON-serialized response that specifies whether the IoT Central application subdomain is available. If the subdomain is not available, the body contains the reason.", + "schema": { + "$ref": "#/definitions/AppAvailabilityInfo" + } + }, + "default": { + "description": "DefaultErrorResponse", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "deprecated": false + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.IoTCentral/appTemplates": { + "post": { + "tags": [ + "Apps" + ], + "description": "Get all available application templates.", + "operationId": "Apps_ListTemplates", + "x-ms-examples": { + "Apps_ListTemplates": { + "$ref": "./examples/Apps_Templates.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "parameters": [ + { + "$ref": "#/parameters/api-version" + }, + { + "$ref": "#/parameters/subscriptionId" + } + ], + "responses": { + "200": { + "description": "The body contains all the IoT Central application templates.", + "schema": { + "$ref": "#/definitions/AppTemplatesResult" + } + }, + "default": { + "description": "DefaultErrorResponse", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "deprecated": false + } + }, + "/providers/Microsoft.IoTCentral/operations": { + "get": { + "tags": [ + "Operations" + ], + "description": "Lists all of the available IoT Central Resource Provider operations.", + "operationId": "Operations_List", + "x-ms-examples": { + "Operations_List": { + "$ref": "./examples/Operations_List.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "parameters": [ + { + "$ref": "#/parameters/api-version" + } + ], + "responses": { + "200": { + "description": "OK. The request has succeeded.", + "schema": { + "$ref": "#/definitions/OperationListResult" + } + }, + "default": { + "description": "DefaultErrorResponse", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "deprecated": false + } + } + }, + "definitions": { + "AppProperties": { + "description": "The properties of an IoT Central application.", + "type": "object", + "properties": { + "applicationId": { + "description": "The ID of the application.", + "type": "string", + "readOnly": true + }, + "displayName": { + "description": "The display name of the application.", + "type": "string" + }, + "subdomain": { + "description": "The subdomain of the application.", + "type": "string" + }, + "template": { + "description": "The ID of the application template, which is a blueprint that defines the characteristics and behaviors of an application. Optional; if not specified, defaults to a blank blueprint and allows the application to be defined from scratch.", + "type": "string", + "x-ms-mutability": [ + "create", + "read" + ] + }, + "state": { + "description": "The current state of the application.", + "$ref": "#/definitions/AppState" + } + } + }, + "AppState": { + "description": "The current state of the application.", + "type": "string", + "enum": [ + "created", + "suspended" + ], + "x-ms-enum": { + "name": "AppState", + "modelAsString": true + }, + "readOnly": true + }, + "AppSkuInfo": { + "description": "Information about the SKU of the IoT Central application.", + "type": "object", + "properties": { + "name": { + "description": "The name of the SKU.", + "enum": [ + "ST0", + "ST1", + "ST2" + ], + "type": "string", + "x-ms-enum": { + "name": "AppSku", + "modelAsString": true + } + } + }, + "required": [ + "name" + ] + }, + "App": { + "description": "The IoT Central application.", + "type": "object", + "properties": { + "properties": { + "description": "The common properties of an IoT Central application.", + "x-ms-client-flatten": true, + "$ref": "#/definitions/AppProperties" + }, + "sku": { + "description": "A valid instance SKU.", + "$ref": "#/definitions/AppSkuInfo" + } + }, + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "required": [ + "sku" + ] + }, + "AppPatch": { + "description": "The description of the IoT Central application.", + "type": "object", + "properties": { + "tags": { + "description": "Instance tags", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "sku": { + "description": "A valid instance SKU.", + "$ref": "#/definitions/AppSkuInfo" + }, + "properties": { + "description": "The common properties of an IoT Central application.", + "x-ms-client-flatten": true, + "$ref": "#/definitions/AppProperties" + } + } + }, + "Resource": { + "description": "The common properties of an ARM resource.", + "properties": { + "id": { + "readOnly": true, + "type": "string", + "description": "The ARM resource identifier." + }, + "name": { + "readOnly": true, + "type": "string", + "description": "The ARM resource name.", + "pattern": "^(?![0-9]+$)(?!-)[a-zA-Z0-9-]{2,99}[a-zA-Z0-9]$", + "x-comment": "pattern must match #/parameters/resourceName" + }, + "type": { + "readOnly": true, + "type": "string", + "description": "The resource type." + }, + "location": { + "type": "string", + "description": "The resource location.", + "x-ms-mutability": [ + "create", + "read" + ] + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "The resource tags." + } + }, + "x-ms-azure-resource": true, + "required": [ + "location" + ] + }, + "CloudError": { + "description": "Error details.", + "x-ms-external": true, + "properties": { + "error": { + "description": "Error response body.", + "x-ms-client-flatten": true, + "$ref": "#/definitions/CloudErrorBody" + } + } + }, + "CloudErrorBody": { + "description": "Details of error response.", + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "The error code.", + "readOnly": true + }, + "message": { + "type": "string", + "description": "The error message.", + "readOnly": true + }, + "target": { + "type": "string", + "description": "The target of the particular error.", + "readOnly": true + }, + "details": { + "type": "array", + "description": "A list of additional details about the error.", + "items": { + "$ref": "#/definitions/CloudErrorBody" + } + } + } + }, + "AppListResult": { + "description": "A list of IoT Central Applications with a next link.", + "type": "object", + "properties": { + "nextLink": { + "description": "The link used to get the next page of IoT Central Applications.", + "type": "string" + }, + "value": { + "description": "A list of IoT Central Applications.", + "type": "array", + "items": { + "$ref": "#/definitions/App" + } + } + } + }, + "OperationListResult": { + "description": "A list of IoT Central operations. It contains a list of operations and a URL link to get the next set of results.", + "type": "object", + "properties": { + "nextLink": { + "description": "The link used to get the next page of IoT Central description objects.", + "type": "string" + }, + "value": { + "description": "A list of operations supported by the Microsoft.IoTCentral resource provider.", + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/Operation" + } + } + } + }, + "Operation": { + "description": "IoT Central REST API operation", + "type": "object", + "properties": { + "name": { + "readOnly": true, + "type": "string", + "description": "Operation name: {provider}/{resource}/{read | write | action | delete}" + }, + "display": { + "description": "The object that represents the operation.", + "$ref": "#/definitions/OperationDisplay" + }, + "origin": { + "description": "The intended executor of the operation.", + "type": "string", + "readOnly": true + }, + "properties": { + "description": "Additional descriptions for the operation.", + "type": "object", + "readOnly": true, + "x-ms-client-flatten": false + } + } + }, + "OperationDisplay": { + "description": "The object that represents the operation.", + "type": "object", + "properties": { + "provider": { + "readOnly": true, + "type": "string", + "description": "Service provider: Microsoft IoT Central" + }, + "resource": { + "readOnly": true, + "type": "string", + "description": "Resource Type: IoT Central" + }, + "operation": { + "readOnly": true, + "type": "string", + "description": "Name of the operation" + }, + "description": { + "readOnly": true, + "type": "string", + "description": "Friendly description for the operation," + } + } + }, + "OperationInputs": { + "description": "Input values.", + "type": "object", + "properties": { + "name": { + "description": "The name of the IoT Central application instance to check.", + "type": "string" + }, + "type": { + "description": "The type of the IoT Central resource to query.", + "type": "string", + "default": "IoTApps" + } + }, + "required": [ + "name" + ] + }, + "AppAvailabilityInfo": { + "description": "The properties indicating whether a given IoT Central application name or subdomain is available.", + "type": "object", + "properties": { + "nameAvailable": { + "description": "The value which indicates whether the provided name is available.", + "type": "boolean", + "readOnly": true + }, + "reason": { + "description": "The reason for unavailability.", + "type": "string", + "readOnly": true + }, + "message": { + "description": "The detailed reason message.", + "type": "string", + "readOnly": true + } + } + }, + "AppTemplate": { + "description": "IoT Central Application Template.", + "type": "object", + "properties": { + "manifestId": { + "description": "The ID of the template.", + "type": "string", + "readOnly": true + }, + "manifestVersion": { + "description": "The version of the template.", + "type": "string", + "readOnly": true + }, + "name": { + "description": "The name of the template.", + "type": "string", + "readOnly": true + }, + "title": { + "description": "The title of the template.", + "type": "string", + "readOnly": true + }, + "order": { + "description": "The order of the template in the templates list.", + "type": "number", + "readOnly": true + }, + "description": { + "description": "The description of the template.", + "type": "string", + "readOnly": true + }, + "industry": { + "description": "The industry of the template.", + "type": "string", + "readOnly": true + }, + "locations": { + "description": "A list of locations that support the template.", + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/AppTemplateLocations" + } + } + } + }, + "AppTemplateLocations": { + "description": "IoT Central Application Template Locations.", + "type": "object", + "properties": { + "id": { + "description": "The ID of the location.", + "type": "string", + "readOnly": true + }, + "displayName": { + "description": "The display name of the location.", + "type": "string", + "readOnly": true + } + } + }, + "AppTemplatesResult": { + "description": "A list of IoT Central Application Templates with a next link.", + "type": "object", + "properties": { + "nextLink": { + "description": "The link used to get the next page of IoT Central application templates.", + "type": "string" + }, + "value": { + "description": "A list of IoT Central Application Templates.", + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/AppTemplate" + } + } + } + } + }, + "parameters": { + "subscriptionId": { + "name": "subscriptionId", + "in": "path", + "description": "The subscription identifier.", + "required": true, + "type": "string" + }, + "api-version": { + "name": "api-version", + "in": "query", + "description": "The version of the API.", + "required": true, + "type": "string" + }, + "resourceGroupName": { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group that contains the IoT Central application.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "resourceName": { + "name": "resourceName", + "in": "path", + "description": "The ARM resource name of the IoT Central application.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method", + "x-comment": "validation must match #/definitions/Resource" + } + } +} diff --git a/specification/iotcentral/resource-manager/readme.md b/specification/iotcentral/resource-manager/readme.md index e173636bff92..0e26def64062 100644 --- a/specification/iotcentral/resource-manager/readme.md +++ b/specification/iotcentral/resource-manager/readme.md @@ -5,7 +5,9 @@ This is the AutoRest configuration file for IotCentral. --- + ## Getting Started + To build the SDK for IotCentral, simply [Install AutoRest](https://aka.ms/autorest/install) and in this folder, run: > `autorest` @@ -13,18 +15,39 @@ To build the SDK for IotCentral, simply [Install AutoRest](https://aka.ms/autore To see additional help and options, run: > `autorest --help` + --- ## Configuration ### Basic Information + These are the global settings for IotCentral. ``` yaml openapi-type: arm -tag: package-2018-09-01 +tag: package-2021-06 ``` + +### Tag: package-2021-06 + +These settings apply only when `--tag=package-2021-06` is specified on the command line. + +```yaml $(tag) == 'package-2021-06' +input-file: + - Microsoft.IoTCentral/stable/2021-06-01/iotcentral.json +directive: + - suppress: R4009 + from: iotcentral.json + reason: We do not yet support systemdata. + - suppress: R3018 + from: iotcentral.json + reason: resource name availability needs to be boolean (available or not) + - suppress: R4018 + from: iotcentral.json + reason: We do not yet support isDataAction, display.description and display.resource. +``` ### Tag: package-2018-09-01 These settings apply only when `--tag=package-2018-09-01` is specified on the command line. @@ -44,6 +67,7 @@ input-file: ``` --- + # Code Generation ## Swagger to SDK @@ -131,6 +155,3 @@ java: regenerate-manager: true generate-interface: true ``` - - -