Introduction
IBM Cloud® Monitoring is a cloud-native, container-intelligence management system that you can include as part of your IBM Cloud architecture. Use it to gain operational visibility into the performance and health of your applications, services, and platforms. It offers administrators, DevOps teams and developers full stack telemetry with advanced features to monitor and troubleshoot, define alerts, and design custom dashboards. For details about using IBM Cloud Monitoring, see the IBM Cloud docs.
You can use the Monitoring API to manage dashboards, alerts, and teams. For more information, see the following documentation:
You can use any of the following methods to manage the Monitoring service:
- Python Client: You can use the Python client to manage the Monitoring service. The client is also known as the sdcclient. For more information, see Using the Python client.
- cURL: You can use cURL, a command line tool, from a terminal to manage the Monitoring service by using URL syntax. For more information, see Using cURL.
Use the following syntax from a terminal to run a cURL command:
curl -X <METHOD> <ENDPOINT>/<API_URL> <-H HEADERS,> [-d DATA]
Where
<METHOD>
indicates the type of REST API call that you want to make.<ENDPOINT>
indicates the endpoint where the monitoring instance is available. For more information, see Monitoring endpoints. For example, the endpoint for an instance that is available in us-south is the following:https://us-south.monitoring.cloud.ibm.com
<API_URL>
For more information about API URLs, see Monitoring REST APIs.HEADERS
add additional information such as information to authenticate with the IBM Cloud Monitoring service.DATA
allows you to pass additional information that might be required.
The code examples on this tab use the client library that is provided for Python.
import os
import sys
sys.path.insert(0, os.path.join(os.path.dirname(os.path.realpath(sys.argv[0])), '..'))
from sdcclient import IbmAuthHelper, SdMonitorClient
# Parse arguments.
def usage():
print('usage: %s <ENDPOINT_URL> <API_KEY> <INSTANCE_GUID>' % sys.argv[0])
print('ENDPOINT_URL: IBM Cloud endpoint URL (e.g. https://us-south.monitoring.cloud.ibm.com')
print('API_KEY: IBM Cloud IAM API key. This key is used to retrieve an IAM access token.')
print('INSTANCE_GUID: GUID of an IBM Cloud Monitoring instance.')
sys.exit(1)
if len(sys.argv) != 4:
usage()
URL = sys.argv[1]
APIKEY = sys.argv[2]
GUID = sys.argv[3]
# Instantiate the client
ibm_headers = IbmAuthHelper.get_headers(URL, APIKEY, GUID)
sdclient = SdMonitorClient(sdc_url=URL, custom_headers=ibm_headers)
Endpoint URL
You can use public and private endpoints. To find out about the available endpoints, see REST API endpoints.
The endpoint for the IBM Cloud Monitoring API is in the format: https://cloud.ibm.com.monitoring.cloud.ibm.com/api
For example, the API endpoint for Dallas is: https://us-south.monitoring.cloud.ibm.com/api
Example request to a Dallas endpoint:
curl -X GET https://us-south.monitoring.cloud.ibm.com/api/alerts/<ALERT_ID> -H "Authorization: $AUTH_TOKEN" -H "IBMInstanceID: $GUID" -H "TeamID: $TEAM_ID" -H "content-type: application/json"
Replace <ALERT_ID>
, AUTH_TOKEN
, GUID
and TEAM_ID
in this example with the values for your particular API call.
Example request to a Dallas endpoint
import os
import sys
sys.path.insert(0, os.path.join(os.path.dirname(os.path.realpath(sys.argv[0])), '..'))
from sdcclient import IbmAuthHelper, SdMonitorClient
# Parse arguments.
def usage():
print('usage: %s <ENDPOINT_URL> <API_KEY> <INSTANCE_GUID>' % sys.argv[0])
print('ENDPOINT_URL: IBM Cloud endpoint URL (e.g. https://us-south.monitoring.cloud.ibm.com')
print('API_KEY: IBM Cloud IAM API key. This key is used to retrieve an IAM access token.')
print('INSTANCE_GUID: GUID of an IBM Cloud Monitoring instance.')
sys.exit(1)
if len(sys.argv) != 4:
usage()
URL = sys.argv[1]
APIKEY = sys.argv[2]
GUID = sys.argv[3]
# Instantiate the client
ibm_headers = IbmAuthHelper.get_headers(URL, APIKEY, GUID)
sdclient = SdMonitorClient(sdc_url=URL, custom_headers=ibm_headers)
Authentication
Access to IBM Cloud Monitoring is controlled by using IBM Cloud Identity and Access Management (IAM), which provides a unified approach to managing user identities and access control across your IBM Cloud services and applications.
This API requires IBM Cloud Identity and Access Management (IAM) authentication. You must pass an IAM token in the Authorization header of the request. You can retrieve your IAM access token, which is prefixed with Bearer
, by running the ibmcloud iam oauth-tokens command. You must also set the Account header to the unique ID for your IBM Cloud account. You can retrieve your Account ID by running the ibmcloud account show command.
To call each method, you must be assigned a role that includes the required IAM actions. Each method lists the associated action. For more information about IAM actions and how they map to roles, see Managing access for IBM Cloud Monitoring.
In a cURL command, add the following headers to authenticate with the IBM Cloud Monitoring service by using an IAM token:
-H "Authorization: $AUTH_TOKEN"
-H "IBMInstanceID: $GUID"
-H "TeamID: $TEAM_ID"
Where
-
IBMInstanceID
indicates the GUID of the IBM Cloud Monitoring instance that you want to target with the cURL command.To get the GUID of the monitoring instance, run the following command:
ibmcloud resource service-instance <NAME> --output json | jq -r '.[].guid'
-
Authorization
indicates the IAM token that is used to authenticate with the IBM Cloud Monitoring service instance.To get the IAM
AUTH_TOKEN
token, run the following command:ibmcloud iam oauth-tokens | awk '{print $4}'
For more information, see Getting the IAM API token.
-
TeamID
indicates the GUID of a team.To get the GUID, see Getting the ID of a team.
Authentication when using Python
To use IBM Cloud IAM authentication with the Python client, you must specify an endpoint, an API key, and the GUID from your IBM Cloud Monitoring instance.
Complete the following steps from a terminal:
-
Get the GUID of your IBM Cloud Monitoring instance. Run the following command:
ibmcloud resource service-instance <NAME> --output json | jq -r '.[].guid'
-
Get the API key. Run the following command to generate a user API key:
ibmcloud iam api-key-create KEY_NAME
-
Get the endpoint for the region where the monitoring instance is available.
-
Add the following entries to your Python script:
from sdcclient import IbmAuthHelper, SdMonitorClient URL = <ENDPOINT> # For example: URL = 'https://us-south.monitoring.cloud.ibm.com' APIKEY = <IAM_APIKEY> GUID = <GUID> ibm_headers = IbmAuthHelper.get_headers(URL, APIKEY, GUID) sdclient = SdMonitorClient(sdc_url=URL, custom_headers=ibm_headers)
Where
<ENDPOINT>
must be replaced with the endpoint where the monitoring instance is available.<IAM_APIKEY>
must be replaced with a valid IAM API key. Learn more.<GUID>
must be replaced with the GUID of the monitoring instance that you obtain in the previous step.
You can now use the sdclient to perform actions that will be authenticated by using IAM.
If you get the error 400 Client Error: Bad Request for url: https://iam.cloud.ibm.com/identity/token
, check the API key. The value that you are passing is not valid.
Auditing
You can monitor API activity within your account by using the IBM Cloud Activity Tracker service. Whenever an API method is called, an event is generated that you can then track and audit from within Activity Tracker. The specific event type is listed for each individual method. For more information about how to track IBM Cloud Monitoring activity, see Auditing the events for IBM Cloud Monitoring.
Error handling
The IBM Cloud Monitoring service uses standard HTTP response codes to indicate whether a method completed successfully.
- A
200
response always indicates success. - A
400
type response indicates a failure. - A
500
type response usually indicates an internal system error.
HTTP Error Code | Description |
---|---|
200 |
Success |
201 |
Success E.g. Dashboard successfully created |
400 |
Bad Request |
401 |
Unauthorized |
403 |
Forbidden |
404 |
Not Found E.g. Dashboard V3 not active |
422 |
Validation error, reason stated in the response body |
500 |
Internal Server Error |
Methods
List Teams
Retrieve a paginated list of teams.
Required permissions: customer-teams.read
GET /platform/v1/teams
Request
Query Parameters
The offset number of items to start with
Possible values: 0 ≤ value ≤ 2147483647
Default:
0
Example:
30
The number of items to return
Possible values: 1 ≤ value ≤ 200
Default:
25
Example:
25
The order by field separated by a colon for the direction
Possible values: length ≤ 256
Default:
Example:
name:asc
The filter by field separated by a colon for the filter value
Possible values: length ≤ 8192
Default:
Example:
name:filter
Response
Paginated data.
Possible values: number of items ≤ 200
Page information.
- page
Possible values: length ≤ 8192
Example:
30
Possible values: length ≤ 8192
Example:
10
Possible values: value ≥ 0
Example:
1
Status Code
The teams page.
Operation failed due to invalid payload.
Access denied.
Too many requests.
Internal server error.
{ "details": [], "message": "Bad request", "type": "bad_request" }
{ "details": [], "message": "Unauthorized", "type": "unauthorized" }
{ "details": [], "message": "Too many requests", "type": "too_many_requests" }
{ "details": [], "message": "Internal server error", "type": "internal_server_error" }
Request
The payload required to create a new team.
The name of the team. It must be unique.
Possible values: 1 ≤ length ≤ 256
Example:
Team name
The product to which the team is assigned to. Teams can only be part of a single product at a time.
Allowable values: [
monitor
,secure
]Example:
secure
Additional permissions available to the users of the team.
The custom team role assigned by default to users added to this team. Mutually exclusive with standardTeamRoleId.
Possible values: value ≥ 0
Example:
1
A longer description of the team explaining what is it used for.
Possible values: length ≤ 2048
Example:
Longer team description
True if the users that are members of this team have access to all zones. Mutually exclusive with zoneIds.
Only supported in Secure features.Specifies if the team is the default team. The default team is used to automatically assign new users to a team.
Scopes is a list of different scope types and filter values that will be applied to resources when accessed through the team.
Possible values: number of items ≤ 512
The standard team role assigned by default to users added to this team. Mutually exclusive with customTeamRoleId.
ROLE_TEAM_SERVICE_MANAGER is only supported in Secure.Allowable values: [
ROLE_TEAM_NONE
,ROLE_TEAM_READ
,ROLE_TEAM_SERVICE_MANAGER
,ROLE_TEAM_STANDARD
,ROLE_TEAM_EDIT
,ROLE_TEAM_MANAGER
]Example:
ROLE_TEAM_READ
UI related settings.
The list of zones that users assigned to this team will have access to. Mutually exclusive with allZones.
Only supported in Secure features.Possible values: number of items ≤ 8192, value ≥ 0
Response
Additional permissions available to the users of the team.
The custom team role assigned by default to users added to this team. Mutually exclusive with 'standardTeamRoleId'.
Possible values: value ≥ 0
Example:
1
The date (in ISO 8601 format) when this team was created.
Possible values: length ≤ 64
Example:
2017-07-21T17:32:28Z
A description of the team explaining what is it used for.
Possible values: length ≤ 2048
Example:
This team has access to scanning results
Possible values: value ≥ 0
Example:
1
'True' if the users belonging to this team have access to all zones. Mutually exclusive with 'zoneIds'.
Specifies if the team is the default team. The default team is used to automatically assign new users to a team.
Specifies if the team is immutable. This is true if the team was created by the system with full access. It cannot be modified.
The date (in ISO 8601 format) when this team was last updated.
Possible values: length ≤ 64
Example:
2017-07-21T17:32:28Z
The name of the team. It must be unique.
Possible values: length ≤ 256
Example:
Scanning operations
The product to which the team is assigned to.
Possible values: [
monitor
,secure
]Example:
secure
The scopes available to the users of this team.
Possible values: number of items ≤ 512
The standard team role assigned by default to users added to this team. Mutually exclusive with 'customTeamRoleId'.
Possible values: [
ROLE_TEAM_NONE
,ROLE_TEAM_READ
,ROLE_TEAM_SERVICE_MANAGER
,ROLE_TEAM_STANDARD
,ROLE_TEAM_EDIT
,ROLE_TEAM_MANAGER
]Example:
ROLE_TEAM_READ
UI related settings.
Possible values: value ≥ 0
Example:
1
The list of zones that users assigned to this team will have access to. Mutually exclusive with 'allZones'.
Possible values: number of items ≤ 8192
Status Code
Team created.
Operation failed due to invalid payload.
Access denied.
Conflict.
Server cannot accept content of type specified in Content-Type header.
Server was unable to process the request.
Too many requests.
Internal server error.
{ "details": [], "message": "Bad request", "type": "bad_request" }
{ "details": [], "message": "Unauthorized", "type": "unauthorized" }
{ "details": [], "message": "Conflict", "type": "conflict" }
{ "details": [], "message": "Unsupported media type", "type": "unsupported_media_type" }
{ "details": [], "message": "Unprocessable content", "type": "unprocessable_content" }
{ "details": [], "message": "Too many requests", "type": "too_many_requests" }
{ "details": [], "message": "Internal server error", "type": "internal_server_error" }
Delete Team
Delete a team by its ID.
Required permissions: teams.edit
DELETE /platform/v1/teams/{teamId}
Response
Status Code
Team deleted.
Operation failed due to invalid payload.
Access denied.
Not enough privileges to complete the action.
Not found.
Server was unable to process the request.
Too many requests.
Internal server error.
{ "details": [], "message": "Bad request", "type": "bad_request" }
{ "details": [], "message": "Unauthorized", "type": "unauthorized" }
{ "details": [], "message": "Forbidden", "type": "forbidden" }
{ "details": [], "message": "Resource not found", "type": "resource_not_found" }
{ "details": [], "message": "Unprocessable content", "type": "unprocessable_content" }
{ "details": [], "message": "Too many requests", "type": "too_many_requests" }
{ "details": [], "message": "Internal server error", "type": "internal_server_error" }
Get Team
Return a team by ID.
Required permissions: customer-teams.read
GET /platform/v1/teams/{teamId}
Response
Additional permissions available to the users of the team.
The custom team role assigned by default to users added to this team. Mutually exclusive with 'standardTeamRoleId'.
Possible values: value ≥ 0
Example:
1
The date (in ISO 8601 format) when this team was created.
Possible values: length ≤ 64
Example:
2017-07-21T17:32:28Z
A description of the team explaining what is it used for.
Possible values: length ≤ 2048
Example:
This team has access to scanning results
Possible values: value ≥ 0
Example:
1
'True' if the users belonging to this team have access to all zones. Mutually exclusive with 'zoneIds'.
Specifies if the team is the default team. The default team is used to automatically assign new users to a team.
Specifies if the team is immutable. This is true if the team was created by the system with full access. It cannot be modified.
The date (in ISO 8601 format) when this team was last updated.
Possible values: length ≤ 64
Example:
2017-07-21T17:32:28Z
The name of the team. It must be unique.
Possible values: length ≤ 256
Example:
Scanning operations
The product to which the team is assigned to.
Possible values: [
monitor
,secure
]Example:
secure
The scopes available to the users of this team.
Possible values: number of items ≤ 512
The standard team role assigned by default to users added to this team. Mutually exclusive with 'customTeamRoleId'.
Possible values: [
ROLE_TEAM_NONE
,ROLE_TEAM_READ
,ROLE_TEAM_SERVICE_MANAGER
,ROLE_TEAM_STANDARD
,ROLE_TEAM_EDIT
,ROLE_TEAM_MANAGER
]Example:
ROLE_TEAM_READ
UI related settings.
Possible values: value ≥ 0
Example:
1
The list of zones that users assigned to this team will have access to. Mutually exclusive with 'allZones'.
Possible values: number of items ≤ 8192
Status Code
Team found.
Operation failed due to invalid payload.
Access denied.
Not found.
Too many requests.
Internal server error.
{ "details": [], "message": "Bad request", "type": "bad_request" }
{ "details": [], "message": "Unauthorized", "type": "unauthorized" }
{ "details": [], "message": "Resource not found", "type": "resource_not_found" }
{ "details": [], "message": "Too many requests", "type": "too_many_requests" }
{ "details": [], "message": "Internal server error", "type": "internal_server_error" }
Update Team
Update a team by its ID.
Required permissions: teams.edit
PUT /platform/v1/teams/{teamId}
Request
Path Parameters
The team ID.
Possible values: value ≥ 0
Example:
1
Additional permissions available to the users of the team.
Specifies if this is the default team. The default team is used to automatically assign new users to a team.
The name of the team.
Possible values: length ≤ 256
Example:
User Team
Scopes is a list of different scope types and filter values that will be applied to resources when accessed through the team.
Possible values: 1 ≤ number of items ≤ 512
UI related settings.
Possible values: value ≥ 0
Example:
1
The custom team role assigned by default to users added to this team.
Possible values: value ≥ 0
Example:
1
A description of the team explaining what is it used for.
Possible values: length ≤ 2048
Example:
User Team description
True if the users that are members of this team have access to all zones. Mutually exclusive with zoneIds.
Only supported in Secure features.The standard team role assigned by default to users added to this team.
Allowable values: [
ROLE_TEAM_NONE
,ROLE_TEAM_READ
,ROLE_TEAM_SERVICE_MANAGER
,ROLE_TEAM_STANDARD
,ROLE_TEAM_EDIT
,ROLE_TEAM_MANAGER
]Example:
ROLE_TEAM_READ
The list of zones that users assigned to this team will have access to. Mutually exclusive with allZones.
Only supported in Secure features.Possible values: number of items ≤ 8192
Response
Additional permissions available to the users of the team.
The custom team role assigned by default to users added to this team. Mutually exclusive with 'standardTeamRoleId'.
Possible values: value ≥ 0
Example:
1
The date (in ISO 8601 format) when this team was created.
Possible values: length ≤ 64
Example:
2017-07-21T17:32:28Z
A description of the team explaining what is it used for.
Possible values: length ≤ 2048
Example:
This team has access to scanning results
Possible values: value ≥ 0
Example:
1
'True' if the users belonging to this team have access to all zones. Mutually exclusive with 'zoneIds'.
Specifies if the team is the default team. The default team is used to automatically assign new users to a team.
Specifies if the team is immutable. This is true if the team was created by the system with full access. It cannot be modified.
The date (in ISO 8601 format) when this team was last updated.
Possible values: length ≤ 64
Example:
2017-07-21T17:32:28Z
The name of the team. It must be unique.
Possible values: length ≤ 256
Example:
Scanning operations
The product to which the team is assigned to.
Possible values: [
monitor
,secure
]Example:
secure
The scopes available to the users of this team.
Possible values: number of items ≤ 512
The standard team role assigned by default to users added to this team. Mutually exclusive with 'customTeamRoleId'.
Possible values: [
ROLE_TEAM_NONE
,ROLE_TEAM_READ
,ROLE_TEAM_SERVICE_MANAGER
,ROLE_TEAM_STANDARD
,ROLE_TEAM_EDIT
,ROLE_TEAM_MANAGER
]Example:
ROLE_TEAM_READ
UI related settings.
Possible values: value ≥ 0
Example:
1
The list of zones that users assigned to this team will have access to. Mutually exclusive with 'allZones'.
Possible values: number of items ≤ 8192
Status Code
Team updated.
Operation failed due to invalid payload.
Access denied.
Not enough privileges to complete the action.
Not found.
Conflict.
Server cannot accept content of type specified in Content-Type header.
Server was unable to process the request.
Too many requests.
Internal server error.
{ "details": [], "message": "Bad request", "type": "bad_request" }
{ "details": [], "message": "Unauthorized", "type": "unauthorized" }
{ "details": [], "message": "Forbidden", "type": "forbidden" }
{ "details": [], "message": "Resource not found", "type": "resource_not_found" }
{ "details": [], "message": "Conflict", "type": "conflict" }
{ "details": [], "message": "Unsupported media type", "type": "unsupported_media_type" }
{ "details": [], "message": "Unprocessable content", "type": "unprocessable_content" }
{ "details": [], "message": "Too many requests", "type": "too_many_requests" }
{ "details": [], "message": "Internal server error", "type": "internal_server_error" }
List Memberships
Retrieve a paginated list of memberships in a given team ID.
Required permissions: memberships.read
GET /platform/v1/teams/{teamId}/users
Request
Path Parameters
The team ID.
Possible values: value ≥ 0
Example:
1
Query Parameters
The offset number of items to start with
Possible values: 0 ≤ value ≤ 2147483647
Default:
0
Example:
30
The number of items to return
Possible values: 1 ≤ value ≤ 200
Default:
25
Example:
25
Response
Paginated data.
Possible values: number of items ≤ 200
Page information.
- page
Possible values: length ≤ 8192
Example:
30
Possible values: length ≤ 8192
Example:
10
Possible values: value ≥ 0
Example:
1
Status Code
The memberships page.
Operation failed due to invalid payload.
Access denied.
Not found.
Too many requests.
Internal server error.
{ "details": [], "message": "Bad request", "type": "bad_request" }
{ "details": [], "message": "Unauthorized", "type": "unauthorized" }
{ "details": [], "message": "Resource not found", "type": "resource_not_found" }
{ "details": [], "message": "Too many requests", "type": "too_many_requests" }
{ "details": [], "message": "Internal server error", "type": "internal_server_error" }
Delete Membership
Delete a membership defined by its ID.
Required permissions: memberships.edit
DELETE /platform/v1/teams/{teamId}/users/{userId}
Request
Path Parameters
The team ID.
Possible values: value ≥ 0
Example:
1
The user ID.
Possible values: value ≥ 0
Example:
1
Response
Status Code
Membership deleted.
Operation failed due to invalid payload.
Access denied.
Not enough privileges to complete the action.
Not found.
Too many requests.
Internal server error.
{ "details": [], "message": "Bad request", "type": "bad_request" }
{ "details": [], "message": "Unauthorized", "type": "unauthorized" }
{ "details": [], "message": "Forbidden", "type": "forbidden" }
{ "details": [], "message": "Resource not found", "type": "resource_not_found" }
{ "details": [], "message": "Too many requests", "type": "too_many_requests" }
{ "details": [], "message": "Internal server error", "type": "internal_server_error" }
Get Membership
Return a membership by its ID.
Required permissions: memberships.read
GET /platform/v1/teams/{teamId}/users/{userId}
Request
Path Parameters
The team ID.
Possible values: value ≥ 0
Example:
1
The user ID.
Possible values: value ≥ 0
Example:
1
Response
Possible values: value ≥ 0
Example:
1
The standard team role provided by Sysdig.
Possible values: [
ROLE_TEAM_NONE
,ROLE_TEAM_READ
,ROLE_TEAM_SERVICE_MANAGER
,ROLE_TEAM_STANDARD
,ROLE_TEAM_EDIT
,ROLE_TEAM_MANAGER
]Example:
ROLE_TEAM_READ
Possible values: value ≥ 0
Example:
1
Possible values: value ≥ 0
Example:
1
Status Code
Membership found.
Operation failed due to invalid payload.
Access denied.
Not found.
Too many requests.
Internal server error.
{ "details": [], "message": "Bad request", "type": "bad_request" }
{ "details": [], "message": "Unauthorized", "type": "unauthorized" }
{ "details": [], "message": "Resource not found", "type": "resource_not_found" }
{ "details": [], "message": "Too many requests", "type": "too_many_requests" }
{ "details": [], "message": "Internal server error", "type": "internal_server_error" }
Save Membership
Add or update a membership.
| Permission | Description | | -----------------------| --------------------------------------------------------------------------------------------------------| | memberships.edit | Required to create a new membership. | | memberships-roles.edit | Required to change roles of an existing membership or to create a new membership with a specific role. |
PUT /platform/v1/teams/{teamId}/users/{userId}
Request
Path Parameters
The team ID.
Possible values: value ≥ 0
Example:
1
The user ID.
Possible values: value ≥ 0
Example:
1
The custom team role ID assigned for the user in this team. Mutually exclusive with standardTeamRole.
Possible values: value ≥ 0
Example:
1
The standard team role assigned for the user in this team. Mutually exclusive with customTeamRoleId.
ROLE_TEAM_SERVICE_MANAGER is only supported in Secure.Allowable values: [
ROLE_TEAM_NONE
,ROLE_TEAM_READ
,ROLE_TEAM_SERVICE_MANAGER
,ROLE_TEAM_STANDARD
,ROLE_TEAM_EDIT
,ROLE_TEAM_MANAGER
]Example:
ROLE_TEAM_READ
Response
Possible values: value ≥ 0
Example:
1
The standard team role provided by Sysdig.
Possible values: [
ROLE_TEAM_NONE
,ROLE_TEAM_READ
,ROLE_TEAM_SERVICE_MANAGER
,ROLE_TEAM_STANDARD
,ROLE_TEAM_EDIT
,ROLE_TEAM_MANAGER
]Example:
ROLE_TEAM_READ
Possible values: value ≥ 0
Example:
1
Possible values: value ≥ 0
Example:
1
Status Code
Membership updated.
Membership created.
Operation failed due to invalid payload.
Access denied.
Not enough privileges to complete the action.
Not found.
Server cannot accept content of type specified in Content-Type header.
Too many requests.
Internal server error.
{ "details": [], "message": "Bad request", "type": "bad_request" }
{ "details": [], "message": "Unauthorized", "type": "unauthorized" }
{ "details": [], "message": "Forbidden", "type": "forbidden" }
{ "details": [], "message": "Resource not found", "type": "resource_not_found" }
{ "details": [], "message": "Unsupported media type", "type": "unsupported_media_type" }
{ "details": [], "message": "Too many requests", "type": "too_many_requests" }
{ "details": [], "message": "Internal server error", "type": "internal_server_error" }
List Access Keys
Retrieve a paginated list of access keys.
Required permissions: customer-access-keys.read
GET /platform/v1/access-keys
Request
Query Parameters
The offset number of items to start with
Possible values: 0 ≤ value ≤ 2147483647
Default:
0
Example:
30
The number of items to return
Possible values: 1 ≤ value ≤ 200
Default:
25
Example:
25
The order by field separated by a colon for the direction
Possible values: length ≤ 256
Default:
Example:
name:asc
Filters to apply in the form of
key:value
.
Multiple filters can be applied by repeating thefilter
parameter:
&filter=key1:value1&filter=key2:value2
Possible values: number of items ≤ 4, length ≤ 512
Default:
[]
Response
Paginated data.
Possible values: number of items ≤ 200
Page information.
- page
Possible values: length ≤ 8192
Example:
30
Possible values: length ≤ 8192
Example:
10
Possible values: value ≥ 0
Example:
1
Status Code
The access keys page.
Operation failed due to invalid payload.
Access denied.
Too many requests.
Internal server error.
{ "details": [], "message": "Bad request", "type": "bad_request" }
{ "details": [], "message": "Unauthorized", "type": "unauthorized" }
{ "details": [], "message": "Too many requests", "type": "too_many_requests" }
{ "details": [], "message": "Internal server error", "type": "internal_server_error" }
Create Access Key
Create a new access key.
Required permissions: customer-access-keys.edit
POST /platform/v1/access-keys
Request
Create access key request
Maximum number of agents that can be connected with the access key
Possible values: 0 ≤ value ≤ 2147483647
Example:
100
Number of agents that are guaranteed to be available for the access key
Possible values: 0 ≤ value ≤ 2147483647
Example:
5
Access key metadata (maximum of 20 key-value pairs where key can be up to 25 characters long and value can be up to 50 characters long)
Possible values: number of items ≤ 20
- metadata
Possible values: length ≤ 76
Example:
metaKey1:metaValue1
ID of team that owns the access key
Possible values: 0 ≤ value ≤ 2147483647
Example:
13
Response
Access key response
Displays the access key value
Possible values: length ≤ 256
Example:
f97af7c5-dac3-49b1-b5e0-710871d34a15
Maximum number of agents that can be connected with the access key
Possible values: 0 ≤ value ≤ 2147483647
Example:
100
Number of agents that are guaranteed to be available for the access key
Possible values: 0 ≤ value ≤ 2147483647
Example:
5
Date and time when access key was created
Possible values: length ≤ 64
Example:
2022-01-31T22:15:28Z
Date and time when access key was disabled
Possible values: length ≤ 64
Example:
2022-01-31T22:15:28Z
Possible values: value ≥ 0
Example:
1
Indicates if the access key is enabled
Example:
true
Access key metadata (maximum of 20 key-value pairs where key can be up to 25 characters long and value can be up to 50 characters long)
Possible values: number of items ≤ 20
- metadata
Possible values: length ≤ 76
Example:
metaKey1:metaValue1
ID of team that owns the access key
Possible values: 0 ≤ value ≤ 2147483647
Example:
13
Status Code
Access key created.
Operation failed due to invalid payload.
Access denied.
Not enough privileges to complete the action.
Conflict.
Server cannot accept content of type specified in Content-Type header.
Server was unable to process the request.
Too many requests.
Internal server error.
{ "details": [], "message": "Bad request", "type": "bad_request" }
{ "details": [], "message": "Unauthorized", "type": "unauthorized" }
{ "details": [], "message": "Forbidden", "type": "forbidden" }
{ "details": [], "message": "Conflict", "type": "conflict" }
{ "details": [], "message": "Unsupported media type", "type": "unsupported_media_type" }
{ "details": [], "message": "Unprocessable content", "type": "unprocessable_content" }
{ "details": [], "message": "Too many requests", "type": "too_many_requests" }
{ "details": [], "message": "Internal server error", "type": "internal_server_error" }
Delete Access Key
Delete an access key by id.
Required permissions: customer-access-keys.edit_
DELETE /platform/v1/access-keys/{accessKeyId}
Response
Status Code
Access key deleted.
Operation failed due to invalid payload.
Access denied.
Not enough privileges to complete the action.
Not found.
Server was unable to process the request.
Too many requests.
Internal server error.
{ "details": [], "message": "Bad request", "type": "bad_request" }
{ "details": [], "message": "Unauthorized", "type": "unauthorized" }
{ "details": [], "message": "Forbidden", "type": "forbidden" }
{ "details": [], "message": "Resource not found", "type": "resource_not_found" }
{ "details": [], "message": "Unprocessable content", "type": "unprocessable_content" }
{ "details": [], "message": "Too many requests", "type": "too_many_requests" }
{ "details": [], "message": "Internal server error", "type": "internal_server_error" }
Get Access Key
Return an access key by id.
Required permissions: customer-access-keys.read
GET /platform/v1/access-keys/{accessKeyId}
Response
Access key response
Displays the access key value
Possible values: length ≤ 256
Example:
f97af7c5-dac3-49b1-b5e0-710871d34a15
Maximum number of agents that can be connected with the access key
Possible values: 0 ≤ value ≤ 2147483647
Example:
100
Number of agents that are guaranteed to be available for the access key
Possible values: 0 ≤ value ≤ 2147483647
Example:
5
Date and time when access key was created
Possible values: length ≤ 64
Example:
2022-01-31T22:15:28Z
Date and time when access key was disabled
Possible values: length ≤ 64
Example:
2022-01-31T22:15:28Z
Possible values: value ≥ 0
Example:
1
Indicates if the access key is enabled
Example:
true
Access key metadata (maximum of 20 key-value pairs where key can be up to 25 characters long and value can be up to 50 characters long)
Possible values: number of items ≤ 20
- metadata
Possible values: length ≤ 76
Example:
metaKey1:metaValue1
ID of team that owns the access key
Possible values: 0 ≤ value ≤ 2147483647
Example:
13
Status Code
Access key found.
Operation failed due to invalid payload.
Access denied.
Not found.
Too many requests.
Internal server error.
{ "details": [], "message": "Bad request", "type": "bad_request" }
{ "details": [], "message": "Unauthorized", "type": "unauthorized" }
{ "details": [], "message": "Resource not found", "type": "resource_not_found" }
{ "details": [], "message": "Too many requests", "type": "too_many_requests" }
{ "details": [], "message": "Internal server error", "type": "internal_server_error" }
Update Access Key
Update an access key by id.
Required permissions: customer-access-keys.edit
PUT /platform/v1/access-keys/{accessKeyId}
Request
Path Parameters
The access key id.
Possible values: value ≥ 0
Example:
1
Update access key request
Flag that indicates if the access key should be disabled or enabled
Example:
true
Maximum number of agents that can be connected with the access key
Possible values: 0 ≤ value ≤ 2147483647
Example:
100
Number of agents that are guaranteed to be available for the access key
Possible values: 0 ≤ value ≤ 2147483647
Example:
5
Access key metadata (maximum of 20 key-value pairs where key can be up to 25 characters long and value can be up to 50 characters long)
Possible values: number of items ≤ 20
- metadata
Possible values: length ≤ 76
Example:
metaKey1:metaValue1
ID of team that owns the access key
Possible values: 0 ≤ value ≤ 2147483647
Example:
13
Response
Access key response
Displays the access key value
Possible values: length ≤ 256
Example:
f97af7c5-dac3-49b1-b5e0-710871d34a15
Maximum number of agents that can be connected with the access key
Possible values: 0 ≤ value ≤ 2147483647
Example:
100
Number of agents that are guaranteed to be available for the access key
Possible values: 0 ≤ value ≤ 2147483647
Example:
5
Date and time when access key was created
Possible values: length ≤ 64
Example:
2022-01-31T22:15:28Z
Date and time when access key was disabled
Possible values: length ≤ 64
Example:
2022-01-31T22:15:28Z
Possible values: value ≥ 0
Example:
1
Indicates if the access key is enabled
Example:
true
Access key metadata (maximum of 20 key-value pairs where key can be up to 25 characters long and value can be up to 50 characters long)
Possible values: number of items ≤ 20
- metadata
Possible values: length ≤ 76
Example:
metaKey1:metaValue1
ID of team that owns the access key
Possible values: 0 ≤ value ≤ 2147483647
Example:
13
Status Code
Access key updated.
Operation failed due to invalid payload.
Access denied.
Not enough privileges to complete the action.
Not found.
Conflict.
Server cannot accept content of type specified in Content-Type header.
Server was unable to process the request.
Too many requests.
Internal server error.
{ "details": [], "message": "Bad request", "type": "bad_request" }
{ "details": [], "message": "Unauthorized", "type": "unauthorized" }
{ "details": [], "message": "Forbidden", "type": "forbidden" }
{ "details": [], "message": "Resource not found", "type": "resource_not_found" }
{ "details": [], "message": "Conflict", "type": "conflict" }
{ "details": [], "message": "Unsupported media type", "type": "unsupported_media_type" }
{ "details": [], "message": "Unprocessable content", "type": "unprocessable_content" }
{ "details": [], "message": "Too many requests", "type": "too_many_requests" }
{ "details": [], "message": "Internal server error", "type": "internal_server_error" }
Delete Service Accounts Notification Settings
Delete Service Accounts Notification Settings for a given team.
Required permissions: service-accounts-notification-settings.edit
DELETE /platform/v1/teams/{teamId}/service-accounts/notification-settings
Response
Status Code
Service Accounts Notification Settings deleted.
Operation failed due to invalid payload.
Access denied.
Not enough privileges to complete the action.
Not found.
Too many requests.
Internal server error.
{ "details": [], "message": "Bad request", "type": "bad_request" }
{ "details": [], "message": "Unauthorized", "type": "unauthorized" }
{ "details": [], "message": "Forbidden", "type": "forbidden" }
{ "details": [], "message": "Resource not found", "type": "resource_not_found" }
{ "details": [], "message": "Too many requests", "type": "too_many_requests" }
{ "details": [], "message": "Internal server error", "type": "internal_server_error" }
Get Service Accounts Notification Settings
Return Service Accounts Notification Settings for a given team.
Required permissions: service-accounts-notification-settings.read
GET /platform/v1/teams/{teamId}/service-accounts/notification-settings
Response
The base schema for the service accounts notification settings.
The number of days before the expiry of the service account when the notifications are to be sent.
Possible values: number of items ≤ 5, 1 ≤ value ≤ 60
Whether the notification settings are enabled or not.
Example:
true
The list of notification channel IDs to which the notifications are to be sent.
Supported types are EMAIL and SLACK.Possible values: number of items ≤ 10, value ≥ 0
Status Code
Service Accounts Notification Settings found.
Operation failed due to invalid payload.
Access denied.
Not found.
Too many requests.
Internal server error.
{ "details": [], "message": "Bad request", "type": "bad_request" }
{ "details": [], "message": "Unauthorized", "type": "unauthorized" }
{ "details": [], "message": "Resource not found", "type": "resource_not_found" }
{ "details": [], "message": "Too many requests", "type": "too_many_requests" }
{ "details": [], "message": "Internal server error", "type": "internal_server_error" }
Create Service Accounts Notification Settings
Create a new Notification Settings for Service Accounts which belong to a specific team.
Required permissions: service-accounts-notification-settings.edit
POST /platform/v1/teams/{teamId}/service-accounts/notification-settings
Request
Path Parameters
The team ID.
Possible values: value ≥ 0
Example:
1
The payload required to create Service Accounts Notification Settings.
Whether the notification settings are enabled or not.
Example:
true
The list of notification channel IDs to which the notifications are to be sent.
Supported types are EMAIL and SLACK.Possible values: number of items ≤ 10, value ≥ 0
The number of days before the expiry of the service account when the notifications are to be sent.
Possible values: number of items ≤ 5, 1 ≤ value ≤ 60
Default:
[30,7,1]
Response
The base schema for the service accounts notification settings.
The number of days before the expiry of the service account when the notifications are to be sent.
Possible values: number of items ≤ 5, 1 ≤ value ≤ 60
Whether the notification settings are enabled or not.
Example:
true
The list of notification channel IDs to which the notifications are to be sent.
Supported types are EMAIL and SLACK.Possible values: number of items ≤ 10, value ≥ 0
Status Code
Service Accounts Notification Settings created.
Operation failed due to invalid payload.
Access denied.
Not found.
Server cannot accept content of type specified in Content-Type header.
Server was unable to process the request.
Too many requests.
Internal server error.
{ "details": [], "message": "Bad request", "type": "bad_request" }
{ "details": [], "message": "Unauthorized", "type": "unauthorized" }
{ "details": [], "message": "Resource not found", "type": "resource_not_found" }
{ "details": [], "message": "Unsupported media type", "type": "unsupported_media_type" }
{ "details": [], "message": "Unprocessable content", "type": "unprocessable_content" }
{ "details": [], "message": "Too many requests", "type": "too_many_requests" }
{ "details": [], "message": "Internal server error", "type": "internal_server_error" }
Update Service Accounts Notification Settings
Update Service Accounts Notification Settings for a given team.
Required permissions: service-accounts-notification-settings.edit
PUT /platform/v1/teams/{teamId}/service-accounts/notification-settings
Request
Path Parameters
The team ID.
Possible values: value ≥ 0
Example:
1
The base schema for the service accounts notification settings.
The number of days before the expiry of the service account when the notifications are to be sent.
Possible values: number of items ≤ 5, 1 ≤ value ≤ 60
Whether the notification settings are enabled or not.
Example:
true
The list of notification channel IDs to which the notifications are to be sent.
Supported types are EMAIL and SLACK.Possible values: number of items ≤ 10, value ≥ 0
Response
The base schema for the service accounts notification settings.
The number of days before the expiry of the service account when the notifications are to be sent.
Possible values: number of items ≤ 5, 1 ≤ value ≤ 60
Whether the notification settings are enabled or not.
Example:
true
The list of notification channel IDs to which the notifications are to be sent.
Supported types are EMAIL and SLACK.Possible values: number of items ≤ 10, value ≥ 0
Status Code
Service Accounts Notification Settings updated.
Operation failed due to invalid payload.
Access denied.
Not enough privileges to complete the action.
Not found.
Server cannot accept content of type specified in Content-Type header.
Too many requests.
Internal server error.
{ "details": [], "message": "Bad request", "type": "bad_request" }
{ "details": [], "message": "Unauthorized", "type": "unauthorized" }
{ "details": [], "message": "Forbidden", "type": "forbidden" }
{ "details": [], "message": "Resource not found", "type": "resource_not_found" }
{ "details": [], "message": "Unsupported media type", "type": "unsupported_media_type" }
{ "details": [], "message": "Too many requests", "type": "too_many_requests" }
{ "details": [], "message": "Internal server error", "type": "internal_server_error" }
List Team Service Accounts
Retrieve a paginated list of team service accounts.
Required permissions: team-service-accounts.read
GET /platform/v1/teams/{teamId}/service-accounts
Request
Path Parameters
The team ID.
Possible values: value ≥ 0
Example:
1
Query Parameters
The offset number of items to start with
Possible values: 0 ≤ value ≤ 2147483647
Default:
0
Example:
30
The number of items to return
Possible values: 1 ≤ value ≤ 200
Default:
25
Example:
25
The order by field separated by a colon for the direction
Possible values: length ≤ 256
Default:
Example:
name:asc
Filters to apply in the form of
key:value
.
Multiple filters can be applied by repeating thefilter
parameter:
&filter=key1:value1&filter=key2:value2
Possible values: number of items ≤ 4, length ≤ 512
Default:
[]
Response
Paginated data.
Possible values: number of items ≤ 200
Page information.
- page
Possible values: length ≤ 8192
Example:
30
Possible values: length ≤ 8192
Example:
10
Possible values: value ≥ 0
Example:
1
Status Code
The team service accounts page.
Operation failed due to invalid payload.
Access denied.
Too many requests.
Internal server error.
{ "details": [], "message": "Bad request", "type": "bad_request" }
{ "details": [], "message": "Unauthorized", "type": "unauthorized" }
{ "details": [], "message": "Too many requests", "type": "too_many_requests" }
{ "details": [], "message": "Internal server error", "type": "internal_server_error" }
Create a Team Service Account
Create a new team service account.
Required permissions: team-service-accounts.edit
POST /platform/v1/teams/{teamId}/service-accounts
Request
Path Parameters
The team ID.
Possible values: value ≥ 0
Example:
1
The payload required to create a new team service account.
The display name of the Service Account.
Possible values: length ≤ 256
Example:
CI/CD service api key
Team role to be assigned to the team service account. | It can be a string for predefined roles or an id of a custom role.
Possible values: length ≤ 128
Example:
CICD_SCANNING
Time when the Service Account API key expires, | in number of milliseconds since January 1, 1970, 00:00:00 GMT
Possible values: 0 ≤ value ≤ 9223372036854775000
Example:
1630326638135
Response
Date and time when the Service Account was created.
Possible values: length ≤ 64
Example:
2024-08-23T17:32:28Z
Date and time when the Service Account API key expires.
Possible values: length ≤ 64
Example:
2024-06-15T17:32:28Z
Possible values: value ≥ 0
Example:
1
Date and time when the Service Account was last updated.
Possible values: length ≤ 64
Example:
2024-04-11T17:32:28Z
Date and time when the Service Account API key was last used.
Possible values: length ≤ 64
Example:
2024-06-15T17:32:28Z
Service Account display name.
Possible values: length ≤ 256
Example:
CI/CD service api key
Array of System roles assigned to the global service account.
Possible values: number of items = 1, length ≤ 128
Team ID of the team the service account is associated with.
Possible values: 1 ≤ value ≤ 9223372036854776000
Example:
32
The predefined team role for a Service Account, or an ID of a custom role.
Possible values: length ≤ 256
Example:
ROLE_TEAM_STANDARD
Service Account API key
Possible values: length ≤ 256
Example:
123ab45c-d67e-89fg-0hij-1k23456l7890-n1MO
Status Code
Team service account created.
Operation failed due to invalid payload.
Access denied.
Conflict.
Server cannot accept content of type specified in Content-Type header.
Server was unable to process the request.
Too many requests.
Internal server error.
{ "details": [], "message": "Bad request", "type": "bad_request" }
{ "details": [], "message": "Unauthorized", "type": "unauthorized" }
{ "details": [], "message": "Conflict", "type": "conflict" }
{ "details": [], "message": "Unsupported media type", "type": "unsupported_media_type" }
{ "details": [], "message": "Unprocessable content", "type": "unprocessable_content" }
{ "details": [], "message": "Too many requests", "type": "too_many_requests" }
{ "details": [], "message": "Internal server error", "type": "internal_server_error" }
Delete a Team Service Account
Delete a team service account by ID.
Required permissions: team-service-accounts.edit
DELETE /platform/v1/teams/{teamId}/service-accounts/{serviceAccountId}
Request
Path Parameters
The team ID.
Possible values: value ≥ 0
Example:
1
The service account ID.
Possible values: value ≥ 0
Example:
1
Response
Status Code
Team service account deleted.
Operation failed due to invalid payload.
Access denied.
Not enough privileges to complete the action.
Not found.
Server was unable to process the request.
Too many requests.
Internal server error.
{ "details": [], "message": "Bad request", "type": "bad_request" }
{ "details": [], "message": "Unauthorized", "type": "unauthorized" }
{ "details": [], "message": "Forbidden", "type": "forbidden" }
{ "details": [], "message": "Resource not found", "type": "resource_not_found" }
{ "details": [], "message": "Unprocessable content", "type": "unprocessable_content" }
{ "details": [], "message": "Too many requests", "type": "too_many_requests" }
{ "details": [], "message": "Internal server error", "type": "internal_server_error" }
Get a Team Service Account
Return a team service account by ID.
Required permissions: team-service-accounts.read
GET /platform/v1/teams/{teamId}/service-accounts/{serviceAccountId}
Request
Path Parameters
The team ID.
Possible values: value ≥ 0
Example:
1
The service account ID.
Possible values: value ≥ 0
Example:
1
Response
Date and time when the Service Account was created.
Possible values: length ≤ 64
Example:
2024-08-23T17:32:28Z
Date and time when the Service Account API key expires.
Possible values: length ≤ 64
Example:
2024-06-15T17:32:28Z
Possible values: value ≥ 0
Example:
1
Date and time when the Service Account was last updated.
Possible values: length ≤ 64
Example:
2024-04-11T17:32:28Z
Date and time when the Service Account API key was last used.
Possible values: length ≤ 64
Example:
2024-06-15T17:32:28Z
Service Account display name.
Possible values: length ≤ 256
Example:
CI/CD service api key
Array of System roles assigned to the global service account.
Possible values: number of items = 1, length ≤ 128
Team ID of the team the service account is associated with.
Possible values: 1 ≤ value ≤ 9223372036854776000
Example:
32
The predefined team role for a Service Account, or an ID of a custom role.
Possible values: length ≤ 256
Example:
ROLE_TEAM_STANDARD
Status Code
Team service account found.
Operation failed due to invalid payload.
Access denied.
Not found.
Too many requests.
Internal server error.
{ "details": [], "message": "Bad request", "type": "bad_request" }
{ "details": [], "message": "Unauthorized", "type": "unauthorized" }
{ "details": [], "message": "Resource not found", "type": "resource_not_found" }
{ "details": [], "message": "Too many requests", "type": "too_many_requests" }
{ "details": [], "message": "Internal server error", "type": "internal_server_error" }
List Inhibition Rules
Retrieve the list of inhibition rules.
Required permissions: inhibition-rules.read or alerts.read
GET /monitor/alerts/v1/inhibition-rules
Request
Query Parameters
The offset number of items to start with
Possible values: 0 ≤ value ≤ 2147483647
Default:
0
Example:
30
The number of items to return
Possible values: 1 ≤ value ≤ 200
Default:
25
Example:
25
Response
Paginated data.
Possible values: number of items ≤ 200
Page information.
- page
Possible values: length ≤ 8192
Example:
30
Possible values: length ≤ 8192
Example:
10
Possible values: value ≥ 0
Example:
1
Status Code
The list of inhibition rules.
Operation failed due to invalid payload.
Access denied.
Too many requests.
Internal server error.
{ "details": [], "message": "Bad request", "type": "bad_request" }
{ "details": [], "message": "Unauthorized", "type": "unauthorized" }
{ "details": [], "message": "Too many requests", "type": "too_many_requests" }
{ "details": [], "message": "Internal server error", "type": "internal_server_error" }
Create Inhibition Rule
Create an inhibition rule.
Required permissions: inhibition-rules.edit or alerts.edit
POST /monitor/alerts/v1/inhibition-rules
Request
The inhibition rule to be created.
List of source matchers for which one or more alerts have to exist for the inhibition to take effect.
Possible values: 1 ≤ number of items ≤ 100
List of target matchers that have to be fulfilled by the target alerts to be muted.
Possible values: 1 ≤ number of items ≤ 100
Description of the inhibition rule.
Possible values: length ≤ 8192
Example:
this is an example description
List of labels that must have an equal value in the source and target alert for the inhibition to take effect.
Possible values: 1 ≤ number of items ≤ 100, 1 ≤ length ≤ 1024
Indicates if the inhibition rule is enabled or not.
Default:
true
Name of the inhibition rule. If provided, must be unique.
Possible values: length ≤ 255
Example:
this is an example name
Response
Creation date.
Possible values: length ≤ 64
Example:
2017-07-21T17:32:28Z
ID of customer that owns the inhibition rule.
Possible values: 0 ≤ value ≤ 2147483647
Example:
12
Description of the inhibition rule.
Possible values: length ≤ 8192
Example:
this is an example description
List of labels that must have an equal value in the source and target alert for the inhibition to take effect.
Possible values: 1 ≤ number of items ≤ 100, 1 ≤ length ≤ 1024
Unique ID of the resource.
Possible values: value ≥ 0
Example:
1
Indicates if the inhibition rule is enabled or not.
Last modification date.
Possible values: length ≤ 64
Example:
2017-07-21T17:32:28Z
Name of the inhibition rule.
Possible values: length ≤ 255
Example:
this is an example name
List of source matchers for which one or more alerts have to exist for the inhibition to take effect.
Possible values: 1 ≤ number of items ≤ 100
List of target matchers that have to be fulfilled by the target alerts to be muted.
Possible values: 1 ≤ number of items ≤ 100
ID of team that owns the inhibition rule.
Possible values: 0 ≤ value ≤ 2147483647
Example:
13
The current version of the resource.
Possible values: value ≥ 0
Example:
1
Status Code
Inhibition rule created.
Operation failed due to invalid payload.
Access denied.
Not enough privileges to complete the action.
Server cannot accept content of type specified in Content-Type header.
Server was unable to process the request.
Too many requests.
Internal server error.
{ "details": [], "message": "Bad request", "type": "bad_request" }
{ "details": [], "message": "Unauthorized", "type": "unauthorized" }
{ "details": [], "message": "Forbidden", "type": "forbidden" }
{ "details": [], "message": "Unsupported media type", "type": "unsupported_media_type" }
{ "details": [], "message": "Unprocessable content", "type": "unprocessable_content" }
{ "details": [], "message": "Too many requests", "type": "too_many_requests" }
{ "details": [], "message": "Internal server error", "type": "internal_server_error" }
Delete Inhibition Rule
Delete an inhibition rule by its ID.
Required permissions: inhibition-rules.edit or alerts.edit
DELETE /monitor/alerts/v1/inhibition-rules/{inhibitionRuleId}
Response
Status Code
Inhibition rule deleted.
Operation failed due to invalid payload.
Access denied.
Not found.
Too many requests.
Internal server error.
{ "details": [], "message": "Bad request", "type": "bad_request" }
{ "details": [], "message": "Unauthorized", "type": "unauthorized" }
{ "details": [], "message": "Resource not found", "type": "resource_not_found" }
{ "details": [], "message": "Too many requests", "type": "too_many_requests" }
{ "details": [], "message": "Internal server error", "type": "internal_server_error" }
Get Inhibition Rule
Retrieve an inhibition rule by ID.
Required permissions: inhibition-rules.read or alerts.read
GET /monitor/alerts/v1/inhibition-rules/{inhibitionRuleId}
Response
Creation date.
Possible values: length ≤ 64
Example:
2017-07-21T17:32:28Z
ID of customer that owns the inhibition rule.
Possible values: 0 ≤ value ≤ 2147483647
Example:
12
Description of the inhibition rule.
Possible values: length ≤ 8192
Example:
this is an example description
List of labels that must have an equal value in the source and target alert for the inhibition to take effect.
Possible values: 1 ≤ number of items ≤ 100, 1 ≤ length ≤ 1024
Unique ID of the resource.
Possible values: value ≥ 0
Example:
1
Indicates if the inhibition rule is enabled or not.
Last modification date.
Possible values: length ≤ 64
Example:
2017-07-21T17:32:28Z
Name of the inhibition rule.
Possible values: length ≤ 255
Example:
this is an example name
List of source matchers for which one or more alerts have to exist for the inhibition to take effect.
Possible values: 1 ≤ number of items ≤ 100
List of target matchers that have to be fulfilled by the target alerts to be muted.
Possible values: 1 ≤ number of items ≤ 100
ID of team that owns the inhibition rule.
Possible values: 0 ≤ value ≤ 2147483647
Example:
13
The current version of the resource.
Possible values: value ≥ 0
Example:
1
Status Code
Inhibition rule found.
Operation failed due to invalid payload.
Access denied.
Not found.
Too many requests.
Internal server error.
{ "details": [], "message": "Bad request", "type": "bad_request" }
{ "details": [], "message": "Unauthorized", "type": "unauthorized" }
{ "details": [], "message": "Resource not found", "type": "resource_not_found" }
{ "details": [], "message": "Too many requests", "type": "too_many_requests" }
{ "details": [], "message": "Internal server error", "type": "internal_server_error" }
Update Inhibition Rule
Update an inhibition rule.
Required permissions: inhibition-rules.edit or alerts.edit
PUT /monitor/alerts/v1/inhibition-rules/{inhibitionRuleId}
Request
Path Parameters
The inhibition rule ID.
Possible values: value ≥ 0
Example:
1
The new version of the inhibition rule.
List of source matchers for which one or more alerts have to exist for the inhibition to take effect.
Possible values: 1 ≤ number of items ≤ 100
List of target matchers that have to be fulfilled by the target alerts to be muted.
Possible values: 1 ≤ number of items ≤ 100
The current version of the resource.
Possible values: value ≥ 0
Example:
1
Description of the inhibition rule.
Possible values: length ≤ 8192
Example:
this is an example description
List of labels that must have an equal value in the source and target alert for the inhibition to take effect.
Possible values: 1 ≤ number of items ≤ 100, 1 ≤ length ≤ 1024
Indicates if the inhibition rule is enabled or not.
Default:
true
Name of the inhibition rule. If provided, must be unique.
Possible values: length ≤ 255
Example:
this is an example name
Response
Creation date.
Possible values: length ≤ 64
Example:
2017-07-21T17:32:28Z
ID of customer that owns the inhibition rule.
Possible values: 0 ≤ value ≤ 2147483647
Example:
12
Description of the inhibition rule.
Possible values: length ≤ 8192
Example:
this is an example description
List of labels that must have an equal value in the source and target alert for the inhibition to take effect.
Possible values: 1 ≤ number of items ≤ 100, 1 ≤ length ≤ 1024
Unique ID of the resource.
Possible values: value ≥ 0
Example:
1
Indicates if the inhibition rule is enabled or not.
Last modification date.
Possible values: length ≤ 64
Example:
2017-07-21T17:32:28Z
Name of the inhibition rule.
Possible values: length ≤ 255
Example:
this is an example name
List of source matchers for which one or more alerts have to exist for the inhibition to take effect.
Possible values: 1 ≤ number of items ≤ 100
List of target matchers that have to be fulfilled by the target alerts to be muted.
Possible values: 1 ≤ number of items ≤ 100
ID of team that owns the inhibition rule.
Possible values: 0 ≤ value ≤ 2147483647
Example:
13
The current version of the resource.
Possible values: value ≥ 0
Example:
1
Status Code
Inhibition rule updated.
Operation failed due to invalid payload.
Access denied.
Not found.
Conflict.
Server cannot accept content of type specified in Content-Type header.
Server was unable to process the request.
Too many requests.
Internal server error.
{ "details": [], "message": "Bad request", "type": "bad_request" }
{ "details": [], "message": "Unauthorized", "type": "unauthorized" }
{ "details": [], "message": "Resource not found", "type": "resource_not_found" }
{ "details": [], "message": "Conflict", "type": "conflict" }
{ "details": [], "message": "Unsupported media type", "type": "unsupported_media_type" }
{ "details": [], "message": "Unprocessable content", "type": "unprocessable_content" }
{ "details": [], "message": "Too many requests", "type": "too_many_requests" }
{ "details": [], "message": "Internal server error", "type": "internal_server_error" }
List all dashboards accessible by the user in light mode with or without panels depending on content type
GET /api/v3/dashboards?content{&autoCreated,content,requiredPermission,shared,team}
Request
Query Parameters
Include list of panels for every dashboard
Allowable values: [
simpleList
,searchInfo
]Only auto created dashboards (deprecated param)
Default:
false
Only dashboards with the specific permission
Allowable values: [
dashboards.read
,dashboards.edit
,dashboards.delete
,dashboards.sharing
,dashboards.transfer
]Only dashboards shared to other users
Default:
false
Return dashboards for the given team id. Otherwise for the current user's team
List all dashboards accessible by the user in light mode without panels and layout
GET /api/v3/dashboards?light=true{&autoCreated,content,light,requiredPermission,shared,team}
Request
Query Parameters
Only auto created dashboards (deprecated param)
Default:
false
Include list of panels for every dashboard
Default:
simpleList
Only dashboards with the specific permission
Allowable values: [
dashboards.read
,dashboards.edit
,dashboards.delete
,dashboards.sharing
,dashboards.transfer
]Only dashboards shared to other users
Default:
false
Return dashboards for the given team id. Otherwise for the current user's team
List all dashboards accessible by the user including custom, shared and libraries. Displays also favourites, recently viewed and most recent
GET /api/v3/dashboards/list{?mostPopular,recentlyViewed}
Request
Custom Headers
Optional boolean header. Performs translation of metrics and labels into prometheus/public notation
Response
Silencing rule definition
Duration of the rule in seconds. Max duration is 365 days
Boolean to set the rule enabled or not
Name of the rule
Possible values: 0 ≤ length ≤ 255
Start time of the rule in milliseconds
IDs of alerts to be silenced
Possible values: 0 ≤ number of items ≤ 10, contains only unique items
Creation date in milliseconds
Unique ID. Must be set to null when creating a new silencing rule
Last modification date in milliseconds
List of channels IDs the rule should notify the start and end of silencing
Possible values: contains only unique items
Scope of the rule, expressed as a string
Example:
kubernetes_cluster_name = 'foo'
Object version. Must be set to null when creating a new silencing rule
Status Code
Success
Unauthorized
Forbidden
Not Found
No Sample Response
Request
Custom Headers
Optional boolean header. Performs translation of metrics and labels into prometheus/public notation
Silencing rule definition
Duration of the rule in seconds. Max duration is 365 days
Boolean to set the rule enabled or not
Name of the rule
Possible values: 0 ≤ length ≤ 255
Start time of the rule in milliseconds
IDs of alerts to be silenced
Possible values: 0 ≤ number of items ≤ 10, contains only unique items
Unique ID. Must be set to null when creating a new silencing rule
List of channels IDs the rule should notify the start and end of silencing
Possible values: contains only unique items
Scope of the rule, expressed as a string
Example:
kubernetes_cluster_name = 'foo'
Object version. Must be set to null when creating a new silencing rule
Response
Silencing rule definition
Duration of the rule in seconds. Max duration is 365 days
Boolean to set the rule enabled or not
Name of the rule
Possible values: 0 ≤ length ≤ 255
Start time of the rule in milliseconds
IDs of alerts to be silenced
Possible values: 0 ≤ number of items ≤ 10, contains only unique items
Creation date in milliseconds
Unique ID. Must be set to null when creating a new silencing rule
Last modification date in milliseconds
List of channels IDs the rule should notify the start and end of silencing
Possible values: contains only unique items
Scope of the rule, expressed as a string
Example:
kubernetes_cluster_name = 'foo'
Object version. Must be set to null when creating a new silencing rule
Status Code
Silencing Rule successfully created
Unauthorized
Forbidden
Not Found
Validation error, reason stated in the response body
No Sample Response
Request
Custom Headers
Optional boolean header. Performs translation of metrics and labels into prometheus/public notation
Path Parameters
The rule ID to fetch
Response
Silencing rule definition
Duration of the rule in seconds. Max duration is 365 days
Boolean to set the rule enabled or not
Name of the rule
Possible values: 0 ≤ length ≤ 255
Start time of the rule in milliseconds
IDs of alerts to be silenced
Possible values: 0 ≤ number of items ≤ 10, contains only unique items
Creation date in milliseconds
Unique ID. Must be set to null when creating a new silencing rule
Last modification date in milliseconds
List of channels IDs the rule should notify the start and end of silencing
Possible values: contains only unique items
Scope of the rule, expressed as a string
Example:
kubernetes_cluster_name = 'foo'
Object version. Must be set to null when creating a new silencing rule
Status Code
Success
Unauthorized
Forbidden
Silencing Rule not found for the customer/team
No Sample Response
Request
Custom Headers
Optional boolean header. Performs translation of metrics and labels into prometheus/public notation
Allowable values: [
*/*
,application/json
]
Path Parameters
Silencing rule definition
Duration of the rule in seconds. Max duration is 365 days
Boolean to set the rule enabled or not
Name of the rule
Possible values: 0 ≤ length ≤ 255
Start time of the rule in milliseconds
IDs of alerts to be silenced
Possible values: 0 ≤ number of items ≤ 10, contains only unique items
Unique ID. Must be set to null when creating a new silencing rule
List of channels IDs the rule should notify the start and end of silencing
Possible values: contains only unique items
Scope of the rule, expressed as a string
Example:
kubernetes_cluster_name = 'foo'
Object version. Must be set to null when creating a new silencing rule
Response
Silencing rule definition
Duration of the rule in seconds. Max duration is 365 days
Boolean to set the rule enabled or not
Name of the rule
Possible values: 0 ≤ length ≤ 255
Start time of the rule in milliseconds
IDs of alerts to be silenced
Possible values: 0 ≤ number of items ≤ 10, contains only unique items
Creation date in milliseconds
Unique ID. Must be set to null when creating a new silencing rule
Last modification date in milliseconds
List of channels IDs the rule should notify the start and end of silencing
Possible values: contains only unique items
Scope of the rule, expressed as a string
Example:
kubernetes_cluster_name = 'foo'
Object version. Must be set to null when creating a new silencing rule
Status Code
Silencing Rule successfully updated
Created
Unauthorized
Forbidden
Silencing Rule not found for customer/team
Validation error, reason stated in the response body
No Sample Response
Creates an alert. Note: This endpoint is deprecated in favour of the canonical root endpoint
POST /api/v2/alerts/create
Request
Custom Headers
Optional boolean header. Performs translation of metrics and labels into prometheus/public notation
Allowable values: [
*/*
,application/json
]
Query Parameters
Notification resolution strategy
Allowable values: [
DO_NOT_NOTIFY
,SEND_ACKNOWLEDGED_NOTIFICATIONS
,SEND_RESOLUTION_NOTIFICATIONS
]Default:
SEND_ACKNOWLEDGED_NOTIFICATIONS
Bulk alert request object
List alerts
GET /api/v2/alerts/summary{?aggregatedEventsMs,alertStatus,deleted,direction,excludePolicyEvents,filter,ids,severities,sortBy,statuses,triggeredAlertsScope,view}
Request
Custom Headers
Optional boolean header. Performs translation of metrics and labels into prometheus/public notation
Query Parameters
Milliseconds used to aggregate events if requested
Alert statuses (states or resolutions) to include when aggregating events and when searching for triggered alerts
Possible values: contains only unique items
Alert deletion flag (true if deleted, false if not)
Default:
false
Direction of sorting
Allowable values: [
asc
,desc
]Default:
desc
Exclude Secure events
Default:
true
String filter to use when querying alerts
List of alert IDs to list
List of severities to use when filtering
Property used for sorting
Default:
id
List of statuses to use when filtering
Scope of triggered alerts
View filter for alerts list
Allowable values: [
TRIGGERED
,UNREPORTED_DESCRIPTORS
,DEACTIVATED
]
List alerts
GET /api/v2/alerts{?aggregatedEventsMs,alertStatus,deleted,direction,excludePolicyEvents,filter,ids,severities,sortBy,statuses,triggeredAlertsScope,view}
Request
Custom Headers
Optional boolean header. Performs translation of metrics and labels into prometheus/public notation
Query Parameters
Milliseconds used to aggregate events if requested
Alert statuses (states or resolutions) to include when aggregating events and when searching for triggered alerts
Possible values: contains only unique items
Alert deletion flag (true if deleted, false if not)
Default:
false
Direction of sorting
Allowable values: [
asc
,desc
]Default:
desc
Exclude Secure events
Default:
true
String filter to use when querying alerts
List of alert IDs to list
List of severities to use when filtering
Property used for sorting
Default:
id
List of statuses to use when filtering
Scope of triggered alerts
View filter for alerts list
Allowable values: [
TRIGGERED
,UNREPORTED_DESCRIPTORS
,DEACTIVATED
]
Get events count aggregated by time and severity
Computes an aggregated count of Sysdig Monitor events in a specific time interval, with the possibility to filter events based on a textual query (according to the search syntax and searched fields for events), a scope, the type and source of the event and the severity.
Alert events can also be filtered by alert state and/or acknowledgement status.
Unless filtered by type using the category
parameter, this endpoint will take into account all the available event types.
Results are presented as a list of event count aggregated by the sampling interval and subsequently aggregated by event severity.
This endpoint is used to support the Display of Dashboard-Specific Events.
POST /api/v2/events/count
Request
Custom Headers
Allowable values: [
*/*
,application/json
]
Parameters to control the event count
Start of counting interval (in milliseconds)
Sampling interval (in milliseconds)
End of counting interval (in milliseconds)
Alert status (state and/or acknowledgement status) to filter alert events
Possible values: contains only unique items
Examples:[ "triggered" ]
Event category (type or source) to filter events
Possible values: contains only unique items
Examples:[ "alert" ]
Textual query to search events
Scope expressions to filter events
Severity to filter events
Possible values: contains only unique items
Examples:[ "MEDIUM" ]