From 00977f74746579bd22b0d27e78ee2a318b4165ec Mon Sep 17 00:00:00 2001 From: "ci.datadog-api-spec" Date: Thu, 19 Feb 2026 11:20:06 +0000 Subject: [PATCH] Regenerate client from commit 8d04493 of spec repo --- .generator/schemas/v2/openapi.yaml | 100 +++++++++--------- api/datadogV2/api_dora_metrics.go | 34 +++--- ...model_dora_deployment_patch_remediation.go | 82 +++++++------- ..._dora_deployment_patch_remediation_type.go | 2 +- ...ora_deployment_patch_request_attributes.go | 2 +- .../model_dora_failure_fetch_response.go | 2 +- api/datadogV2/model_dora_failure_request.go | 2 +- .../model_dora_failure_request_attributes.go | 16 +-- .../model_dora_failure_request_data.go | 2 +- api/datadogV2/model_dora_failure_response.go | 4 +- .../model_dora_failure_response_data.go | 6 +- api/datadogV2/model_dora_failure_type.go | 2 +- .../model_dora_failures_list_response.go | 2 +- api/datadogV2/model_dora_incident_object.go | 2 +- .../model_dora_list_failures_request.go | 2 +- ...l_dora_list_failures_request_attributes.go | 2 +- .../model_dora_list_failures_request_data.go | 2 +- examples/v2/dora-metrics/CreateDORAFailure.go | 2 +- .../v2/dora-metrics/CreateDORAIncident.go | 2 +- examples/v2/dora-metrics/DeleteDORAFailure.go | 4 +- .../DeleteDORAFailure_3462074974.go | 25 +++++ examples/v2/dora-metrics/GetDORAFailure.go | 2 +- examples/v2/dora-metrics/ListDORAFailures.go | 10 +- .../ListDORAFailures_3269988848.go | 40 +++++++ .../v2/dora-metrics/PatchDORADeployment.go | 4 +- .../features/v2/dora_metrics.feature | 90 ++++++++++++---- 26 files changed, 278 insertions(+), 165 deletions(-) create mode 100644 examples/v2/dora-metrics/DeleteDORAFailure_3462074974.go create mode 100644 examples/v2/dora-metrics/ListDORAFailures_3269988848.go diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index b9a63afce0a..b01929137f5 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -17794,20 +17794,20 @@ components: - finished_at type: object DORADeploymentPatchRemediation: - description: Remediation details for the deployment. + description: Remediation details for the deployment. Optional, but required + to calculate failed deployment recovery time. properties: id: - description: The ID of the remediation action. + description: The ID of the remediation deployment. Required when the failed + deployment must be linked to a remediation deployment. example: eG42zNIkVjM type: string type: $ref: '#/components/schemas/DORADeploymentPatchRemediationType' - required: - - id - - type type: object DORADeploymentPatchRemediationType: - description: The type of remediation action taken. + description: The type of remediation action taken. Required when the failed + deployment must be linked to a remediation deployment. enum: - rollback - rollforward @@ -18011,13 +18011,13 @@ components: type: array type: object DORAFailureFetchResponse: - description: Response for fetching a single failure event. + description: Response for fetching a single incident event. properties: data: $ref: '#/components/schemas/DORAIncidentObject' type: object DORAFailureRequest: - description: Request to create a DORA failure event. + description: Request to create a DORA incident event. properties: data: $ref: '#/components/schemas/DORAFailureRequestData' @@ -18025,16 +18025,16 @@ components: - data type: object DORAFailureRequestAttributes: - description: Attributes to create a DORA failure event. + description: Attributes to create a DORA incident event. properties: custom_tags: $ref: '#/components/schemas/DORACustomTags' env: - description: Environment name that was impacted by the failure. + description: Environment name that was impacted by the incident. example: staging type: string finished_at: - description: Unix timestamp when the failure finished. It must be in nanoseconds, + description: Unix timestamp when the incident finished. It must be in nanoseconds, milliseconds, or seconds. example: 1693491984000000000 format: int64 @@ -18042,16 +18042,16 @@ components: git: $ref: '#/components/schemas/DORAGitInfo' id: - description: Failure ID. Must be 16-128 characters and contain only alphanumeric + description: Incident ID. Must be 16-128 characters and contain only alphanumeric characters, hyphens, underscores, periods, and colons (a-z, A-Z, 0-9, -, _, ., :). type: string name: - description: Failure name. + description: Incident name. example: Webserver is down failing all requests. type: string services: - description: Service names impacted by the failure. If possible, use names + description: Service names impacted by the incident. If possible, use names registered in the Service Catalog. Required when the team field is not provided. example: @@ -18060,11 +18060,11 @@ components: type: string type: array severity: - description: Failure severity. + description: Incident severity. example: High type: string started_at: - description: Unix timestamp when the failure started. It must be in nanoseconds, + description: Unix timestamp when the incident started. It must be in nanoseconds, milliseconds, or seconds. example: 1693491974000000000 format: int64 @@ -18091,7 +18091,7 @@ components: - attributes type: object DORAFailureResponse: - description: Response after receiving a DORA failure event. + description: Response after receiving a DORA incident event. properties: data: $ref: '#/components/schemas/DORAFailureResponseData' @@ -18099,10 +18099,10 @@ components: - data type: object DORAFailureResponseData: - description: Response after receiving a DORA failure event. + description: Response after receiving a DORA incident event. properties: id: - description: The ID of the received DORA failure event. + description: The ID of the received DORA incident event. example: 4242fcdd31586083 type: string type: @@ -18112,7 +18112,7 @@ components: type: object DORAFailureType: default: dora_failure - description: JSON:API type for DORA failure events. + description: JSON:API type for DORA incident events. enum: - dora_failure example: dora_failure @@ -18120,7 +18120,7 @@ components: x-enum-varnames: - DORA_FAILURE DORAFailuresListResponse: - description: Response for the list failures endpoint. + description: Response for the list incidents endpoint. example: data: - attributes: @@ -18254,7 +18254,7 @@ components: from: '2025-01-01T00:00:00Z' limit: 100 query: service:(shopist OR api-service) env:production team:backend - sort: -started_at + sort: -finished_at to: '2025-01-31T23:59:59Z' type: dora_deployments_list_request properties: @@ -18285,7 +18285,7 @@ components: type: string sort: description: Sort order (prefixed with `-` for descending). - example: -started_at + example: -finished_at type: string to: description: Maximum timestamp for requested events. @@ -18321,7 +18321,7 @@ components: x-enum-varnames: - DORA_DEPLOYMENTS_LIST_REQUEST DORAListFailuresRequest: - description: Request to get a list of failures. + description: Request to get a list of incidents. example: data: attributes: @@ -18338,7 +18338,7 @@ components: - data type: object DORAListFailuresRequestAttributes: - description: Attributes to get a list of failures. + description: Attributes to get a list of incidents. properties: from: description: Minimum timestamp for requested events. @@ -77825,7 +77825,9 @@ paths: - Change Lead Time - - Change Failure Rate' + - Change Failure Rate + + - Failed Deployment Recovery Time' operationId: CreateDORADeployment requestBody: content: @@ -77974,7 +77976,9 @@ paths: permissions: - dora_metrics_read patch: - description: Use this API endpoint to patch a deployment event. + description: Update a deployment's change failure status. Use this to mark a + deployment as a change failure or back to stable. You can optionally include + remediation details to enable failed deployment recovery time calculation. operationId: PatchDORADeployment parameters: - description: The ID of the deployment event. @@ -78015,14 +78019,14 @@ paths: - dora_metrics_write /api/v2/dora/failure: post: - description: 'Use this API endpoint to provide failure data. + description: 'Use this API endpoint to provide incident data for DORA Metrics. + Note that change failure rate and failed deployment recovery time are computed + from change failures detected on deployments, not from incident events sent + through this endpoint. - This is necessary for: - - - Change Failure Rate - - - Time to Restore' + Tracking incidents gives a side-by-side view of how failed deployments translate + into real-world incidents, including their severity and frequency.' operationId: CreateDORAFailure requestBody: content: @@ -78055,16 +78059,16 @@ paths: $ref: '#/components/responses/TooManyRequestsResponse' security: - apiKeyAuth: [] - summary: Send a failure event + summary: Send an incident event tags: - DORA Metrics x-codegen-request-body-name: body /api/v2/dora/failure/{failure_id}: delete: - description: Use this API endpoint to delete a failure event. + description: Use this API endpoint to delete an incident event. operationId: DeleteDORAFailure parameters: - - description: The ID of the failure event to delete. + - description: The ID of the incident event to delete. in: path name: failure_id required: true @@ -78086,7 +78090,7 @@ paths: security: - apiKeyAuth: [] appKeyAuth: [] - summary: Delete a failure event + summary: Delete an incident event tags: - DORA Metrics x-permission: @@ -78095,7 +78099,7 @@ paths: - dora_metrics_write /api/v2/dora/failures: post: - description: Use this API endpoint to get a list of failure events. + description: Use this API endpoint to get a list of incident events. operationId: ListDORAFailures requestBody: content: @@ -78123,7 +78127,7 @@ paths: security: - apiKeyAuth: [] appKeyAuth: [] - summary: Get a list of failure events + summary: Get a list of incident events tags: - DORA Metrics x-codegen-request-body-name: body @@ -78133,10 +78137,10 @@ paths: - dora_metrics_read /api/v2/dora/failures/{failure_id}: get: - description: Use this API endpoint to get a failure event. + description: Use this API endpoint to get an incident event. operationId: GetDORAFailure parameters: - - description: The ID of the failure event. + - description: The ID of the incident event. in: path name: failure_id required: true @@ -78162,7 +78166,7 @@ paths: security: - apiKeyAuth: [] appKeyAuth: [] - summary: Get a failure event + summary: Get an incident event tags: - DORA Metrics x-codegen-request-body-name: body @@ -78177,14 +78181,10 @@ paths: instead. - Use this API endpoint to provide failure data. - + Use this API endpoint to provide incident data. - This is necessary for: - - - Change Failure Rate - - - Time to Restore' + Tracking incidents gives a side-by-side view of how failed deployments translate + into real-world incidents.' operationId: CreateDORAIncident requestBody: content: @@ -78217,7 +78217,7 @@ paths: $ref: '#/components/responses/TooManyRequestsResponse' security: - apiKeyAuth: [] - summary: Send an incident event + summary: Send an incident event (legacy) tags: - DORA Metrics x-codegen-request-body-name: body diff --git a/api/datadogV2/api_dora_metrics.go b/api/datadogV2/api_dora_metrics.go index ead46bf7d25..da7890e0195 100644 --- a/api/datadogV2/api_dora_metrics.go +++ b/api/datadogV2/api_dora_metrics.go @@ -22,6 +22,7 @@ type DORAMetricsApi datadog.Service // - Deployment Frequency // - Change Lead Time // - Change Failure Rate +// - Failed Deployment Recovery Time func (a *DORAMetricsApi) CreateDORADeployment(ctx _context.Context, body DORADeploymentRequest) (DORADeploymentResponse, *_nethttp.Response, error) { var ( localVarHTTPMethod = _nethttp.MethodPost @@ -102,12 +103,10 @@ func (a *DORAMetricsApi) CreateDORADeployment(ctx _context.Context, body DORADep return localVarReturnValue, localVarHTTPResponse, nil } -// CreateDORAFailure Send a failure event. -// Use this API endpoint to provide failure data. -// -// This is necessary for: -// - Change Failure Rate -// - Time to Restore +// CreateDORAFailure Send an incident event. +// Use this API endpoint to provide incident data for DORA Metrics. +// Note that change failure rate and failed deployment recovery time are computed from change failures detected on deployments, not from incident events sent through this endpoint. +// Tracking incidents gives a side-by-side view of how failed deployments translate into real-world incidents, including their severity and frequency. func (a *DORAMetricsApi) CreateDORAFailure(ctx _context.Context, body DORAFailureRequest) (DORAFailureResponse, *_nethttp.Response, error) { var ( localVarHTTPMethod = _nethttp.MethodPost @@ -188,14 +187,11 @@ func (a *DORAMetricsApi) CreateDORAFailure(ctx _context.Context, body DORAFailur return localVarReturnValue, localVarHTTPResponse, nil } -// CreateDORAIncident Send an incident event. +// CreateDORAIncident Send an incident event (legacy). // **Note**: This endpoint is deprecated. Please use `/api/v2/dora/failure` instead. // -// Use this API endpoint to provide failure data. -// -// This is necessary for: -// - Change Failure Rate -// - Time to Restore +// Use this API endpoint to provide incident data. +// Tracking incidents gives a side-by-side view of how failed deployments translate into real-world incidents. // // Deprecated: This API is deprecated. func (a *DORAMetricsApi) CreateDORAIncident(ctx _context.Context, body DORAFailureRequest) (DORAFailureResponse, *_nethttp.Response, error) { @@ -355,8 +351,8 @@ func (a *DORAMetricsApi) DeleteDORADeployment(ctx _context.Context, deploymentId return localVarHTTPResponse, nil } -// DeleteDORAFailure Delete a failure event. -// Use this API endpoint to delete a failure event. +// DeleteDORAFailure Delete an incident event. +// Use this API endpoint to delete an incident event. func (a *DORAMetricsApi) DeleteDORAFailure(ctx _context.Context, failureId string) (*_nethttp.Response, error) { var ( localVarHTTPMethod = _nethttp.MethodDelete @@ -519,8 +515,8 @@ func (a *DORAMetricsApi) GetDORADeployment(ctx _context.Context, deploymentId st return localVarReturnValue, localVarHTTPResponse, nil } -// GetDORAFailure Get a failure event. -// Use this API endpoint to get a failure event. +// GetDORAFailure Get an incident event. +// Use this API endpoint to get an incident event. func (a *DORAMetricsApi) GetDORAFailure(ctx _context.Context, failureId string) (DORAFailureFetchResponse, *_nethttp.Response, error) { var ( localVarHTTPMethod = _nethttp.MethodGet @@ -695,8 +691,8 @@ func (a *DORAMetricsApi) ListDORADeployments(ctx _context.Context, body DORAList return localVarReturnValue, localVarHTTPResponse, nil } -// ListDORAFailures Get a list of failure events. -// Use this API endpoint to get a list of failure events. +// ListDORAFailures Get a list of incident events. +// Use this API endpoint to get a list of incident events. func (a *DORAMetricsApi) ListDORAFailures(ctx _context.Context, body DORAListFailuresRequest) (DORAFailuresListResponse, *_nethttp.Response, error) { var ( localVarHTTPMethod = _nethttp.MethodPost @@ -785,7 +781,7 @@ func (a *DORAMetricsApi) ListDORAFailures(ctx _context.Context, body DORAListFai } // PatchDORADeployment Patch a deployment event. -// Use this API endpoint to patch a deployment event. +// Update a deployment's change failure status. Use this to mark a deployment as a change failure or back to stable. You can optionally include remediation details to enable failed deployment recovery time calculation. func (a *DORAMetricsApi) PatchDORADeployment(ctx _context.Context, deploymentId string, body DORADeploymentPatchRequest) (*_nethttp.Response, error) { var ( localVarHTTPMethod = _nethttp.MethodPatch diff --git a/api/datadogV2/model_dora_deployment_patch_remediation.go b/api/datadogV2/model_dora_deployment_patch_remediation.go index 5ee361f0ab3..d9b5b47d5d5 100644 --- a/api/datadogV2/model_dora_deployment_patch_remediation.go +++ b/api/datadogV2/model_dora_deployment_patch_remediation.go @@ -5,17 +5,15 @@ package datadogV2 import ( - "fmt" - "github.com/DataDog/datadog-api-client-go/v2/api/datadog" ) -// DORADeploymentPatchRemediation Remediation details for the deployment. +// DORADeploymentPatchRemediation Remediation details for the deployment. Optional, but required to calculate failed deployment recovery time. type DORADeploymentPatchRemediation struct { - // The ID of the remediation action. - Id string `json:"id"` - // The type of remediation action taken. - Type DORADeploymentPatchRemediationType `json:"type"` + // The ID of the remediation deployment. Required when the failed deployment must be linked to a remediation deployment. + Id *string `json:"id,omitempty"` + // The type of remediation action taken. Required when the failed deployment must be linked to a remediation deployment. + Type *DORADeploymentPatchRemediationType `json:"type,omitempty"` // UnparsedObject contains the raw value of the object if there was an error when deserializing into the struct UnparsedObject map[string]interface{} `json:"-"` AdditionalProperties map[string]interface{} `json:"-"` @@ -25,10 +23,8 @@ type DORADeploymentPatchRemediation struct { // This constructor will assign default values to properties that have it defined, // and makes sure properties required by API are set, but the set of arguments // will change when the set of required properties is changed. -func NewDORADeploymentPatchRemediation(id string, typeVar DORADeploymentPatchRemediationType) *DORADeploymentPatchRemediation { +func NewDORADeploymentPatchRemediation() *DORADeploymentPatchRemediation { this := DORADeploymentPatchRemediation{} - this.Id = id - this.Type = typeVar return &this } @@ -40,50 +36,60 @@ func NewDORADeploymentPatchRemediationWithDefaults() *DORADeploymentPatchRemedia return &this } -// GetId returns the Id field value. +// GetId returns the Id field value if set, zero value otherwise. func (o *DORADeploymentPatchRemediation) GetId() string { - if o == nil { + if o == nil || o.Id == nil { var ret string return ret } - return o.Id + return *o.Id } -// GetIdOk returns a tuple with the Id field value +// GetIdOk returns a tuple with the Id field value if set, nil otherwise // and a boolean to check if the value has been set. func (o *DORADeploymentPatchRemediation) GetIdOk() (*string, bool) { - if o == nil { + if o == nil || o.Id == nil { return nil, false } - return &o.Id, true + return o.Id, true +} + +// HasId returns a boolean if a field has been set. +func (o *DORADeploymentPatchRemediation) HasId() bool { + return o != nil && o.Id != nil } -// SetId sets field value. +// SetId gets a reference to the given string and assigns it to the Id field. func (o *DORADeploymentPatchRemediation) SetId(v string) { - o.Id = v + o.Id = &v } -// GetType returns the Type field value. +// GetType returns the Type field value if set, zero value otherwise. func (o *DORADeploymentPatchRemediation) GetType() DORADeploymentPatchRemediationType { - if o == nil { + if o == nil || o.Type == nil { var ret DORADeploymentPatchRemediationType return ret } - return o.Type + return *o.Type } -// GetTypeOk returns a tuple with the Type field value +// GetTypeOk returns a tuple with the Type field value if set, nil otherwise // and a boolean to check if the value has been set. func (o *DORADeploymentPatchRemediation) GetTypeOk() (*DORADeploymentPatchRemediationType, bool) { - if o == nil { + if o == nil || o.Type == nil { return nil, false } - return &o.Type, true + return o.Type, true +} + +// HasType returns a boolean if a field has been set. +func (o *DORADeploymentPatchRemediation) HasType() bool { + return o != nil && o.Type != nil } -// SetType sets field value. +// SetType gets a reference to the given DORADeploymentPatchRemediationType and assigns it to the Type field. func (o *DORADeploymentPatchRemediation) SetType(v DORADeploymentPatchRemediationType) { - o.Type = v + o.Type = &v } // MarshalJSON serializes the struct using spec logic. @@ -92,8 +98,12 @@ func (o DORADeploymentPatchRemediation) MarshalJSON() ([]byte, error) { if o.UnparsedObject != nil { return datadog.Marshal(o.UnparsedObject) } - toSerialize["id"] = o.Id - toSerialize["type"] = o.Type + if o.Id != nil { + toSerialize["id"] = o.Id + } + if o.Type != nil { + toSerialize["type"] = o.Type + } for key, value := range o.AdditionalProperties { toSerialize[key] = value @@ -104,18 +114,12 @@ func (o DORADeploymentPatchRemediation) MarshalJSON() ([]byte, error) { // UnmarshalJSON deserializes the given payload. func (o *DORADeploymentPatchRemediation) UnmarshalJSON(bytes []byte) (err error) { all := struct { - Id *string `json:"id"` - Type *DORADeploymentPatchRemediationType `json:"type"` + Id *string `json:"id,omitempty"` + Type *DORADeploymentPatchRemediationType `json:"type,omitempty"` }{} if err = datadog.Unmarshal(bytes, &all); err != nil { return datadog.Unmarshal(bytes, &o.UnparsedObject) } - if all.Id == nil { - return fmt.Errorf("required field id missing") - } - if all.Type == nil { - return fmt.Errorf("required field type missing") - } additionalProperties := make(map[string]interface{}) if err = datadog.Unmarshal(bytes, &additionalProperties); err == nil { datadog.DeleteKeys(additionalProperties, &[]string{"id", "type"}) @@ -124,11 +128,11 @@ func (o *DORADeploymentPatchRemediation) UnmarshalJSON(bytes []byte) (err error) } hasInvalidField := false - o.Id = *all.Id - if !all.Type.IsValid() { + o.Id = all.Id + if all.Type != nil && !all.Type.IsValid() { hasInvalidField = true } else { - o.Type = *all.Type + o.Type = all.Type } if len(additionalProperties) > 0 { diff --git a/api/datadogV2/model_dora_deployment_patch_remediation_type.go b/api/datadogV2/model_dora_deployment_patch_remediation_type.go index 031f9e71d03..8e014eac91c 100644 --- a/api/datadogV2/model_dora_deployment_patch_remediation_type.go +++ b/api/datadogV2/model_dora_deployment_patch_remediation_type.go @@ -10,7 +10,7 @@ import ( "github.com/DataDog/datadog-api-client-go/v2/api/datadog" ) -// DORADeploymentPatchRemediationType The type of remediation action taken. +// DORADeploymentPatchRemediationType The type of remediation action taken. Required when the failed deployment must be linked to a remediation deployment. type DORADeploymentPatchRemediationType string // List of DORADeploymentPatchRemediationType. diff --git a/api/datadogV2/model_dora_deployment_patch_request_attributes.go b/api/datadogV2/model_dora_deployment_patch_request_attributes.go index 000b1046f68..fb2c28f8c92 100644 --- a/api/datadogV2/model_dora_deployment_patch_request_attributes.go +++ b/api/datadogV2/model_dora_deployment_patch_request_attributes.go @@ -12,7 +12,7 @@ import ( type DORADeploymentPatchRequestAttributes struct { // Indicates whether the deployment resulted in a change failure. ChangeFailure *bool `json:"change_failure,omitempty"` - // Remediation details for the deployment. + // Remediation details for the deployment. Optional, but required to calculate failed deployment recovery time. Remediation *DORADeploymentPatchRemediation `json:"remediation,omitempty"` // UnparsedObject contains the raw value of the object if there was an error when deserializing into the struct UnparsedObject map[string]interface{} `json:"-"` diff --git a/api/datadogV2/model_dora_failure_fetch_response.go b/api/datadogV2/model_dora_failure_fetch_response.go index 902ad056ae8..f4a7dfa1731 100644 --- a/api/datadogV2/model_dora_failure_fetch_response.go +++ b/api/datadogV2/model_dora_failure_fetch_response.go @@ -8,7 +8,7 @@ import ( "github.com/DataDog/datadog-api-client-go/v2/api/datadog" ) -// DORAFailureFetchResponse Response for fetching a single failure event. +// DORAFailureFetchResponse Response for fetching a single incident event. type DORAFailureFetchResponse struct { // A DORA incident event. Data *DORAIncidentObject `json:"data,omitempty"` diff --git a/api/datadogV2/model_dora_failure_request.go b/api/datadogV2/model_dora_failure_request.go index 2b1d189d824..e17ad1bc746 100644 --- a/api/datadogV2/model_dora_failure_request.go +++ b/api/datadogV2/model_dora_failure_request.go @@ -10,7 +10,7 @@ import ( "github.com/DataDog/datadog-api-client-go/v2/api/datadog" ) -// DORAFailureRequest Request to create a DORA failure event. +// DORAFailureRequest Request to create a DORA incident event. type DORAFailureRequest struct { // The JSON:API data. Data DORAFailureRequestData `json:"data"` diff --git a/api/datadogV2/model_dora_failure_request_attributes.go b/api/datadogV2/model_dora_failure_request_attributes.go index 30853ca6550..87c73fc8859 100644 --- a/api/datadogV2/model_dora_failure_request_attributes.go +++ b/api/datadogV2/model_dora_failure_request_attributes.go @@ -10,25 +10,25 @@ import ( "github.com/DataDog/datadog-api-client-go/v2/api/datadog" ) -// DORAFailureRequestAttributes Attributes to create a DORA failure event. +// DORAFailureRequestAttributes Attributes to create a DORA incident event. type DORAFailureRequestAttributes struct { // A list of user-defined tags. The tags must follow the `key:value` pattern. Up to 100 may be added per event. CustomTags datadog.NullableList[string] `json:"custom_tags,omitempty"` - // Environment name that was impacted by the failure. + // Environment name that was impacted by the incident. Env *string `json:"env,omitempty"` - // Unix timestamp when the failure finished. It must be in nanoseconds, milliseconds, or seconds. + // Unix timestamp when the incident finished. It must be in nanoseconds, milliseconds, or seconds. FinishedAt *int64 `json:"finished_at,omitempty"` // Git info for DORA Metrics events. Git *DORAGitInfo `json:"git,omitempty"` - // Failure ID. Must be 16-128 characters and contain only alphanumeric characters, hyphens, underscores, periods, and colons (a-z, A-Z, 0-9, -, _, ., :). + // Incident ID. Must be 16-128 characters and contain only alphanumeric characters, hyphens, underscores, periods, and colons (a-z, A-Z, 0-9, -, _, ., :). Id *string `json:"id,omitempty"` - // Failure name. + // Incident name. Name *string `json:"name,omitempty"` - // Service names impacted by the failure. If possible, use names registered in the Service Catalog. Required when the team field is not provided. + // Service names impacted by the incident. If possible, use names registered in the Service Catalog. Required when the team field is not provided. Services []string `json:"services,omitempty"` - // Failure severity. + // Incident severity. Severity *string `json:"severity,omitempty"` - // Unix timestamp when the failure started. It must be in nanoseconds, milliseconds, or seconds. + // Unix timestamp when the incident started. It must be in nanoseconds, milliseconds, or seconds. StartedAt int64 `json:"started_at"` // Name of the team owning the services impacted. If possible, use team handles registered in Datadog. Required when the services field is not provided. Team *string `json:"team,omitempty"` diff --git a/api/datadogV2/model_dora_failure_request_data.go b/api/datadogV2/model_dora_failure_request_data.go index 41569a04754..6dbafaebd43 100644 --- a/api/datadogV2/model_dora_failure_request_data.go +++ b/api/datadogV2/model_dora_failure_request_data.go @@ -12,7 +12,7 @@ import ( // DORAFailureRequestData The JSON:API data. type DORAFailureRequestData struct { - // Attributes to create a DORA failure event. + // Attributes to create a DORA incident event. Attributes DORAFailureRequestAttributes `json:"attributes"` // UnparsedObject contains the raw value of the object if there was an error when deserializing into the struct UnparsedObject map[string]interface{} `json:"-"` diff --git a/api/datadogV2/model_dora_failure_response.go b/api/datadogV2/model_dora_failure_response.go index 5cb637cde10..f9a21051224 100644 --- a/api/datadogV2/model_dora_failure_response.go +++ b/api/datadogV2/model_dora_failure_response.go @@ -10,9 +10,9 @@ import ( "github.com/DataDog/datadog-api-client-go/v2/api/datadog" ) -// DORAFailureResponse Response after receiving a DORA failure event. +// DORAFailureResponse Response after receiving a DORA incident event. type DORAFailureResponse struct { - // Response after receiving a DORA failure event. + // Response after receiving a DORA incident event. Data DORAFailureResponseData `json:"data"` // UnparsedObject contains the raw value of the object if there was an error when deserializing into the struct UnparsedObject map[string]interface{} `json:"-"` diff --git a/api/datadogV2/model_dora_failure_response_data.go b/api/datadogV2/model_dora_failure_response_data.go index f2429b81261..26a1169bebf 100644 --- a/api/datadogV2/model_dora_failure_response_data.go +++ b/api/datadogV2/model_dora_failure_response_data.go @@ -10,11 +10,11 @@ import ( "github.com/DataDog/datadog-api-client-go/v2/api/datadog" ) -// DORAFailureResponseData Response after receiving a DORA failure event. +// DORAFailureResponseData Response after receiving a DORA incident event. type DORAFailureResponseData struct { - // The ID of the received DORA failure event. + // The ID of the received DORA incident event. Id string `json:"id"` - // JSON:API type for DORA failure events. + // JSON:API type for DORA incident events. Type *DORAFailureType `json:"type,omitempty"` // UnparsedObject contains the raw value of the object if there was an error when deserializing into the struct UnparsedObject map[string]interface{} `json:"-"` diff --git a/api/datadogV2/model_dora_failure_type.go b/api/datadogV2/model_dora_failure_type.go index 87de86e0589..73634dab90f 100644 --- a/api/datadogV2/model_dora_failure_type.go +++ b/api/datadogV2/model_dora_failure_type.go @@ -10,7 +10,7 @@ import ( "github.com/DataDog/datadog-api-client-go/v2/api/datadog" ) -// DORAFailureType JSON:API type for DORA failure events. +// DORAFailureType JSON:API type for DORA incident events. type DORAFailureType string // List of DORAFailureType. diff --git a/api/datadogV2/model_dora_failures_list_response.go b/api/datadogV2/model_dora_failures_list_response.go index 00fddd1e612..a46603fe5d6 100644 --- a/api/datadogV2/model_dora_failures_list_response.go +++ b/api/datadogV2/model_dora_failures_list_response.go @@ -8,7 +8,7 @@ import ( "github.com/DataDog/datadog-api-client-go/v2/api/datadog" ) -// DORAFailuresListResponse Response for the list failures endpoint. +// DORAFailuresListResponse Response for the list incidents endpoint. type DORAFailuresListResponse struct { // The list of DORA incident events. Data []DORAIncidentObject `json:"data,omitempty"` diff --git a/api/datadogV2/model_dora_incident_object.go b/api/datadogV2/model_dora_incident_object.go index 63c485d00c9..793b12cd4ad 100644 --- a/api/datadogV2/model_dora_incident_object.go +++ b/api/datadogV2/model_dora_incident_object.go @@ -14,7 +14,7 @@ type DORAIncidentObject struct { Attributes *DORAIncidentObjectAttributes `json:"attributes,omitempty"` // The ID of the incident event. Id *string `json:"id,omitempty"` - // JSON:API type for DORA failure events. + // JSON:API type for DORA incident events. Type *DORAFailureType `json:"type,omitempty"` // UnparsedObject contains the raw value of the object if there was an error when deserializing into the struct UnparsedObject map[string]interface{} `json:"-"` diff --git a/api/datadogV2/model_dora_list_failures_request.go b/api/datadogV2/model_dora_list_failures_request.go index 14cdeb5d5f6..983193ca22e 100644 --- a/api/datadogV2/model_dora_list_failures_request.go +++ b/api/datadogV2/model_dora_list_failures_request.go @@ -10,7 +10,7 @@ import ( "github.com/DataDog/datadog-api-client-go/v2/api/datadog" ) -// DORAListFailuresRequest Request to get a list of failures. +// DORAListFailuresRequest Request to get a list of incidents. type DORAListFailuresRequest struct { // The JSON:API data. Data DORAListFailuresRequestData `json:"data"` diff --git a/api/datadogV2/model_dora_list_failures_request_attributes.go b/api/datadogV2/model_dora_list_failures_request_attributes.go index 1ac26e74308..62d644a621e 100644 --- a/api/datadogV2/model_dora_list_failures_request_attributes.go +++ b/api/datadogV2/model_dora_list_failures_request_attributes.go @@ -10,7 +10,7 @@ import ( "github.com/DataDog/datadog-api-client-go/v2/api/datadog" ) -// DORAListFailuresRequestAttributes Attributes to get a list of failures. +// DORAListFailuresRequestAttributes Attributes to get a list of incidents. type DORAListFailuresRequestAttributes struct { // Minimum timestamp for requested events. From *time.Time `json:"from,omitempty"` diff --git a/api/datadogV2/model_dora_list_failures_request_data.go b/api/datadogV2/model_dora_list_failures_request_data.go index 6ccbb75ed2b..71dbb699d02 100644 --- a/api/datadogV2/model_dora_list_failures_request_data.go +++ b/api/datadogV2/model_dora_list_failures_request_data.go @@ -12,7 +12,7 @@ import ( // DORAListFailuresRequestData The JSON:API data. type DORAListFailuresRequestData struct { - // Attributes to get a list of failures. + // Attributes to get a list of incidents. Attributes DORAListFailuresRequestAttributes `json:"attributes"` // The definition of `DORAListFailuresRequestDataType` object. Type *DORAListFailuresRequestDataType `json:"type,omitempty"` diff --git a/examples/v2/dora-metrics/CreateDORAFailure.go b/examples/v2/dora-metrics/CreateDORAFailure.go index 39024fc25e2..d37b434cca3 100644 --- a/examples/v2/dora-metrics/CreateDORAFailure.go +++ b/examples/v2/dora-metrics/CreateDORAFailure.go @@ -1,4 +1,4 @@ -// Send a failure event returns "OK - but delayed due to incident" response +// Send an incident event returns "OK" response package main diff --git a/examples/v2/dora-metrics/CreateDORAIncident.go b/examples/v2/dora-metrics/CreateDORAIncident.go index e0252b6987f..7428099593a 100644 --- a/examples/v2/dora-metrics/CreateDORAIncident.go +++ b/examples/v2/dora-metrics/CreateDORAIncident.go @@ -1,4 +1,4 @@ -// Send an incident event returns "OK" response +// Send an incident event (legacy) returns "OK" response package main diff --git a/examples/v2/dora-metrics/DeleteDORAFailure.go b/examples/v2/dora-metrics/DeleteDORAFailure.go index ad73b2b3859..434988f015f 100644 --- a/examples/v2/dora-metrics/DeleteDORAFailure.go +++ b/examples/v2/dora-metrics/DeleteDORAFailure.go @@ -1,4 +1,4 @@ -// Delete a failure event returns "Accepted" response +// Delete an incident event returns "Accepted" response package main @@ -16,7 +16,7 @@ func main() { configuration := datadog.NewConfiguration() apiClient := datadog.NewAPIClient(configuration) api := datadogV2.NewDORAMetricsApi(apiClient) - r, err := api.DeleteDORAFailure(ctx, "NO_VALUE") + r, err := api.DeleteDORAFailure(ctx, "failure_id") if err != nil { fmt.Fprintf(os.Stderr, "Error when calling `DORAMetricsApi.DeleteDORAFailure`: %v\n", err) diff --git a/examples/v2/dora-metrics/DeleteDORAFailure_3462074974.go b/examples/v2/dora-metrics/DeleteDORAFailure_3462074974.go new file mode 100644 index 00000000000..ad73b2b3859 --- /dev/null +++ b/examples/v2/dora-metrics/DeleteDORAFailure_3462074974.go @@ -0,0 +1,25 @@ +// Delete a failure event returns "Accepted" response + +package main + +import ( + "context" + "fmt" + "os" + + "github.com/DataDog/datadog-api-client-go/v2/api/datadog" + "github.com/DataDog/datadog-api-client-go/v2/api/datadogV2" +) + +func main() { + ctx := datadog.NewDefaultContext(context.Background()) + configuration := datadog.NewConfiguration() + apiClient := datadog.NewAPIClient(configuration) + api := datadogV2.NewDORAMetricsApi(apiClient) + r, err := api.DeleteDORAFailure(ctx, "NO_VALUE") + + if err != nil { + fmt.Fprintf(os.Stderr, "Error when calling `DORAMetricsApi.DeleteDORAFailure`: %v\n", err) + fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r) + } +} diff --git a/examples/v2/dora-metrics/GetDORAFailure.go b/examples/v2/dora-metrics/GetDORAFailure.go index 1df5504c743..b1e2614eb4f 100644 --- a/examples/v2/dora-metrics/GetDORAFailure.go +++ b/examples/v2/dora-metrics/GetDORAFailure.go @@ -1,4 +1,4 @@ -// Get a failure event returns "OK" response +// Get an incident event returns "OK" response package main diff --git a/examples/v2/dora-metrics/ListDORAFailures.go b/examples/v2/dora-metrics/ListDORAFailures.go index 8d7f8f48569..223f9cae891 100644 --- a/examples/v2/dora-metrics/ListDORAFailures.go +++ b/examples/v2/dora-metrics/ListDORAFailures.go @@ -1,4 +1,4 @@ -// Get a list of failure events returns "OK" response +// Get a list of incident events returns "OK" response package main @@ -17,9 +17,11 @@ func main() { body := datadogV2.DORAListFailuresRequest{ Data: datadogV2.DORAListFailuresRequestData{ Attributes: datadogV2.DORAListFailuresRequestAttributes{ - From: datadog.PtrTime(time.Date(2025, 3, 23, 0, 0, 0, 0, time.UTC)), - Limit: datadog.PtrInt32(1), - To: datadog.PtrTime(time.Date(2025, 3, 24, 0, 0, 0, 0, time.UTC)), + From: datadog.PtrTime(time.Date(2025, 1, 1, 0, 0, 0, 0, time.UTC)), + Limit: datadog.PtrInt32(100), + Query: datadog.PtrString("severity:(SEV-1 OR SEV-2) env:production team:backend"), + Sort: datadog.PtrString("-started_at"), + To: datadog.PtrTime(time.Date(2025, 1, 31, 23, 59, 59, 0, time.UTC)), }, Type: datadogV2.DORALISTFAILURESREQUESTDATATYPE_DORA_FAILURES_LIST_REQUEST.Ptr(), }, diff --git a/examples/v2/dora-metrics/ListDORAFailures_3269988848.go b/examples/v2/dora-metrics/ListDORAFailures_3269988848.go new file mode 100644 index 00000000000..8d7f8f48569 --- /dev/null +++ b/examples/v2/dora-metrics/ListDORAFailures_3269988848.go @@ -0,0 +1,40 @@ +// Get a list of failure events returns "OK" response + +package main + +import ( + "context" + "encoding/json" + "fmt" + "os" + "time" + + "github.com/DataDog/datadog-api-client-go/v2/api/datadog" + "github.com/DataDog/datadog-api-client-go/v2/api/datadogV2" +) + +func main() { + body := datadogV2.DORAListFailuresRequest{ + Data: datadogV2.DORAListFailuresRequestData{ + Attributes: datadogV2.DORAListFailuresRequestAttributes{ + From: datadog.PtrTime(time.Date(2025, 3, 23, 0, 0, 0, 0, time.UTC)), + Limit: datadog.PtrInt32(1), + To: datadog.PtrTime(time.Date(2025, 3, 24, 0, 0, 0, 0, time.UTC)), + }, + Type: datadogV2.DORALISTFAILURESREQUESTDATATYPE_DORA_FAILURES_LIST_REQUEST.Ptr(), + }, + } + ctx := datadog.NewDefaultContext(context.Background()) + configuration := datadog.NewConfiguration() + apiClient := datadog.NewAPIClient(configuration) + api := datadogV2.NewDORAMetricsApi(apiClient) + resp, r, err := api.ListDORAFailures(ctx, body) + + if err != nil { + fmt.Fprintf(os.Stderr, "Error when calling `DORAMetricsApi.ListDORAFailures`: %v\n", err) + fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r) + } + + responseContent, _ := json.MarshalIndent(resp, "", " ") + fmt.Fprintf(os.Stdout, "Response from `DORAMetricsApi.ListDORAFailures`:\n%s\n", responseContent) +} diff --git a/examples/v2/dora-metrics/PatchDORADeployment.go b/examples/v2/dora-metrics/PatchDORADeployment.go index f6924362091..6f544704ce9 100644 --- a/examples/v2/dora-metrics/PatchDORADeployment.go +++ b/examples/v2/dora-metrics/PatchDORADeployment.go @@ -17,8 +17,8 @@ func main() { Attributes: datadogV2.DORADeploymentPatchRequestAttributes{ ChangeFailure: datadog.PtrBool(true), Remediation: &datadogV2.DORADeploymentPatchRemediation{ - Id: "eG42zNIkVjM", - Type: datadogV2.DORADEPLOYMENTPATCHREMEDIATIONTYPE_ROLLBACK, + Id: datadog.PtrString("eG42zNIkVjM"), + Type: datadogV2.DORADEPLOYMENTPATCHREMEDIATIONTYPE_ROLLBACK.Ptr(), }, }, Id: "z_RwVLi7v4Y", diff --git a/tests/scenarios/features/v2/dora_metrics.feature b/tests/scenarios/features/v2/dora_metrics.feature index 7a3275b54bf..768442f37f5 100644 --- a/tests/scenarios/features/v2/dora_metrics.feature +++ b/tests/scenarios/features/v2/dora_metrics.feature @@ -41,34 +41,34 @@ Feature: DORA Metrics Then the response status is 400 Bad Request @generated @skip @team:DataDog/ci-app-backend - Scenario: Get a deployment event returns "Bad Request" response + Scenario: Delete an incident event returns "Accepted" response Given a valid "appKeyAuth" key in the system - And new "GetDORADeployment" request - And request contains "deployment_id" parameter from "REPLACE.ME" + And new "DeleteDORAFailure" request + And request contains "failure_id" parameter from "REPLACE.ME" When the request is sent - Then the response status is 400 Bad Request + Then the response status is 202 Accepted @generated @skip @team:DataDog/ci-app-backend - Scenario: Get a deployment event returns "OK" response + Scenario: Delete an incident event returns "Bad Request" response Given a valid "appKeyAuth" key in the system - And new "GetDORADeployment" request - And request contains "deployment_id" parameter from "REPLACE.ME" + And new "DeleteDORAFailure" request + And request contains "failure_id" parameter from "REPLACE.ME" When the request is sent - Then the response status is 200 OK + Then the response status is 400 Bad Request @generated @skip @team:DataDog/ci-app-backend - Scenario: Get a failure event returns "Bad Request" response + Scenario: Get a deployment event returns "Bad Request" response Given a valid "appKeyAuth" key in the system - And new "GetDORAFailure" request - And request contains "failure_id" parameter from "REPLACE.ME" + And new "GetDORADeployment" request + And request contains "deployment_id" parameter from "REPLACE.ME" When the request is sent Then the response status is 400 Bad Request @generated @skip @team:DataDog/ci-app-backend - Scenario: Get a failure event returns "OK" response + Scenario: Get a deployment event returns "OK" response Given a valid "appKeyAuth" key in the system - And new "GetDORAFailure" request - And request contains "failure_id" parameter from "REPLACE.ME" + And new "GetDORADeployment" request + And request contains "deployment_id" parameter from "REPLACE.ME" When the request is sent Then the response status is 200 OK @@ -104,6 +104,38 @@ Feature: DORA Metrics When the request is sent Then the response status is 200 OK + @generated @skip @team:DataDog/ci-app-backend + Scenario: Get a list of incident events returns "Bad Request" response + Given a valid "appKeyAuth" key in the system + And new "ListDORAFailures" request + And body with value {"data": {"attributes": {"from": "2025-01-01T00:00:00Z", "limit": 100, "query": "severity:(SEV-1 OR SEV-2) env:production team:backend", "sort": "-started_at", "to": "2025-01-31T23:59:59Z"}, "type": "dora_failures_list_request"}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/ci-app-backend + Scenario: Get a list of incident events returns "OK" response + Given a valid "appKeyAuth" key in the system + And new "ListDORAFailures" request + And body with value {"data": {"attributes": {"from": "2025-01-01T00:00:00Z", "limit": 100, "query": "severity:(SEV-1 OR SEV-2) env:production team:backend", "sort": "-started_at", "to": "2025-01-31T23:59:59Z"}, "type": "dora_failures_list_request"}} + When the request is sent + Then the response status is 200 OK + + @generated @skip @team:DataDog/ci-app-backend + Scenario: Get an incident event returns "Bad Request" response + Given a valid "appKeyAuth" key in the system + And new "GetDORAFailure" request + And request contains "failure_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/ci-app-backend + Scenario: Get an incident event returns "OK" response + Given a valid "appKeyAuth" key in the system + And new "GetDORAFailure" request + And request contains "failure_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 200 OK + @generated @skip @team:DataDog/ci-app-backend Scenario: Patch a deployment event returns "Accepted" response Given a valid "appKeyAuth" key in the system @@ -150,37 +182,51 @@ Feature: DORA Metrics When the request is sent Then the response status is 400 Bad Request + @replay-only @team:DataDog/ci-app-backend + Scenario: Send a failure event returns "OK" response + Given new "CreateDORAIncident" request + And body with value {"data": {"attributes": {"finished_at": 1707842944600000000, "git": {"commit_sha": "66adc9350f2cc9b250b69abddab733dd55e1a588", "repository_url": "https://github.com/organization/example-repository"}, "name": "Webserver is down failing all requests", "services": ["shopist"], "severity": "High", "started_at": 1707842944500000000, "team": "backend", "version": "v1.12.07"}}} + When the request is sent + Then the response status is 200 OK + @generated @skip @team:DataDog/ci-app-backend - Scenario: Send a failure event returns "OK - but delayed due to incident" response - Given new "CreateDORAFailure" request + Scenario: Send an incident event (legacy) returns "Bad Request" response + Given new "CreateDORAIncident" request + And body with value {"data": {"attributes": {"custom_tags": ["language:java", "department:engineering"], "env": "staging", "finished_at": 1693491984000000000, "git": {"commit_sha": "66adc9350f2cc9b250b69abddab733dd55e1a588", "repository_url": "https://github.com/organization/example-repository"}, "name": "Webserver is down failing all requests.", "services": ["shopist"], "severity": "High", "started_at": 1693491974000000000, "team": "backend", "version": "v1.12.07"}}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/ci-app-backend + Scenario: Send an incident event (legacy) returns "OK - but delayed due to incident" response + Given new "CreateDORAIncident" request And body with value {"data": {"attributes": {"custom_tags": ["language:java", "department:engineering"], "env": "staging", "finished_at": 1693491984000000000, "git": {"commit_sha": "66adc9350f2cc9b250b69abddab733dd55e1a588", "repository_url": "https://github.com/organization/example-repository"}, "name": "Webserver is down failing all requests.", "services": ["shopist"], "severity": "High", "started_at": 1693491974000000000, "team": "backend", "version": "v1.12.07"}}} When the request is sent Then the response status is 202 OK - but delayed due to incident - @replay-only @team:DataDog/ci-app-backend - Scenario: Send a failure event returns "OK" response + @generated @skip @team:DataDog/ci-app-backend + Scenario: Send an incident event (legacy) returns "OK" response Given new "CreateDORAIncident" request - And body with value {"data": {"attributes": {"finished_at": 1707842944600000000, "git": {"commit_sha": "66adc9350f2cc9b250b69abddab733dd55e1a588", "repository_url": "https://github.com/organization/example-repository"}, "name": "Webserver is down failing all requests", "services": ["shopist"], "severity": "High", "started_at": 1707842944500000000, "team": "backend", "version": "v1.12.07"}}} + And body with value {"data": {"attributes": {"custom_tags": ["language:java", "department:engineering"], "env": "staging", "finished_at": 1693491984000000000, "git": {"commit_sha": "66adc9350f2cc9b250b69abddab733dd55e1a588", "repository_url": "https://github.com/organization/example-repository"}, "name": "Webserver is down failing all requests.", "services": ["shopist"], "severity": "High", "started_at": 1693491974000000000, "team": "backend", "version": "v1.12.07"}}} When the request is sent Then the response status is 200 OK @generated @skip @team:DataDog/ci-app-backend Scenario: Send an incident event returns "Bad Request" response - Given new "CreateDORAIncident" request + Given new "CreateDORAFailure" request And body with value {"data": {"attributes": {"custom_tags": ["language:java", "department:engineering"], "env": "staging", "finished_at": 1693491984000000000, "git": {"commit_sha": "66adc9350f2cc9b250b69abddab733dd55e1a588", "repository_url": "https://github.com/organization/example-repository"}, "name": "Webserver is down failing all requests.", "services": ["shopist"], "severity": "High", "started_at": 1693491974000000000, "team": "backend", "version": "v1.12.07"}}} When the request is sent Then the response status is 400 Bad Request @generated @skip @team:DataDog/ci-app-backend Scenario: Send an incident event returns "OK - but delayed due to incident" response - Given new "CreateDORAIncident" request + Given new "CreateDORAFailure" request And body with value {"data": {"attributes": {"custom_tags": ["language:java", "department:engineering"], "env": "staging", "finished_at": 1693491984000000000, "git": {"commit_sha": "66adc9350f2cc9b250b69abddab733dd55e1a588", "repository_url": "https://github.com/organization/example-repository"}, "name": "Webserver is down failing all requests.", "services": ["shopist"], "severity": "High", "started_at": 1693491974000000000, "team": "backend", "version": "v1.12.07"}}} When the request is sent Then the response status is 202 OK - but delayed due to incident @generated @skip @team:DataDog/ci-app-backend Scenario: Send an incident event returns "OK" response - Given new "CreateDORAIncident" request + Given new "CreateDORAFailure" request And body with value {"data": {"attributes": {"custom_tags": ["language:java", "department:engineering"], "env": "staging", "finished_at": 1693491984000000000, "git": {"commit_sha": "66adc9350f2cc9b250b69abddab733dd55e1a588", "repository_url": "https://github.com/organization/example-repository"}, "name": "Webserver is down failing all requests.", "services": ["shopist"], "severity": "High", "started_at": 1693491974000000000, "team": "backend", "version": "v1.12.07"}}} When the request is sent Then the response status is 200 OK