{
  "swagger": "2.0",
  "schemes": [
    "https"
  ],
  "host": "azure.local",
  "basePath": "/api/preview",
  "info": {
    "description": "Azure IoT Central is a service that makes it easy to connect, monitor, and manage your IoT devices at scale.",
    "title": "Azure IoT Central",
    "version": "preview",
    "x-apisguru-categories": [
      "cloud"
    ],
    "x-logo": {
      "url": "https://api.apis.guru/v2/cache/logo/https_assets.onestore.ms_cdnfiles_onestorerolling-1606-01000_shell_v3_images_logo_microsoft.png"
    },
    "x-origin": [
      {
        "format": "swagger",
        "url": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/iotcentral.json",
        "version": "2.0"
      }
    ],
    "x-preferred": false,
    "x-providerName": "azure.com",
    "x-serviceName": "iotcentral",
    "x-tags": [
      "Azure",
      "Microsoft"
    ]
  },
  "consumes": [
    "application/json"
  ],
  "produces": [
    "application/json"
  ],
  "securityDefinitions": {
    "azure_auth": {
      "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
      "description": "Azure Active Directory OAuth2 Flow",
      "flow": "implicit",
      "scopes": {
        "user_impersonation": "impersonate your user account"
      },
      "type": "oauth2"
    }
  },
  "parameters": {
    "CentralDnsSuffixInPath": {
      "default": "azureiotcentral.com",
      "description": "The DNS suffix used as the base for all Azure IoT Central service requests.",
      "in": "path",
      "name": "centralDnsSuffixInPath",
      "required": true,
      "type": "string",
      "x-ms-parameter-location": "client",
      "x-ms-skip-url-encoding": true
    },
    "ComponentName": {
      "description": "Name of the device component.",
      "in": "path",
      "name": "component_name",
      "required": true,
      "type": "string",
      "x-ms-parameter-location": "method"
    },
    "DeviceId": {
      "description": "Unique ID of the device.",
      "in": "path",
      "name": "device_id",
      "required": true,
      "type": "string",
      "x-ms-parameter-location": "method"
    },
    "DeviceTemplateId": {
      "description": "Unique ID of the device template.",
      "in": "path",
      "name": "device_template_id",
      "required": true,
      "type": "string",
      "x-ms-parameter-location": "method"
    },
    "Subdomain": {
      "description": "Application subdomain.",
      "in": "path",
      "name": "subdomain",
      "required": true,
      "type": "string",
      "x-ms-parameter-location": "client"
    }
  },
  "paths": {
    "/apiTokens": {
      "get": {
        "operationId": "ApiTokens_List",
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/ApiTokenCollection"
            }
          }
        },
        "summary": "Get the list of API tokens in an application.",
        "x-ms-examples": {
          "List API tokens": {
            "description": "Get a list of API tokens in your application.",
            "parameters": {
              "centralDnsSuffixInPath": "azureiotcentral.com",
              "subdomain": "appsubdomain"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "expiry": "2020-10-18T18:30:40.227Z",
                      "id": "testtoken",
                      "roles": [
                        "ca310b8d-2f4a-44e0-a36e-957c202cd8d4"
                      ]
                    }
                  ]
                }
              }
            },
            "title": "List API tokens in your application"
          }
        },
        "x-ms-pageable": {
          "nextLinkName": null
        }
      }
    },
    "/apiTokens/{token_id}": {
      "delete": {
        "operationId": "ApiTokens_Remove",
        "parameters": [
          {
            "description": "Unique ID for the API token.",
            "in": "path",
            "name": "token_id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          }
        },
        "summary": "Delete an API token.",
        "x-ms-examples": {
          "Delete API token": {
            "description": "Delete an API token using its name.",
            "parameters": {
              "centralDnsSuffixInPath": "azureiotcentral.com",
              "subdomain": "appsubdomain",
              "token_id": "testtoken"
            },
            "responses": {
              "204": {}
            },
            "title": "Delete API token"
          }
        }
      },
      "get": {
        "operationId": "ApiTokens_Get",
        "parameters": [
          {
            "description": "Unique ID for the API token.",
            "in": "path",
            "name": "token_id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/ApiToken"
            }
          }
        },
        "summary": "Get an API token by ID.",
        "x-ms-examples": {
          "Get API token by ID": {
            "description": "Get a list of API tokens in your application.",
            "parameters": {
              "centralDnsSuffixInPath": "azureiotcentral.com",
              "subdomain": "appsubdomain",
              "token_id": "testtoken"
            },
            "responses": {
              "200": {
                "body": {
                  "expiry": "2020-10-18T18:30:40.227Z",
                  "id": "testtoken",
                  "roles": [
                    "ca310b8d-2f4a-44e0-a36e-957c202cd8d4"
                  ]
                }
              }
            },
            "title": "Get API tokens in your application"
          }
        }
      },
      "put": {
        "operationId": "ApiTokens_Set",
        "parameters": [
          {
            "description": "Unique ID for the API token.",
            "in": "path",
            "name": "token_id",
            "required": true,
            "type": "string"
          },
          {
            "description": "API token body.",
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApiToken"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/ApiToken"
            }
          }
        },
        "summary": "Create a new API token in the application.",
        "x-ms-examples": {
          "Create API token": {
            "description": "Get a list of API tokens in your application.",
            "parameters": {
              "body": {
                "roles": [
                  "c7be2c6b-797e-4551-bb24-33709f6b2e20"
                ]
              },
              "centralDnsSuffixInPath": "azureiotcentral.com",
              "subdomain": "appsubdomain",
              "token_id": "testtoken"
            },
            "responses": {
              "200": {
                "body": {
                  "expiry": "2020-10-18T18:30:40.227Z",
                  "id": "testtoken",
                  "roles": [
                    "ca310b8d-2f4a-44e0-a36e-957c202cd8d4"
                  ],
                  "token": "SharedAccessSignature sr=..."
                }
              }
            },
            "title": "Get API tokens in your application"
          }
        }
      }
    },
    "/continuousDataExports": {
      "get": {
        "operationId": "ContinuousDataExports_List",
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/ContinuousDataExportCollection"
            }
          }
        },
        "summary": "Get the list of continuous data exports in an application.",
        "x-ms-examples": {
          "List exports": {
            "description": "Get a list of all exports in your application",
            "parameters": {
              "centralDnsSuffixInPath": "azureiotcentral.com",
              "subdomain": "appsubdomain"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "displayName": "Export to Storage 1",
                      "enabled": true,
                      "endpoint": {
                        "connectionString": "DefaultEndpointsProtocol=https;AccountName=jeffscratchppe;AccountKey=*****;EndpointSuffix=core.windows.net",
                        "name": "cde",
                        "type": "StorageEndpoint"
                      },
                      "etag": "076f201d-e9c3-4bef-af0a-608420ba4526",
                      "id": "16cad42a-bd47-4684-b106-9f9b4d2d02e9",
                      "sources": [
                        "devices",
                        "deviceTemplates",
                        "telemetry"
                      ],
                      "status": "starting"
                    },
                    {
                      "displayName": "Export to Event Hubs 1",
                      "enabled": false,
                      "endpoint": {
                        "connectionString": "Endpoint=sb://roommonitoring.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=*****",
                        "name": "roommonitoring-ehout",
                        "type": "EventHubsEndpoint"
                      },
                      "etag": "3398c6b5-de40-44ad-bf4a-0c216e2b4d88",
                      "id": "9dce0282-751d-4121-aed3-b316d658f17a",
                      "sources": [
                        "devices",
                        "deviceTemplates",
                        "telemetry"
                      ],
                      "status": "stopping"
                    }
                  ]
                }
              }
            },
            "title": "List exports"
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/continuousDataExports/{export_id}": {
      "delete": {
        "operationId": "ContinuousDataExports_Remove",
        "parameters": [
          {
            "description": "Unique ID for the continuous data export.",
            "in": "path",
            "name": "export_id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          }
        },
        "summary": "Delete a continuous data export.",
        "x-ms-examples": {
          "Delete export": {
            "description": "Delete an export using its Id.",
            "parameters": {
              "centralDnsSuffixInPath": "azureiotcentral.com",
              "export_id": "abc",
              "subdomain": "appsubdomain"
            },
            "responses": {
              "204": {}
            },
            "title": "Delete export"
          }
        }
      },
      "get": {
        "operationId": "ContinuousDataExports_Get",
        "parameters": [
          {
            "description": "Unique ID for the continuous data export.",
            "in": "path",
            "name": "export_id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/ContinuousDataExport"
            }
          }
        },
        "summary": "Get a continuous data export by ID.",
        "x-ms-examples": {
          "Get export": {
            "description": "Get an export using its Id.",
            "parameters": {
              "centralDnsSuffixInPath": "azureiotcentral.com",
              "export_id": "16cad42a-bd47-4684-b106-9f9b4d2d02e9",
              "subdomain": "appsubdomain"
            },
            "responses": {
              "200": {
                "body": {
                  "displayName": "Export to Storage 1",
                  "enabled": true,
                  "endpoint": {
                    "connectionString": "DefaultEndpointsProtocol=https;AccountName=jeffscratchppe;AccountKey=*****;EndpointSuffix=core.windows.net",
                    "name": "cde",
                    "type": "StorageEndpoint"
                  },
                  "etag": "076f201d-e9c3-4bef-af0a-608420ba4526",
                  "id": "16cad42a-bd47-4684-b106-9f9b4d2d02e9",
                  "sources": [
                    "devices",
                    "deviceTemplates",
                    "telemetry"
                  ],
                  "status": "running"
                }
              }
            },
            "title": "Get export"
          }
        }
      },
      "put": {
        "operationId": "ContinuousDataExports_Set",
        "parameters": [
          {
            "description": "Unique ID for the continuous data export.",
            "in": "path",
            "name": "export_id",
            "required": true,
            "type": "string"
          },
          {
            "description": "Data export body.",
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ContinuousDataExport"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/ContinuousDataExport"
            }
          }
        },
        "summary": "Create a new continuous data export or update an existing one by ID.",
        "x-ms-examples": {
          "Create or update export": {
            "description": "Create a new export or update an existing export, specifying its Id.",
            "parameters": {
              "body": {
                "displayName": "Export to Storage 2",
                "enabled": true,
                "endpoint": {
                  "connectionString": "{Connection-string-to-blob-storage}",
                  "name": "container",
                  "type": "StorageEndpoint"
                },
                "sources": [
                  "devices",
                  "deviceTemplates",
                  "telemetry"
                ]
              },
              "centralDnsSuffixInPath": "azureiotcentral.com",
              "export_id": "abc",
              "subdomain": "appsubdomain"
            },
            "responses": {
              "200": {
                "body": {
                  "displayName": "Export to Storage 2",
                  "enabled": true,
                  "endpoint": {
                    "connectionString": "DefaultEndpointsProtocol=https;AccountName=contosoiotcstorage;AccountKey=*****;EndpointSuffix=core.windows.net",
                    "name": "container",
                    "type": "StorageEndpoint"
                  },
                  "etag": "7e02c03e-25cb-4d1c-9f6b-019506283872",
                  "id": "abc",
                  "sources": [
                    "devices",
                    "deviceTemplates",
                    "telemetry"
                  ],
                  "status": "starting"
                }
              }
            },
            "title": "Create or update export"
          }
        }
      }
    },
    "/deviceTemplates": {
      "get": {
        "operationId": "DeviceTemplates_List",
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/DeviceTemplateCollection"
            }
          }
        },
        "summary": "Get the list of device templates in an application",
        "x-ms-examples": {
          "List device templates": {
            "description": "List device templates that are currently published in the application. This operation does not return device templates in draft state.",
            "parameters": {
              "centralDnsSuffixInPath": "azureiotcentral.com",
              "subdomain": "appsubdomain"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "capabilityModel": {
                        "@context": [
                          "http://azureiot.com/v1/contexts/IoTModel.json"
                        ],
                        "@id": "urn:rigado:RS40_Occupancy_Sensor:1",
                        "@type": [
                          "CapabilityModel"
                        ],
                        "contents": [],
                        "displayName": "RS40 Occupancy Sensor",
                        "implements": [
                          {
                            "@id": "urn:rigado:RS40_Occupancy_Sensor:Device_information_RS40_Occupancy_Sensor:1",
                            "@type": [
                              "InterfaceInstance"
                            ],
                            "name": "Device_information_RS40_Occupancy_Sensor",
                            "schema": {
                              "@id": "urn:azureiot:DeviceManagement:DeviceInformation:1",
                              "@type": [
                                "Interface"
                              ],
                              "contents": [
                                {
                                  "@id": "urn:azureiot:DeviceManagement:DeviceInformation:manufacturer:1",
                                  "@type": [
                                    "Property"
                                  ],
                                  "description": "Company name of the device manufacturer. This could be the same as the name of the original equipment manufacturer (OEM). Ex. Contoso.",
                                  "displayName": "Manufacturer",
                                  "name": "manufacturer",
                                  "schema": "string"
                                },
                                {
                                  "@id": "urn:azureiot:DeviceManagement:DeviceInformation:model:1",
                                  "@type": [
                                    "Property"
                                  ],
                                  "description": "Device model name or ID. Ex. Surface Book 2.",
                                  "displayName": "Device model",
                                  "name": "model",
                                  "schema": "string"
                                },
                                {
                                  "@id": "urn:azureiot:DeviceManagement:DeviceInformation:swVersion:1",
                                  "@type": [
                                    "Property"
                                  ],
                                  "description": "Version of the software on your device. This could be the version of your firmware. Ex. 1.3.45",
                                  "displayName": "Software version",
                                  "name": "swVersion",
                                  "schema": "string"
                                },
                                {
                                  "@id": "urn:azureiot:DeviceManagement:DeviceInformation:osName:1",
                                  "@type": [
                                    "Property"
                                  ],
                                  "description": "Name of the operating system on the device. Ex. Windows 10 IoT Core.",
                                  "displayName": "Operating system name",
                                  "name": "osName",
                                  "schema": "string"
                                },
                                {
                                  "@id": "urn:azureiot:DeviceManagement:DeviceInformation:processorArchitecture:1",
                                  "@type": [
                                    "Property"
                                  ],
                                  "description": "Architecture of the processor on the device. Ex. x64 or ARM.",
                                  "displayName": "Processor architecture",
                                  "name": "processorArchitecture",
                                  "schema": "string"
                                },
                                {
                                  "@id": "urn:azureiot:DeviceManagement:DeviceInformation:processorManufacturer:1",
                                  "@type": [
                                    "Property"
                                  ],
                                  "description": "Name of the manufacturer of the processor on the device. Ex. Intel.",
                                  "displayName": "Processor manufacturer",
                                  "name": "processorManufacturer",
                                  "schema": "string"
                                },
                                {
                                  "@id": "urn:azureiot:DeviceManagement:DeviceInformation:totalStorage:1",
                                  "@type": [
                                    "Property"
                                  ],
                                  "description": "Total available storage on the device in kilobytes. Ex. 2048000 kilobytes.",
                                  "displayName": "Total storage",
                                  "displayUnit": "kilobytes",
                                  "name": "totalStorage",
                                  "schema": "long"
                                },
                                {
                                  "@id": "urn:azureiot:DeviceManagement:DeviceInformation:totalMemory:1",
                                  "@type": [
                                    "Property"
                                  ],
                                  "description": "Total available memory on the device in kilobytes. Ex. 256000 kilobytes.",
                                  "displayName": "Total memory",
                                  "displayUnit": "kilobytes",
                                  "name": "totalMemory",
                                  "schema": "long"
                                }
                              ],
                              "displayName": "Device Information"
                            }
                          },
                          {
                            "@id": "urn:rigado:RS40_Occupancy_Sensor:RS40_Occupancy_Sensor:1",
                            "@type": [
                              "InterfaceInstance"
                            ],
                            "name": "RS40_Occupancy_Sensor",
                            "schema": {
                              "@id": "urn:rigado:interfaces:RS40_Occupancy_Sensor:1",
                              "@type": [
                                "Interface"
                              ],
                              "contents": [
                                {
                                  "@id": "urn:rigado:interfaces:RS40_Occupancy_Sensor:count:1",
                                  "@type": [
                                    "Telemetry"
                                  ],
                                  "comment": "",
                                  "description": "Count of motion events seen in the previous interval",
                                  "displayName": "count",
                                  "name": "count",
                                  "schema": "integer"
                                },
                                {
                                  "@id": "urn:rigado:interfaces:RS40_Occupancy_Sensor:state:1",
                                  "@type": [
                                    "Telemetry"
                                  ],
                                  "description": "Occupancy State",
                                  "displayName": "state",
                                  "name": "state",
                                  "schema": "boolean"
                                }
                              ],
                              "displayName": "Interface"
                            }
                          }
                        ]
                      },
                      "displayName": "RS40 Occupancy Sensor",
                      "id": "urn:sbk9sd6sl:modelDefinition:u3b_fwd7os",
                      "solutionModel": {
                        "@id": "urn:sbk9sd6sl:modelDefinition:rxyaituqzz",
                        "@type": [
                          "SolutionModel"
                        ],
                        "cloudProperties": [],
                        "initialValues": [],
                        "overrides": []
                      },
                      "types": [
                        "DeviceModel"
                      ]
                    }
                  ]
                }
              }
            },
            "title": "List device templates"
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/deviceTemplates/{device_template_id}": {
      "delete": {
        "description": "Delete an existing device template by device ID.",
        "operationId": "DeviceTemplates_Remove",
        "parameters": [
          {
            "$ref": "#/parameters/DeviceTemplateId"
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          }
        },
        "summary": "Delete a device template",
        "x-ms-examples": {
          "Delete a device template by Id": {
            "description": "Delete a published device template that has no devices currently associated to it. This operation does not operate on device templates in draft state.",
            "parameters": {
              "centralDnsSuffixInPath": "azureiotcentral.com",
              "device_template_id": "urn:sbk9sd6sl:modelDefinition:u3b_fwd7os",
              "subdomain": "appsubdomain"
            },
            "responses": {
              "204": {}
            },
            "title": "Delete a device template by Id"
          }
        }
      },
      "get": {
        "operationId": "DeviceTemplates_Get",
        "parameters": [
          {
            "$ref": "#/parameters/DeviceTemplateId"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/DeviceTemplate"
            }
          }
        },
        "summary": "Get a device template by ID",
        "x-ms-examples": {
          "Get a device template by Id": {
            "description": "Get a published device template by Id. This operation does not return device templates in draft state.",
            "parameters": {
              "centralDnsSuffixInPath": "azureiotcentral.com",
              "device_template_id": "urn:sbk9sd6sl:modelDefinition:u3b_fwd7os",
              "subdomain": "appsubdomain"
            },
            "responses": {
              "200": {
                "body": {
                  "capabilityModel": {
                    "@context": [
                      "http://azureiot.com/v1/contexts/IoTModel.json"
                    ],
                    "@id": "urn:rigado:RS40_Occupancy_Sensor:1",
                    "@type": [
                      "CapabilityModel"
                    ],
                    "contents": [],
                    "displayName": "RS40 Occupancy Sensor",
                    "implements": [
                      {
                        "@id": "urn:rigado:RS40_Occupancy_Sensor:Device_information_RS40_Occupancy_Sensor:1",
                        "@type": [
                          "InterfaceInstance"
                        ],
                        "name": "Device_information_RS40_Occupancy_Sensor",
                        "schema": {
                          "@id": "urn:azureiot:DeviceManagement:DeviceInformation:1",
                          "@type": [
                            "Interface"
                          ],
                          "contents": [
                            {
                              "@id": "urn:azureiot:DeviceManagement:DeviceInformation:manufacturer:1",
                              "@type": [
                                "Property"
                              ],
                              "description": "Company name of the device manufacturer. This could be the same as the name of the original equipment manufacturer (OEM). Ex. Contoso.",
                              "displayName": "Manufacturer",
                              "name": "manufacturer",
                              "schema": "string"
                            },
                            {
                              "@id": "urn:azureiot:DeviceManagement:DeviceInformation:model:1",
                              "@type": [
                                "Property"
                              ],
                              "description": "Device model name or ID. Ex. Surface Book 2.",
                              "displayName": "Device model",
                              "name": "model",
                              "schema": "string"
                            },
                            {
                              "@id": "urn:azureiot:DeviceManagement:DeviceInformation:swVersion:1",
                              "@type": [
                                "Property"
                              ],
                              "description": "Version of the software on your device. This could be the version of your firmware. Ex. 1.3.45",
                              "displayName": "Software version",
                              "name": "swVersion",
                              "schema": "string"
                            },
                            {
                              "@id": "urn:azureiot:DeviceManagement:DeviceInformation:osName:1",
                              "@type": [
                                "Property"
                              ],
                              "description": "Name of the operating system on the device. Ex. Windows 10 IoT Core.",
                              "displayName": "Operating system name",
                              "name": "osName",
                              "schema": "string"
                            },
                            {
                              "@id": "urn:azureiot:DeviceManagement:DeviceInformation:processorArchitecture:1",
                              "@type": [
                                "Property"
                              ],
                              "description": "Architecture of the processor on the device. Ex. x64 or ARM.",
                              "displayName": "Processor architecture",
                              "name": "processorArchitecture",
                              "schema": "string"
                            },
                            {
                              "@id": "urn:azureiot:DeviceManagement:DeviceInformation:processorManufacturer:1",
                              "@type": [
                                "Property"
                              ],
                              "description": "Name of the manufacturer of the processor on the device. Ex. Intel.",
                              "displayName": "Processor manufacturer",
                              "name": "processorManufacturer",
                              "schema": "string"
                            },
                            {
                              "@id": "urn:azureiot:DeviceManagement:DeviceInformation:totalStorage:1",
                              "@type": [
                                "Property"
                              ],
                              "description": "Total available storage on the device in kilobytes. Ex. 2048000 kilobytes.",
                              "displayName": "Total storage",
                              "displayUnit": "kilobytes",
                              "name": "totalStorage",
                              "schema": "long"
                            },
                            {
                              "@id": "urn:azureiot:DeviceManagement:DeviceInformation:totalMemory:1",
                              "@type": [
                                "Property"
                              ],
                              "description": "Total available memory on the device in kilobytes. Ex. 256000 kilobytes.",
                              "displayName": "Total memory",
                              "displayUnit": "kilobytes",
                              "name": "totalMemory",
                              "schema": "long"
                            }
                          ],
                          "displayName": "Device Information"
                        }
                      },
                      {
                        "@id": "urn:rigado:RS40_Occupancy_Sensor:RS40_Occupancy_Sensor:1",
                        "@type": [
                          "InterfaceInstance"
                        ],
                        "name": "RS40_Occupancy_Sensor",
                        "schema": {
                          "@id": "urn:rigado:interfaces:RS40_Occupancy_Sensor:1",
                          "@type": [
                            "Interface"
                          ],
                          "contents": [
                            {
                              "@id": "urn:rigado:interfaces:RS40_Occupancy_Sensor:count:1",
                              "@type": [
                                "Telemetry"
                              ],
                              "comment": "",
                              "description": "Count of motion events seen in the previous interval",
                              "displayName": "count",
                              "name": "count",
                              "schema": "integer"
                            },
                            {
                              "@id": "urn:rigado:interfaces:RS40_Occupancy_Sensor:state:1",
                              "@type": [
                                "Telemetry"
                              ],
                              "description": "Occupancy State",
                              "displayName": "state",
                              "name": "state",
                              "schema": "boolean"
                            }
                          ],
                          "displayName": "Interface"
                        }
                      }
                    ]
                  },
                  "displayName": "RS40 Occupancy Sensor",
                  "id": "urn:sbk9sd6sl:modelDefinition:u3b_fwd7os",
                  "solutionModel": {
                    "@id": "urn:sbk9sd6sl:modelDefinition:rxyaituqzz",
                    "@type": [
                      "SolutionModel"
                    ],
                    "cloudProperties": [],
                    "initialValues": [],
                    "overrides": []
                  },
                  "types": [
                    "DeviceModel"
                  ]
                }
              }
            },
            "title": "Get a device template by Id"
          }
        }
      },
      "put": {
        "operationId": "DeviceTemplates_Set",
        "parameters": [
          {
            "$ref": "#/parameters/DeviceTemplateId"
          },
          {
            "description": "Device template body.",
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DeviceTemplate"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/DeviceTemplate"
            }
          }
        },
        "summary": "Create or update a device template by ID",
        "x-ms-examples": {
          "Create a device template": {
            "description": "Creates and publishes a device template. In the body, specify the full device template object.",
            "parameters": {
              "body": {
                "capabilityModel": {
                  "@context": [
                    "http://azureiot.com/v1/contexts/IoTModel.json"
                  ],
                  "@id": "urn:storeAnalyticsCheckoutPnp:capabilityModel:1",
                  "@type": [
                    "CapabilityModel"
                  ],
                  "contents": [],
                  "displayName": "Motion detector",
                  "implements": [
                    {
                      "@id": "urn:storeAnalyticsCheckoutPnp:capabilityModel:fyy5xn_y:1",
                      "@type": [
                        "InterfaceInstance"
                      ],
                      "displayName": "Interface",
                      "name": "Interface",
                      "schema": {
                        "@id": "urn:storeAnalyticsCheckoutPnp:Interface:1",
                        "@type": [
                          "Interface"
                        ],
                        "contents": [
                          {
                            "@id": "urn:storeAnalyticsCheckoutPnp:Interface:Temperature:1",
                            "@type": [
                              "Telemetry",
                              "SemanticType/Temperature"
                            ],
                            "displayName": "Temperature",
                            "name": "Temperature",
                            "schema": "double",
                            "unit": "Units/Temperature/celsius"
                          },
                          {
                            "@id": "urn:storeAnalyticsCheckoutPnp:Interface:Humidity:1",
                            "@type": [
                              "Telemetry",
                              "SemanticType/Humidity"
                            ],
                            "displayName": "Humidity",
                            "name": "Humidity",
                            "schema": "double",
                            "unit": "Units/Humidity/percent"
                          },
                          {
                            "@id": "urn:storeAnalyticsCheckoutPnp:Interface:Occupancy:1",
                            "@type": [
                              "Telemetry"
                            ],
                            "displayName": "Occupancy",
                            "name": "Occupancy",
                            "schema": "double"
                          }
                        ],
                        "displayName": "Interface"
                      }
                    }
                  ]
                },
                "displayName": "Environment sensor 1",
                "solutionModel": {
                  "@id": "urn:1dsfbt7i:modelDefinition:zadjfmgvh",
                  "@type": [
                    "SolutionModel"
                  ],
                  "cloudProperties": [
                    {
                      "@id": "urn:1dsfbt7i:modelDefinition:AssetId",
                      "@type": [
                        "CloudProperty"
                      ],
                      "displayName": "Asset Id",
                      "name": "AssetId",
                      "schema": "string",
                      "valueDetail": {
                        "@id": "urn:1dsfbt7i:modelDefinition:AssetId:valueDetail",
                        "@type": [
                          "ValueDetail/StringValueDetail"
                        ]
                      }
                    }
                  ],
                  "initialValues": [],
                  "overrides": [
                    {
                      "@id": "urn:1dsfbt7i:modelDefinition:1qehkys5",
                      "@type": [
                        "Override"
                      ],
                      "capability": {
                        "@type": [
                          "CapabilityReference"
                        ],
                        "component": "urn:storeAnalyticsCheckoutPnp:capabilityModel:fyy5xn_y:1",
                        "reference": "urn:storeAnalyticsCheckoutPnp:Interface:Occupancy:1"
                      },
                      "valueDetail": {
                        "@type": [
                          "ValueDetail/NumberValueDetail"
                        ],
                        "maxValue": {
                          "@value": "50"
                        },
                        "minValue": {
                          "@value": "0"
                        }
                      }
                    }
                  ]
                },
                "types": [
                  "DeviceModel"
                ]
              },
              "centralDnsSuffixInPath": "azureiotcentral.com",
              "device_template_id": "environmentstemplateid",
              "subdomain": "appsubdomain"
            },
            "responses": {
              "200": {
                "body": {
                  "capabilityModel": {
                    "@context": [
                      "http://azureiot.com/v1/contexts/IoTModel.json"
                    ],
                    "@id": "urn:storeAnalyticsCheckoutPnp:capabilityModel:1",
                    "@type": [
                      "CapabilityModel"
                    ],
                    "contents": [],
                    "displayName": "Motion detector",
                    "implements": [
                      {
                        "@id": "urn:storeAnalyticsCheckoutPnp:capabilityModel:fyy5xn_y:1",
                        "@type": [
                          "InterfaceInstance"
                        ],
                        "displayName": "Interface",
                        "name": "Interface",
                        "schema": {
                          "@id": "urn:storeAnalyticsCheckoutPnp:Interface:1",
                          "@type": [
                            "Interface"
                          ],
                          "contents": [
                            {
                              "@id": "urn:storeAnalyticsCheckoutPnp:Interface:Temperature:1",
                              "@type": [
                                "Telemetry",
                                "SemanticType/Temperature"
                              ],
                              "displayName": "Temperature",
                              "name": "Temperature",
                              "schema": "double",
                              "unit": "Units/Temperature/celsius"
                            },
                            {
                              "@id": "urn:storeAnalyticsCheckoutPnp:Interface:Humidity:1",
                              "@type": [
                                "Telemetry",
                                "SemanticType/Humidity"
                              ],
                              "displayName": "Humidity",
                              "name": "Humidity",
                              "schema": "double",
                              "unit": "Units/Humidity/percent"
                            },
                            {
                              "@id": "urn:storeAnalyticsCheckoutPnp:Interface:Occupancy:1",
                              "@type": [
                                "Telemetry"
                              ],
                              "displayName": "Occupancy",
                              "name": "Occupancy",
                              "schema": "double"
                            }
                          ],
                          "displayName": "Interface"
                        }
                      }
                    ]
                  },
                  "displayName": "Environment sensor 1",
                  "id": "environmentstemplateid",
                  "solutionModel": {
                    "@id": "urn:1dsfbt7i:modelDefinition:zadjfmgvh",
                    "@type": [
                      "SolutionModel"
                    ],
                    "cloudProperties": [
                      {
                        "@id": "urn:1dsfbt7i:modelDefinition:AssetId",
                        "@type": [
                          "CloudProperty"
                        ],
                        "displayName": "Asset Id",
                        "name": "AssetId",
                        "schema": "string",
                        "valueDetail": {
                          "@id": "urn:1dsfbt7i:modelDefinition:AssetId:valueDetail",
                          "@type": [
                            "ValueDetail/StringValueDetail"
                          ]
                        }
                      }
                    ],
                    "initialValues": [],
                    "overrides": [
                      {
                        "@id": "urn:1dsfbt7i:modelDefinition:1qehkys5",
                        "@type": [
                          "Override"
                        ],
                        "capability": {
                          "@id": "urn:1dsfbt7i:modelDefinition:1qehkys5:6wq2v5i7j",
                          "@type": [
                            "CapabilityReference"
                          ],
                          "component": "urn:storeAnalyticsCheckoutPnp:capabilityModel:fyy5xn_y:1",
                          "reference": "urn:storeAnalyticsCheckoutPnp:Interface:Occupancy:1"
                        },
                        "valueDetail": {
                          "@id": "urn:1dsfbt7i:modelDefinition:1qehkys5:_covclwk_",
                          "@type": [
                            "ValueDetail/NumberValueDetail"
                          ],
                          "maxValue": {
                            "@value": "50"
                          },
                          "minValue": {
                            "@value": "0"
                          }
                        }
                      }
                    ]
                  },
                  "types": [
                    "DeviceModel"
                  ]
                }
              }
            },
            "title": "Create a device template"
          }
        }
      }
    },
    "/deviceTemplates/{device_template_id}/devices": {
      "get": {
        "operationId": "DeviceTemplates_ListDevices",
        "parameters": [
          {
            "$ref": "#/parameters/DeviceTemplateId"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/DeviceCollection"
            }
          }
        },
        "summary": "Get devices for a template",
        "x-ms-examples": {
          "List devices associated to a device template": {
            "description": "List all devices associated to a device template.",
            "parameters": {
              "centralDnsSuffixInPath": "azureiotcentral.com",
              "device_template_id": "urn:sbk9sd6sl:modelDefinition:u3b_fwd7os",
              "subdomain": "appsubdomain"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "approved": true,
                      "displayName": "Checkout1",
                      "etag": "eyJoZWFkZXIiOiJcIjAyMDA4ZDMyLTAwMDAtMGQwMC0wMDAwLTVkOTY4Yjg3MDAwMFwiIn0",
                      "id": "Checkout1",
                      "instanceOf": "urn:sbk9sd6sl:modelDefinition:u3b_fwd7os",
                      "provisioned": true,
                      "simulated": true
                    },
                    {
                      "approved": true,
                      "displayName": "Checkout2",
                      "etag": "eyJoZWFkZXIiOiJcIjAyMDA5MDMyLTAwMDAtMGQwMC0wMDAwLTVkOTY4Yjg3MDAwMFwiIn0",
                      "id": "Checkout2",
                      "instanceOf": "urn:sbk9sd6sl:modelDefinition:u3b_fwd7os",
                      "provisioned": true,
                      "simulated": true
                    },
                    {
                      "approved": true,
                      "displayName": "Checkout3",
                      "etag": "eyJoZWFkZXIiOiJcIjAyMDA4ZTMyLTAwMDAtMGQwMC0wMDAwLTVkOTY4Yjg3MDAwMFwiIn0",
                      "id": "Checkout3",
                      "instanceOf": "urn:sbk9sd6sl:modelDefinition:u3b_fwd7os",
                      "provisioned": true,
                      "simulated": true
                    }
                  ]
                }
              }
            },
            "title": "List devices associated to a device template."
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/deviceTemplates/{device_template_id}/merged": {
      "get": {
        "operationId": "DeviceTemplates_GetMerged",
        "parameters": [
          {
            "$ref": "#/parameters/DeviceTemplateId"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/DeviceTemplate"
            }
          }
        },
        "summary": "Get a merged device template by ID",
        "x-ms-examples": {
          "Get a merged device template by Id": {
            "description": "Get a single merged view of a device template by Id. The merged view of a device template contains the overrides and initial values from the solutionModel merged into the capabilityModel. This operation does not return device templates in draft state.",
            "parameters": {
              "centralDnsSuffixInPath": "azureiotcentral.com",
              "device_template_id": "urn:sbk9sd6sl:modelDefinition:u3b_fwd7os",
              "subdomain": "appsubdomain"
            },
            "responses": {
              "200": {
                "body": {
                  "capabilityModel": {
                    "@id": "urn:rigado:RS40_Occupancy_Sensor:1",
                    "@type": [
                      "CapabilityModel"
                    ],
                    "displayName": "RS40 Occupancy Sensor",
                    "implements": [
                      {
                        "@id": "urn:rigado:RS40_Occupancy_Sensor:Device_information_RS40_Occupancy_Sensor:1",
                        "@type": [
                          "InterfaceInstance"
                        ],
                        "name": "Device_information_RS40_Occupancy_Sensor",
                        "schema": {
                          "@id": "urn:azureiot:DeviceManagement:DeviceInformation:1",
                          "@type": [
                            "Interface"
                          ],
                          "contents": [
                            {
                              "@id": "urn:azureiot:DeviceManagement:DeviceInformation:manufacturer:1",
                              "@type": [
                                "Property"
                              ],
                              "description": "Company name of the device manufacturer. This could be the same as the name of the original equipment manufacturer (OEM). Ex. Contoso.",
                              "displayName": "Manufacturer",
                              "name": "manufacturer",
                              "schema": "string"
                            },
                            {
                              "@id": "urn:azureiot:DeviceManagement:DeviceInformation:model:1",
                              "@type": [
                                "Property"
                              ],
                              "description": "Device model name or ID. Ex. Surface Book 2.",
                              "displayName": "Device model",
                              "name": "model",
                              "schema": "string"
                            },
                            {
                              "@id": "urn:azureiot:DeviceManagement:DeviceInformation:swVersion:1",
                              "@type": [
                                "Property"
                              ],
                              "description": "Version of the software on your device. This could be the version of your firmware. Ex. 1.3.45",
                              "displayName": "Software version",
                              "name": "swVersion",
                              "schema": "string"
                            },
                            {
                              "@id": "urn:azureiot:DeviceManagement:DeviceInformation:osName:1",
                              "@type": [
                                "Property"
                              ],
                              "description": "Name of the operating system on the device. Ex. Windows 10 IoT Core.",
                              "displayName": "Operating system name",
                              "name": "osName",
                              "schema": "string"
                            },
                            {
                              "@id": "urn:azureiot:DeviceManagement:DeviceInformation:processorArchitecture:1",
                              "@type": [
                                "Property"
                              ],
                              "description": "Architecture of the processor on the device. Ex. x64 or ARM.",
                              "displayName": "Processor architecture",
                              "name": "processorArchitecture",
                              "schema": "string"
                            },
                            {
                              "@id": "urn:azureiot:DeviceManagement:DeviceInformation:processorManufacturer:1",
                              "@type": [
                                "Property"
                              ],
                              "description": "Name of the manufacturer of the processor on the device. Ex. Intel.",
                              "displayName": "Processor manufacturer",
                              "name": "processorManufacturer",
                              "schema": "string"
                            },
                            {
                              "@id": "urn:azureiot:DeviceManagement:DeviceInformation:totalStorage:1",
                              "@type": [
                                "Property"
                              ],
                              "description": "Total available storage on the device in kilobytes. Ex. 2048000 kilobytes.",
                              "displayName": "Total storage",
                              "displayUnit": "kilobytes",
                              "name": "totalStorage",
                              "schema": "long"
                            },
                            {
                              "@id": "urn:azureiot:DeviceManagement:DeviceInformation:totalMemory:1",
                              "@type": [
                                "Property"
                              ],
                              "description": "Total available memory on the device in kilobytes. Ex. 256000 kilobytes.",
                              "displayName": "Total memory",
                              "displayUnit": "kilobytes",
                              "name": "totalMemory",
                              "schema": "long"
                            }
                          ],
                          "displayName": "Device Information"
                        }
                      },
                      {
                        "@id": "urn:rigado:RS40_Occupancy_Sensor:RS40_Occupancy_Sensor:1",
                        "@type": [
                          "InterfaceInstance"
                        ],
                        "name": "RS40_Occupancy_Sensor",
                        "schema": {
                          "@id": "urn:rigado:interfaces:RS40_Occupancy_Sensor:1",
                          "@type": [
                            "Interface"
                          ],
                          "contents": [
                            {
                              "@id": "urn:rigado:interfaces:RS40_Occupancy_Sensor:count:1",
                              "@type": [
                                "Telemetry"
                              ],
                              "comment": "",
                              "description": "Count of motion events seen in the previous interval",
                              "displayName": "count",
                              "name": "count",
                              "schema": "integer"
                            },
                            {
                              "@id": "urn:rigado:interfaces:RS40_Occupancy_Sensor:state:1",
                              "@type": [
                                "Telemetry"
                              ],
                              "description": "Occupancy State",
                              "displayName": "state",
                              "name": "state",
                              "schema": "boolean"
                            }
                          ],
                          "displayName": "Interface"
                        }
                      }
                    ]
                  },
                  "displayName": "RS40 Occupancy Sensor",
                  "etag": "\"1800bfd5-0000-0d00-0000-5d96df080000\"",
                  "id": "urn:sbk9sd6sl:modelDefinition:u3b_fwd7os",
                  "solutionModel": {
                    "@id": "urn:sbk9sd6sl:modelDefinition:rxyaituqzz",
                    "@type": [
                      "SolutionModel"
                    ]
                  },
                  "types": [
                    "DeviceModel"
                  ]
                }
              }
            },
            "title": "Get a merged device template by Id"
          }
        }
      }
    },
    "/devices": {
      "get": {
        "operationId": "Devices_List",
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/DeviceCollection"
            }
          }
        },
        "summary": "Get the list of devices in an application",
        "x-ms-examples": {
          "List devices": {
            "description": "List all devices in your application.",
            "parameters": {
              "centralDnsSuffixInPath": "azureiotcentral.com",
              "subdomain": "appsubdomain"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "approved": true,
                      "displayName": "CheckoutThermostat",
                      "etag": "eyJoZWFkZXIiOiJcIjAyMDA4YzMyLTAwMDAtMGQwMC0wMDAwLTVkOTY4YjdhMDAwMFwiIn0",
                      "id": "CheckoutThermostat",
                      "instanceOf": "urn:kmwga2re7:modelDefinition:t_cj5wspyv",
                      "provisioned": true,
                      "simulated": true
                    },
                    {
                      "approved": true,
                      "displayName": "Checkout1",
                      "etag": "eyJoZWFkZXIiOiJcIjAyMDA4ZDMyLTAwMDAtMGQwMC0wMDAwLTVkOTY4Yjg3MDAwMFwiIn0",
                      "id": "Checkout1",
                      "instanceOf": "urn:sbk9sd6sl:modelDefinition:u3b_fwd7os",
                      "provisioned": true,
                      "simulated": true
                    },
                    {
                      "approved": true,
                      "displayName": "Checkout2",
                      "etag": "eyJoZWFkZXIiOiJcIjAyMDA5MDMyLTAwMDAtMGQwMC0wMDAwLTVkOTY4Yjg3MDAwMFwiIn0",
                      "id": "Checkout2",
                      "instanceOf": "urn:sbk9sd6sl:modelDefinition:u3b_fwd7os",
                      "provisioned": true,
                      "simulated": true
                    },
                    {
                      "approved": true,
                      "displayName": "Checkout3",
                      "etag": "eyJoZWFkZXIiOiJcIjAyMDA4ZTMyLTAwMDAtMGQwMC0wMDAwLTVkOTY4Yjg3MDAwMFwiIn0",
                      "id": "Checkout3",
                      "instanceOf": "urn:sbk9sd6sl:modelDefinition:u3b_fwd7os",
                      "provisioned": true,
                      "simulated": true
                    }
                  ]
                }
              }
            },
            "title": "List devices"
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/devices/{device_id}": {
      "delete": {
        "description": "Delete an existing device by device ID.",
        "operationId": "Devices_Remove",
        "parameters": [
          {
            "$ref": "#/parameters/DeviceId"
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          }
        },
        "summary": "Delete a device",
        "x-ms-examples": {
          "Delete device": {
            "description": "Delete a device by Id.",
            "parameters": {
              "centralDnsSuffixInPath": "azureiotcentral.com",
              "device_id": "ccc",
              "subdomain": "appsubdomain"
            },
            "responses": {
              "204": {}
            },
            "title": "Delete device"
          }
        }
      },
      "get": {
        "description": "Get details about an existing device by device ID.",
        "operationId": "Devices_Get",
        "parameters": [
          {
            "$ref": "#/parameters/DeviceId"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/Device"
            }
          }
        },
        "summary": "Get a device by ID",
        "x-ms-examples": {
          "Get device by Id": {
            "description": "Get a device by Id",
            "parameters": {
              "centralDnsSuffixInPath": "azureiotcentral.com",
              "device_id": "CheckoutThermostat",
              "subdomain": "appsubdomain"
            },
            "responses": {
              "200": {
                "body": {
                  "approved": true,
                  "displayName": "CheckoutThermostat",
                  "etag": "eyJoZWFkZXIiOiJcIjAyMDA4YzMyLTAwMDAtMGQwMC0wMDAwLTVkOTY4YjdhMDAwMFwiIn0",
                  "id": "CheckoutThermostat",
                  "instanceOf": "urn:kmwga2re7:modelDefinition:t_cj5wspyv",
                  "provisioned": true,
                  "simulated": true
                }
              }
            },
            "title": "Get a device by Id"
          }
        }
      },
      "put": {
        "description": "Create a new device or update an existing one by device ID.",
        "operationId": "Devices_Set",
        "parameters": [
          {
            "$ref": "#/parameters/DeviceId"
          },
          {
            "description": "Device body.",
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Device"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/Device"
            }
          }
        },
        "summary": "Create or update a device",
        "x-ms-examples": {
          "Create device": {
            "description": "Create a device with an Id.",
            "parameters": {
              "body": {
                "approved": true,
                "displayName": "CheckoutThermostatccc",
                "instanceOf": "urn:kmwga2re7:modelDefinition:t_cj5wspyv",
                "simulated": true
              },
              "centralDnsSuffixInPath": "azureiotcentral.com",
              "device_id": "ccc",
              "subdomain": "appsubdomain"
            },
            "responses": {
              "200": {
                "body": {
                  "approved": true,
                  "displayName": "CheckoutThermostatccc",
                  "etag": "eyJoZWFkZXIiOiJcIjE1MDE2ZDFiLTAwMDAtMGQwMC0wMDAwLTVkYWNkNDIxMDAwMFwiIiwiZGF0YSI6IlwiMTUwMTZhMWItMDAwMC0wZDAwLTAwMDAtNWRhY2Q0MjEwMDAwXCIifQ",
                  "id": "ccc",
                  "instanceOf": "urn:kmwga2re7:modelDefinition:t_cj5wspyv",
                  "provisioned": false,
                  "simulated": true
                }
              }
            },
            "title": "Create a device"
          }
        }
      }
    },
    "/devices/{device_id}/cloudProperties": {
      "get": {
        "description": "Get all cloud property values of a device by device ID.",
        "operationId": "Devices_GetCloudProperties",
        "parameters": [
          {
            "$ref": "#/parameters/DeviceId"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/DeviceCloudProperties"
            }
          }
        },
        "summary": "Get device cloud properties",
        "x-ms-examples": {
          "Get cloud properties": {
            "description": "Get the current values of all cloud properties of a device.",
            "parameters": {
              "centralDnsSuffixInPath": "azureiotcentral.com",
              "device_id": "mx1",
              "subdomain": "appsubdomain"
            },
            "responses": {
              "200": {
                "body": {
                  "AssetID": "123abc"
                }
              }
            },
            "title": "Get cloud property values of a device"
          }
        }
      },
      "put": {
        "description": "Update all cloud property values of a device by device ID.",
        "operationId": "Devices_UpdateCloudProperties",
        "parameters": [
          {
            "$ref": "#/parameters/DeviceId"
          },
          {
            "description": "Device properties.",
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DeviceCloudProperties"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/DeviceCloudProperties"
            }
          }
        },
        "summary": "Update device cloud properties",
        "x-ms-examples": {
          "Update cloud properties": {
            "description": "Update cloud properties of a device.",
            "parameters": {
              "body": {
                "AssetID": "123abc"
              },
              "centralDnsSuffixInPath": "azureiotcentral.com",
              "device_id": "mx1",
              "subdomain": "appsubdomain"
            },
            "responses": {
              "200": {
                "body": {
                  "AssetID": "123abc"
                }
              }
            },
            "title": "Update cloud properties of a device"
          }
        }
      }
    },
    "/devices/{device_id}/components/{component_name}/commands/{command_name}": {
      "get": {
        "operationId": "Devices_GetCommandHistory",
        "parameters": [
          {
            "$ref": "#/parameters/DeviceId"
          },
          {
            "$ref": "#/parameters/ComponentName"
          },
          {
            "description": "Name of this device command.",
            "in": "path",
            "name": "command_name",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/DeviceCommandCollection"
            }
          }
        },
        "summary": "Get device command history",
        "x-ms-examples": {
          "Get command history": {
            "description": "Get the most recent invocation of a command of a device.",
            "parameters": {
              "centralDnsSuffixInPath": "azureiotcentral.com",
              "command_name": "CoolDown",
              "component_name": "Thermostat_1o",
              "device_id": "mx1",
              "subdomain": "appsubdomain"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "id": "4e17dd2e-7bf2-458d-8466-19bc6fc9b642",
                      "request": 20,
                      "response": 58.795679629034694,
                      "responseCode": 200
                    }
                  ]
                }
              }
            },
            "title": "Get command history"
          }
        },
        "x-ms-pageable": {
          "nextLinkName": null
        }
      },
      "post": {
        "description": "Execute a command on a device.",
        "operationId": "Devices_ExecuteCommand",
        "parameters": [
          {
            "$ref": "#/parameters/DeviceId"
          },
          {
            "$ref": "#/parameters/ComponentName"
          },
          {
            "description": "Name of this device command.",
            "in": "path",
            "name": "command_name",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          },
          {
            "description": "Device command body.",
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DeviceCommand"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/DeviceCommand"
            }
          }
        },
        "summary": "Execute a device command",
        "x-ms-examples": {
          "Send command": {
            "description": "Send a command to a device.",
            "parameters": {
              "body": {
                "request": {
                  "tempVal": 30
                }
              },
              "centralDnsSuffixInPath": "azureiotcentral.com",
              "command_name": "CoolDown",
              "component_name": "Thermostat_1o",
              "device_id": "mx1",
              "subdomain": "appsubdomain"
            },
            "responses": {
              "201": {
                "body": {}
              }
            },
            "title": "Send command"
          }
        }
      }
    },
    "/devices/{device_id}/components/{component_name}/properties": {
      "get": {
        "operationId": "Devices_GetComponentProperties",
        "parameters": [
          {
            "$ref": "#/parameters/DeviceId"
          },
          {
            "$ref": "#/parameters/ComponentName"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/DeviceProperties"
            }
          }
        },
        "summary": "Get device properties for a specific component",
        "x-ms-examples": {
          "Get properties on components": {
            "description": "Get the read-write property values within a component of a device.",
            "parameters": {
              "centralDnsSuffixInPath": "azureiotcentral.com",
              "component_name": "settings",
              "device_id": "mx1",
              "subdomain": "appsubdomain"
            },
            "responses": {
              "200": {
                "body": {
                  "$metadata": {
                    "current": {
                      "ackDesiredState": {
                        "code": 200,
                        "description": "Processed",
                        "version": 2
                      },
                      "desiredValue": 2
                    },
                    "fanSpeed": {
                      "ackDesiredState": {
                        "code": 200,
                        "description": "Processed",
                        "version": 2
                      },
                      "desiredValue": 35
                    },
                    "irSwitch": {
                      "ackDesiredState": {
                        "code": 200,
                        "description": "Processed",
                        "version": 2
                      },
                      "desiredValue": true
                    },
                    "voltage": {
                      "ackDesiredState": {
                        "code": 200,
                        "description": "Processed",
                        "version": 2
                      },
                      "desiredValue": 5
                    }
                  },
                  "current": 2,
                  "fanSpeed": 35,
                  "irSwitch": true,
                  "voltage": 5
                }
              }
            },
            "title": "Get device properties in component"
          }
        }
      },
      "put": {
        "operationId": "Devices_UpdateComponentProperties",
        "parameters": [
          {
            "$ref": "#/parameters/DeviceId"
          },
          {
            "$ref": "#/parameters/ComponentName"
          },
          {
            "description": "Device properties.",
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DeviceProperties"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/DeviceProperties"
            }
          }
        },
        "summary": "Update device properties for a specific component",
        "x-ms-examples": {
          "Update properties on components": {
            "description": "Set the read-write property values within a component of a device.",
            "parameters": {
              "body": {
                "current": 2,
                "fanSpeed": 35,
                "irSwitch": true,
                "voltage": 5
              },
              "centralDnsSuffixInPath": "azureiotcentral.com",
              "component_name": "settings",
              "device_id": "mx1",
              "subdomain": "appsubdomain"
            },
            "responses": {
              "202": {
                "body": {
                  "$metadata": {
                    "current": {
                      "desiredValue": 2
                    },
                    "fanSpeed": {
                      "desiredValue": 35
                    },
                    "irSwitch": {
                      "desiredValue": true
                    },
                    "voltage": {
                      "desiredValue": 5
                    }
                  }
                }
              }
            },
            "title": "Set device properties in component"
          }
        }
      }
    },
    "/devices/{device_id}/components/{component_name}/telemetry/{telemetry_name}": {
      "get": {
        "operationId": "Devices_GetTelemetryValue",
        "parameters": [
          {
            "$ref": "#/parameters/DeviceId"
          },
          {
            "$ref": "#/parameters/ComponentName"
          },
          {
            "description": "Name of this device telemetry.",
            "in": "path",
            "name": "telemetry_name",
            "required": true,
            "type": "string",
            "x-ms-parameter-location": "method"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/Value"
            }
          }
        },
        "summary": "Get device telemetry value",
        "x-ms-examples": {
          "Get telemetry": {
            "description": "Get the last known value of a telemetry stream of a device.",
            "parameters": {
              "centralDnsSuffixInPath": "azureiotcentral.com",
              "component_name": "sensors",
              "device_id": "mx1",
              "subdomain": "appsubdomain",
              "telemetry_name": "temperature"
            },
            "responses": {
              "200": {
                "body": {
                  "value": 32
                }
              }
            },
            "title": "Get telemetry"
          }
        }
      }
    },
    "/devices/{device_id}/credentials": {
      "get": {
        "operationId": "Devices_GetCredentials",
        "parameters": [
          {
            "$ref": "#/parameters/DeviceId"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/DeviceCredentials"
            }
          }
        },
        "summary": "Get device credentials",
        "x-ms-examples": {
          "Get device credentials": {
            "description": "Get the device credentials of a created device. Returns the app's scope Id and device SAS key",
            "parameters": {
              "centralDnsSuffixInPath": "azureiotcentral.com",
              "device_id": "Checkout4",
              "subdomain": "appsubdomain"
            },
            "responses": {
              "200": {
                "body": {
                  "scopeId": "0ne0005F266",
                  "symmetricKey": {
                    "primaryKey": "XaMfV3vryCQw963L2IALf1SdApQRzSIBQd13/fassqM=",
                    "secondaryKey": "s+4uT31TRZJcTSGxZUPZb1yznjTicu4jr9tXNrg+xIQ="
                  }
                }
              }
            },
            "title": "Get device credentials"
          }
        }
      }
    },
    "/devices/{device_id}/properties": {
      "get": {
        "description": "Get all property values of a device by device ID.",
        "operationId": "Devices_GetProperties",
        "parameters": [
          {
            "$ref": "#/parameters/DeviceId"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/DeviceProperties"
            }
          }
        },
        "summary": "Get device properties",
        "x-ms-examples": {
          "Get properties": {
            "description": "Get the current values of all device properties.",
            "parameters": {
              "centralDnsSuffixInPath": "azureiotcentral.com",
              "device_id": "mx1",
              "subdomain": "appsubdomain"
            },
            "responses": {
              "200": {
                "body": {
                  "deviceinfo": {
                    "manufacturer": "manufacturer",
                    "model": "model",
                    "osName": "osName",
                    "processorArchitecture": "processorArchitecture",
                    "processorManufacturer": "processorManufacturer",
                    "swVersion": "swVersion",
                    "totalMemory": 49,
                    "totalStorage": 41
                  }
                }
              }
            },
            "title": "Get device properties"
          }
        }
      },
      "put": {
        "description": "Update all property values of a device by device ID.",
        "operationId": "Devices_UpdateProperties",
        "parameters": [
          {
            "$ref": "#/parameters/DeviceId"
          },
          {
            "description": "Device properties.",
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DeviceProperties"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/DeviceProperties"
            }
          }
        },
        "summary": "Update device properties",
        "x-ms-examples": {
          "Update properties": {
            "description": "Update the values of read-write properties of a device",
            "parameters": {
              "body": {
                "device_info": {
                  "manufacturer": "manufacturer",
                  "model": "model",
                  "osName": "osName",
                  "processorArchitecture": "processorArchitecture",
                  "processorManufacturer": "processorManufacturer",
                  "swVersion": "swVersion",
                  "totalMemory": 18,
                  "totalStorage": 24
                }
              },
              "centralDnsSuffixInPath": "azureiotcentral.com",
              "device_id": "mx1",
              "subdomain": "appsubdomain"
            },
            "responses": {
              "202": {
                "body": {
                  "deviceinfo": {
                    "manufacturer": "TODO",
                    "model": "model",
                    "osName": "osName",
                    "processorArchitecture": "processorArchitecture",
                    "processorManufacturer": "processorManufacturer",
                    "swVersion": "swVersion",
                    "totalMemory": 49,
                    "totalStorage": 41
                  }
                }
              }
            },
            "title": "Update device properties"
          }
        }
      }
    },
    "/roles": {
      "get": {
        "operationId": "Roles_List",
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/RoleCollection"
            }
          }
        },
        "summary": "Get the list of roles in an application.",
        "x-ms-examples": {
          "List roles": {
            "description": "List roles in your application.",
            "parameters": {
              "centralDnsSuffixInPath": "azureiotcentral.com",
              "subdomain": "appsubdomain"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "displayName": "Administrator",
                      "id": "ca310b8d-2f4a-44e0-a36e-957c202cd8d4"
                    },
                    {
                      "displayName": "Builder",
                      "id": "344138e9-8de4-4497-8c54-5237e96d6aaf"
                    },
                    {
                      "displayName": "Operator",
                      "id": "ae2c9854-393b-4f97-8c42-479d70ce626e"
                    }
                  ]
                }
              }
            },
            "title": "List roles"
          }
        },
        "x-ms-pageable": {
          "nextLinkName": null
        }
      }
    },
    "/roles/{role_id}": {
      "get": {
        "operationId": "Roles_Get",
        "parameters": [
          {
            "description": "Unique ID for the role.",
            "in": "path",
            "name": "role_id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/Role"
            }
          }
        },
        "summary": "Get a role by ID.",
        "x-ms-examples": {
          "Get role by Id": {
            "description": "Get a role by Id.",
            "parameters": {
              "centralDnsSuffixInPath": "azureiotcentral.com",
              "role_id": "ca310b8d-2f4a-44e0-a36e-957c202cd8d4",
              "subdomain": "appsubdomain"
            },
            "responses": {
              "200": {
                "body": {
                  "displayName": "Administrator",
                  "id": "ca310b8d-2f4a-44e0-a36e-957c202cd8d4"
                }
              }
            },
            "title": "Get role by Id"
          }
        }
      }
    }
  },
  "definitions": {
    "ApiToken": {
      "allOf": [
        {
          "$ref": "#/definitions/Permission"
        },
        {
          "properties": {
            "expiry": {
              "description": "String-formatted date representing the time when the token expires",
              "format": "date-time",
              "type": "string"
            },
            "id": {
              "description": "Unique ID of the api token.",
              "readOnly": true,
              "type": "string"
            },
            "token": {
              "description": "Value of the api token.",
              "readOnly": true,
              "type": "string"
            }
          }
        }
      ],
      "type": "object"
    },
    "ApiTokenCollection": {
      "properties": {
        "value": {
          "description": "The collection of api tokens.",
          "items": {
            "$ref": "#/definitions/ApiToken"
          },
          "type": "array"
        }
      },
      "required": [
        "value"
      ],
      "type": "object"
    },
    "Capability": {
      "additionalProperties": true,
      "allOf": [
        {
          "$ref": "#/definitions/NamedEntity"
        },
        {
          "properties": {
            "name": {
              "description": "The programmatic name of the named entity.",
              "type": "string"
            }
          }
        }
      ],
      "type": "object"
    },
    "CapabilityModel": {
      "allOf": [
        {
          "$ref": "#/definitions/Entity"
        },
        {
          "properties": {
            "contents": {
              "description": "The relationships contained by the capability model.",
              "items": {
                "$ref": "#/definitions/NamedEntity"
              },
              "type": "array"
            },
            "implements": {
              "description": "The component implemented by the capability model.",
              "items": {
                "$ref": "#/definitions/Component"
              },
              "type": "array"
            }
          }
        }
      ],
      "type": "object"
    },
    "CapabilityReference": {
      "allOf": [
        {
          "$ref": "#/definitions/Entity"
        },
        {
          "properties": {
            "component": {
              "description": "The name of the component being referenced.",
              "type": "string"
            },
            "reference": {
              "description": "The name of the capability being referenced.",
              "type": "string"
            }
          }
        }
      ],
      "type": "object"
    },
    "Component": {
      "allOf": [
        {
          "$ref": "#/definitions/NamedEntity"
        },
        {
          "properties": {
            "schema": {
              "$ref": "#/definitions/Interface",
              "description": "The interface used by this component."
            }
          }
        }
      ],
      "type": "object"
    },
    "ContinuousDataExport": {
      "properties": {
        "displayName": {
          "description": "Display name of the continuous data export.",
          "type": "string"
        },
        "enabled": {
          "description": "Boolean indicating whether the continuous data export should be running or not.",
          "type": "boolean"
        },
        "endpoint": {
          "$ref": "#/definitions/Endpoint",
          "description": "Location where exported data should be sent."
        },
        "etag": {
          "description": "ETag used to prevent conflict in continuous data export updates.",
          "type": "string"
        },
        "id": {
          "description": "Unique ID of the continuous data export.",
          "readOnly": true,
          "type": "string"
        },
        "sources": {
          "description": "Data sources to export to the endpoint.",
          "items": {
            "enum": [
              "devices",
              "deviceTemplates",
              "telemetry"
            ],
            "type": "string"
          },
          "minItems": 1,
          "type": "array"
        },
        "status": {
          "description": "Indicates whether the continuous data export is starting, running, etc.",
          "readOnly": true,
          "type": "string"
        }
      },
      "required": [
        "endpoint",
        "enabled",
        "sources"
      ],
      "type": "object"
    },
    "ContinuousDataExportCollection": {
      "properties": {
        "nextLink": {
          "description": "URL to get the next page of continuous data exports.",
          "type": "string"
        },
        "value": {
          "description": "The collection of continuous data exports.",
          "items": {
            "$ref": "#/definitions/ContinuousDataExport"
          },
          "type": "array"
        }
      },
      "required": [
        "value"
      ],
      "type": "object"
    },
    "Device": {
      "properties": {
        "approved": {
          "description": "Whether the device has been approved to connect to IoT Central.",
          "type": "boolean"
        },
        "description": {
          "description": "Detailed description of the device.",
          "type": "string"
        },
        "displayName": {
          "description": "Display name of the device.",
          "type": "string"
        },
        "etag": {
          "description": "ETag used to prevent conflict in device updates.",
          "type": "string"
        },
        "id": {
          "description": "Unique ID of the device.",
          "readOnly": true,
          "type": "string"
        },
        "instanceOf": {
          "description": "The model definition for the device.",
          "type": "string"
        },
        "provisioned": {
          "description": "Whether resources have been allocated for the device.",
          "readOnly": true,
          "type": "boolean"
        },
        "simulated": {
          "description": "Whether the device is simulated.",
          "type": "boolean"
        }
      },
      "required": [
        "instanceOf"
      ],
      "type": "object"
    },
    "DeviceCloudProperties": {
      "additionalProperties": true,
      "description": "Cloud property values associated with the device.",
      "type": "object"
    },
    "DeviceCollection": {
      "properties": {
        "nextLink": {
          "description": "URL to get the next page of devices.",
          "type": "string"
        },
        "value": {
          "description": "The collection of devices.",
          "items": {
            "$ref": "#/definitions/Device"
          },
          "type": "array"
        }
      },
      "required": [
        "value"
      ],
      "type": "object"
    },
    "DeviceCommand": {
      "properties": {
        "id": {
          "description": "The request ID of the device command execution.",
          "readOnly": true,
          "type": "string"
        },
        "request": {
          "description": "The payload for the device command."
        },
        "response": {
          "description": "The payload of the device command response.",
          "readOnly": true
        },
        "responseCode": {
          "description": "The status code of the device command response.",
          "readOnly": true,
          "type": "number"
        }
      },
      "type": "object"
    },
    "DeviceCommandCollection": {
      "properties": {
        "value": {
          "description": "The collection of device command executions.",
          "items": {
            "$ref": "#/definitions/DeviceCommand"
          },
          "type": "array"
        }
      },
      "required": [
        "value"
      ],
      "type": "object"
    },
    "DeviceCredentials": {
      "properties": {
        "scopeId": {
          "description": "Scope id for connecting to device provisioning service.",
          "type": "string"
        },
        "symmetricKey": {
          "$ref": "#/definitions/SymmetricKey",
          "description": "The symmetric key credentials for the device."
        }
      },
      "required": [
        "scopeId",
        "symmetricKey"
      ],
      "type": "object"
    },
    "DeviceProperties": {
      "additionalProperties": true,
      "description": "Property values associated with the device.",
      "type": "object"
    },
    "DeviceTemplate": {
      "properties": {
        "capabilityModel": {
          "$ref": "#/definitions/CapabilityModel"
        },
        "description": {
          "description": "Detailed description of the device template.",
          "type": "string"
        },
        "displayName": {
          "description": "Display name of the device template.",
          "type": "string"
        },
        "etag": {
          "description": "ETag used to prevent conflict in device template updates.",
          "type": "string"
        },
        "id": {
          "description": "Unique ID of the device template.",
          "readOnly": true,
          "type": "string"
        },
        "solutionModel": {
          "$ref": "#/definitions/SolutionModel"
        },
        "types": {
          "description": "The types of device to which this template applies.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "types",
        "capabilityModel"
      ],
      "type": "object"
    },
    "DeviceTemplateCollection": {
      "properties": {
        "nextLink": {
          "description": "URL to get the next page of device templates.",
          "type": "string"
        },
        "value": {
          "description": "The collection of device templates.",
          "items": {
            "$ref": "#/definitions/DeviceTemplate"
          },
          "type": "array"
        }
      },
      "required": [
        "value"
      ],
      "type": "object"
    },
    "Endpoint": {
      "discriminator": "type",
      "properties": {
        "connectionString": {
          "description": "Information for connecting to the endpoint.",
          "type": "string"
        },
        "name": {
          "description": "Name of the entity to send data to.",
          "type": "string"
        },
        "type": {
          "description": "Type of the endpoint.",
          "type": "string"
        }
      },
      "required": [
        "type",
        "connectionString",
        "name"
      ],
      "type": "object"
    },
    "Entity": {
      "properties": {
        "@context": {
          "description": "JSON-LD context for the entity."
        },
        "@id": {
          "description": "Unique ID of the entity.",
          "type": "string"
        },
        "@type": {
          "description": "Type of the entity.",
          "items": {
            "type": "string"
          },
          "minItems": 1,
          "type": "array"
        },
        "comment": {
          "description": "Developer comment about the entity.",
          "type": "string"
        },
        "description": {
          "description": "Detailed description of the entity.",
          "type": "string"
        },
        "displayName": {
          "description": "Display name of the entity.",
          "type": "string"
        }
      },
      "required": [
        "@type"
      ],
      "type": "object"
    },
    "EventHubsEndpoint": {
      "allOf": [
        {
          "$ref": "#/definitions/Endpoint"
        }
      ]
    },
    "InitialValue": {
      "allOf": [
        {
          "$ref": "#/definitions/Entity"
        },
        {
          "properties": {
            "capability": {
              "$ref": "#/definitions/CapabilityReference"
            },
            "value": {
              "description": "The initial value of the capability."
            }
          }
        }
      ],
      "type": "object"
    },
    "Interface": {
      "allOf": [
        {
          "$ref": "#/definitions/Entity"
        },
        {
          "properties": {
            "contents": {
              "description": "The data definitions contained by the interface.",
              "items": {
                "$ref": "#/definitions/Capability"
              },
              "type": "array"
            }
          }
        }
      ],
      "type": "object"
    },
    "NamedEntity": {
      "allOf": [
        {
          "$ref": "#/definitions/Entity"
        },
        {
          "properties": {
            "name": {
              "description": "The programmatic name of the named entity.",
              "type": "string"
            }
          },
          "required": [
            "name"
          ]
        }
      ],
      "type": "object"
    },
    "Override": {
      "allOf": [
        {
          "$ref": "#/definitions/Entity"
        },
        {
          "properties": {
            "capability": {
              "$ref": "#/definitions/CapabilityReference"
            },
            "displayUnit": {
              "description": "The overridden display unit.",
              "type": "string"
            },
            "semanticType": {
              "description": "The overridden semantic type.",
              "type": "string"
            },
            "unit": {
              "description": "The overridden unit.",
              "type": "string"
            },
            "valueDetail": {
              "$ref": "#/definitions/ValueDetail"
            }
          }
        }
      ],
      "type": "object"
    },
    "Permission": {
      "properties": {
        "roles": {
          "description": "Roles that the permission has been granted permission to.",
          "items": {
            "type": "string"
          },
          "maxItems": 1,
          "minItems": 1,
          "type": "array"
        }
      },
      "required": [
        "roles"
      ],
      "type": "object"
    },
    "Role": {
      "properties": {
        "displayName": {
          "description": "Display name of the role.",
          "type": "string"
        },
        "id": {
          "description": "Unique ID of the role.",
          "readOnly": true,
          "type": "string"
        }
      },
      "type": "object"
    },
    "RoleCollection": {
      "properties": {
        "value": {
          "description": "The collection of roles.",
          "items": {
            "$ref": "#/definitions/Role"
          },
          "type": "array"
        }
      },
      "required": [
        "value"
      ],
      "type": "object"
    },
    "ServiceBusQueueEndpoint": {
      "allOf": [
        {
          "$ref": "#/definitions/Endpoint"
        }
      ]
    },
    "ServiceBusTopicEndpoint": {
      "allOf": [
        {
          "$ref": "#/definitions/Endpoint"
        }
      ]
    },
    "SolutionModel": {
      "allOf": [
        {
          "$ref": "#/definitions/Entity"
        },
        {
          "properties": {
            "cloudProperties": {
              "description": "The cloud properties defined by the solution model.",
              "items": {
                "$ref": "#/definitions/Capability"
              },
              "type": "array"
            },
            "initialValues": {
              "description": "The initial values defined by the solution model.",
              "items": {
                "$ref": "#/definitions/InitialValue"
              },
              "type": "array"
            },
            "overrides": {
              "description": "The overrides defined by the solution model.",
              "items": {
                "$ref": "#/definitions/Override"
              },
              "type": "array"
            }
          }
        }
      ],
      "type": "object"
    },
    "StorageEndpoint": {
      "allOf": [
        {
          "$ref": "#/definitions/Endpoint"
        }
      ]
    },
    "SymmetricKey": {
      "properties": {
        "primaryKey": {
          "description": "The primary key for the credential.",
          "type": "string"
        },
        "secondaryKey": {
          "description": "The secondary key for the credential.",
          "type": "string"
        }
      },
      "required": [
        "primaryKey",
        "secondaryKey"
      ],
      "type": "object"
    },
    "Value": {
      "properties": {
        "value": {
          "description": "The value of this API response."
        }
      },
      "type": "object"
    },
    "ValueDetail": {
      "additionalProperties": true,
      "allOf": [
        {
          "$ref": "#/definitions/Entity"
        }
      ],
      "description": "Visualization details for the referenced capability.",
      "type": "object"
    }
  },
  "x-ms-parameterized-host": {
    "hostTemplate": "{subdomain}.{centralDnsSuffixInPath}",
    "parameters": [
      {
        "$ref": "#/parameters/Subdomain"
      },
      {
        "$ref": "#/parameters/CentralDnsSuffixInPath"
      }
    ]
  }
}