NVIDIA Run:ai NotificationChannels API
Notification Channels are the medium through which notifications are sent.
Notification Channels are the medium through which notifications are sent.
openapi: 3.0.3
info:
version: latest
description: '# Introduction
The NVIDIA Run:ai Control-Plane API reference is a guide that provides an easy-to-use programming interface for adding various tasks to your application, including workload submission, resource management, and administrative operations.
NVIDIA Run:ai APIs are accessed using *bearer tokens*. To obtain a token, you need to create a **Service account** through the NVIDIA Run:ai user interface.
To create a service account, in your UI, go to Access → Service Accounts (for organization-level service accounts) or User settings → Access Keys (for user access keys), and create a new one.
After you have created a new service account, you will need to assign it access rules.
To assign access rules to the service account, see [Create access rules](https://run-ai-docs.nvidia.com/saas/infrastructure-setup/authentication/accessrules#create-or-delete-rules).
Make sure you assign the correct rules to your service account. Use the [Roles](https://run-ai-docs.nvidia.com/saas/infrastructure-setup/authentication/roles) to assign the correct access rules.
To get your access token, follow the instructions in [Request a token](https://run-ai-docs.nvidia.com/saas/reference/api/rest-auth/#request-an-api-token).
'
title: NVIDIA Run:ai Access Keys NotificationChannels API
x-logo:
url: https://api.redocly.com/registry/raw/runai-xq8/saas/latest/public/runai-logo-api.png
altText: NVIDIA Run:ai
href: https://run.ai
license:
name: NVIDIA Run:ai
url: https://www.nvidia.com/en-us/agreements/enterprise-software/nvidia-software-license-agreement/
servers:
- url: https://app.run.ai
security:
- bearerAuth: []
tags:
- name: NotificationChannels
description: Notification Channels are the medium through which notifications are sent.
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'
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'
/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'
/api/v1/notification-channels/{name}:
parameters:
- $ref: '#/components/parameters/NotificationChannelName'
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/NotificationChannelResponse'
'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:
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'
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:
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'
/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:
example: true
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'
components:
schemas:
Error:
required:
- code
- message
properties:
code:
type: integer
minimum: 100
maximum: 599
message:
type: string
details:
type: string
example:
code: 400
message: Bad request - Resource should have a name
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 }}
example:
username: email@gmail.com
password: 123456
smtpHost: smtp.gmail.com
from: email@gmail.com
subject: My subject
NotificationChannelForPatch:
type: object
properties:
type:
$ref: '#/components/schemas/NotificationChannelType'
config:
allOf:
- $ref: '#/components/schemas/NotificationChannelConfig'
example:
username: email@gmail.com
password: 123456
smtpHost: smtp.gmail.com
from: email@gmail.com
subject: My subject
NotificationChannelConfig:
type: object
allOf:
- $ref: '#/components/schemas/EmailNotificationChannelConfig'
- $ref: '#/components/schemas/SlackNotificationChannelConfig'
EmailAuthType:
type: string
enum:
- auth_login
- auth_plain
- auth_none
- ''
default: auth_login
NotificationChannelType:
type: string
enum:
- email
- slack
default: email
CreateSlackAppRequestBody:
type: object
required:
- accessToken
properties:
accessToken:
type: string
description: The access token required for creating slack app
example:
accessToken: xoxe.xoxp-1-Mi0yLTMzOTYzNjA4MjgxOS04MDI4MzM3NjUzNzQ2LTgyMDIzNzM1NTM5OTEtODMxNjcyNDM2MjY1OS03MjA4NmUzZGIyMTNlNjU5MjVjMDgzZTJmMTk1NWMzOWUwMGEyOGYzN2U1ZWYxYjA1ZjgxY2IzNDA5YThhMTAq
NotificationChannel:
type: object
required:
- type
- config
allOf:
- $ref: '#/components/schemas/NotificationChannelForPatch'
NotificationChannelResponse:
type: object
required:
- type
- config
- name
allOf:
- $ref: '#/components/schemas/NotificationChannel'
- type: object
properties:
name:
type: string
NotificationChannelForValidate:
type: object
required:
- type
- config
allOf:
- $ref: '#/components/schemas/NotificationChannelForPatch'
CreateSlackAppResponse:
type: object
required:
- slackAppUrl
properties:
slackAppUrl:
type: string
example:
slackAppUrl: https://api.slack.com/apps/A089PHD5S0Q
SlackNotificationChannelConfig:
type: object
properties:
recipients:
type: array
items:
type: string
default: []
directNotifications:
type: boolean
nullable: true
apiToken:
type: string
example:
apiToken: <your_api_token>
NotificationChannelMeta:
type: object
required:
- name
- type
properties:
name:
type: string
type:
type: string
enum:
- email
- slack
default: email
example:
name: my-email
type: email
responses:
404NotFound:
description: The specified resource was not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 404
message: Resource id not found.
500InternalServerError:
description: unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 500
message: Something went wrong.
501NotImplemented:
description: unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 501
message: Not implemented
403Forbidden:
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 403
message: You do not have sufficient permissions.
503ServiceUnavailable:
description: unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 503
message: Please try again in few minutes.
409Conflict:
description: The specified resource already exists
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 409
message: Resource with this name already exists
401Unauthorized:
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 401
message: Issuer is not familiar.
400BadRequest:
description: Bad request.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Required parameter is missing
parameters:
NotificationChannelName:
name: name
in: path
description: Notification Channel name
required: true
schema:
type: string
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
description: Bearer authentication
x-tagGroups:
- name: Organizations
tags:
- Clusters
- Departments
- Reports
- NodePools
- Nodes
- Projects
- Tenant
- Logo
- Researcher Command Line Interface
- Researcher Command Line Interface Deprecated
- Administrator Command Line Interface
- Network Topologies
- name: Authentication and Authorization
tags:
- Access Keys
- Access rules
- Permissions
- Applications
- Service Accounts
- Roles
- Tokens
- Users
- User Applications
- Idps
- Me
- Settings
- Org unit
- name: Audit
tags:
- AuditLogs
- name: Datavolumes
tags:
- Datavolumes
- name: Workloads
tags:
- Events
- Pods
- Workloads
- Workloads V2
- NVIDIA NIM
- Workspaces
- Trainings
- Inferences
- Revisions
- Distributed
- Workloads batch
- Workload properties
- Workload templates
- Distributed Inferences
- name: Workload assets
tags:
- Compute
- Credentials
- Datasources
- Environment
- Storage Classes
- Storage Class Configuration
- Git
- HostPath
- NFS
- PVC
- Registry
- S3
- ConfigMap
- Secret
- Template
- name: Policies
tags:
- Policy
- name: Notifications
tags:
- Notification State
- Notification Types
- NotificationChannels
- Subscriptions
- name: AI Applications
tags:
- AI Applications