From bb2c38cb76d56cbe5c5dc514ab0657eabe217b08 Mon Sep 17 00:00:00 2001 From: Vivian Liu Date: Tue, 10 Nov 2020 16:42:58 -0800 Subject: [PATCH 01/10] Adding jobs, DTDLv2 templates, groups --- .../examples/devicegroups_list.json | 32 + .../examples/jobs_create.json | 39 + .../examples/jobs_devices.json | 37 + .../2019-10-28-preview/examples/jobs_get.json | 27 + .../examples/jobs_list.json | 30 + .../examples/jobs_rerun.json | 28 + .../examples/jobs_resume.json | 12 + .../examples/jobs_stop.json | 12 + .../2019-10-28-preview/iotcentral.json | 1061 +++++++++-------- 9 files changed, 802 insertions(+), 476 deletions(-) create mode 100644 specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/devicegroups_list.json create mode 100644 specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/jobs_create.json create mode 100644 specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/jobs_devices.json create mode 100644 specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/jobs_get.json create mode 100644 specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/jobs_list.json create mode 100644 specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/jobs_rerun.json create mode 100644 specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/jobs_resume.json create mode 100644 specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/jobs_stop.json diff --git a/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/devicegroups_list.json b/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/devicegroups_list.json new file mode 100644 index 000000000000..c911199eb4b1 --- /dev/null +++ b/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/devicegroups_list.json @@ -0,0 +1,32 @@ +{ + "title": "DeviceGroup List", + "description": "List all device groups in your application.", + "parameters": { + "centralDnsSuffixInPath": "azureiotcentral.com", + "subdomain": "appsubdomain" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "475cad48-b7ff-4a09-b51e-1a9021385453", + "displayName": "DeviceGroupEntry1" + }, + { + "id": "c2d5ae1d-2cb7-4f58-bf44-5e816aba0a0e", + "displayName": "DeviceGroupEntry2" + }, + { + "id": "241ad72b-32aa-4216-aabe-91b240582c8d", + "displayName": "DeviceGroupEntry3" + }, + { + "id": "241ad72b-32aa-4216-aabe-91b240582c8d", + "displayName": "DeviceGroupEntry4" + } + ] + } + } + } +} diff --git a/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/jobs_create.json b/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/jobs_create.json new file mode 100644 index 000000000000..c949efe04217 --- /dev/null +++ b/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/jobs_create.json @@ -0,0 +1,39 @@ +{ + "title": "Execute a new job", + "description": "Create and execute a new job via its job definition.", + "parameters": { + "centralDnsSuffixInPath": "azureiotcentral.com", + "subdomain": "appsubdomain", + "job_id": "myJobId", + "body": { + "displayName": "My Job", + "group": "475cad48-b7ff-4a09-b51e-1a9021385453", + "data": [ + { + "type": "PropertyJobData", + "target": "urn:1dgygpt7t:modelDefinition:02uwtefvdy", + "path": "componentName.propertyName", + "value": "updated value" + } + ] + } + }, + "responses": { + "200": { + "body": { + "id": "myJobId", + "displayName": "My Job", + "group": "475cad48-b7ff-4a09-b51e-1a9021385453", + "data": [ + { + "type": "PropertyJobData", + "target": "urn:1dgygpt7t:modelDefinition:02uwtefvdy", + "path": "componentName.propertyName", + "value": "updated value" + } + ], + "status": "running" + } + } + } +} diff --git a/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/jobs_devices.json b/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/jobs_devices.json new file mode 100644 index 000000000000..c35ef6ab3e80 --- /dev/null +++ b/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/jobs_devices.json @@ -0,0 +1,37 @@ +{ + "title": "Get device statuses", + "description": "Get the list of individual device statuses by job ID.", + "parameters": { + "centralDnsSuffixInPath": "azureiotcentral.com", + "subdomain": "appsubdomain", + "job_id": "myJobId" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "ylleedih6k", + "status": "completed" + }, + { + "id": "t81v3k204k", + "status": "completed" + }, + { + "id": "iotc-1", + "status": "completed" + }, + { + "id": "iotc", + "status": "completed" + }, + { + "id": "1c5cs18m7k1", + "status": "completed" + } + ] + } + } + } +} diff --git a/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/jobs_get.json b/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/jobs_get.json new file mode 100644 index 000000000000..4d54104358c9 --- /dev/null +++ b/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/jobs_get.json @@ -0,0 +1,27 @@ +{ + "title": "Get a job by Id", + "description": "Get a job by Id", + "parameters": { + "centralDnsSuffixInPath": "azureiotcentral.com", + "subdomain": "appsubdomain", + "job_id": "myJobId" + }, + "responses": { + "200": { + "body": { + "id": "myJobId", + "displayName": "My Job", + "group": "475cad48-b7ff-4a09-b51e-1a9021385453", + "data": [ + { + "type": "PropertyJobData", + "target": "urn:1dgygpt7t:modelDefinition:02uwtefvdy", + "path": "componentName.propertyName", + "value": "updated value" + } + ], + "status": "running" + } + } + } +} diff --git a/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/jobs_list.json b/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/jobs_list.json new file mode 100644 index 000000000000..bac6157d50cf --- /dev/null +++ b/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/jobs_list.json @@ -0,0 +1,30 @@ +{ + "title": "List jobs", + "description": "List all jobs in your application.", + "parameters": { + "centralDnsSuffixInPath": "azureiotcentral.com", + "subdomain": "appsubdomain" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "myJobId", + "displayName": "My Job", + "group": "475cad48-b7ff-4a09-b51e-1a9021385453", + "data": [ + { + "type": "PropertyJobData", + "target": "urn:1dgygpt7t:modelDefinition:02uwtefvdy", + "path": "componentName.propertyName", + "value": "updated value" + } + ], + "status": "running" + } + ] + } + } + } +} diff --git a/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/jobs_rerun.json b/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/jobs_rerun.json new file mode 100644 index 000000000000..1944b3886e04 --- /dev/null +++ b/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/jobs_rerun.json @@ -0,0 +1,28 @@ +{ + "title": "Rerun a job on failed devices", + "description": "Execute a rerun of an existing job on all failed devices.", + "parameters": { + "centralDnsSuffixInPath": "azureiotcentral.com", + "subdomain": "appsubdomain", + "job_id": "myJobId", + "rerun_id": "myJobRerunId" + }, + "responses": { + "200": { + "body": { + "id": "myJobRerunId", + "displayName": "My Job", + "group": "475cad48-b7ff-4a09-b51e-1a9021385453", + "data": [ + { + "type": "PropertyJobData", + "target": "urn:1dgygpt7t:modelDefinition:02uwtefvdy", + "path": "componentName.propertyName", + "value": "updated value" + } + ], + "status": "running" + } + } + } +} diff --git a/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/jobs_resume.json b/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/jobs_resume.json new file mode 100644 index 000000000000..d07d2315dee9 --- /dev/null +++ b/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/jobs_resume.json @@ -0,0 +1,12 @@ +{ + "title": "Resume a stopped job", + "description": "Resume execution of an existing stoppped job.", + "parameters": { + "centralDnsSuffixInPath": "azureiotcentral.com", + "subdomain": "appsubdomain", + "job_id": "myJobId" + }, + "responses": { + "204": {} + } +} diff --git a/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/jobs_stop.json b/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/jobs_stop.json new file mode 100644 index 000000000000..a562e8a3378d --- /dev/null +++ b/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/examples/jobs_stop.json @@ -0,0 +1,12 @@ +{ + "title": "Stop a running job", + "description": "Stop execution of a job that is currently running.", + "parameters": { + "centralDnsSuffixInPath": "azureiotcentral.com", + "subdomain": "appsubdomain", + "job_id": "myJobId" + }, + "responses": { + "204": {} + } +} diff --git a/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/iotcentral.json b/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/iotcentral.json index cf4e8bbfa90e..6e792aff984f 100644 --- a/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/iotcentral.json +++ b/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/iotcentral.json @@ -74,24 +74,6 @@ "value" ] }, - "ArraySchema": { - "allOf": [ - { - "$ref": "#/definitions/Entity" - }, - { - "type": "object", - "properties": { - "elementSchema": { - "description": "The schema for values of this array type." - } - }, - "required": [ - "elementSchema" - ] - } - ] - }, "Attestation": { "type": "object", "properties": { @@ -105,118 +87,36 @@ ], "discriminator": "type" }, - "Capability": { + "CloudPropertyJobData": { "allOf": [ { - "$ref": "#/definitions/NamedEntity" - }, - { - "type": "object", - "properties": { - "schema": { - "description": "The schema of this field." - }, - "displayUnit": { - "description": "The display name of the unit of this field.", - "type": "string" - }, - "unit": { - "description": "The unit of this field.", - "type": "string" - }, - "commandType": { - "description": "The call pattern of this command.", - "type": "string", - "enum": [ - "synchronous", - "asynchronous" - ] - }, - "request": { - "description": "The request definition for this command.", - "$ref": "#/definitions/SchemaField" - }, - "response": { - "description": "The response definition for this command.", - "$ref": "#/definitions/SchemaField" - }, - "writable": { - "description": "Whether this property is writable.", - "type": "boolean" - }, - "target": { - "description": "The target capability models for this relationship.", - "type": "array", - "items": {}, - "minItems": 1 - }, - "maxMultiplicity": { - "description": "The maximum multiplicity for this relationship.", - "type": "integer" - } - } + "$ref": "#/definitions/JobData" } ] }, - "CapabilityModel": { - "allOf": [ - { - "$ref": "#/definitions/Interface" - }, - { - "type": "object", - "properties": { - "implements": { - "description": "The component implemented by the capability model.", - "type": "array", - "items": { - "$ref": "#/definitions/Component" - } - } + "Collection": { + "type": "object", + "properties": { + "value": { + "description": "The collection of objects.", + "type": "array", + "items": { + "type": "object" } - } - ] - }, - "CapabilityReference": { - "allOf": [ - { - "$ref": "#/definitions/Entity" }, - { - "type": "object", - "properties": { - "component": { - "description": "The name of the component being referenced.", - "type": "string" - }, - "reference": { - "description": "The name of the capability being referenced.", - "type": "string" - } - }, - "required": [ - "component", - "reference" - ] + "nextLink": { + "description": "URL to get the next page of objects.", + "type": "string" } + }, + "required": [ + "value" ] }, - "Component": { + "CommandJobData": { "allOf": [ { - "$ref": "#/definitions/NamedEntity" - }, - { - "type": "object", - "properties": { - "schema": { - "description": "The interface used by this component.", - "$ref": "#/definitions/Interface" - } - }, - "required": [ - "schema" - ] + "$ref": "#/definitions/JobData" } ] }, @@ -412,6 +312,39 @@ "idScope" ] }, + "DeviceGroup": { + "type": "object", + "properties": { + "id": { + "description": "Unique ID of the device group.", + "type": "string", + "readOnly": true + }, + "displayName": { + "description": "Display name of the device group.", + "type": "string" + } + } + }, + "DeviceGroupCollection": { + "type": "object", + "properties": { + "value": { + "description": "The collection of device groups.", + "type": "array", + "items": { + "$ref": "#/definitions/DeviceGroup" + } + }, + "nextLink": { + "description": "URL to get the next page of device groups.", + "type": "string" + } + }, + "required": [ + "value" + ] + }, "DeviceProperties": { "description": "Property values associated with the device.", "type": "object", @@ -459,11 +392,11 @@ }, "capabilityModel": { "description": "The capability model utilized by this device template.", - "$ref": "#/definitions/CapabilityModel" + "type": "object" }, "solutionModel": { "description": "The solution model utilized by this device template.", - "$ref": "#/definitions/SolutionModel" + "type": "object" } }, "required": [ @@ -533,187 +466,123 @@ ], "discriminator": "type" }, - "Entity": { + "EventHubsEndpoint": { + "allOf": [ + { + "$ref": "#/definitions/Endpoint" + } + ] + }, + "Job": { "type": "object", "properties": { - "@context": { - "description": "JSON-LD context for the entity." - }, - "@id": { - "description": "Unique ID of the entity.", - "type": "string" - }, - "@type": { - "description": "Type of the entity.", - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1 + "id": { + "description": "Unique ID of the job.", + "type": "string", + "readOnly": true }, "displayName": { - "description": "Display name of the entity.", + "description": "Display name of the job.", "type": "string" }, "description": { - "description": "Detailed description of the entity.", + "description": "Detailed description of the job.", "type": "string" }, - "comment": { - "description": "Developer comment about the entity.", + "group": { + "description": "The ID of the device group on which to execute the job.", "type": "string" - } - }, - "required": [ - "@type" - ] - }, - "EnumSchema": { - "allOf": [ - { - "$ref": "#/definitions/Entity" }, - { - "type": "object", - "properties": { - "valueSchema": { - "description": "The schema for values of this enum type." - }, - "enumValues": { - "description": "The discreet named values of this enum type.", - "type": "array", - "items": { - "$ref": "#/definitions/EnumValue" - } - } + "data": { + "description": "The capabilies being updated by the job and the values with which they are being updated.", + "type": "array", + "items": { + "$ref": "#/definitions/JobData" }, - "required": [ - "valueSchema", - "enumValues" - ] - } - ] - }, - "EnumValue": { - "allOf": [ - { - "$ref": "#/definitions/NamedEntity" + "minItems": 1 }, - { - "type": "object", - "properties": { - "enumValue": { - "description": "The resolved value of this enum entry." - } - }, - "required": [ - "enumValue" - ] - } - ] - }, - "EventHubsEndpoint": { - "allOf": [ - { - "$ref": "#/definitions/Endpoint" + "status": { + "description": "Indicates whether the job is starting, running, etc.", + "type": "string", + "readOnly": true } + }, + "required": [ + "group", + "data" ] }, - "InitialValue": { - "allOf": [ - { - "$ref": "#/definitions/Entity" + "JobCollection": { + "type": "object", + "properties": { + "value": { + "description": "The collection of jobs.", + "type": "array", + "items": { + "$ref": "#/definitions/Job" + } }, - { - "type": "object", - "properties": { - "capability": { - "description": "The reference to the capability for which an initial value is being provided.", - "$ref": "#/definitions/CapabilityReference" - }, - "value": { - "description": "The initial value of the capability." - } - }, - "required": [ - "capability", - "value" - ] + "nextLink": { + "description": "URL to get the next page of jobs.", + "type": "string" } + }, + "required": [ + "value" ] }, - "Interface": { - "allOf": [ - { - "$ref": "#/definitions/Entity" + "JobData": { + "type": "object", + "properties": { + "type": { + "description": "Type of the job data.", + "type": "string" }, - { - "type": "object", - "properties": { - "contents": { - "description": "The data definitions contained by the interface.", - "type": "array", - "items": { - "$ref": "#/definitions/Capability" - } - } - } - } - ] - }, - "MapSchema": { - "allOf": [ - { - "$ref": "#/definitions/Entity" + "target": { + "description": "The device template which defines the target capability for the job.", + "type": "string" }, - { - "type": "object", - "properties": { - "mapKey": { - "description": "The schema for keys of this map type." - }, - "mapValue": { - "description": "The schema for values of this map type." - } - }, - "required": [ - "mapKey", - "mapValue" - ] + "path": { + "description": "The path to the target capability within the device template.", + "type": "string" + }, + "value": { + "description": "The value used to update the target capability, if any." } - ] + }, + "required": [ + "type", + "target", + "path" + ], + "discriminator": "type" }, - "NamedEntity": { - "allOf": [ - { - "$ref": "#/definitions/Entity" + "JobDeviceStatus": { + "properties": { + "id": { + "description": "ID of the device whose job status is being provided.", + "type": "string", + "readOnly": true }, - { - "type": "object", - "properties": { - "name": { - "description": "The programmatic name of the named entity.", - "type": "string" - } - }, - "required": [ - "name" - ] + "status": { + "description": "Indicates whether the job is starting, running, etc. for the given device.", + "type": "string", + "readOnly": true } - ] + } }, - "NamedEntityCollection": { + "JobDeviceStatusCollection": { "type": "object", "properties": { "value": { - "description": "The collection of named entities.", + "description": "The collection of job device statuses.", "type": "array", "items": { - "$ref": "#/definitions/NamedEntity" + "$ref": "#/definitions/JobDeviceStatus" } }, "nextLink": { - "description": "URL to get the next page of named entities.", + "description": "URL to get the next page of job device statuses.", "type": "string" } }, @@ -721,63 +590,6 @@ "value" ] }, - "ObjectSchema": { - "allOf": [ - { - "$ref": "#/definitions/Entity" - }, - { - "type": "object", - "properties": { - "fields": { - "description": "The property fields of this object type.", - "type": "array", - "items": { - "$ref": "#/definitions/SchemaField" - } - } - }, - "required": [ - "fields" - ] - } - ] - }, - "Override": { - "allOf": [ - { - "$ref": "#/definitions/Entity" - }, - { - "type": "object", - "properties": { - "capability": { - "description": "The reference to the capability which is being overridden.", - "$ref": "#/definitions/CapabilityReference" - }, - "displayUnit": { - "description": "The overridden display unit for the referenced capability.", - "type": "string" - }, - "semanticType": { - "description": "The overridden semantic type for the referenced capability.", - "type": "string" - }, - "unit": { - "description": "The overridden unit for the referenced capability.", - "type": "string" - }, - "valueDetail": { - "description": "Visualization details for the referenced capability.", - "$ref": "#/definitions/ValueDetail" - } - }, - "required": [ - "capability" - ] - } - ] - }, "Permission": { "type": "object", "properties": { @@ -803,6 +615,13 @@ "roles" ] }, + "PropertyJobData": { + "allOf": [ + { + "$ref": "#/definitions/JobData" + } + ] + }, "Role": { "type": "object", "properties": { @@ -836,32 +655,6 @@ "value" ] }, - "SchemaField": { - "allOf": [ - { - "$ref": "#/definitions/NamedEntity" - }, - { - "type": "object", - "properties": { - "schema": { - "description": "The schema of this field." - }, - "displayUnit": { - "description": "The display name of the unit of this field.", - "type": "string" - }, - "unit": { - "description": "The unit of this field.", - "type": "string" - } - }, - "required": [ - "schema" - ] - } - ] - }, "ServiceBusQueueEndpoint": { "allOf": [ { @@ -900,39 +693,6 @@ } ] }, - "SolutionModel": { - "allOf": [ - { - "$ref": "#/definitions/Entity" - }, - { - "type": "object", - "properties": { - "cloudProperties": { - "description": "The cloud properties defined by the solution model.", - "type": "array", - "items": { - "$ref": "#/definitions/Capability" - } - }, - "initialValues": { - "description": "The initial values defined by the solution model.", - "type": "array", - "items": { - "$ref": "#/definitions/InitialValue" - } - }, - "overrides": { - "description": "The overrides defined by the solution model.", - "type": "array", - "items": { - "$ref": "#/definitions/Override" - } - } - } - } - ] - }, "StorageEndpoint": { "allOf": [ { @@ -1051,63 +811,6 @@ "value" ] }, - "ValueDetail": { - "allOf": [ - { - "$ref": "#/definitions/Entity" - }, - { - "type": "object", - "properties": { - "falseName": { - "description": "The string representation of a false value.", - "type": "string" - }, - "trueName": { - "description": "The string representation of a true value.", - "type": "string" - }, - "hideTime": { - "description": "Specifies that the time portion of the date-time value should be hidden.", - "type": "boolean" - }, - "severity": { - "description": "Specifies the severity of the event.", - "type": "string", - "enum": [ - "error", - "warning", - "information" - ] - }, - "decimalPlaces": { - "description": "The number of decimal places that should be displayed for the number.", - "type": "integer" - }, - "maxValue": { - "description": "The maximum expected value of the number.", - "type": "number" - }, - "minValue": { - "description": "The minimum expected value of the number.", - "type": "number" - }, - "maxLength": { - "description": "The maximum expected length of the string.", - "type": "integer" - }, - "minLength": { - "description": "The minimum expected length of the string.", - "type": "integer" - }, - "trimWhitespace": { - "description": "Specifies the visual and storage treatment of whitespaces in the string.", - "type": "boolean" - } - } - } - ] - }, "X509": { "type": "object", "properties": { @@ -1396,6 +1099,28 @@ } } }, + "/deviceGroups": { + "get": { + "operationId": "DeviceGroups_List", + "summary": "Get the list of device groups in an application.", + "x-ms-examples": { + "List device groups": { + "$ref": "./examples/devicegroups_list.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/DeviceGroupCollection" + } + } + } + } + }, "/deviceTemplates": { "get": { "operationId": "DeviceTemplates_List", @@ -1780,6 +1505,71 @@ } } }, + "/devices/{device_id}/commands/{command_name}": { + "get": { + "operationId": "Devices_GetCommandHistory", + "summary": "Get device command history", + "x-ms-examples": { + "Get command history": { + "$ref": "./examples/devices_commandshistory_get.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/DeviceId" + }, + { + "$ref": "#/parameters/CommandName" + } + ], + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/DeviceCommandCollection" + } + } + } + }, + "post": { + "operationId": "Devices_ExecuteCommand", + "summary": "Execute a device command", + "description": "Execute a command on a device.", + "x-ms-examples": { + "Send command": { + "$ref": "./examples/devices_commands_send.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/DeviceId" + }, + { + "$ref": "#/parameters/CommandName" + }, + { + "in": "body", + "name": "body", + "description": "Device command body.", + "schema": { + "$ref": "#/definitions/DeviceCommand" + }, + "required": true + } + ], + "responses": { + "201": { + "description": "Success", + "schema": { + "$ref": "#/definitions/DeviceCommand" + } + } + } + } + }, "/devices/{device_id}/components": { "get": { "operationId": "Devices_ListComponents", @@ -1798,7 +1588,7 @@ "200": { "description": "Success", "schema": { - "$ref": "#/definitions/NamedEntityCollection" + "$ref": "#/definitions/Collection" } } } @@ -1807,7 +1597,7 @@ "/devices/{device_id}/components/{component_name}/commands/{command_name}": { "get": { "operationId": "Devices_GetComponentCommandHistory", - "summary": "Get device command history", + "summary": "Get component command history", "x-ms-examples": { "Get command history": { "$ref": "./examples/devices_commandshistory_get.json" @@ -1838,8 +1628,8 @@ }, "post": { "operationId": "Devices_ExecuteComponentCommand", - "summary": "Execute a device command", - "description": "Execute a command on a device.", + "summary": "Execute a component command", + "description": "Execute a command on a component.", "x-ms-examples": { "Send command": { "$ref": "./examples/devices_commands_send.json" @@ -1938,78 +1728,149 @@ }, "/devices/{device_id}/components/{component_name}/telemetry/{telemetry_name}": { "get": { - "operationId": "Devices_GetComponentTelemetryValue", - "summary": "Get device telemetry value", - "description": "Get the last telemetry value from a device.", + "operationId": "Devices_GetComponentTelemetryValue", + "summary": "Get component telemetry value", + "description": "Get the last telemetry value from a component.", + "x-ms-examples": { + "Get telemetry": { + "$ref": "./examples/devices_telemetry_get.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/DeviceId" + }, + { + "$ref": "#/parameters/ComponentName" + }, + { + "$ref": "#/parameters/TelemetryName" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/DeviceTelemetry" + } + } + } + } + }, + "/devices/{device_id}/credentials": { + "get": { + "operationId": "Devices_GetCredentials", + "summary": "Get device credentials", + "x-ms-examples": { + "Get device credentials": { + "$ref": "./examples/devicecredentials_get.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/DeviceId" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/DeviceCredentials" + } + } + } + } + }, + "/devices/{device_id}/modules": { + "get": { + "operationId": "Devices_ListModules", + "summary": "List the modules present in a device", "x-ms-examples": { - "Get telemetry": { - "$ref": "./examples/devices_telemetry_get.json" + "List modules": { + "$ref": "./examples/devices_modules_get.json" } }, "parameters": [ { "$ref": "#/parameters/DeviceId" - }, - { - "$ref": "#/parameters/ComponentName" - }, - { - "$ref": "#/parameters/TelemetryName" } ], "responses": { "200": { "description": "Success", "schema": { - "$ref": "#/definitions/DeviceTelemetry" + "$ref": "#/definitions/Collection" } } } } }, - "/devices/{device_id}/credentials": { + "/devices/{device_id}/modules/{module_name}/commands/{command_name}": { "get": { - "operationId": "Devices_GetCredentials", - "summary": "Get device credentials", + "operationId": "Devices_GetModuleCommandHistory", + "summary": "Get module command history", "x-ms-examples": { - "Get device credentials": { - "$ref": "./examples/devicecredentials_get.json" + "Get command history within module": { + "$ref": "./examples/modules_commandshistory_get.json" } }, "parameters": [ { "$ref": "#/parameters/DeviceId" + }, + { + "$ref": "#/parameters/ModuleName" + }, + { + "$ref": "#/parameters/CommandName" } ], + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, "responses": { "200": { "description": "Success", "schema": { - "$ref": "#/definitions/DeviceCredentials" + "$ref": "#/definitions/DeviceCommandCollection" } } } - } - }, - "/devices/{device_id}/modules": { - "get": { - "operationId": "Devices_ListModules", - "summary": "List the modules present in a device", + }, + "post": { + "operationId": "Devices_ExecuteModuleCommand", + "summary": "Execute a module command", + "description": "Execute a command on a module.", "x-ms-examples": { - "List modules": { - "$ref": "./examples/devices_modules_get.json" + "Send command to module": { + "$ref": "./examples/modules_commands_send.json" } }, "parameters": [ { "$ref": "#/parameters/DeviceId" + }, + { + "$ref": "#/parameters/ModuleName" + }, + { + "$ref": "#/parameters/CommandName" + }, + { + "in": "body", + "name": "body", + "description": "Device command body.", + "schema": { + "$ref": "#/definitions/DeviceCommand" + }, + "required": true } ], "responses": { - "200": { + "201": { "description": "Success", "schema": { - "$ref": "#/definitions/NamedEntityCollection" + "$ref": "#/definitions/DeviceCommand" } } } @@ -2036,7 +1897,7 @@ "200": { "description": "Success", "schema": { - "$ref": "#/definitions/NamedEntityCollection" + "$ref": "#/definitions/Collection" } } } @@ -2045,7 +1906,7 @@ "/devices/{device_id}/modules/{module_name}/components/{component_name}/commands/{command_name}": { "get": { "operationId": "Devices_GetModuleComponentCommandHistory", - "summary": "Get module command history", + "summary": "Get module component command history", "x-ms-examples": { "Get command history within module": { "$ref": "./examples/modules_commandshistory_get.json" @@ -2079,7 +1940,7 @@ }, "post": { "operationId": "Devices_ExecuteModuleComponentCommand", - "summary": "Execute a module command", + "summary": "Execute a module component command", "description": "Execute a command on a module.", "x-ms-examples": { "Send command to module": { @@ -2189,8 +2050,8 @@ "/devices/{device_id}/modules/{module_name}/components/{component_name}/telemetry/{telemetry_name}": { "get": { "operationId": "Devices_GetModuleComponentTelemetryValue", - "summary": "Get module telemetry value", - "description": "Get the last telemetry value from a module.", + "summary": "Get module component telemetry value", + "description": "Get the last telemetry value from a module component.", "x-ms-examples": { "Get telemetry from module": { "$ref": "./examples/modules_telemetry_get.json" @@ -2283,6 +2144,37 @@ } } }, + "/devices/{device_id}/modules/{module_name}/telemetry/{telemetry_name}": { + "get": { + "operationId": "Devices_GetModuleTelemetryValue", + "summary": "Get module telemetry value", + "description": "Get the last telemetry value from a module.", + "x-ms-examples": { + "Get telemetry from module": { + "$ref": "./examples/modules_telemetry_get.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/DeviceId" + }, + { + "$ref": "#/parameters/ModuleName" + }, + { + "$ref": "#/parameters/TelemetryName" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/DeviceTelemetry" + } + } + } + } + }, "/devices/{device_id}/properties": { "get": { "operationId": "Devices_GetProperties", @@ -2340,6 +2232,215 @@ } } }, + "/devices/{device_id}/telemetry/{telemetry_name}": { + "get": { + "operationId": "Devices_GetTelemetryValue", + "summary": "Get device telemetry value", + "description": "Get the last telemetry value from a device.", + "x-ms-examples": { + "Get telemetry": { + "$ref": "./examples/devices_telemetry_get.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/DeviceId" + }, + { + "$ref": "#/parameters/TelemetryName" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/DeviceTelemetry" + } + } + } + } + }, + "/jobs": { + "get": { + "operationId": "Jobs_List", + "summary": "Get the list of jobs in an application", + "x-ms-examples": { + "List jobs": { + "$ref": "./examples/jobs_list.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/JobCollection" + } + } + } + } + }, + "/jobs/{job_id}": { + "get": { + "operationId": "Jobs_Get", + "summary": "Get a job by ID", + "description": "Get details about a running or completed job by job ID.", + "x-ms-examples": { + "Get a job by Id": { + "$ref": "./examples/jobs_get.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/JobId" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/Job" + } + } + } + }, + "put": { + "operationId": "Jobs_Set", + "summary": "Execute a new job", + "description": "Create and execute a new job via its job definition.", + "x-ms-examples": { + "Execute a new job": { + "$ref": "./examples/jobs_create.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/JobId" + }, + { + "in": "body", + "name": "body", + "description": "Job definition.", + "schema": { + "$ref": "#/definitions/Job" + }, + "required": true + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/Job" + } + } + } + } + }, + "/jobs/{job_id}/devices": { + "get": { + "operationId": "Jobs_GetDevices", + "summary": "Get device statuses", + "description": "Get the list of individual device statuses by job ID.", + "x-ms-examples": { + "Get device statuses": { + "$ref": "./examples/jobs_devices.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/JobId" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/JobDeviceStatusCollection" + } + } + } + } + }, + "/jobs/{job_id}/rerun/{rerun_id}": { + "put": { + "operationId": "Jobs_Rerun", + "summary": "Rerun a job on failed devices", + "description": "Execute a rerun of an existing job on all failed devices.", + "x-ms-examples": { + "Rerun a job on failed devices": { + "$ref": "./examples/jobs_rerun.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/JobId" + }, + { + "in": "path", + "name": "rerun_id", + "description": "Unique ID of the job rerun.", + "x-ms-parameter-location": "method", + "type": "string", + "required": true + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/Job" + } + } + } + } + }, + "/jobs/{job_id}/resume": { + "post": { + "operationId": "Jobs_Resume", + "summary": "Resume a stopped job", + "description": "Resume execution of an existing stoppped job.", + "x-ms-examples": { + "Resume a stopped job": { + "$ref": "./examples/jobs_resume.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/JobId" + } + ], + "responses": { + "204": { + "description": "Success" + } + } + } + }, + "/jobs/{job_id}/stop": { + "post": { + "operationId": "Jobs_Stop", + "summary": "Stop a running job", + "description": "Stop execution of a job that is currently running.", + "x-ms-examples": { + "Stop a running job": { + "$ref": "./examples/jobs_stop.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/JobId" + } + ], + "responses": { + "204": { + "description": "Success" + } + } + } + }, "/roles": { "get": { "operationId": "Roles_List", @@ -2545,6 +2646,14 @@ "type": "string", "required": true }, + "JobId": { + "in": "path", + "name": "job_id", + "description": "Unique ID of the job.", + "x-ms-parameter-location": "method", + "type": "string", + "required": true + }, "ModuleName": { "in": "path", "name": "module_name", From 1eef01120229569adf9a268b6145c1ac86a3810f Mon Sep 17 00:00:00 2001 From: Vivian Liu Date: Tue, 10 Nov 2020 17:18:37 -0800 Subject: [PATCH 02/10] Spelling mistakes fix --- custom-words.txt | 1 + .../preview/2019-10-28-preview/iotcentral.json | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/custom-words.txt b/custom-words.txt index c0419ec13b8f..a210df5bb792 100644 --- a/custom-words.txt +++ b/custom-words.txt @@ -476,6 +476,7 @@ deserializing destinationshares deterministically devicecredentials +devicegroups deviceprovisioningservices devicetemplates devspaces diff --git a/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/iotcentral.json b/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/iotcentral.json index 6e792aff984f..4834a4d9feae 100644 --- a/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/iotcentral.json +++ b/specification/iotcentral/data-plane/Microsoft.IoTCentral/preview/2019-10-28-preview/iotcentral.json @@ -494,7 +494,7 @@ "type": "string" }, "data": { - "description": "The capabilies being updated by the job and the values with which they are being updated.", + "description": "The capabilities being updated by the job and the values with which they are being updated.", "type": "array", "items": { "$ref": "#/definitions/JobData" @@ -2401,7 +2401,7 @@ "post": { "operationId": "Jobs_Resume", "summary": "Resume a stopped job", - "description": "Resume execution of an existing stoppped job.", + "description": "Resume execution of an existing stopped job.", "x-ms-examples": { "Resume a stopped job": { "$ref": "./examples/jobs_resume.json" From 8529811739373a4031e9468d67df3027fb73a690 Mon Sep 17 00:00:00 2001 From: Vivian Liu Date: Wed, 11 Nov 2020 15:43:52 -0800 Subject: [PATCH 03/10] Trying to suppress email lint --- specification/iotcentral/data-plane/readme.md | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/specification/iotcentral/data-plane/readme.md b/specification/iotcentral/data-plane/readme.md index ad32b23a5c39..2f5a61387844 100644 --- a/specification/iotcentral/data-plane/readme.md +++ b/specification/iotcentral/data-plane/readme.md @@ -1,9 +1,9 @@ # IoT Central - API client generation > see https://aka.ms/autorest -This is the AutoRest configuration file for MonitorClient. +This is the AutoRest configuration file for Azure IoT Central. --- ## Getting Started -To build the SDK for MonitorClient, simply [Install AutoRest](https://aka.ms/autorest/install) and in this folder, run: +To build the SDK for Azure IoT Central, simply [Install AutoRest](https://aka.ms/autorest/install) and in this folder, run: > `autorest` To see additional help and options, run: > `autorest --help` @@ -14,6 +14,17 @@ These are the global settings for the IoT Central API. openapi-type: data-plane tag: package-2019-10-28-preview ``` + +## Suppression + +``` yaml +directive: + - suppress: ValidFormats + from: iotcentral.json + where: $.definitions.EmailUser.properties.email.format + reason: email format is allowed +``` + ### Tag: package-2019-10-28-preview These settings apply only when `--tag=package-2019-10-28-preview` is specified on the command line. From c2f340fc33de5eb31c80857dfc72fe380c1d9675 Mon Sep 17 00:00:00 2001 From: Vivian Liu Date: Wed, 11 Nov 2020 15:49:15 -0800 Subject: [PATCH 04/10] Small update to fix linter --- specification/iotcentral/data-plane/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specification/iotcentral/data-plane/readme.md b/specification/iotcentral/data-plane/readme.md index 2f5a61387844..119cf44dce81 100644 --- a/specification/iotcentral/data-plane/readme.md +++ b/specification/iotcentral/data-plane/readme.md @@ -21,7 +21,7 @@ tag: package-2019-10-28-preview directive: - suppress: ValidFormats from: iotcentral.json - where: $.definitions.EmailUser.properties.email.format + where: $.definitions.EmailUser.allOf[1].properties.email.format reason: email format is allowed ``` From a5aa7744f6902e8f18e649f78d95e4d29443297b Mon Sep 17 00:00:00 2001 From: Vivian Liu Date: Thu, 12 Nov 2020 16:00:01 -0800 Subject: [PATCH 05/10] Added additional suppression for long running ops --- specification/iotcentral/data-plane/readme.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/specification/iotcentral/data-plane/readme.md b/specification/iotcentral/data-plane/readme.md index 119cf44dce81..aa01475c2ec0 100644 --- a/specification/iotcentral/data-plane/readme.md +++ b/specification/iotcentral/data-plane/readme.md @@ -23,6 +23,23 @@ directive: from: iotcentral.json where: $.definitions.EmailUser.allOf[1].properties.email.format reason: email format is allowed + - suppress: LongRunningOperationsWithLongRunningExtension + from: iotcentral.json + where: $.paths[\\"/devices/{device_id}/components/{component_name}/properties\\"].put + reason: Long running due to device response time, but the API can't implement a standard pattern around + - suppress: LongRunningOperationsWithLongRunningExtension + from: iotcentral.json + where: $.paths[\\"/devices/{device_id}/modules/{module_name}/components/{component_name}/properties\\"].put + reason: Long running due to device response time, but the API can't implement a standard pattern around + - suppress: LongRunningOperationsWithLongRunningExtension + from: iotcentral.json + where: $.paths[\\"/devices/{device_id}/modules/{module_name}/properties\\"].put + reason: Long running due to device response time, but the API can't implement a standard pattern around + - suppress: LongRunningOperationsWithLongRunningExtension + from: iotcentral.json + where: $.paths[\\"/devices/{device_id}/properties\\"].put + reason: Long running due to device response time, but the API can't implement a standard pattern around + ``` ### Tag: package-2019-10-28-preview From b8916b6bff3c4d8eb1bc9b5ffafeca72c91deccc Mon Sep 17 00:00:00 2001 From: Vivian Liu Date: Thu, 12 Nov 2020 16:13:58 -0800 Subject: [PATCH 06/10] Again --- specification/iotcentral/data-plane/readme.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/specification/iotcentral/data-plane/readme.md b/specification/iotcentral/data-plane/readme.md index aa01475c2ec0..1727c9695cf4 100644 --- a/specification/iotcentral/data-plane/readme.md +++ b/specification/iotcentral/data-plane/readme.md @@ -25,19 +25,19 @@ directive: reason: email format is allowed - suppress: LongRunningOperationsWithLongRunningExtension from: iotcentral.json - where: $.paths[\\"/devices/{device_id}/components/{component_name}/properties\\"].put + where: $.paths["/devices/{device_id}/components/{component_name}/properties"].put reason: Long running due to device response time, but the API can't implement a standard pattern around - suppress: LongRunningOperationsWithLongRunningExtension from: iotcentral.json - where: $.paths[\\"/devices/{device_id}/modules/{module_name}/components/{component_name}/properties\\"].put + where: $.paths["/devices/{device_id}/modules/{module_name}/components/{component_name}/properties"].put reason: Long running due to device response time, but the API can't implement a standard pattern around - suppress: LongRunningOperationsWithLongRunningExtension from: iotcentral.json - where: $.paths[\\"/devices/{device_id}/modules/{module_name}/properties\\"].put + where: $.paths["/devices/{device_id}/modules/{module_name}/properties"].put reason: Long running due to device response time, but the API can't implement a standard pattern around - suppress: LongRunningOperationsWithLongRunningExtension from: iotcentral.json - where: $.paths[\\"/devices/{device_id}/properties\\"].put + where: $.paths["/devices/{device_id}/properties"].put reason: Long running due to device response time, but the API can't implement a standard pattern around ``` From 44a27e56fec896347c2087ae6a81af8e2e0b1733 Mon Sep 17 00:00:00 2001 From: Vivian Liu Date: Mon, 16 Nov 2020 12:56:12 -0800 Subject: [PATCH 07/10] Updated again --- specification/iotcentral/data-plane/readme.md | 54 +++++++++---------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/specification/iotcentral/data-plane/readme.md b/specification/iotcentral/data-plane/readme.md index 1727c9695cf4..68d43861015a 100644 --- a/specification/iotcentral/data-plane/readme.md +++ b/specification/iotcentral/data-plane/readme.md @@ -8,38 +8,38 @@ To build the SDK for Azure IoT Central, simply [Install AutoRest](https://aka.ms To see additional help and options, run: > `autorest --help` --- -## Configuration -These are the global settings for the IoT Central API. -``` yaml -openapi-type: data-plane -tag: package-2019-10-28-preview -``` ## Suppression ``` yaml directive: - - suppress: ValidFormats - from: iotcentral.json - where: $.definitions.EmailUser.allOf[1].properties.email.format - reason: email format is allowed - - suppress: LongRunningOperationsWithLongRunningExtension - from: iotcentral.json - where: $.paths["/devices/{device_id}/components/{component_name}/properties"].put - reason: Long running due to device response time, but the API can't implement a standard pattern around - - suppress: LongRunningOperationsWithLongRunningExtension - from: iotcentral.json - where: $.paths["/devices/{device_id}/modules/{module_name}/components/{component_name}/properties"].put - reason: Long running due to device response time, but the API can't implement a standard pattern around - - suppress: LongRunningOperationsWithLongRunningExtension - from: iotcentral.json - where: $.paths["/devices/{device_id}/modules/{module_name}/properties"].put - reason: Long running due to device response time, but the API can't implement a standard pattern around - - suppress: LongRunningOperationsWithLongRunningExtension - from: iotcentral.json - where: $.paths["/devices/{device_id}/properties"].put - reason: Long running due to device response time, but the API can't implement a standard pattern around - + - suppress: ValidFormats + from: iotcentral.json + where: $.definitions.EmailUser.allOf[1].properties.email.format + reason: email format is allowed + - suppress: LongRunningOperationsWithLongRunningExtension + from: iotcentral.json + where: $.paths["/devices/{device_id}/components/{component_name}/properties"].put + reason: Long running due to device response time, but the API can't implement a standard pattern around + - suppress: LongRunningOperationsWithLongRunningExtension + from: iotcentral.json + where: $.paths["/devices/{device_id}/modules/{module_name}/components/{component_name}/properties"].put + reason: Long running due to device response time, but the API can't implement a standard pattern around + - suppress: LongRunningOperationsWithLongRunningExtension + from: iotcentral.json + where: $.paths["/devices/{device_id}/modules/{module_name}/properties"].put + reason: Long running due to device response time, but the API can't implement a standard pattern around + - suppress: LongRunningOperationsWithLongRunningExtension + from: iotcentral.json + where: $.paths["/devices/{device_id}/properties"].put + reason: Long running due to device response time, but the API can't implement a standard pattern around +``` + +## Configuration +These are the global settings for the IoT Central API. +``` yaml +openapi-type: data-plane +tag: package-2019-10-28-preview ``` ### Tag: package-2019-10-28-preview From 1f6f8dbb39f51358d3661baedf2485569f8c449c Mon Sep 17 00:00:00 2001 From: Vivian Liu Date: Mon, 16 Nov 2020 13:07:48 -0800 Subject: [PATCH 08/10] Removing the other suppressors --- specification/iotcentral/data-plane/readme.md | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/specification/iotcentral/data-plane/readme.md b/specification/iotcentral/data-plane/readme.md index 68d43861015a..6a04294dc895 100644 --- a/specification/iotcentral/data-plane/readme.md +++ b/specification/iotcentral/data-plane/readme.md @@ -17,22 +17,6 @@ directive: from: iotcentral.json where: $.definitions.EmailUser.allOf[1].properties.email.format reason: email format is allowed - - suppress: LongRunningOperationsWithLongRunningExtension - from: iotcentral.json - where: $.paths["/devices/{device_id}/components/{component_name}/properties"].put - reason: Long running due to device response time, but the API can't implement a standard pattern around - - suppress: LongRunningOperationsWithLongRunningExtension - from: iotcentral.json - where: $.paths["/devices/{device_id}/modules/{module_name}/components/{component_name}/properties"].put - reason: Long running due to device response time, but the API can't implement a standard pattern around - - suppress: LongRunningOperationsWithLongRunningExtension - from: iotcentral.json - where: $.paths["/devices/{device_id}/modules/{module_name}/properties"].put - reason: Long running due to device response time, but the API can't implement a standard pattern around - - suppress: LongRunningOperationsWithLongRunningExtension - from: iotcentral.json - where: $.paths["/devices/{device_id}/properties"].put - reason: Long running due to device response time, but the API can't implement a standard pattern around ``` ## Configuration From f1af557f45ca336fc5d007a2bdc1c6aa01f19038 Mon Sep 17 00:00:00 2001 From: Vivian Liu Date: Mon, 16 Nov 2020 16:04:32 -0800 Subject: [PATCH 09/10] New suppression without quotes --- specification/iotcentral/data-plane/readme.md | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/specification/iotcentral/data-plane/readme.md b/specification/iotcentral/data-plane/readme.md index 6a04294dc895..a5a3d1610ed9 100644 --- a/specification/iotcentral/data-plane/readme.md +++ b/specification/iotcentral/data-plane/readme.md @@ -14,9 +14,25 @@ To see additional help and options, run: ``` yaml directive: - suppress: ValidFormats - from: iotcentral.json - where: $.definitions.EmailUser.allOf[1].properties.email.format - reason: email format is allowed + from: iotcentral.json + where: $.definitions.EmailUser.allOf[1].properties.email.format + reason: email format is allowed + - suppress: LongRunningOperationsWithLongRunningExtension + from: iotcentral.json + where: $.paths[/devices/{device_id}/components/{component_name}/properties].put + reason: Long running due to device response time, but the API can't implement a standard pattern around + - suppress: LongRunningOperationsWithLongRunningExtension + from: iotcentral.json + where: $.paths[/devices/{device_id}/modules/{module_name}/components/{component_name}/properties].put + reason: Long running due to device response time, but the API can't implement a standard pattern around + - suppress: LongRunningOperationsWithLongRunningExtension + from: iotcentral.json + where: $.paths[/devices/{device_id}/modules/{module_name}/properties].put + reason: Long running due to device response time, but the API can't implement a standard pattern around + - suppress: LongRunningOperationsWithLongRunningExtension + from: iotcentral.json + where: $.paths[/devices/{device_id}/properties].put + reason: Long running due to device response time, but the API can't implement a standard pattern around ``` ## Configuration From 07cb3594ecb2a224be7e50c70c4b01577a624cf4 Mon Sep 17 00:00:00 2001 From: Vivian Liu Date: Mon, 16 Nov 2020 16:32:07 -0800 Subject: [PATCH 10/10] back to just email suppression --- specification/iotcentral/data-plane/readme.md | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/specification/iotcentral/data-plane/readme.md b/specification/iotcentral/data-plane/readme.md index a5a3d1610ed9..393939db41bb 100644 --- a/specification/iotcentral/data-plane/readme.md +++ b/specification/iotcentral/data-plane/readme.md @@ -17,22 +17,6 @@ directive: from: iotcentral.json where: $.definitions.EmailUser.allOf[1].properties.email.format reason: email format is allowed - - suppress: LongRunningOperationsWithLongRunningExtension - from: iotcentral.json - where: $.paths[/devices/{device_id}/components/{component_name}/properties].put - reason: Long running due to device response time, but the API can't implement a standard pattern around - - suppress: LongRunningOperationsWithLongRunningExtension - from: iotcentral.json - where: $.paths[/devices/{device_id}/modules/{module_name}/components/{component_name}/properties].put - reason: Long running due to device response time, but the API can't implement a standard pattern around - - suppress: LongRunningOperationsWithLongRunningExtension - from: iotcentral.json - where: $.paths[/devices/{device_id}/modules/{module_name}/properties].put - reason: Long running due to device response time, but the API can't implement a standard pattern around - - suppress: LongRunningOperationsWithLongRunningExtension - from: iotcentral.json - where: $.paths[/devices/{device_id}/properties].put - reason: Long running due to device response time, but the API can't implement a standard pattern around ``` ## Configuration