--- alias: user-guide-automation-protocol-index tags: - connect iot description: "This documentation outlines the technical communication interface and its associated data specifications" --- # Automation Protocol The automation protocol represents the technical communication interface specification, implemented by a communication driver package. Because this object is versioned, each communication driver package version should have a corresponding automation protocol version. Each **Automation Protocol** version imports its specification directly from the communication driver package, as three sets of data: - **Parameters** - the communication/configuration parameters used to connect to the equipment (for example, host, port, authentication). - **Data Types** - the protocol specific data types available for use (for example, the driver's own numeric or structured types). - **Extended Data** - protocol specific attributes added on top of the base Command/Property/Event model; see [Extended Data](#extended-data) section below. None of this data can be overridden after import, except for the default values of Parameters. ## Extended Data Every protocol driver builds on the same base model: Properties, Events, Event Properties, Commands, and Command Parameters. This is what lets Automation Controller workflows behave the same way regardless of protocol. Different protocols still need different metadata on top of that base model. A REST command needs an HTTP verb; an MQTT property needs a Quality of Service level. **Extended Data** is how a protocol adds this metadata without changing the base model. | Extended Object | Typical Use | | --- | --- | | Command | Behavior of an operation the workflow triggers (for example, the HTTP verb and timeout used by the REST Client) | | Command Parameter | Behavior of one argument of a command (for example, whether a REST Client parameter goes in the path, query string, header or body) | | Property | Behavior of a value that is continuously read/written | | Event | Behavior of a notification raised by the equipment | | Event Property | Behavior of a field carried by an event | A protocol declares extended data only for the object kinds it needs. REST Client, for example, is a stateless protocol with no Properties or Events, so it only declares extended attributes for Commands and Command Parameters. Once a protocol is imported, these attributes appear directly on the relevant Property, Event, Event Property, Command, or Command Parameter form when creating an **Automation Driver Definition**, alongside their default values. Each protocol's own documentation page describes what it makes available, with worked examples. See, for example, the [REST Client](automation-protocol-protocols/driver_restclient.md#extended-parameters) protocol. !!! info For more information, see the [[tutorials-factory-automation-index]] tutorial. ## Management Operations For information about Automation Protocol management operations, refer to the [Operations Page](automation_protocol_operations.md).