Skip to content

Commit 6e3ded7

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-spec
andauthored
Add routes for managing On-Call user notification channels (#3517)
Co-authored-by: ci.datadog-api-spec <packages@datadoghq.com>
1 parent 58d892e commit 6e3ded7

37 files changed

Lines changed: 3751 additions & 0 deletions

File tree

.generator/schemas/v2/openapi.yaml

Lines changed: 428 additions & 0 deletions
Large diffs are not rendered by default.

api/datadogV2/api_on_call.go

Lines changed: 307 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,87 @@ func (a *OnCallApi) CreateOnCallSchedule(ctx _context.Context, body ScheduleCrea
231231
return localVarReturnValue, localVarHTTPResponse, nil
232232
}
233233

234+
// CreateUserNotificationChannel Create an On-Call notification channel for a user.
235+
// Create a new notification channel for a user. The authenticated user must be the target user or have the `on_call_admin` permission
236+
func (a *OnCallApi) CreateUserNotificationChannel(ctx _context.Context, userId string, body CreateUserNotificationChannelRequest) (NotificationChannel, *_nethttp.Response, error) {
237+
var (
238+
localVarHTTPMethod = _nethttp.MethodPost
239+
localVarPostBody interface{}
240+
localVarReturnValue NotificationChannel
241+
)
242+
243+
localBasePath, err := a.Client.Cfg.ServerURLWithContext(ctx, "v2.OnCallApi.CreateUserNotificationChannel")
244+
if err != nil {
245+
return localVarReturnValue, nil, datadog.GenericOpenAPIError{ErrorMessage: err.Error()}
246+
}
247+
248+
localVarPath := localBasePath + "/api/v2/on-call/users/{user_id}/notification-channels"
249+
localVarPath = datadog.ReplacePathParameter(localVarPath, "{user_id}", _neturl.PathEscape(datadog.ParameterToString(userId, "")))
250+
251+
localVarHeaderParams := make(map[string]string)
252+
localVarQueryParams := _neturl.Values{}
253+
localVarFormParams := _neturl.Values{}
254+
localVarHeaderParams["Content-Type"] = "application/json"
255+
localVarHeaderParams["Accept"] = "application/json"
256+
257+
// body params
258+
localVarPostBody = &body
259+
if a.Client.Cfg.DelegatedTokenConfig != nil {
260+
err = datadog.UseDelegatedTokenAuth(ctx, &localVarHeaderParams, a.Client.Cfg.DelegatedTokenConfig)
261+
if err != nil {
262+
return localVarReturnValue, nil, err
263+
}
264+
} else {
265+
datadog.SetAuthKeys(
266+
ctx,
267+
&localVarHeaderParams,
268+
[2]string{"apiKeyAuth", "DD-API-KEY"},
269+
[2]string{"appKeyAuth", "DD-APPLICATION-KEY"},
270+
)
271+
}
272+
req, err := a.Client.PrepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, nil)
273+
if err != nil {
274+
return localVarReturnValue, nil, err
275+
}
276+
277+
localVarHTTPResponse, err := a.Client.CallAPI(req)
278+
if err != nil || localVarHTTPResponse == nil {
279+
return localVarReturnValue, localVarHTTPResponse, err
280+
}
281+
282+
localVarBody, err := datadog.ReadBody(localVarHTTPResponse)
283+
if err != nil {
284+
return localVarReturnValue, localVarHTTPResponse, err
285+
}
286+
287+
if localVarHTTPResponse.StatusCode >= 300 {
288+
newErr := datadog.GenericOpenAPIError{
289+
ErrorBody: localVarBody,
290+
ErrorMessage: localVarHTTPResponse.Status,
291+
}
292+
if localVarHTTPResponse.StatusCode == 400 || localVarHTTPResponse.StatusCode == 401 || localVarHTTPResponse.StatusCode == 403 || localVarHTTPResponse.StatusCode == 404 || localVarHTTPResponse.StatusCode == 429 {
293+
var v APIErrorResponse
294+
err = a.Client.Decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
295+
if err != nil {
296+
return localVarReturnValue, localVarHTTPResponse, newErr
297+
}
298+
newErr.ErrorModel = v
299+
}
300+
return localVarReturnValue, localVarHTTPResponse, newErr
301+
}
302+
303+
err = a.Client.Decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
304+
if err != nil {
305+
newErr := datadog.GenericOpenAPIError{
306+
ErrorBody: localVarBody,
307+
ErrorMessage: err.Error(),
308+
}
309+
return localVarReturnValue, localVarHTTPResponse, newErr
310+
}
311+
312+
return localVarReturnValue, localVarHTTPResponse, nil
313+
}
314+
234315
// DeleteOnCallEscalationPolicy Delete On-Call escalation policy.
235316
// Delete an On-Call escalation policy
236317
func (a *OnCallApi) DeleteOnCallEscalationPolicy(ctx _context.Context, policyId string) (*_nethttp.Response, error) {
@@ -367,6 +448,75 @@ func (a *OnCallApi) DeleteOnCallSchedule(ctx _context.Context, scheduleId string
367448
return localVarHTTPResponse, nil
368449
}
369450

451+
// DeleteUserNotificationChannel Delete an On-Call notification channel for a user.
452+
// Delete a notification channel for a user. The authenticated user must be the target user or have the `on_call_admin` permission
453+
func (a *OnCallApi) DeleteUserNotificationChannel(ctx _context.Context, userId string, channelId string) (*_nethttp.Response, error) {
454+
var (
455+
localVarHTTPMethod = _nethttp.MethodDelete
456+
localVarPostBody interface{}
457+
)
458+
459+
localBasePath, err := a.Client.Cfg.ServerURLWithContext(ctx, "v2.OnCallApi.DeleteUserNotificationChannel")
460+
if err != nil {
461+
return nil, datadog.GenericOpenAPIError{ErrorMessage: err.Error()}
462+
}
463+
464+
localVarPath := localBasePath + "/api/v2/on-call/users/{user_id}/notification-channels/{channel_id}"
465+
localVarPath = datadog.ReplacePathParameter(localVarPath, "{user_id}", _neturl.PathEscape(datadog.ParameterToString(userId, "")))
466+
localVarPath = datadog.ReplacePathParameter(localVarPath, "{channel_id}", _neturl.PathEscape(datadog.ParameterToString(channelId, "")))
467+
468+
localVarHeaderParams := make(map[string]string)
469+
localVarQueryParams := _neturl.Values{}
470+
localVarFormParams := _neturl.Values{}
471+
localVarHeaderParams["Accept"] = "*/*"
472+
473+
if a.Client.Cfg.DelegatedTokenConfig != nil {
474+
err = datadog.UseDelegatedTokenAuth(ctx, &localVarHeaderParams, a.Client.Cfg.DelegatedTokenConfig)
475+
if err != nil {
476+
return nil, err
477+
}
478+
} else {
479+
datadog.SetAuthKeys(
480+
ctx,
481+
&localVarHeaderParams,
482+
[2]string{"apiKeyAuth", "DD-API-KEY"},
483+
[2]string{"appKeyAuth", "DD-APPLICATION-KEY"},
484+
)
485+
}
486+
req, err := a.Client.PrepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, nil)
487+
if err != nil {
488+
return nil, err
489+
}
490+
491+
localVarHTTPResponse, err := a.Client.CallAPI(req)
492+
if err != nil || localVarHTTPResponse == nil {
493+
return localVarHTTPResponse, err
494+
}
495+
496+
localVarBody, err := datadog.ReadBody(localVarHTTPResponse)
497+
if err != nil {
498+
return localVarHTTPResponse, err
499+
}
500+
501+
if localVarHTTPResponse.StatusCode >= 300 {
502+
newErr := datadog.GenericOpenAPIError{
503+
ErrorBody: localVarBody,
504+
ErrorMessage: localVarHTTPResponse.Status,
505+
}
506+
if localVarHTTPResponse.StatusCode == 400 || localVarHTTPResponse.StatusCode == 401 || localVarHTTPResponse.StatusCode == 403 || localVarHTTPResponse.StatusCode == 404 || localVarHTTPResponse.StatusCode == 429 {
507+
var v APIErrorResponse
508+
err = a.Client.Decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
509+
if err != nil {
510+
return localVarHTTPResponse, newErr
511+
}
512+
newErr.ErrorModel = v
513+
}
514+
return localVarHTTPResponse, newErr
515+
}
516+
517+
return localVarHTTPResponse, nil
518+
}
519+
370520
// GetOnCallEscalationPolicyOptionalParameters holds optional parameters for GetOnCallEscalationPolicy.
371521
type GetOnCallEscalationPolicyOptionalParameters struct {
372522
Include *string
@@ -907,6 +1057,163 @@ func (a *OnCallApi) GetTeamOnCallUsers(ctx _context.Context, teamId string, o ..
9071057
return localVarReturnValue, localVarHTTPResponse, nil
9081058
}
9091059

1060+
// GetUserNotificationChannel Get an On-Call notification channel for a user.
1061+
// Get a notification channel for a user. The authenticated user must be the target user or have the `on_call_admin` permission
1062+
func (a *OnCallApi) GetUserNotificationChannel(ctx _context.Context, userId string, channelId string) (NotificationChannel, *_nethttp.Response, error) {
1063+
var (
1064+
localVarHTTPMethod = _nethttp.MethodGet
1065+
localVarPostBody interface{}
1066+
localVarReturnValue NotificationChannel
1067+
)
1068+
1069+
localBasePath, err := a.Client.Cfg.ServerURLWithContext(ctx, "v2.OnCallApi.GetUserNotificationChannel")
1070+
if err != nil {
1071+
return localVarReturnValue, nil, datadog.GenericOpenAPIError{ErrorMessage: err.Error()}
1072+
}
1073+
1074+
localVarPath := localBasePath + "/api/v2/on-call/users/{user_id}/notification-channels/{channel_id}"
1075+
localVarPath = datadog.ReplacePathParameter(localVarPath, "{user_id}", _neturl.PathEscape(datadog.ParameterToString(userId, "")))
1076+
localVarPath = datadog.ReplacePathParameter(localVarPath, "{channel_id}", _neturl.PathEscape(datadog.ParameterToString(channelId, "")))
1077+
1078+
localVarHeaderParams := make(map[string]string)
1079+
localVarQueryParams := _neturl.Values{}
1080+
localVarFormParams := _neturl.Values{}
1081+
localVarHeaderParams["Accept"] = "application/json"
1082+
1083+
if a.Client.Cfg.DelegatedTokenConfig != nil {
1084+
err = datadog.UseDelegatedTokenAuth(ctx, &localVarHeaderParams, a.Client.Cfg.DelegatedTokenConfig)
1085+
if err != nil {
1086+
return localVarReturnValue, nil, err
1087+
}
1088+
} else {
1089+
datadog.SetAuthKeys(
1090+
ctx,
1091+
&localVarHeaderParams,
1092+
[2]string{"apiKeyAuth", "DD-API-KEY"},
1093+
[2]string{"appKeyAuth", "DD-APPLICATION-KEY"},
1094+
)
1095+
}
1096+
req, err := a.Client.PrepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, nil)
1097+
if err != nil {
1098+
return localVarReturnValue, nil, err
1099+
}
1100+
1101+
localVarHTTPResponse, err := a.Client.CallAPI(req)
1102+
if err != nil || localVarHTTPResponse == nil {
1103+
return localVarReturnValue, localVarHTTPResponse, err
1104+
}
1105+
1106+
localVarBody, err := datadog.ReadBody(localVarHTTPResponse)
1107+
if err != nil {
1108+
return localVarReturnValue, localVarHTTPResponse, err
1109+
}
1110+
1111+
if localVarHTTPResponse.StatusCode >= 300 {
1112+
newErr := datadog.GenericOpenAPIError{
1113+
ErrorBody: localVarBody,
1114+
ErrorMessage: localVarHTTPResponse.Status,
1115+
}
1116+
if localVarHTTPResponse.StatusCode == 400 || localVarHTTPResponse.StatusCode == 401 || localVarHTTPResponse.StatusCode == 403 || localVarHTTPResponse.StatusCode == 404 || localVarHTTPResponse.StatusCode == 429 {
1117+
var v APIErrorResponse
1118+
err = a.Client.Decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
1119+
if err != nil {
1120+
return localVarReturnValue, localVarHTTPResponse, newErr
1121+
}
1122+
newErr.ErrorModel = v
1123+
}
1124+
return localVarReturnValue, localVarHTTPResponse, newErr
1125+
}
1126+
1127+
err = a.Client.Decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
1128+
if err != nil {
1129+
newErr := datadog.GenericOpenAPIError{
1130+
ErrorBody: localVarBody,
1131+
ErrorMessage: err.Error(),
1132+
}
1133+
return localVarReturnValue, localVarHTTPResponse, newErr
1134+
}
1135+
1136+
return localVarReturnValue, localVarHTTPResponse, nil
1137+
}
1138+
1139+
// ListUserNotificationChannels List On-Call notification channels for a user.
1140+
// List the notification channels for a user. The authenticated user must be the target user or have the `on_call_admin` permission
1141+
func (a *OnCallApi) ListUserNotificationChannels(ctx _context.Context, userId string) (ListNotificationChannelsResponse, *_nethttp.Response, error) {
1142+
var (
1143+
localVarHTTPMethod = _nethttp.MethodGet
1144+
localVarPostBody interface{}
1145+
localVarReturnValue ListNotificationChannelsResponse
1146+
)
1147+
1148+
localBasePath, err := a.Client.Cfg.ServerURLWithContext(ctx, "v2.OnCallApi.ListUserNotificationChannels")
1149+
if err != nil {
1150+
return localVarReturnValue, nil, datadog.GenericOpenAPIError{ErrorMessage: err.Error()}
1151+
}
1152+
1153+
localVarPath := localBasePath + "/api/v2/on-call/users/{user_id}/notification-channels"
1154+
localVarPath = datadog.ReplacePathParameter(localVarPath, "{user_id}", _neturl.PathEscape(datadog.ParameterToString(userId, "")))
1155+
1156+
localVarHeaderParams := make(map[string]string)
1157+
localVarQueryParams := _neturl.Values{}
1158+
localVarFormParams := _neturl.Values{}
1159+
localVarHeaderParams["Accept"] = "application/json"
1160+
1161+
if a.Client.Cfg.DelegatedTokenConfig != nil {
1162+
err = datadog.UseDelegatedTokenAuth(ctx, &localVarHeaderParams, a.Client.Cfg.DelegatedTokenConfig)
1163+
if err != nil {
1164+
return localVarReturnValue, nil, err
1165+
}
1166+
} else {
1167+
datadog.SetAuthKeys(
1168+
ctx,
1169+
&localVarHeaderParams,
1170+
[2]string{"apiKeyAuth", "DD-API-KEY"},
1171+
[2]string{"appKeyAuth", "DD-APPLICATION-KEY"},
1172+
)
1173+
}
1174+
req, err := a.Client.PrepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, nil)
1175+
if err != nil {
1176+
return localVarReturnValue, nil, err
1177+
}
1178+
1179+
localVarHTTPResponse, err := a.Client.CallAPI(req)
1180+
if err != nil || localVarHTTPResponse == nil {
1181+
return localVarReturnValue, localVarHTTPResponse, err
1182+
}
1183+
1184+
localVarBody, err := datadog.ReadBody(localVarHTTPResponse)
1185+
if err != nil {
1186+
return localVarReturnValue, localVarHTTPResponse, err
1187+
}
1188+
1189+
if localVarHTTPResponse.StatusCode >= 300 {
1190+
newErr := datadog.GenericOpenAPIError{
1191+
ErrorBody: localVarBody,
1192+
ErrorMessage: localVarHTTPResponse.Status,
1193+
}
1194+
if localVarHTTPResponse.StatusCode == 400 || localVarHTTPResponse.StatusCode == 401 || localVarHTTPResponse.StatusCode == 403 || localVarHTTPResponse.StatusCode == 404 || localVarHTTPResponse.StatusCode == 429 {
1195+
var v APIErrorResponse
1196+
err = a.Client.Decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
1197+
if err != nil {
1198+
return localVarReturnValue, localVarHTTPResponse, newErr
1199+
}
1200+
newErr.ErrorModel = v
1201+
}
1202+
return localVarReturnValue, localVarHTTPResponse, newErr
1203+
}
1204+
1205+
err = a.Client.Decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
1206+
if err != nil {
1207+
newErr := datadog.GenericOpenAPIError{
1208+
ErrorBody: localVarBody,
1209+
ErrorMessage: err.Error(),
1210+
}
1211+
return localVarReturnValue, localVarHTTPResponse, newErr
1212+
}
1213+
1214+
return localVarReturnValue, localVarHTTPResponse, nil
1215+
}
1216+
9101217
// SetOnCallTeamRoutingRulesOptionalParameters holds optional parameters for SetOnCallTeamRoutingRules.
9111218
type SetOnCallTeamRoutingRulesOptionalParameters struct {
9121219
Include *string

api/datadogV2/doc.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -436,13 +436,17 @@
436436
// - [OktaIntegrationApi.UpdateOktaAccount]
437437
// - [On-CallApi.CreateOnCallEscalationPolicy]
438438
// - [On-CallApi.CreateOnCallSchedule]
439+
// - [On-CallApi.CreateUserNotificationChannel]
439440
// - [On-CallApi.DeleteOnCallEscalationPolicy]
440441
// - [On-CallApi.DeleteOnCallSchedule]
442+
// - [On-CallApi.DeleteUserNotificationChannel]
441443
// - [On-CallApi.GetOnCallEscalationPolicy]
442444
// - [On-CallApi.GetOnCallSchedule]
443445
// - [On-CallApi.GetOnCallTeamRoutingRules]
444446
// - [On-CallApi.GetScheduleOnCallUser]
445447
// - [On-CallApi.GetTeamOnCallUsers]
448+
// - [On-CallApi.GetUserNotificationChannel]
449+
// - [On-CallApi.ListUserNotificationChannels]
446450
// - [On-CallApi.SetOnCallTeamRoutingRules]
447451
// - [On-CallApi.UpdateOnCallEscalationPolicy]
448452
// - [On-CallApi.UpdateOnCallSchedule]

0 commit comments

Comments
 (0)