> For the complete documentation index, see [llms.txt](https://cloudforet.gitbook.io/cloudforet-apis/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cloudforet.gitbook.io/cloudforet-apis/content/en/notification/plugin/protocol.md).

# Protocol

A Protocol is a plugin instance defining how a User receives data from Cloudforet.

> **Package : spaceone.api.notification.plugin**

\ <br>

## Protocol

**Protocol Methods:**

| Method                                                                                                                      | Request                                                                                                                                           | Response                                                                                                                        |
| --------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
| [**init**](https://github.com/cloudforet-io/api-doc/blob/master/content/en/notification/plugin/Protocol/README.md#init)     | [InitRequest](https://github.com/cloudforet-io/api-doc/blob/master/content/en/notification/plugin/Protocol/README.md#initrequest)                 | [PluginInfo](https://github.com/cloudforet-io/api-doc/blob/master/content/en/notification/plugin/Protocol/README.md#plugininfo) |
| [**verify**](https://github.com/cloudforet-io/api-doc/blob/master/content/en/notification/plugin/Protocol/README.md#verify) | [PluginVerifyRequest](https://github.com/cloudforet-io/api-doc/blob/master/content/en/notification/plugin/Protocol/README.md#pluginverifyrequest) | [Empty](https://github.com/cloudforet-io/api-doc/blob/master/content/en/notification/plugin/Protocol/README.md#empty)           |

<br>

### init

Initializes a specific Protocol. During initialization, the Protocol information to be passed to the Protocol user is delivered as `metadata`. Protocol information includes its name and version.

{{< tabs " init " >}}

{{< tab "Request Example" >}}

[InitRequest](https://github.com/cloudforet-io/api-doc/blob/master/content/en/notification/plugin/Protocol/README.md#initrequest)

* **options** (Struct) `Required`

  *Option value used when initializing the plugin.*

{{< highlight json >}} { "options": {} } {{< /highlight >}} {{< /tab >}}

{{< tab "Response Example" >}}

[PluginInfo](#PLUGININFO)

* **metadata** (Struct) `Required`

  Metadata value required to input various values required for plugin to work. In the case of protocol plugins, when creating a channel, the plugin contains the definition of additional data (channel data) required for channel transmission.

{{< highlight json >}} {\
"metadata": {} } {{< /highlight >}} {{< /tab >}}

{{< /tabs >}}

<br>

### verify

Verifies if a specific Protocol is a valid plugin instance.

{{< tabs " verify " >}}

{{< tab "Request Example" >}}

[PluginVerifyRequest](https://github.com/cloudforet-io/api-doc/blob/master/content/en/notification/plugin/Protocol/README.md#pluginverifyrequest)

* **options** (Struct) `Required`

  *Option values required for the plugin to work.*
* **secret\_data** (Struct) `Required`

  *The secret value required for the plugin to work. The secret data usually includes the credential information required for the plugin to access the external system.*

{{< highlight json >}} { "options": {} } {{< /highlight >}} {{< /tab >}}

{{< /tabs >}}

\ <br>

## Message

### InitRequest

* **options** (Struct) `Required`

  *Option value used when initializing the plugin.*

  <br>

### PluginInfo

* **metadata** (Struct) `Required`

  *Metadata value required to input various values required for plugin to work. In the case of protocol plugins, when creating a channel, the plugin contains the definition of additional data (channel data) required for channel transmission.*

  <br>

### PluginVerifyRequest

* **options** (Struct) `Required`

  *Option values required for the plugin to work.*
* **secret\_data** (Struct) `Required`

  *The secret value required for the plugin to work. The secret data usually includes the credential information required for the plugin to access the external system.*

  <br>
