Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
437 changes: 437 additions & 0 deletions .generator/schemas/v2/openapi.yaml

Large diffs are not rendered by default.

26 changes: 26 additions & 0 deletions examples/v2/security-monitoring/AssignIntegrationIssues.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Assign or un-assign Jira issues to security findings returns "Accepted" response

require "datadog_api_client"
DatadogAPIClient.configure do |config|
config.unstable_operations["v2.assign_integration_issues".to_sym] = true
end
api_instance = DatadogAPIClient::V2::SecurityMonitoringAPI.new

body = DatadogAPIClient::V2::IntegrationAssignmentRequest.new({
data: DatadogAPIClient::V2::IntegrationAssignmentDataRequest.new({
attributes: DatadogAPIClient::V2::IntegrationAssignmentDataAttributesRequest.new({
action: DatadogAPIClient::V2::IntegrationAssignmentDataAttributesRequestAction::ASSIGN,
assignment: DatadogAPIClient::V2::IntegrationAssignmentDataAttributesRequestAssignment.new({
jira: {
"https://jira.example.com/browse/SEC-123" => [
"MDBjMzdhYzgyNGZkZGJiZmY0OGNmYjNiMWQ2ODY0YmR-OTc0YjMzNjM1Y2UyODA2YTEyNWQxYmNkZjhmODllNzg=",
],
},
}),
type: DatadogAPIClient::V2::IntegrationAssignmentDataAttributesRequestType::FINDINGS,
}),
id: "some_id",
type: DatadogAPIClient::V2::IntegrationAssignmentType::ISSUE_ASSIGNMENT,
}),
})
p api_instance.assign_integration_issues(body)
64 changes: 64 additions & 0 deletions examples/v2/security-monitoring/CreateJiraIssue.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# Create Jira issues for security findings returns "Accepted" response

require "datadog_api_client"
DatadogAPIClient.configure do |config|
config.unstable_operations["v2.create_jira_issue".to_sym] = true
end
api_instance = DatadogAPIClient::V2::SecurityMonitoringAPI.new

body = DatadogAPIClient::V2::JiraIssueRequest.new({
data: DatadogAPIClient::V2::JiraIssueDataRequest.new({
attributes: DatadogAPIClient::V2::JiraIssueDataAttributesRequest.new({
account_id: "f7ccdf99-0e22-4378-bdf9-03fde5379fea",
fields: nil,
issue_type: "story",
issuetype_id: "1235",
mode: DatadogAPIClient::V2::JiraIssueDataAttributesRequestMode::SINGLE,
project_id: "1234",
project_key: "SEC",
}),
id: "ID",
meta: DatadogAPIClient::V2::JiraIssueDataMeta.new({
findings: [
DatadogAPIClient::V2::JiraIssueFinding.new({
description: "Description",
ids: [
DatadogAPIClient::V2::JiraIssueFindingId.new({
discovered: 123213123,
id: "afa-afa-hze",
resource: "Resource",
tags: "akjasd:asdsad",
}),
],
impacted: 1,
references: "",
remediation: "Remediation",
severity: DatadogAPIClient::V2::FindingStatus::CRITICAL,
title: "Title",
type: "ciem",
}),
],
vulnerabilities: [
DatadogAPIClient::V2::JiraIssueFinding.new({
description: "Description",
ids: [
DatadogAPIClient::V2::JiraIssueFindingId.new({
discovered: 123213123,
id: "afa-afa-hze",
resource: "Resource",
tags: "akjasd:asdsad",
}),
],
impacted: 1,
references: "",
remediation: "Remediation",
severity: DatadogAPIClient::V2::FindingStatus::CRITICAL,
title: "Title",
type: "ciem",
}),
],
}),
type: DatadogAPIClient::V2::JiraIssueType::JIRA_ISSUE,
}),
})
p api_instance.create_jira_issue(body)
8 changes: 8 additions & 0 deletions examples/v2/security-monitoring/GetJiraIssueMetadata.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Get Jira issue metadata returns "OK" response

