# Protocol

A Protocol defines the method to use when dispatching Notifications via a channel.

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

\
\


## Protocol

**Protocol Methods:**

| Method                                                                                                                                 | Request                                                                                                                                                       | Response                                                                                                                          |
| -------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| [**create**](https://github.com/cloudforet-io/api-doc/blob/master/content/en/notification/v1/Protocol/README.md#create)                | [CreateProtocolRequest](https://github.com/cloudforet-io/api-doc/blob/master/content/en/notification/v1/Protocol/README.md#createprotocolrequest)             | [ProtocolInfo](https://github.com/cloudforet-io/api-doc/blob/master/content/en/notification/v1/Protocol/README.md#protocolinfo)   |
| [**update**](https://github.com/cloudforet-io/api-doc/blob/master/content/en/notification/v1/Protocol/README.md#update)                | [UpdateProtocolRequest](https://github.com/cloudforet-io/api-doc/blob/master/content/en/notification/v1/Protocol/README.md#updateprotocolrequest)             | [ProtocolInfo](https://github.com/cloudforet-io/api-doc/blob/master/content/en/notification/v1/Protocol/README.md#protocolinfo)   |
| [**update\_plugin**](https://github.com/cloudforet-io/api-doc/blob/master/content/en/notification/v1/Protocol/README.md#update_plugin) | [UpdateProtocolPluginRequest](https://github.com/cloudforet-io/api-doc/blob/master/content/en/notification/v1/Protocol/README.md#updateprotocolpluginrequest) | [ProtocolInfo](https://github.com/cloudforet-io/api-doc/blob/master/content/en/notification/v1/Protocol/README.md#protocolinfo)   |
| [**enable**](https://github.com/cloudforet-io/api-doc/blob/master/content/en/notification/v1/Protocol/README.md#enable)                | [ProtocolRequest](https://github.com/cloudforet-io/api-doc/blob/master/content/en/notification/v1/Protocol/README.md#protocolrequest)                         | [ProtocolInfo](https://github.com/cloudforet-io/api-doc/blob/master/content/en/notification/v1/Protocol/README.md#protocolinfo)   |
| [**disable**](https://github.com/cloudforet-io/api-doc/blob/master/content/en/notification/v1/Protocol/README.md#disable)              | [ProtocolRequest](https://github.com/cloudforet-io/api-doc/blob/master/content/en/notification/v1/Protocol/README.md#protocolrequest)                         | [ProtocolInfo](https://github.com/cloudforet-io/api-doc/blob/master/content/en/notification/v1/Protocol/README.md#protocolinfo)   |
| [**delete**](https://github.com/cloudforet-io/api-doc/blob/master/content/en/notification/v1/Protocol/README.md#delete)                | [ProtocolRequest](https://github.com/cloudforet-io/api-doc/blob/master/content/en/notification/v1/Protocol/README.md#protocolrequest)                         | [Empty](https://github.com/cloudforet-io/api-doc/blob/master/content/en/notification/v1/Protocol/README.md#empty)                 |
| [**get**](https://github.com/cloudforet-io/api-doc/blob/master/content/en/notification/v1/Protocol/README.md#get)                      | [ProtocolRequest](https://github.com/cloudforet-io/api-doc/blob/master/content/en/notification/v1/Protocol/README.md#protocolrequest)                         | [ProtocolInfo](https://github.com/cloudforet-io/api-doc/blob/master/content/en/notification/v1/Protocol/README.md#protocolinfo)   |
| [**list**](https://github.com/cloudforet-io/api-doc/blob/master/content/en/notification/v1/Protocol/README.md#list)                    | [ProtocolQuery](https://github.com/cloudforet-io/api-doc/blob/master/content/en/notification/v1/Protocol/README.md#protocolquery)                             | [ProtocolsInfo](https://github.com/cloudforet-io/api-doc/blob/master/content/en/notification/v1/Protocol/README.md#protocolsinfo) |
| [**stat**](https://github.com/cloudforet-io/api-doc/blob/master/content/en/notification/v1/Protocol/README.md#stat)                    | [ProtocolStatQuery](https://github.com/cloudforet-io/api-doc/blob/master/content/en/notification/v1/Protocol/README.md#protocolstatquery)                     | [Struct](https://github.com/cloudforet-io/api-doc/blob/master/content/en/notification/v1/Protocol/README.md#struct)               |

\


### create

Creates a new Protocol. When creating a protocol, you must specify the plugins provided from the repository, and you must also set the credentials to be set in the plugin if necessary.

> **POST** /notification/v1/protocol/create

\{{< tabs " create " >\}}

\{{< tab "Request Example" >\}}

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

*   **name** (string) `Required`

    _The name of Protocol. It can have a maximum of 255 characters._
*   **plugin\_info** (PluginRequest) `Required`

    _Describe a Plugin information for protocol that include was used plugin, specific version, schema etc._
*   **tags** (Struct)

    _The tags for protocol._

\{{< highlight json >\}} { "name": "Email", "plugin\_info": { "plugin\_id": "plugin-email-noti-protocol", "version": "1.0.1", "options": {}, "secret\_id": "secret-123546789012", "metadata": { "data": { "schema": { "properties": { "email": { "pattern": "^\[\W]_(\[\w+\\-.%]+@\[\w\\-.]+\\.\[A-Za-z]{2,4}\[\W]_,{1}\[\W]_)_(\[\w+\\-.%]+@\[\w\\-.]+\\.\[A-Za-z]{2,4})\[\W]\*$", "examples": \[ "user1@test.com, user2@test.com" ], "minLength": 10.0, "description": "Email address to receive notifications", "type": "string", "title": "Email Address" } }, "required": \[ "email" ], "type": "object" } }, "data\_type": "PLAIN\_TEXT" }, "upgrade\_mode": "AUTO" }, "tags": {} } \{{< /highlight >\}} \{{< /tab >\}}

\{{< tab "Response Example" >\}}

[ProtocolInfo](#PROTOCOLINFO)

*   **protocol\_id** (string) `Required`

    The ID of Protocol.
*   **name** (string) `Required`

    The name of Protocol.
*   **state** (ProtocolState) `Required`

    The state of Protocol. ENABLED or DISABLED only.
*   **protocol\_type** (ProtocolType) `Required`

    desc : The type of Protocol. INTERNAL or EXTERNAL only.
*   **resource\_type** (string) `Required`

    desc : Resource type for Protocol. Currently only identity.Project or identity.User can be set.
*   **capability** (Struct) `Required`

    desc : The capability information for the Protocol. It included supported schema for the Protocol.
*   **plugin\_info** (PluginInfo) `Required`

    the plugin information set in Protocol.
*   **tags** (Struct) `Required`

    The tags for protocol.
*   **domain\_id** (string) `Required`

    The ID of domain to which the Protocol belongs.
*   **created\_at** (string) `Required`

    Protocol creation time.

\{{< highlight json >\}} { "protocol\_id": "protocol-123546789012", "name": "Email", "state": "ENABLED", "protocol\_type": "EXTERNAL", "capability": { "supported\_schema": \[ "email\_smtp" ] }, "plugin\_info": { "plugin\_id": "plugin-email-noti-protocol", "version": "1.0.1", "options": {}, "secret\_id": "secret-123546789012", "metadata": { "data": { "schema": { "properties": { "email": { "pattern": "^\[\W]_(\[\w+\\-.%]+@\[\w\\-.]+\\.\[A-Za-z]{2,4}\[\W]_,{1}\[\W]_)_(\[\w+\\-.%]+@\[\w\\-.]+\\.\[A-Za-z]{2,4})\[\W]\*$", "examples": \[ "user1@test.com, user2@test.com" ], "minLength": 10.0, "description": "Email address to receive notifications", "type": "string", "title": "Email Address" } }, "required": \[ "email" ], "type": "object" } }, "data\_type": "PLAIN\_TEXT" }, "upgrade\_mode": "AUTO" }, "tags": {}, "domain\_id": "domain-123546789012", "created\_at": "2022-01-01T07:55:57.043Z" } \{{< /highlight >\}} \{{< /tab >\}}

\{{< /tabs >\}}

\


### update

Updates a specific Protocol. The method `update` can update the name and tags only. If you want to update the plugin version or options, you can use `update_plugin` method.

> **POST** /notification/v1/protocol/update

\{{< tabs " update " >\}}

\{{< tab "Request Example" >\}}

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

*   **protocol\_id** (string) `Required`

    _The ID of Protocol._
*   **name** (string)

    _The Name of Protocol. It can have a maximum of 255 characters._
*   **tags** (Struct)

    _The tags for protocol. When updating, existing tag information is deleted all and will be updated with new._

\{{< highlight json >\}} { "protocol\_id": "protocol-123456789012", "name": "Email-test", "tags": { "type": "test" } } \{{< /highlight >\}} \{{< /tab >\}}

\{{< tab "Response Example" >\}}

[ProtocolInfo](#PROTOCOLINFO)

*   **protocol\_id** (string) `Required`

    The ID of Protocol.
*   **name** (string) `Required`

    The name of Protocol.
*   **state** (ProtocolState) `Required`

    The state of Protocol. ENABLED or DISABLED only.
*   **protocol\_type** (ProtocolType) `Required`

    desc : The type of Protocol. INTERNAL or EXTERNAL only.
*   **resource\_type** (string) `Required`

    desc : Resource type for Protocol. Currently only identity.Project or identity.User can be set.
*   **capability** (Struct) `Required`

    desc : The capability information for the Protocol. It included supported schema for the Protocol.
*   **plugin\_info** (PluginInfo) `Required`

    the plugin information set in Protocol.
*   **tags** (Struct) `Required`

    The tags for protocol.
*   **domain\_id** (string) `Required`

    The ID of domain to which the Protocol belongs.
*   **created\_at** (string) `Required`

    Protocol creation time.

\{{< highlight json >\}} { "protocol\_id": "protocol-123546789012", "name": "Email", "state": "ENABLED", "protocol\_type": "EXTERNAL", "capability": { "supported\_schema": \[ "email\_smtp" ] }, "plugin\_info": { "plugin\_id": "plugin-email-noti-protocol", "version": "1.0.1", "options": {}, "secret\_id": "secret-123546789012", "metadata": { "data": { "schema": { "properties": { "email": { "pattern": "^\[\W]_(\[\w+\\-.%]+@\[\w\\-.]+\\.\[A-Za-z]{2,4}\[\W]_,{1}\[\W]_)_(\[\w+\\-.%]+@\[\w\\-.]+\\.\[A-Za-z]{2,4})\[\W]\*$", "examples": \[ "user1@test.com, user2@test.com" ], "minLength": 10.0, "description": "Email address to receive notifications", "type": "string", "title": "Email Address" } }, "required": \[ "email" ], "type": "object" } }, "data\_type": "PLAIN\_TEXT" }, "upgrade\_mode": "AUTO" }, "tags": {}, "domain\_id": "domain-123546789012", "created\_at": "2022-01-01T07:55:57.043Z" } \{{< /highlight >\}} \{{< /tab >\}}

\{{< /tabs >\}}

\


### update\_plugin

Updates a plugin for a Protocol. It is usually used when redeploying a plugin to a new version.

> **POST** /notification/v1/protocol/update-plugin

\{{< tabs " update\_plugin " >\}}

\{{< tab "Request Example" >\}}

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

*   **protocol\_id** (string) `Required`

    _The ID of Protocol._
*   **domain\_id** (string) `Required`

    _The ID of domain to which the Protocol belongs._
*   **version** (string)

    _The version of plugin you want to update. Version means the tags of plugin container image in repository that specific market place._
*   **options** (Struct)

    _The Options that contains information about using plugin._

\{{< highlight json >\}} { "protocol\_id": "protocol-123456789012", "version": "1.0.2", "options": {} } \{{< /highlight >\}} \{{< /tab >\}}

\{{< tab "Response Example" >\}}

[ProtocolInfo](#PROTOCOLINFO)

*   **protocol\_id** (string) `Required`

    The ID of Protocol.
*   **name** (string) `Required`

    The name of Protocol.
*   **state** (ProtocolState) `Required`

    The state of Protocol. ENABLED or DISABLED only.
*   **protocol\_type** (ProtocolType) `Required`

    desc : The type of Protocol. INTERNAL or EXTERNAL only.
*   **resource\_type** (string) `Required`

    desc : Resource type for Protocol. Currently only identity.Project or identity.User can be set.
*   **capability** (Struct) `Required`

    desc : The capability information for the Protocol. It included supported schema for the Protocol.
*   **plugin\_info** (PluginInfo) `Required`

    the plugin information set in Protocol.
*   **tags** (Struct) `Required`

    The tags for protocol.
*   **domain\_id** (string) `Required`

    The ID of domain to which the Protocol belongs.
*   **created\_at** (string) `Required`

    Protocol creation time.

\{{< highlight json >\}} { "protocol\_id": "protocol-123546789012", "name": "Email", "state": "ENABLED", "protocol\_type": "EXTERNAL", "capability": { "supported\_schema": \[ "email\_smtp" ] }, "plugin\_info": { "plugin\_id": "plugin-email-noti-protocol", "version": "1.0.1", "options": {}, "secret\_id": "secret-123546789012", "metadata": { "data": { "schema": { "properties": { "email": { "pattern": "^\[\W]_(\[\w+\\-.%]+@\[\w\\-.]+\\.\[A-Za-z]{2,4}\[\W]_,{1}\[\W]_)_(\[\w+\\-.%]+@\[\w\\-.]+\\.\[A-Za-z]{2,4})\[\W]\*$", "examples": \[ "user1@test.com, user2@test.com" ], "minLength": 10.0, "description": "Email address to receive notifications", "type": "string", "title": "Email Address" } }, "required": \[ "email" ], "type": "object" } }, "data\_type": "PLAIN\_TEXT" }, "upgrade\_mode": "AUTO" }, "tags": {}, "domain\_id": "domain-123546789012", "created\_at": "2022-01-01T07:55:57.043Z" } \{{< /highlight >\}} \{{< /tab >\}}

\{{< /tabs >\}}

\


### enable

Enables a specific Protocol. If the Protocol is enabled, the Protocol can be used and the Notification can be dispatched.

> **POST** /notification/v1/protocol/enable

\{{< tabs " enable " >\}}

\{{< tab "Request Example" >\}}

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

*   **protocol\_id** (string) `Required`

    _The ID of Protocol._

\{{< highlight json >\}} { "protocol\_id": "protocol-123456789012" } \{{< /highlight >\}} \{{< /tab >\}}

\{{< tab "Response Example" >\}}

[ProtocolInfo](#PROTOCOLINFO)

*   **protocol\_id** (string) `Required`

    The ID of Protocol.
*   **name** (string) `Required`

    The name of Protocol.
*   **state** (ProtocolState) `Required`

    The state of Protocol. ENABLED or DISABLED only.
*   **protocol\_type** (ProtocolType) `Required`

    desc : The type of Protocol. INTERNAL or EXTERNAL only.
*   **resource\_type** (string) `Required`

    desc : Resource type for Protocol. Currently only identity.Project or identity.User can be set.
*   **capability** (Struct) `Required`

    desc : The capability information for the Protocol. It included supported schema for the Protocol.
*   **plugin\_info** (PluginInfo) `Required`

    the plugin information set in Protocol.
*   **tags** (Struct) `Required`

    The tags for protocol.
*   **domain\_id** (string) `Required`

    The ID of domain to which the Protocol belongs.
*   **created\_at** (string) `Required`

    Protocol creation time.

\{{< highlight json >\}} { "protocol\_id": "protocol-123546789012", "name": "Email", "state": "ENABLED", "protocol\_type": "EXTERNAL", "capability": { "supported\_schema": \[ "email\_smtp" ] }, "plugin\_info": { "plugin\_id": "plugin-email-noti-protocol", "version": "1.0.1", "options": {}, "secret\_id": "secret-123546789012", "metadata": { "data": { "schema": { "properties": { "email": { "pattern": "^\[\W]_(\[\w+\\-.%]+@\[\w\\-.]+\\.\[A-Za-z]{2,4}\[\W]_,{1}\[\W]_)_(\[\w+\\-.%]+@\[\w\\-.]+\\.\[A-Za-z]{2,4})\[\W]\*$", "examples": \[ "user1@test.com, user2@test.com" ], "minLength": 10.0, "description": "Email address to receive notifications", "type": "string", "title": "Email Address" } }, "required": \[ "email" ], "type": "object" } }, "data\_type": "PLAIN\_TEXT" }, "upgrade\_mode": "AUTO" }, "tags": {}, "domain\_id": "domain-123546789012", "created\_at": "2022-01-01T07:55:57.043Z" } \{{< /highlight >\}} \{{< /tab >\}}

\{{< /tabs >\}}

\


### disable

Disables a specific Protocol. If a Protocol is disabled, the Notification will not be dispatched, even if it is created.

> **POST** /notification/v1/protocol/disable

\{{< tabs " disable " >\}}

\{{< tab "Request Example" >\}}

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

*   **protocol\_id** (string) `Required`

    _The ID of Protocol._

\{{< highlight json >\}} { "protocol\_id": "protocol-123456789012" } \{{< /highlight >\}} \{{< /tab >\}}

\{{< tab "Response Example" >\}}

[ProtocolInfo](#PROTOCOLINFO)

*   **protocol\_id** (string) `Required`

    The ID of Protocol.
*   **name** (string) `Required`

    The name of Protocol.
*   **state** (ProtocolState) `Required`

    The state of Protocol. ENABLED or DISABLED only.
*   **protocol\_type** (ProtocolType) `Required`

    desc : The type of Protocol. INTERNAL or EXTERNAL only.
*   **resource\_type** (string) `Required`

    desc : Resource type for Protocol. Currently only identity.Project or identity.User can be set.
*   **capability** (Struct) `Required`

    desc : The capability information for the Protocol. It included supported schema for the Protocol.
*   **plugin\_info** (PluginInfo) `Required`

    the plugin information set in Protocol.
*   **tags** (Struct) `Required`

    The tags for protocol.
*   **domain\_id** (string) `Required`

    The ID of domain to which the Protocol belongs.
*   **created\_at** (string) `Required`

    Protocol creation time.

\{{< highlight json >\}} { "protocol\_id": "protocol-123546789012", "name": "Email", "state": "ENABLED", "protocol\_type": "EXTERNAL", "capability": { "supported\_schema": \[ "email\_smtp" ] }, "plugin\_info": { "plugin\_id": "plugin-email-noti-protocol", "version": "1.0.1", "options": {}, "secret\_id": "secret-123546789012", "metadata": { "data": { "schema": { "properties": { "email": { "pattern": "^\[\W]_(\[\w+\\-.%]+@\[\w\\-.]+\\.\[A-Za-z]{2,4}\[\W]_,{1}\[\W]_)_(\[\w+\\-.%]+@\[\w\\-.]+\\.\[A-Za-z]{2,4})\[\W]\*$", "examples": \[ "user1@test.com, user2@test.com" ], "minLength": 10.0, "description": "Email address to receive notifications", "type": "string", "title": "Email Address" } }, "required": \[ "email" ], "type": "object" } }, "data\_type": "PLAIN\_TEXT" }, "upgrade\_mode": "AUTO" }, "tags": {}, "domain\_id": "domain-123546789012", "created\_at": "2022-01-01T07:55:57.043Z" } \{{< /highlight >\}} \{{< /tab >\}}

\{{< /tabs >\}}

\


### delete

Deletes a specific Protocol. If there exists a channel using the Protocol, it cannot be deleted.

> **POST** /notification/v1/protocol/delete

\{{< tabs " delete " >\}}

\{{< tab "Request Example" >\}}

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

*   **protocol\_id** (string) `Required`

    _The ID of Protocol._

\{{< highlight json >\}} { "protocol\_id": "protocol-123456789012" } \{{< /highlight >\}} \{{< /tab >\}}

\{{< /tabs >\}}

\


### get

Gets a specific Protocol. Prints detailed information about the Protocol.

> **POST** /notification/v1/protocol/get

\{{< tabs " get " >\}}

\{{< tab "Request Example" >\}}

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

*   **protocol\_id** (string) `Required`

    _The ID of Protocol._

\{{< highlight json >\}} { "protocol\_id": "protocol-123456789012" } \{{< /highlight >\}} \{{< /tab >\}}

\{{< tab "Response Example" >\}}

[ProtocolInfo](#PROTOCOLINFO)

*   **protocol\_id** (string) `Required`

    The ID of Protocol.
*   **name** (string) `Required`

    The name of Protocol.
*   **state** (ProtocolState) `Required`

    The state of Protocol. ENABLED or DISABLED only.
*   **protocol\_type** (ProtocolType) `Required`

    desc : The type of Protocol. INTERNAL or EXTERNAL only.
*   **resource\_type** (string) `Required`

    desc : Resource type for Protocol. Currently only identity.Project or identity.User can be set.
*   **capability** (Struct) `Required`

    desc : The capability information for the Protocol. It included supported schema for the Protocol.
*   **plugin\_info** (PluginInfo) `Required`

    the plugin information set in Protocol.
*   **tags** (Struct) `Required`

    The tags for protocol.
*   **domain\_id** (string) `Required`

    The ID of domain to which the Protocol belongs.
*   **created\_at** (string) `Required`

    Protocol creation time.

\{{< highlight json >\}} { "protocol\_id": "protocol-123546789012", "name": "Email", "state": "ENABLED", "protocol\_type": "EXTERNAL", "capability": { "supported\_schema": \[ "email\_smtp" ] }, "plugin\_info": { "plugin\_id": "plugin-email-noti-protocol", "version": "1.0.1", "options": {}, "secret\_id": "secret-123546789012", "metadata": { "data": { "schema": { "properties": { "email": { "pattern": "^\[\W]_(\[\w+\\-.%]+@\[\w\\-.]+\\.\[A-Za-z]{2,4}\[\W]_,{1}\[\W]_)_(\[\w+\\-.%]+@\[\w\\-.]+\\.\[A-Za-z]{2,4})\[\W]\*$", "examples": \[ "user1@test.com, user2@test.com" ], "minLength": 10.0, "description": "Email address to receive notifications", "type": "string", "title": "Email Address" } }, "required": \[ "email" ], "type": "object" } }, "data\_type": "PLAIN\_TEXT" }, "upgrade\_mode": "AUTO" }, "tags": {}, "domain\_id": "domain-123546789012", "created\_at": "2022-01-01T07:55:57.043Z" } \{{< /highlight >\}} \{{< /tab >\}}

\{{< /tabs >\}}

\


### list

Gets a list of Protocols. You can use a query to get a filtered list of Protocols.

> **POST** /notification/v1/protocol/list

\{{< tabs " list " >\}}

\{{< tab "Request Example" >\}}

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

*   **query** (Query)

    _Query format provided by SpaceONE. Please check the link for more information._
*   **protocol\_id** (string)

    _The ID of Protocol._
*   **name** (string)

    _The name of Protocol._
*   **state** (ProtocolState)

    _The state of Protocol. ENABLED or DISABLED only._
*   **protocol\_type** (ProtocolType)

    _The type of Protocol. INTERNAL or EXTERNAL only._

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

\{{< tab "Response Example" >\}}

[ProtocolsInfo](#PROTOCOLSINFO)

*   **results** (ProtocolInfo) `Repeated` `Required`

    List of queried protocols.
*   **total\_count** (int32) `Required`

    Total counts of queried Protocols.

\{{< highlight json >\}} { "results":\[ { "protocol\_id":"protocol-123456789012", "name":"Email", "state":"ENABLED", "protocol\_type":"EXTERNAL", "capability":{ "supported\_schema":\[ "email\_smtp" ] }, "plugin\_info":{ "plugin\_id":"plugin-email-noti-protocol", "version":"1.0.1", "options":{

```
           },
           "secret_id":"secret-123456789012",
           "metadata":{
              "data_type":"PLAIN_TEXT",
              "data":{
                 "schema":{
                    "properties":{
                       "email":{
                          "pattern":"^[\\W]*([\\w+\\-.%]+@[\\w\\-.]+\\.[A-Za-z]{2,4}[\\W]*,{1}[\\W]*)*([\\w+\\-.%]+@[\\w\\-.]+\\.[A-Za-z]{2,4})[\\W]*$",
                          "examples":[
                             "user1@test.com, user2@test.com"
                          ],
                          "minLength":10.0,
                          "description":"Email address to receive notifications",
                          "type":"string",
                          "title":"Email Address"
                       }
                    },
                    "required":[
                       "email"
                    ],
                    "type":"object"
                 }
              }
           },
           "upgrade_mode":"AUTO"
        },
        "tags":{

        },
        "domain_id":"domain-123456789012",
        "created_at":"2022-01-01T07:55:57.043Z"
     }
  ],
  "total_count":1
```

} \{{< /highlight >\}} \{{< /tab >\}}

\{{< /tabs >\}}

\


### stat

> **POST** /notification/v1/protocol/stat

\
\


## Message

### CreateProtocolRequest

*   **name** (string) `Required`

    _The name of Protocol. It can have a maximum of 255 characters._
*   **plugin\_info** (PluginRequest) `Required`

    _Describe a Plugin information for protocol that include was used plugin, specific version, schema etc._
*   **tags** (Struct)

    _The tags for protocol._

    \


### PluginInfo

*   **plugin\_id** (string) `Required`

    _The ID of plugin set in the Protocol._
*   **version** (string) `Required`

    _The version of plugin._
*   **options** (Struct) `Required`

    _The Options that contains information about using plugin._
*   **metadata** (Struct) `Required`

    _The metadata of plugin. It includes schema for the data that must be set for the Channel when creating the Channel using a Protocol. The schema follows the JSON Schema format._
*   **upgrade\_mode** (UpgradeMode) `Required`

    _Auto upgrade for plugin. If the upgrade\_mode is AUTO, check the latest plugin version when running the plugin, and if a new version is existed, replace the plugin and then run it._
*   **secret\_id** (string)

    _The ID of the Secret containing encrypted data to be used in the plugin._

    \


### PluginRequest

*   **plugin\_id** (string) `Required`

    _The ID of plugin._
*   **version** (string) `Required`

    _The version of plugin._
*   **options** (Struct)

    _The Options that contains information about using plugin._
*   **secret\_data** (Struct)

    _The data for using plugin if necessary. This data is encrypted and stored in the Secret service._
*   **schema** (string)

    _The name of schema. When the secret\_data is stored in the Secret service, it can be set with schema if the schema is existed. The schema is provided through the Repository service._
*   **upgrade\_mode** (UpgradeMode)

    _Auto upgrade feature for plugin. If the upgrade mode is AUTO, check the latest plugin version when running the plugin, and if a new version is existed, replace the plugin and then run it._

    \


### ProtocolInfo

*   **protocol\_id** (string) `Required`

    _The ID of Protocol._
*   **name** (string) `Required`

    _The name of Protocol._
*   **state** (ProtocolState) `Required`

    _The state of Protocol. ENABLED or DISABLED only._
*   **protocol\_type** (ProtocolType) `Required`

    _desc : The type of Protocol. INTERNAL or EXTERNAL only._
*   **resource\_type** (string) `Required`

    _desc : Resource type for Protocol. Currently only identity.Project or identity.User can be set._
*   **capability** (Struct) `Required`

    _desc : The capability information for the Protocol. It included supported schema for the Protocol._
*   **plugin\_info** (PluginInfo) `Required`

    _the plugin information set in Protocol._
*   **tags** (Struct) `Required`

    _The tags for protocol._
*   **domain\_id** (string) `Required`

    _The ID of domain to which the Protocol belongs._
*   **created\_at** (string) `Required`

    _Protocol creation time._

    \


### ProtocolQuery

*   **query** (Query)

    _Query format provided by SpaceONE. Please check the link for more information._
*   **protocol\_id** (string)

    _The ID of Protocol._
*   **name** (string)

    _The name of Protocol._
*   **state** (ProtocolState)

    _The state of Protocol. ENABLED or DISABLED only._
*   **protocol\_type** (ProtocolType)

    _The type of Protocol. INTERNAL or EXTERNAL only._

    \


### ProtocolRequest

*   **protocol\_id** (string) `Required`

    _The ID of Protocol._

    \


### ProtocolStatQuery

*   **query** (StatisticsQuery) `Required`

    _Statistics Query format provided by SpaceONE. Please check the link for more information._

    \


### ProtocolsInfo

*   **results** (ProtocolInfo) `Repeated` `Required`

    _List of queried protocols._
*   **total\_count** (int32) `Required`

    _Total counts of queried Protocols._

    \


### UpdateProtocolPluginRequest

*   **protocol\_id** (string) `Required`

    _The ID of Protocol._
*   **domain\_id** (string) `Required`

    _The ID of domain to which the Protocol belongs._
*   **version** (string)

    _The version of plugin you want to update. Version means the tags of plugin container image in repository that specific market place._
*   **options** (Struct)

    _The Options that contains information about using plugin._

    \


### UpdateProtocolRequest

*   **protocol\_id** (string) `Required`

    _The ID of Protocol._
*   **name** (string)

    _The Name of Protocol. It can have a maximum of 255 characters._
*   **tags** (Struct)

    _The tags for protocol. When updating, existing tag information is deleted all and will be updated with new._

    \
