# NotificationChannels

Notification Channels are the medium through which notifications are sent.

## Get supported Notification Channels

> Get supported Notification Channels

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.22"},"tags":[{"name":"NotificationChannels","description":"Notification Channels are the medium through which notifications are sent."}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"schemas":{"NotificationChannelMeta":{"type":"object","required":["name","type"],"properties":{"name":{"type":"string"},"type":{"type":"string","enum":["email","slack"],"default":"email"}}},"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}},"responses":{"401Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404NotFound":{"description":"The specified resource was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500InternalServerError":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"501NotImplemented":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/api/v1/notification-channels":{"get":{"tags":["NotificationChannels"],"operationId":"getNotificationChannels","summary":"Get supported Notification Channels","description":"Get supported Notification Channels","responses":{"200":{"description":"Notification Channel types","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/NotificationChannelMeta"}}}}},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"404":{"$ref":"#/components/responses/404NotFound"},"500":{"$ref":"#/components/responses/500InternalServerError"},"501":{"$ref":"#/components/responses/501NotImplemented"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Create configuration of notification channel

> Create configuration of notification channel

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.22"},"tags":[{"name":"NotificationChannels","description":"Notification Channels are the medium through which notifications are sent."}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"schemas":{"NotificationChannel":{"type":"object","required":["name","type","config"],"allOf":[{"$ref":"#/components/schemas/NotificationChannelForPatch"},{"type":"object","properties":{"name":{"type":"string"}}}]},"NotificationChannelForPatch":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/NotificationChannelType"},"config":{"allOf":[{"$ref":"#/components/schemas/NotificationChannelConfig"}]}}},"NotificationChannelType":{"type":"string","enum":["email","slack"],"default":"email"},"NotificationChannelConfig":{"type":"object","oneOf":[{"$ref":"#/components/schemas/EmailNotificationChannelConfig"},{"$ref":"#/components/schemas/SlackNotificationChannelConfig"}]},"EmailNotificationChannelConfig":{"type":"object","properties":{"username":{"type":"string"},"password":{"type":"string"},"smtpHost":{"type":"string"},"from":{"type":"string"},"smtpPort":{"type":"integer","default":587},"authType":{"$ref":"#/components/schemas/EmailAuthType"},"smtpTlsEnabled":{"type":"boolean","nullable":true},"recipients":{"type":"array","items":{"type":"string"},"default":[]},"fromDisplayName":{"type":"string","default":"Run:ai"},"directNotifications":{"type":"boolean","nullable":true},"useAttachments":{"type":"boolean","nullable":true},"subject":{"type":"string","default":"Run:ai notification - {{ .category }} {{ .reason }}"}}},"EmailAuthType":{"type":"string","enum":["auth_login","auth_plain","auth_none",""],"default":"auth_login"},"SlackNotificationChannelConfig":{"type":"object","properties":{"recipients":{"type":"array","items":{"type":"string"},"default":[]},"directNotifications":{"type":"boolean","nullable":true},"apiToken":{"type":"string"}}},"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}},"responses":{"400BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404NotFound":{"description":"The specified resource was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409Conflict":{"description":"The specified resource already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500InternalServerError":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"501NotImplemented":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/api/v1/notification-channels":{"post":{"tags":["NotificationChannels"],"operationId":"createNotificationChannelConfig","summary":"Create configuration of notification channel","description":"Create configuration of notification channel","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationChannel"}}}},"responses":{"200":{"description":"Notification Channel config created"},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"404":{"$ref":"#/components/responses/404NotFound"},"409":{"$ref":"#/components/responses/409Conflict"},"500":{"$ref":"#/components/responses/500InternalServerError"},"501":{"$ref":"#/components/responses/501NotImplemented"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Create Slack app

> Create Slack app

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.22"},"tags":[{"name":"NotificationChannels","description":"Notification Channels are the medium through which notifications are sent."}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"schemas":{"CreateSlackAppRequestBody":{"type":"object","required":["accessToken"],"properties":{"accessToken":{"type":"string","description":"The access token required for creating slack app"}}},"CreateSlackAppResponse":{"type":"object","required":["slackAppUrl"],"properties":{"slackAppUrl":{"type":"string"}}},"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}},"responses":{"400BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404NotFound":{"description":"The specified resource was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500InternalServerError":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"501NotImplemented":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/api/v1/notification-channels/slack/create-app":{"post":{"tags":["NotificationChannels"],"operationId":"createSlackApp","summary":"Create Slack app","description":"Create Slack app","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSlackAppRequestBody"}}}},"responses":{"200":{"description":"Created Slack app response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSlackAppResponse"}}}},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"404":{"$ref":"#/components/responses/404NotFound"},"500":{"$ref":"#/components/responses/500InternalServerError"},"501":{"$ref":"#/components/responses/501NotImplemented"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Get configuration of notification channel

> Get configuration of notification channel

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.22"},"tags":[{"name":"NotificationChannels","description":"Notification Channels are the medium through which notifications are sent."}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"schemas":{"NotificationChannel":{"type":"object","required":["name","type","config"],"allOf":[{"$ref":"#/components/schemas/NotificationChannelForPatch"},{"type":"object","properties":{"name":{"type":"string"}}}]},"NotificationChannelForPatch":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/NotificationChannelType"},"config":{"allOf":[{"$ref":"#/components/schemas/NotificationChannelConfig"}]}}},"NotificationChannelType":{"type":"string","enum":["email","slack"],"default":"email"},"NotificationChannelConfig":{"type":"object","oneOf":[{"$ref":"#/components/schemas/EmailNotificationChannelConfig"},{"$ref":"#/components/schemas/SlackNotificationChannelConfig"}]},"EmailNotificationChannelConfig":{"type":"object","properties":{"username":{"type":"string"},"password":{"type":"string"},"smtpHost":{"type":"string"},"from":{"type":"string"},"smtpPort":{"type":"integer","default":587},"authType":{"$ref":"#/components/schemas/EmailAuthType"},"smtpTlsEnabled":{"type":"boolean","nullable":true},"recipients":{"type":"array","items":{"type":"string"},"default":[]},"fromDisplayName":{"type":"string","default":"Run:ai"},"directNotifications":{"type":"boolean","nullable":true},"useAttachments":{"type":"boolean","nullable":true},"subject":{"type":"string","default":"Run:ai notification - {{ .category }} {{ .reason }}"}}},"EmailAuthType":{"type":"string","enum":["auth_login","auth_plain","auth_none",""],"default":"auth_login"},"SlackNotificationChannelConfig":{"type":"object","properties":{"recipients":{"type":"array","items":{"type":"string"},"default":[]},"directNotifications":{"type":"boolean","nullable":true},"apiToken":{"type":"string"}}},"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}},"responses":{"400BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404NotFound":{"description":"The specified resource was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500InternalServerError":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"501NotImplemented":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/api/v1/notification-channels/{name}":{"get":{"tags":["NotificationChannels"],"operationId":"getNotificationChannelConfig","summary":"Get configuration of notification channel","description":"Get configuration of notification channel","responses":{"200":{"description":"Notification channel config","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationChannel"}}}},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"404":{"$ref":"#/components/responses/404NotFound"},"500":{"$ref":"#/components/responses/500InternalServerError"},"501":{"$ref":"#/components/responses/501NotImplemented"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Update configuration of Notification Channel

> Update configuration of Notification Channel

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.22"},"tags":[{"name":"NotificationChannels","description":"Notification Channels are the medium through which notifications are sent."}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"schemas":{"NotificationChannel":{"type":"object","required":["name","type","config"],"allOf":[{"$ref":"#/components/schemas/NotificationChannelForPatch"},{"type":"object","properties":{"name":{"type":"string"}}}]},"NotificationChannelForPatch":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/NotificationChannelType"},"config":{"allOf":[{"$ref":"#/components/schemas/NotificationChannelConfig"}]}}},"NotificationChannelType":{"type":"string","enum":["email","slack"],"default":"email"},"NotificationChannelConfig":{"type":"object","oneOf":[{"$ref":"#/components/schemas/EmailNotificationChannelConfig"},{"$ref":"#/components/schemas/SlackNotificationChannelConfig"}]},"EmailNotificationChannelConfig":{"type":"object","properties":{"username":{"type":"string"},"password":{"type":"string"},"smtpHost":{"type":"string"},"from":{"type":"string"},"smtpPort":{"type":"integer","default":587},"authType":{"$ref":"#/components/schemas/EmailAuthType"},"smtpTlsEnabled":{"type":"boolean","nullable":true},"recipients":{"type":"array","items":{"type":"string"},"default":[]},"fromDisplayName":{"type":"string","default":"Run:ai"},"directNotifications":{"type":"boolean","nullable":true},"useAttachments":{"type":"boolean","nullable":true},"subject":{"type":"string","default":"Run:ai notification - {{ .category }} {{ .reason }}"}}},"EmailAuthType":{"type":"string","enum":["auth_login","auth_plain","auth_none",""],"default":"auth_login"},"SlackNotificationChannelConfig":{"type":"object","properties":{"recipients":{"type":"array","items":{"type":"string"},"default":[]},"directNotifications":{"type":"boolean","nullable":true},"apiToken":{"type":"string"}}},"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}},"responses":{"400BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404NotFound":{"description":"The specified resource was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500InternalServerError":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"501NotImplemented":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/api/v1/notification-channels/{name}":{"put":{"tags":["NotificationChannels"],"operationId":"updateNotificationChannelConfig","summary":"Update configuration of Notification Channel","description":"Update configuration of Notification Channel","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationChannel"}}}},"responses":{"200":{"description":"Notification Channel config updated"},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"404":{"$ref":"#/components/responses/404NotFound"},"500":{"$ref":"#/components/responses/500InternalServerError"},"501":{"$ref":"#/components/responses/501NotImplemented"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Delete configuration of Notification Channel

> Delete configuration of Notification Channel

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.22"},"tags":[{"name":"NotificationChannels","description":"Notification Channels are the medium through which notifications are sent."}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"responses":{"400BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404NotFound":{"description":"The specified resource was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500InternalServerError":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"501NotImplemented":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"schemas":{"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}}},"paths":{"/api/v1/notification-channels/{name}":{"delete":{"tags":["NotificationChannels"],"operationId":"deleteNotificationChannelConfig","summary":"Delete configuration of Notification Channel","description":"Delete configuration of Notification Channel","responses":{"204":{"description":"Notification Channel config deleted"},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"404":{"$ref":"#/components/responses/404NotFound"},"500":{"$ref":"#/components/responses/500InternalServerError"},"501":{"$ref":"#/components/responses/501NotImplemented"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Patch configuration of Notification Channel

> Patch configuration of Notification Channel

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.22"},"tags":[{"name":"NotificationChannels","description":"Notification Channels are the medium through which notifications are sent."}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"schemas":{"NotificationChannelForPatch":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/NotificationChannelType"},"config":{"allOf":[{"$ref":"#/components/schemas/NotificationChannelConfig"}]}}},"NotificationChannelType":{"type":"string","enum":["email","slack"],"default":"email"},"NotificationChannelConfig":{"type":"object","oneOf":[{"$ref":"#/components/schemas/EmailNotificationChannelConfig"},{"$ref":"#/components/schemas/SlackNotificationChannelConfig"}]},"EmailNotificationChannelConfig":{"type":"object","properties":{"username":{"type":"string"},"password":{"type":"string"},"smtpHost":{"type":"string"},"from":{"type":"string"},"smtpPort":{"type":"integer","default":587},"authType":{"$ref":"#/components/schemas/EmailAuthType"},"smtpTlsEnabled":{"type":"boolean","nullable":true},"recipients":{"type":"array","items":{"type":"string"},"default":[]},"fromDisplayName":{"type":"string","default":"Run:ai"},"directNotifications":{"type":"boolean","nullable":true},"useAttachments":{"type":"boolean","nullable":true},"subject":{"type":"string","default":"Run:ai notification - {{ .category }} {{ .reason }}"}}},"EmailAuthType":{"type":"string","enum":["auth_login","auth_plain","auth_none",""],"default":"auth_login"},"SlackNotificationChannelConfig":{"type":"object","properties":{"recipients":{"type":"array","items":{"type":"string"},"default":[]},"directNotifications":{"type":"boolean","nullable":true},"apiToken":{"type":"string"}}},"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}},"responses":{"400BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404NotFound":{"description":"The specified resource was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500InternalServerError":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"501NotImplemented":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/api/v1/notification-channels/{name}":{"patch":{"tags":["NotificationChannels"],"operationId":"patchNotificationChannelConfig","summary":"Patch configuration of Notification Channel","description":"Patch configuration of Notification Channel","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationChannelForPatch"}}}},"responses":{"200":{"description":"Notification Channel config patched"},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"404":{"$ref":"#/components/responses/404NotFound"},"500":{"$ref":"#/components/responses/500InternalServerError"},"501":{"$ref":"#/components/responses/501NotImplemented"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Validate configuration of Notification Channel

> Validate configuration of Notification Channel

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.22"},"tags":[{"name":"NotificationChannels","description":"Notification Channels are the medium through which notifications are sent."}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"schemas":{"NotificationChannelForValidate":{"type":"object","required":["type","config"],"allOf":[{"$ref":"#/components/schemas/NotificationChannelForPatch"}]},"NotificationChannelForPatch":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/NotificationChannelType"},"config":{"allOf":[{"$ref":"#/components/schemas/NotificationChannelConfig"}]}}},"NotificationChannelType":{"type":"string","enum":["email","slack"],"default":"email"},"NotificationChannelConfig":{"type":"object","oneOf":[{"$ref":"#/components/schemas/EmailNotificationChannelConfig"},{"$ref":"#/components/schemas/SlackNotificationChannelConfig"}]},"EmailNotificationChannelConfig":{"type":"object","properties":{"username":{"type":"string"},"password":{"type":"string"},"smtpHost":{"type":"string"},"from":{"type":"string"},"smtpPort":{"type":"integer","default":587},"authType":{"$ref":"#/components/schemas/EmailAuthType"},"smtpTlsEnabled":{"type":"boolean","nullable":true},"recipients":{"type":"array","items":{"type":"string"},"default":[]},"fromDisplayName":{"type":"string","default":"Run:ai"},"directNotifications":{"type":"boolean","nullable":true},"useAttachments":{"type":"boolean","nullable":true},"subject":{"type":"string","default":"Run:ai notification - {{ .category }} {{ .reason }}"}}},"EmailAuthType":{"type":"string","enum":["auth_login","auth_plain","auth_none",""],"default":"auth_login"},"SlackNotificationChannelConfig":{"type":"object","properties":{"recipients":{"type":"array","items":{"type":"string"},"default":[]},"directNotifications":{"type":"boolean","nullable":true},"apiToken":{"type":"string"}}},"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}},"responses":{"400BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404NotFound":{"description":"The specified resource was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409Conflict":{"description":"The specified resource already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500InternalServerError":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"501NotImplemented":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/api/v1/validate-notification-channel":{"post":{"tags":["NotificationChannels"],"operationId":"validateNotificationChannel","summary":"Validate configuration of Notification Channel","description":"Validate configuration of Notification Channel","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationChannelForValidate"}}}},"responses":{"200":{"description":"Notification Channel validity","content":{"application/json":{"schema":{"type":"boolean"}}}},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"404":{"$ref":"#/components/responses/404NotFound"},"409":{"$ref":"#/components/responses/409Conflict"},"500":{"$ref":"#/components/responses/500InternalServerError"},"501":{"$ref":"#/components/responses/501NotImplemented"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```
