Create a Configuration for a Third-Party Service Integration
On this page
- OAuth 2.0 authentication for programmatic access to Cloud Manager is available as a Preview feature.
- The feature and the corresponding documentation might change at any time during the Preview period. To use OAuth 2.0 authentication, create a service account to use in your requests to the Cloud Manager Public API.
Note
Groups and projects are synonymous terms. Your {PROJECT-ID}
is the
same as your project id. For existing groups, your group/project id
remains the same. This page uses the more familiar term group when
referring to descriptions. The endpoint remains as stated in the
document.
Base URL: https://cloud.mongodb.com/api/public/v1.0
Syntax
POST /groups/{GROUP-ID}/integrations/{INTEGRATION-TYPE}
Request Path Parameters
Parameter | Necessity | Description |
---|---|---|
{PROJECT-ID} | Required | Project identifier. |
{INTEGRATION-TYPE} | Required | Third-party service identifier. Accepted values are:
|
Request Query Parameters
Name | Type | Necessity | Description | Default |
---|---|---|---|---|
pageNum | number | Optional | One-based integer that returns a subsection of results. | 1 |
itemsPerPage | number | Optional | Number of items to return per page, up to a maximum of 500. | 100 |
pretty | boolean | Optional | Flag that indicates whether the response body should be in a
prettyprint format. | false |
envelope | boolean | Optional | Flag that indicates whether or not to wrap the response in an envelope. Some API clients cannot access the HTTP response headers or
status code. To remediate this, set For endpoints that return a list of results, the | false |
backupJobsEnabledOnly | boolean | Optional | Flag indicating whether to exclude daemons not enabled for
backing up databases from the response. Set this to false to
include daemon configurations with the backupJobsEnabled
flag set to false . | true |
Request Body Parameters
The request body should be a single integration view (like a JSON
configuration object) for a single third-party service to add to the
project. Always include a type
property equal to the third-party
service INTEGRATION_TYPE
.
Service | Configuration Options | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
PagerDuty | You must provide the following fields when you configure a PagerDuty integration:
| ||||||||||||||||||||||
Slack | IMPORTANT: Slack integrations now use the OAuth2 verification method and must be initially configured, or updated from a legacy integration, through the MongoDB Atlas third-party service integrations page. Legacy tokens will soon no longer be supported. You must provide the following fields when you reconfigure an existing Slack integration:
You may also include the following fields:
| ||||||||||||||||||||||
Opsgenie | You must provide the following fields when you configure a Opsgenie integration:
| ||||||||||||||||||||||
VictorOps | You must provide the following fields when you configure a VictorOps integration:
You may also include the following fields:
| ||||||||||||||||||||||
Webhook Settings | You must provide the following fields when you configure webhook settings:
You may also include the following fields:
| ||||||||||||||||||||||
Microsoft Teams | You must provide the following fields when you configure a Microsoft Teams integration:
| ||||||||||||||||||||||
Prometheus | You must provide the following fields when you configure a Prometheus integration:
You may also include the following fields:
|
Response Elements
The response includes a results
array which lists all third-party
integration configurations for the project as objects, and a
totalCount
of the services integrated with the project.
Each third-party integration configuration object includes a type
property equal to its own integration type ("type": "PAGER_DUTY"
for the PagerDuty service). Additionally, each third-party service
configuration object provides details specific to that service. The
following lists the properties returned for each third-party service
configuration object:
Service | Result | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
PagerDuty | A returned PagerDuty integration configuration object contains the following fields:
| ||||||||||||||||||||
Slack | A returned Slack integration configuration object contains the following fields:
| ||||||||||||||||||||
Opsgenie | A returned Opsgenie integration configuration object contains the following fields:
| ||||||||||||||||||||
VictorOps | A returned VictorOps integration configuration object contains the following fields:
The configuration object may also contain the following fields, depending on your configuration:
| ||||||||||||||||||||
Webhook Settings | A returned webhook configuration object contains the following fields:
The configuration object may also contain the following fields, depending on your configuration:
| ||||||||||||||||||||
Microsoft Teams | A returned Microsoft Teams configuration object will contain the following fields:
| ||||||||||||||||||||
Prometheus | A returned Prometheus configuration object will contain the following fields:
The configuration object may also contain the following fields, depending on your configuration:
|
Example Request
1 curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \ 2 --header "Accept: application/json" \ 3 --header "Content-Type: application/json" \ 4 --include \ 5 --request POST "https://cloud.mongodb.com/api/public/v1.0/groups/{PROJECT-ID}/integrations/SLACK" \ 6 --data ' 7 { 8 "type": "SLACK", 9 "apiToken": "1234567890", 10 "teamName": "My Team" 11 }'
Example Response
1 { 2 "links": [ 3 { 4 "href": "https://cloud.mongodb.com/api/public/v1.0/groups/{PROJECT-ID}/integrations/SLACK?pageNum=1&itemsPerPage=100", 5 "rel": "self" 6 } 7 ], 8 "results": [ 9 { 10 "serviceKey": "******7890", 11 "type": "PAGER_DUTY" 12 }, 13 { 14 "apiToken": "******7890", 15 "channelName": "My Channel", 16 "teamName": "My Team", 17 "type": "SLACK" 18 } 19 ], 20 "totalCount": 2 21 }