require "datadog_api_client"
DatadogAPIClient.configure do |config|
config.unstable_operations["v2.get_jira_issue_metadata".to_sym] = true
end
api_instance = DatadogAPIClient::V2::SecurityMonitoringAPI.new
p api_instance.get_jira_issue_metadata("url")
9 changes: 9 additions & 0 deletions features/scenarios_model_mapping.rb
Original file line number Diff line number Diff line change
Expand Up @@ -1374,6 +1374,12 @@
"version" => "String",
"body" => "UpdateCustomFrameworkRequest",
},
"v2.AssignIntegrationIssues" => {
"body" => "IntegrationAssignmentRequest",
},
"v2.CreateJiraIssue" => {
"body" => "JiraIssueRequest",
},
"v2.GetResourceEvaluationFilters" => {
"cloud_provider" => "String",
"account_id" => "String",
Expand Down Expand Up @@ -1428,6 +1434,9 @@
"v2.CreateJiraIssues" => {
"body" => "CreateJiraIssueRequestArray",
},
"v2.GetJiraIssueMetadata" => {
"url" => "String",
},
"v2.SearchSecurityFindings" => {
"body" => "SecurityFindingsSearchRequest",
},
Expand Down
56 changes: 56 additions & 0 deletions features/v2/security_monitoring.feature
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,30 @@ Feature: Security Monitoring
When the request is sent
Then the response status is 404 Not Found

@generated @skip @team:DataDog/k9-investigation
Scenario: Assign or un-assign Jira issues to security findings returns "Accepted" response
Given operation "AssignIntegrationIssues" enabled
And new "AssignIntegrationIssues" request
And body with value {"data": {"attributes": {"action": "assign", "assignment": {"jira": {"https://jira.example.com/browse/SEC-123": ["MDBjMzdhYzgyNGZkZGJiZmY0OGNmYjNiMWQ2ODY0YmR-OTc0YjMzNjM1Y2UyODA2YTEyNWQxYmNkZjhmODllNzg="]}}, "type": "findings"}, "id": "some_id", "type": "issue_assignment"}}
When the request is sent
Then the response status is 202 Accepted

@generated @skip @team:DataDog/k9-investigation
Scenario: Assign or un-assign Jira issues to security findings returns "Bad Request" response
Given operation "AssignIntegrationIssues" enabled
And new "AssignIntegrationIssues" request
And body with value {"data": {"attributes": {"action": "assign", "assignment": {"jira": {"https://jira.example.com/browse/SEC-123": ["MDBjMzdhYzgyNGZkZGJiZmY0OGNmYjNiMWQ2ODY0YmR-OTc0YjMzNjM1Y2UyODA2YTEyNWQxYmNkZjhmODllNzg="]}}, "type": "findings"}, "id": "some_id", "type": "issue_assignment"}}
When the request is sent
Then the response status is 400 Bad Request

@generated @skip @team:DataDog/k9-investigation
Scenario: Assign or un-assign Jira issues to security findings returns "Not Found" response
Given operation "AssignIntegrationIssues" enabled
And new "AssignIntegrationIssues" request
And body with value {"data": {"attributes": {"action": "assign", "assignment": {"jira": {"https://jira.example.com/browse/SEC-123": ["MDBjMzdhYzgyNGZkZGJiZmY0OGNmYjNiMWQ2ODY0YmR-OTc0YjMzNjM1Y2UyODA2YTEyNWQxYmNkZjhmODllNzg="]}}, "type": "findings"}, "id": "some_id", "type": "issue_assignment"}}
When the request is sent
Then the response status is 404 Not Found

@team:DataDog/k9-investigation
Scenario: Attach security finding to a Jira issue returns "OK" response
Given new "AttachJiraIssue" request
Expand Down Expand Up @@ -330,6 +354,14 @@ Feature: Security Monitoring
And the response "data[0].attributes.insights[0].type" is equal to "SECURITY_FINDING"
And the response "data[0].attributes.jira_issue.status" is equal to "COMPLETED"

@generated @skip @team:DataDog/k9-investigation
Scenario: Create Jira issues for security findings returns "Accepted" response
Given operation "CreateJiraIssue" enabled
And new "CreateJiraIssue" request
And body with value {"data": {"attributes": {"account_id": "f7ccdf99-0e22-4378-bdf9-03fde5379fea", "fields": null, "issue_type": "story", "issuetype_id": "1235", "mode": "single", "project_id": "1234", "project_key": "SEC"}, "id": "ID", "meta": {"findings": [{"description": "Description", "ids": [{"discovered": 123213123, "id": "afa-afa-hze", "resource": "Resource", "tags": "akjasd:asdsad"}], "impacted": 1, "references": "", "remediation": "Remediation", "severity": "critical", "title": "Title", "type": "ciem"}], "vulnerabilities": [{"description": "Description", "ids": [{"discovered": 123213123, "id": "afa-afa-hze", "resource": "Resource", "tags": "akjasd:asdsad"}], "impacted": 1, "references": "", "remediation": "Remediation", "severity": "critical", "title": "Title", "type": "ciem"}]}, "type": "jira_issue"}}
When the request is sent
Then the response status is 202 Accepted

@team:DataDog/k9-investigation
Scenario: Create Jira issues for security findings returns "Bad Request" response
Given new "CreateJiraIssues" request
Expand Down Expand Up @@ -887,6 +919,30 @@ Feature: Security Monitoring
When the request is sent
Then the response status is 404 Not Found

@generated @skip @team:DataDog/k9-investigation
Scenario: Get Jira issue metadata returns "Bad Request" response
Given operation "GetJiraIssueMetadata" enabled
And new "GetJiraIssueMetadata" request
And request contains "url" parameter from "REPLACE.ME"
When the request is sent
Then the response status is 400 Bad Request

@generated @skip @team:DataDog/k9-investigation
Scenario: Get Jira issue metadata returns "Not Found" response
Given operation "GetJiraIssueMetadata" enabled
And new "GetJiraIssueMetadata" request
And request contains "url" parameter from "REPLACE.ME"
When the request is sent
Then the response status is 404 Not Found

@generated @skip @team:DataDog/k9-investigation
Scenario: Get Jira issue metadata returns "OK" response
Given operation "GetJiraIssueMetadata" enabled
And new "GetJiraIssueMetadata" request
And request contains "url" parameter from "REPLACE.ME"
When the request is sent
Then the response status is 200 OK

@generated @skip @team:DataDog/k9-cloud-vm
Scenario: Get SBOM returns "Bad request: The server cannot process the request due to invalid syntax in the request." response
Given new "GetSBOM" request
Expand Down
22 changes: 22 additions & 0 deletions features/v2/undo.json
Original file line number Diff line number Diff line change
Expand Up @@ -999,6 +999,22 @@
"type": "idempotent"
}
},
"AssignIntegrationIssues": {
"tag": "Security Monitoring",
"undo": {
"operationId": "TODO",
"parameters": [],
"type": "unsafe"
}
},
"CreateJiraIssue": {
"tag": "Security Monitoring",
"undo": {
"operationId": "TODO",
"parameters": [],
"type": "unsafe"
}
},
"GetResourceEvaluationFilters": {
"tag": "Security Monitoring",
"undo": {
Expand Down Expand Up @@ -4286,6 +4302,12 @@
"type": "unsafe"
}
},
"GetJiraIssueMetadata": {
"tag": "Security Monitoring",
"undo": {
"type": "safe"
}
},
"SearchSecurityFindings": {
"tag": "Security Monitoring",
"undo": {
Expand Down
3 changes: 3 additions & 0 deletions lib/datadog_api_client/configuration.rb
Original file line number Diff line number Diff line change
Expand Up @@ -209,12 +209,15 @@ def initialize
"v2.list_apis": false,
"v2.update_open_api": false,
"v2.activate_content_pack": false,
"v2.assign_integration_issues": false,
"v2.cancel_threat_hunting_job": false,
"v2.convert_job_result_to_signal": false,
"v2.create_jira_issue": false,
"v2.deactivate_content_pack": false,
"v2.delete_threat_hunting_job": false,
"v2.get_content_packs_states": false,
"v2.get_finding": false,
"v2.get_jira_issue_metadata": false,
"v2.get_rule_version_history": false,
"v2.get_secrets_rules": false,
"v2.get_security_monitoring_histsignal": false,
Expand Down
19 changes: 19 additions & 0 deletions lib/datadog_api_client/inflector.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2844,6 +2844,13 @@ def overrides
"v2.input_schema_parameters" => "InputSchemaParameters",
"v2.input_schema_parameters_type" => "InputSchemaParametersType",
"v2.intake_payload_accepted" => "IntakePayloadAccepted",
"v2.integration_assignment_data_attributes_request" => "IntegrationAssignmentDataAttributesRequest",
"v2.integration_assignment_data_attributes_request_action" => "IntegrationAssignmentDataAttributesRequestAction",
"v2.integration_assignment_data_attributes_request_assignment" => "IntegrationAssignmentDataAttributesRequestAssignment",
"v2.integration_assignment_data_attributes_request_type" => "IntegrationAssignmentDataAttributesRequestType",
"v2.integration_assignment_data_request" => "IntegrationAssignmentDataRequest",
"v2.integration_assignment_request" => "IntegrationAssignmentRequest",
"v2.integration_assignment_type" => "IntegrationAssignmentType",
"v2.integration_incident" => "IntegrationIncident",
"v2.integration_incident_field_mappings_items" => "IntegrationIncidentFieldMappingsItems",
"v2.integration_incident_severity_config" => "IntegrationIncidentSeverityConfig",
Expand Down Expand Up @@ -2941,8 +2948,19 @@ def overrides
"v2.jira_integration_metadata" => "JiraIntegrationMetadata",
"v2.jira_integration_metadata_issues_item" => "JiraIntegrationMetadataIssuesItem",
"v2.jira_issue" => "JiraIssue",
"v2.jira_issue_data_attributes_request" => "JiraIssueDataAttributesRequest",
"v2.jira_issue_data_attributes_request_mode" => "JiraIssueDataAttributesRequestMode",
"v2.jira_issue_data_meta" => "JiraIssueDataMeta",
"v2.jira_issue_data_request" => "JiraIssueDataRequest",
"v2.jira_issue_finding" => "JiraIssueFinding",
"v2.jira_issue_finding_id" => "JiraIssueFindingId",
"v2.jira_issue_request" => "JiraIssueRequest",
"v2.jira_issue_result" => "JiraIssueResult",
"v2.jira_issues_data_type" => "JiraIssuesDataType",
"v2.jira_issues_metadata_data_attributes_response" => "JiraIssuesMetadataDataAttributesResponse",
"v2.jira_issues_metadata_data_response" => "JiraIssuesMetadataDataResponse",
"v2.jira_issues_metadata_response" => "JiraIssuesMetadataResponse",
"v2.jira_issues_metadata_type" => "JiraIssuesMetadataType",
"v2.jira_issue_template_create_request" => "JiraIssueTemplateCreateRequest",
"v2.jira_issue_template_create_request_attributes" => "JiraIssueTemplateCreateRequestAttributes",
"v2.jira_issue_template_create_request_attributes_jira_account" => "JiraIssueTemplateCreateRequestAttributesJiraAccount",
Expand All @@ -2956,6 +2974,7 @@ def overrides
"v2.jira_issue_template_update_request" => "JiraIssueTemplateUpdateRequest",
"v2.jira_issue_template_update_request_attributes" => "JiraIssueTemplateUpdateRequestAttributes",
"v2.jira_issue_template_update_request_data" => "JiraIssueTemplateUpdateRequestData",
"v2.jira_issue_type" => "JiraIssueType",
"v2.job_create_response" => "JobCreateResponse",
"v2.job_create_response_data" => "JobCreateResponseData",
"v2.job_definition" => "JobDefinition",
Expand Down
Loading
Loading