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
406 changes: 406 additions & 0 deletions .generator/schemas/v2/openapi.yaml

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# POST request to resolve vulnerable symbols returns "OK" response

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

body = DatadogAPIClient::V2::ResolveVulnerableSymbolsRequest.new({
data: DatadogAPIClient::V2::ResolveVulnerableSymbolsRequestData.new({
attributes: DatadogAPIClient::V2::ResolveVulnerableSymbolsRequestDataAttributes.new({
purls: [],
}),
type: DatadogAPIClient::V2::ResolveVulnerableSymbolsRequestDataType::RESOLVE_VULNERABLE_SYMBOLS_REQUEST,
}),
})
p api_instance.create_sca_resolve_vulnerable_symbols(body)
61 changes: 61 additions & 0 deletions examples/v2/static-analysis/CreateSCAResult.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# Post dependencies for analysis returns "OK" response

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

body = DatadogAPIClient::V2::ScaRequest.new({
data: DatadogAPIClient::V2::ScaRequestData.new({
attributes: DatadogAPIClient::V2::ScaRequestDataAttributes.new({
commit: DatadogAPIClient::V2::ScaRequestDataAttributesCommit.new({}),
dependencies: [
DatadogAPIClient::V2::ScaRequestDataAttributesDependenciesItems.new({
exclusions: [],
locations: [
DatadogAPIClient::V2::ScaRequestDataAttributesDependenciesItemsLocationsItems.new({
block: DatadogAPIClient::V2::ScaRequestDataAttributesDependenciesItemsLocationsItemsFilePosition.new({
_end: DatadogAPIClient::V2::ScaRequestDataAttributesDependenciesItemsLocationsItemsPosition.new({}),
start: DatadogAPIClient::V2::ScaRequestDataAttributesDependenciesItemsLocationsItemsPosition.new({}),
}),
name: DatadogAPIClient::V2::ScaRequestDataAttributesDependenciesItemsLocationsItemsFilePosition.new({
_end: DatadogAPIClient::V2::ScaRequestDataAttributesDependenciesItemsLocationsItemsPosition.new({}),
start: DatadogAPIClient::V2::ScaRequestDataAttributesDependenciesItemsLocationsItemsPosition.new({}),
}),
namespace: DatadogAPIClient::V2::ScaRequestDataAttributesDependenciesItemsLocationsItemsFilePosition.new({
_end: DatadogAPIClient::V2::ScaRequestDataAttributesDependenciesItemsLocationsItemsPosition.new({}),
start: DatadogAPIClient::V2::ScaRequestDataAttributesDependenciesItemsLocationsItemsPosition.new({}),
}),
version: DatadogAPIClient::V2::ScaRequestDataAttributesDependenciesItemsLocationsItemsFilePosition.new({
_end: DatadogAPIClient::V2::ScaRequestDataAttributesDependenciesItemsLocationsItemsPosition.new({}),
start: DatadogAPIClient::V2::ScaRequestDataAttributesDependenciesItemsLocationsItemsPosition.new({}),
}),
}),
],
reachable_symbol_properties: [
DatadogAPIClient::V2::ScaRequestDataAttributesDependenciesItemsReachableSymbolPropertiesItems.new({}),
],
}),
],
files: [
DatadogAPIClient::V2::ScaRequestDataAttributesFilesItems.new({}),
],
relations: [
DatadogAPIClient::V2::ScaRequestDataAttributesRelationsItems.new({
depends_on: [],
}),
],
repository: DatadogAPIClient::V2::ScaRequestDataAttributesRepository.new({}),
vulnerabilities: [
DatadogAPIClient::V2::ScaRequestDataAttributesVulnerabilitiesItems.new({
affects: [
DatadogAPIClient::V2::ScaRequestDataAttributesVulnerabilitiesItemsAffectsItems.new({}),
],
}),
],
}),
type: DatadogAPIClient::V2::ScaRequestDataType::SCAREQUESTS,
}),
})
p api_instance.create_sca_result(body)
6 changes: 6 additions & 0 deletions features/scenarios_model_mapping.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2975,6 +2975,12 @@
"v2.ListSpans" => {
"body" => "SpansListRequest",
},
"v2.CreateSCAResult" => {
"body" => "ScaRequest",
},
"v2.CreateSCAResolveVulnerableSymbols" => {
"body" => "ResolveVulnerableSymbolsRequest",
},
"v2.SetOnDemandConcurrencyCap" => {
"body" => "OnDemandConcurrencyCapAttributes",
},
Expand Down
24 changes: 24 additions & 0 deletions features/v2/static_analysis.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
@endpoint(static-analysis) @endpoint(static-analysis-v2)
Feature: Static Analysis
API for static analysis

Background:
Given a valid "apiKeyAuth" key in the system
And a valid "appKeyAuth" key in the system
And an instance of "StaticAnalysis" API

@generated @skip @team:DataDog/k9-vm-sca
Scenario: POST request to resolve vulnerable symbols returns "OK" response
Given operation "CreateSCAResolveVulnerableSymbols" enabled
And new "CreateSCAResolveVulnerableSymbols" request
And body with value {"data": {"attributes": {"purls": []}, "type": "resolve-vulnerable-symbols-request"}}
When the request is sent
Then the response status is 200 OK

@generated @skip @team:DataDog/k9-vm-sca
Scenario: Post dependencies for analysis returns "OK" response
Given operation "CreateSCAResult" enabled
And new "CreateSCAResult" request
And body with value {"data": {"attributes": {"commit": {}, "dependencies": [{"exclusions": [], "locations": [{"block": {"end": {}, "start": {}}, "name": {"end": {}, "start": {}}, "namespace": {"end": {}, "start": {}}, "version": {"end": {}, "start": {}}}], "reachable_symbol_properties": [{}]}], "files": [{}], "relations": [{"depends_on": []}], "repository": {}, "vulnerabilities": [{"affects": [{}]}]}, "type": "scarequests"}}
When the request is sent
Then the response status is 200 OK
12 changes: 12 additions & 0 deletions features/v2/undo.json
Original file line number Diff line number Diff line change
Expand Up @@ -3962,6 +3962,18 @@
"type": "safe"
}
},
"CreateSCAResult": {
"tag": "Static Analysis",
"undo": {
"type": "safe"
}
},
"CreateSCAResolveVulnerableSymbols": {
"tag": "Static Analysis",
"undo": {
"type": "safe"
}
},
"GetOnDemandConcurrencyCap": {
"tag": "Synthetics",
"undo": {
Expand Down
2 changes: 2 additions & 0 deletions lib/datadog_api_client/configuration.rb
Original file line number Diff line number Diff line change
Expand Up @@ -287,6 +287,8 @@ def initialize
"v2.get_slo_report": false,
"v2.get_slo_report_job_status": false,
"v2.get_spa_recommendations": false,
"v2.create_sca_resolve_vulnerable_symbols": false,
"v2.create_sca_result": false,
"v2.add_member_team": false,
"v2.list_member_teams": false,
"v2.remove_member_team": false,
Expand Down
27 changes: 27 additions & 0 deletions lib/datadog_api_client/inflector.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3344,6 +3344,17 @@ def overrides
"v2.reorder_ruleset_resource_array" => "ReorderRulesetResourceArray",
"v2.reorder_ruleset_resource_data" => "ReorderRulesetResourceData",
"v2.reorder_ruleset_resource_data_type" => "ReorderRulesetResourceDataType",
"v2.resolve_vulnerable_symbols_request" => "ResolveVulnerableSymbolsRequest",
"v2.resolve_vulnerable_symbols_request_data" => "ResolveVulnerableSymbolsRequestData",
"v2.resolve_vulnerable_symbols_request_data_attributes" => "ResolveVulnerableSymbolsRequestDataAttributes",
"v2.resolve_vulnerable_symbols_request_data_type" => "ResolveVulnerableSymbolsRequestDataType",
"v2.resolve_vulnerable_symbols_response" => "ResolveVulnerableSymbolsResponse",
"v2.resolve_vulnerable_symbols_response_data" => "ResolveVulnerableSymbolsResponseData",
"v2.resolve_vulnerable_symbols_response_data_attributes" => "ResolveVulnerableSymbolsResponseDataAttributes",
"v2.resolve_vulnerable_symbols_response_data_type" => "ResolveVulnerableSymbolsResponseDataType",
"v2.resolve_vulnerable_symbols_response_results" => "ResolveVulnerableSymbolsResponseResults",
"v2.resolve_vulnerable_symbols_response_results_vulnerable_symbols" => "ResolveVulnerableSymbolsResponseResultsVulnerableSymbols",
"v2.resolve_vulnerable_symbols_response_results_vulnerable_symbols_symbols" => "ResolveVulnerableSymbolsResponseResultsVulnerableSymbolsSymbols",
"v2.resource_filter_attributes" => "ResourceFilterAttributes",
"v2.resource_filter_request_type" => "ResourceFilterRequestType",
"v2.response_meta_attributes" => "ResponseMetaAttributes",
Expand Down Expand Up @@ -3565,6 +3576,21 @@ def overrides
"v2.scanned_asset_metadata_attributes" => "ScannedAssetMetadataAttributes",
"v2.scanned_asset_metadata_last_success" => "ScannedAssetMetadataLastSuccess",
"v2.scanned_assets_metadata" => "ScannedAssetsMetadata",
"v2.sca_request" => "ScaRequest",
"v2.sca_request_data" => "ScaRequestData",
"v2.sca_request_data_attributes" => "ScaRequestDataAttributes",
"v2.sca_request_data_attributes_commit" => "ScaRequestDataAttributesCommit",
"v2.sca_request_data_attributes_dependencies_items" => "ScaRequestDataAttributesDependenciesItems",
"v2.sca_request_data_attributes_dependencies_items_locations_items" => "ScaRequestDataAttributesDependenciesItemsLocationsItems",
"v2.sca_request_data_attributes_dependencies_items_locations_items_file_position" => "ScaRequestDataAttributesDependenciesItemsLocationsItemsFilePosition",
"v2.sca_request_data_attributes_dependencies_items_locations_items_position" => "ScaRequestDataAttributesDependenciesItemsLocationsItemsPosition",
"v2.sca_request_data_attributes_dependencies_items_reachable_symbol_properties_items" => "ScaRequestDataAttributesDependenciesItemsReachableSymbolPropertiesItems",
"v2.sca_request_data_attributes_files_items" => "ScaRequestDataAttributesFilesItems",
"v2.sca_request_data_attributes_relations_items" => "ScaRequestDataAttributesRelationsItems",
"v2.sca_request_data_attributes_repository" => "ScaRequestDataAttributesRepository",
"v2.sca_request_data_attributes_vulnerabilities_items" => "ScaRequestDataAttributesVulnerabilitiesItems",
"v2.sca_request_data_attributes_vulnerabilities_items_affects_items" => "ScaRequestDataAttributesVulnerabilitiesItemsAffectsItems",
"v2.sca_request_data_type" => "ScaRequestDataType",
"v2.schedule" => "Schedule",
"v2.schedule_create_request" => "ScheduleCreateRequest",
"v2.schedule_create_request_data" => "ScheduleCreateRequestData",
Expand Down Expand Up @@ -4367,6 +4393,7 @@ def overrides
"v2.spa_api" => "SpaAPI",
"v2.spans_api" => "SpansAPI",
"v2.spans_metrics_api" => "SpansMetricsAPI",
"v2.static_analysis_api" => "StaticAnalysisAPI",
"v2.synthetics_api" => "SyntheticsAPI",
"v2.teams_api" => "TeamsAPI",
"v2.test_optimization_api" => "TestOptimizationAPI",
Expand Down
172 changes: 172 additions & 0 deletions lib/datadog_api_client/v2/api/static_analysis_api.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,172 @@
=begin
#Datadog API V2 Collection

#Collection of all Datadog Public endpoints.

The version of the OpenAPI document: 1.0
Contact: [email protected]
Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator

Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
This product includes software developed at Datadog (https://www.datadoghq.com/).
Copyright 2020-Present Datadog, Inc.

=end

require 'cgi'

module DatadogAPIClient::V2
class StaticAnalysisAPI
attr_accessor :api_client

def initialize(api_client = DatadogAPIClient::APIClient.default)
@api_client = api_client
end

# POST request to resolve vulnerable symbols.
#
# @see #create_sca_resolve_vulnerable_symbols_with_http_info
def create_sca_resolve_vulnerable_symbols(body, opts = {})
data, _status_code, _headers = create_sca_resolve_vulnerable_symbols_with_http_info(body, opts)
data
end

# POST request to resolve vulnerable symbols.
#
# Post vulnerable symbols
#
# @param body [ResolveVulnerableSymbolsRequest]
# @param opts [Hash] the optional parameters
# @return [Array<(ResolveVulnerableSymbolsResponse, Integer, Hash)>] ResolveVulnerableSymbolsResponse data, response status code and response headers
def create_sca_resolve_vulnerable_symbols_with_http_info(body, opts = {})
unstable_enabled = @api_client.config.unstable_operations["v2.create_sca_resolve_vulnerable_symbols".to_sym]
if unstable_enabled
@api_client.config.logger.warn format("Using unstable operation '%s'", "v2.create_sca_resolve_vulnerable_symbols")
else
raise DatadogAPIClient::APIError.new(message: format("Unstable operation '%s' is disabled", "v2.create_sca_resolve_vulnerable_symbols"))
end

if @api_client.config.debugging
@api_client.config.logger.debug 'Calling API: StaticAnalysisAPI.create_sca_resolve_vulnerable_symbols ...'
end
# verify the required parameter 'body' is set
if @api_client.config.client_side_validation && body.nil?
fail ArgumentError, "Missing the required parameter 'body' when calling StaticAnalysisAPI.create_sca_resolve_vulnerable_symbols"
end
# resource path
local_var_path = '/api/v2/static-analysis-sca/vulnerabilities/resolve-vulnerable-symbols'

# query parameters
query_params = opts[:query_params] || {}

# header parameters
header_params = opts[:header_params] || {}
# HTTP header 'Accept' (if needed)
header_params['Accept'] = @api_client.select_header_accept(['application/json'])
# HTTP header 'Content-Type'
header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

# form parameters
form_params = opts[:form_params] || {}

# http body (model)
post_body = opts[:debug_body] || @api_client.object_to_http_body(body)

# return_type
return_type = opts[:debug_return_type] || 'ResolveVulnerableSymbolsResponse'

# auth_names
auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth, :AuthZ]

new_options = opts.merge(
:operation => :create_sca_resolve_vulnerable_symbols,
:header_params => header_params,
:query_params => query_params,
:form_params => form_params,
:body => post_body,
:auth_names => auth_names,
:return_type => return_type,
:api_version => "V2"
)

data, status_code, headers = @api_client.call_api(Net::HTTP::Post, local_var_path, new_options)
if @api_client.config.debugging
@api_client.config.logger.debug "API called: StaticAnalysisAPI#create_sca_resolve_vulnerable_symbols\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
end
return data, status_code, headers
end

# Post dependencies for analysis.
#
# @see #create_sca_result_with_http_info
def create_sca_result(body, opts = {})
create_sca_result_with_http_info(body, opts)
nil
end

# Post dependencies for analysis.
#
# Post dependencies for analysis
#
# @param body [ScaRequest]
# @param opts [Hash] the optional parameters
# @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
def create_sca_result_with_http_info(body, opts = {})
unstable_enabled = @api_client.config.unstable_operations["v2.create_sca_result".to_sym]
if unstable_enabled
@api_client.config.logger.warn format("Using unstable operation '%s'", "v2.create_sca_result")
else
raise DatadogAPIClient::APIError.new(message: format("Unstable operation '%s' is disabled", "v2.create_sca_result"))
end

if @api_client.config.debugging
@api_client.config.logger.debug 'Calling API: StaticAnalysisAPI.create_sca_result ...'
end
# verify the required parameter 'body' is set
if @api_client.config.client_side_validation && body.nil?
fail ArgumentError, "Missing the required parameter 'body' when calling StaticAnalysisAPI.create_sca_result"
end
# resource path
local_var_path = '/api/v2/static-analysis-sca/dependencies'

# query parameters
query_params = opts[:query_params] || {}

# header parameters
header_params = opts[:header_params] || {}
# HTTP header 'Accept' (if needed)
header_params['Accept'] = @api_client.select_header_accept(['*/*'])
# HTTP header 'Content-Type'
header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

# form parameters
form_params = opts[:form_params] || {}

# http body (model)
post_body = opts[:debug_body] || @api_client.object_to_http_body(body)

# return_type
return_type = opts[:debug_return_type]

# auth_names
auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth, :AuthZ]

new_options = opts.merge(
:operation => :create_sca_result,
:header_params => header_params,
:query_params => query_params,
:form_params => form_params,
:body => post_body,
:auth_names => auth_names,
:return_type => return_type,
:api_version => "V2"
)

data, status_code, headers = @api_client.call_api(Net::HTTP::Post, local_var_path, new_options)
if @api_client.config.debugging
@api_client.config.logger.debug "API called: StaticAnalysisAPI#create_sca_result\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
end
return data, status_code, headers
end
end
end
Loading
Loading