Analyze code
https://api.datadoghq.com/api/v2/static-analysis/static-analysis-server/analyzehttps://api.us3.datadoghq.com/api/v2/static-analysis/static-analysis-server/analyzehttps://api.us5.datadoghq.com/api/v2/static-analysis/static-analysis-server/analyzehttps://api.datadoghq.eu/api/v2/static-analysis/static-analysis-server/analyzehttps://api.ap1.datadoghq.com/api/v2/static-analysis/static-analysis-server/analyzehttps://api.ap2.datadoghq.com/api/v2/static-analysis/static-analysis-server/analyzehttps://api.uk1.datadoghq.com/api/v2/static-analysis/static-analysis-server/analyzehttps://api.ddog-gov.com/api/v2/static-analysis/static-analysis-server/analyzehttps://api.us2.ddog-gov.com/api/v2/static-analysis/static-analysis-server/analyze概要
Run static analysis rules against a source code file and return violations found.
OAuth apps require the code_analysis_read authorization scope to access this endpoint.
リクエスト
Body Data (required)
_authentication_tokenCSRF token for security, sent by browser-based clients. Ignored by the API when absent.
data [required]The primary data object in the analysis request.
attributes [required]The attributes of the analysis request, containing the source code and rules to apply.
code [required]The base64-encoded source code to analyze.
file_encoding [required]The encoding of the source code file (must be utf-8).
filename [required]The name of the file being analyzed.
language [required]The programming language of the source code.
rules [required]The list of static analysis rules to apply during analysis.
argumentsThe configurable arguments accepted by the rule. Forwarded from the rulesets endpoints; ignored by this operation.
descriptionAn explanation of the argument's purpose and accepted values.
nameThe name of the rule argument.
category [required]The category of the rule (for example, BEST_PRACTICES, SECURITY).
checksum [required]A checksum of the rule definition.
code [required]The base64-encoded rule implementation code.
creation_messageThe message associated with the custom rule revision. Forwarded from the custom rulesets endpoints; ignored by this operation.
cveThe CVE identifier associated with the rule. Forwarded from the rulesets endpoints; ignored by this operation.
cweThe CWE identifier associated with the rule. Forwarded from the rulesets endpoints; ignored by this operation.
descriptionA detailed explanation of what the rule detects. Forwarded from the rulesets endpoints; ignored by this operation.
documentation_urlA URL pointing to the rule documentation. Forwarded from the rulesets endpoints; ignored by this operation.
entity_checkedThe code entity type checked by the rule, applicable when rule type is AST_CHECK.
id [required]The unique identifier of the rule.
is_publishedWhether the rule is published. Forwarded from the rulesets endpoints; ignored by this operation.
is_testingWhether the rule is in testing mode. Forwarded from the rulesets endpoints; ignored by this operation.
language [required]The programming language this rule targets.
nameThe name of the rule. Forwarded from the rulesets endpoints; ignored by this operation.
regexA base64-encoded regex pattern used by the rule, applicable when rule type is REGEX.
severity [required]The severity of findings from this rule (for example, ERROR, WARNING).
short_descriptionA brief summary of what the rule detects. Forwarded from the rulesets endpoints; ignored by this operation.
should_use_ai_fixWhether an AI-generated fix should be offered. Forwarded from the rulesets endpoints; ignored by this operation.
tagsTags associated with the custom rule revision. Forwarded from the custom rulesets endpoints; ignored by this operation.
testsThe test cases associated with the rule. Forwarded from the rulesets endpoints; ignored by this operation.
annotation_countThe expected number of findings the rule should produce against the test code.
codeThe source code snippet used as input for the rule test.
filenameThe filename associated with the test code snippet.
tree_sitter_query [required]The base64-encoded tree-sitter query used by the rule.
type [required]The rule type indicating the detection mechanism (for example, TREE_SITTER_QUERY).
version_idThe custom rule revision version. Forwarded from the custom rulesets endpoints; ignored by this operation.
idAn optional identifier for the analysis request resource.
type [required]Analysis request resource type.
analysis_requestanalysis_request{
"_authentication_token": "string",
"data": {
"attributes": {
"code": "aW1wb3J0IHN5cw==",
"file_encoding": "utf-8",
"filename": "test.py",
"language": "python",
"rules": [
{
"arguments": [
{
"description": "string",
"name": "string"
}
],
"category": "BEST_PRACTICES",
"checksum": "abc123def456",
"code": "ZnVuY3Rpb24gdmlzaXQobm9kZSkge30=",
"creation_message": "string",
"cve": "string",
"cwe": "string",
"description": "string",
"documentation_url": "string",
"entity_checked": "string",
"id": "python-best-practices/no-exit",
"is_published": false,
"is_testing": false,
"language": "python",
"name": "no-exit",
"regex": "string",
"severity": "WARNING",
"short_description": "string",
"should_use_ai_fix": false,
"tags": [],
"tests": [
{
"annotation_count": "integer",
"code": "string",
"filename": "string"
}
],
"tree_sitter_query": "KGNhbGwgbmFtZTogKGF0dHJpYnV0ZSkpQHZhbA==",
"type": "TREE_SITTER_QUERY",
"version_id": "integer"
}
]
},
"id": "string",
"type": "analysis_request"
}
}応答
OK
The response payload from running static analysis on source code.
data [required]The primary data object in the analysis response.
attributes [required]The attributes of the analysis response, containing rule results and any top-level errors.
errors [required]Top-level error messages encountered during the analysis operation.
rule_responses [required]The list of results for each static analysis rule applied during analysis.
errors [required]A list of error messages encountered while executing the rule.
execution_error [required]An error message if the rule execution failed, or null if execution succeeded.
execution_time_ms [required]The time taken to execute the rule, in milliseconds.
identifier [required]The identifier of the rule that produced this response.
output [required]The raw output produced by the rule engine during execution.
violations [required]The list of violations found by this rule.
category [required]The category of the violation.
end [required]A position in source code, identified by line and column numbers.
col [required]The column number in the source file (1-based).
line [required]The line number in the source file (1-based).
fixes [required]The list of suggested fixes for this violation.
description [required]A human-readable description of what the fix does.
edits [required]The list of edit operations that constitute the fix.
content [required]The content to insert or replace at the specified position, if applicable.
edit_type [required]The type of code edit to apply when fixing a violation.
ADDADD, UPDATE, REMOVEend [required]The end position of the edit, or null for pure insertions.
col [required]The column number in the source file (1-based).
line [required]The line number in the source file (1-based).
start [required]A position in source code, identified by line and column numbers.
col [required]The column number in the source file (1-based).
line [required]The line number in the source file (1-based).
message [required]A human-readable description of the violation.
severity [required]The severity level of the violation.
start [required]A position in source code, identified by line and column numbers.
col [required]The column number in the source file (1-based).
line [required]The line number in the source file (1-based).
id [required]The unique identifier of the analysis response resource.
type [required]Analysis response resource type.
server_requestserver_request{
"data": {
"attributes": {
"errors": [
[]
],
"rule_responses": [
{
"errors": [
[]
],
"execution_error": null,
"execution_time_ms": 42,
"identifier": "python-best-practices/no-exit",
"output": "",
"violations": [
{
"category": "BEST_PRACTICES",
"end": {
"col": 5,
"line": 10
},
"fixes": [
{
"description": "Replace with a safe alternative.",
"edits": [
{
"content": "safe_alternative()",
"edit_type": "ADD",
"end": {
"col": 5,
"line": 10
},
"start": {
"col": 5,
"line": 10
}
}
]
}
],
"message": "Use of sys.exit() is discouraged.",
"severity": "WARNING",
"start": {
"col": 5,
"line": 10
}
}
]
}
]
},
"id": "abc-123",
"type": "server_request"
}
}Bad Request
API error response.
errors [required]A list of errors.
detailA human-readable explanation specific to this occurrence of the error.
metaNon-standard meta-information about the error
sourceReferences to the source of the error.
headerA string indicating the name of a single request header which caused the error.
parameterA string indicating which URI query parameter caused the error.
pointerA JSON pointer to the value in the request document that caused the error.
statusStatus code of the response.
titleShort human-readable summary of the error.
{
"errors": [
{
"detail": "Missing required attribute in body",
"meta": {},
"source": {
"header": "Authorization",
"parameter": "limit",
"pointer": "/data/attributes/title"
},
"status": "400",
"title": "Bad Request"
}
]
}Unauthorized
API error response.
errors [required]A list of errors.
detailA human-readable explanation specific to this occurrence of the error.
metaNon-standard meta-information about the error
sourceReferences to the source of the error.
headerA string indicating the name of a single request header which caused the error.
parameterA string indicating which URI query parameter caused the error.
pointerA JSON pointer to the value in the request document that caused the error.
statusStatus code of the response.
titleShort human-readable summary of the error.
{
"errors": [
{
"detail": "Missing required attribute in body",
"meta": {},
"source": {
"header": "Authorization",
"parameter": "limit",
"pointer": "/data/attributes/title"
},
"status": "400",
"title": "Bad Request"
}
]
}Too many requests
API error response.
errors [required]A list of errors.
{
"errors": [
"Bad Request"
]
}コード例
# Set your Datadog site and credentials
export DD_SITE="datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/static-analysis/static-analysis-server/analyze" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"code": "aW1wb3J0IHN5cw==",
"file_encoding": "utf-8",
"filename": "test.py",
"language": "python",
"rules": []
},
"type": "analysis_request"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="us3.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/static-analysis/static-analysis-server/analyze" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"code": "aW1wb3J0IHN5cw==",
"file_encoding": "utf-8",
"filename": "test.py",
"language": "python",
"rules": []
},
"type": "analysis_request"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="us5.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/static-analysis/static-analysis-server/analyze" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"code": "aW1wb3J0IHN5cw==",
"file_encoding": "utf-8",
"filename": "test.py",
"language": "python",
"rules": []
},
"type": "analysis_request"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="datadoghq.eu"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/static-analysis/static-analysis-server/analyze" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"code": "aW1wb3J0IHN5cw==",
"file_encoding": "utf-8",
"filename": "test.py",
"language": "python",
"rules": []
},
"type": "analysis_request"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="ap1.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/static-analysis/static-analysis-server/analyze" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"code": "aW1wb3J0IHN5cw==",
"file_encoding": "utf-8",
"filename": "test.py",
"language": "python",
"rules": []
},
"type": "analysis_request"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="ap2.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/static-analysis/static-analysis-server/analyze" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"code": "aW1wb3J0IHN5cw==",
"file_encoding": "utf-8",
"filename": "test.py",
"language": "python",
"rules": []
},
"type": "analysis_request"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="uk1.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/static-analysis/static-analysis-server/analyze" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"code": "aW1wb3J0IHN5cw==",
"file_encoding": "utf-8",
"filename": "test.py",
"language": "python",
"rules": []
},
"type": "analysis_request"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="ddog-gov.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/static-analysis/static-analysis-server/analyze" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"code": "aW1wb3J0IHN5cw==",
"file_encoding": "utf-8",
"filename": "test.py",
"language": "python",
"rules": []
},
"type": "analysis_request"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="us2.ddog-gov.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/static-analysis/static-analysis-server/analyze" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"code": "aW1wb3J0IHN5cw==",
"file_encoding": "utf-8",
"filename": "test.py",
"language": "python",
"rules": []
},
"type": "analysis_request"
}
}
EOF// Analyze code returns "OK" response
package main
import (
"context"
"encoding/json"
"fmt"
"os"
"github.com/DataDog/datadog-api-client-go/v2/api/datadog"
"github.com/DataDog/datadog-api-client-go/v2/api/datadogV2"
)
func main() {
body := datadogV2.AnalysisRequest{
Data: datadogV2.AnalysisRequestData{
Attributes: datadogV2.AnalysisRequestDataAttributes{
Code: "aW1wb3J0IHN5cw==",
FileEncoding: "utf-8",
Filename: "test.py",
Language: "python",
Rules: []datadogV2.AnalysisRequestRule{
{
Arguments: []datadogV2.AnalysisRequestRuleArgument{
{},
},
Category: "BEST_PRACTICES",
Checksum: "abc123def456",
Code: "ZnVuY3Rpb24gdmlzaXQobm9kZSkge30=",
EntityChecked: *datadog.NewNullableString(nil),
Id: "python-best-practices/no-exit",
Language: "python",
Name: datadog.PtrString("no-exit"),
Regex: *datadog.NewNullableString(nil),
Severity: "WARNING",
Tags: []string{},
Tests: []datadogV2.AnalysisRequestRuleTest{
{},
},
TreeSitterQuery: "KGNhbGwgbmFtZTogKGF0dHJpYnV0ZSkpQHZhbA==",
Type: "TREE_SITTER_QUERY",
},
},
},
Type: datadogV2.ANALYSISREQUESTDATATYPE_ANALYSIS_REQUEST,
},
}
ctx := datadog.NewDefaultContext(context.Background())
ctx = context.WithValue(ctx, datadog.ContextAccessToken, os.Getenv("DD_BEARER_TOKEN"))
configuration := datadog.NewConfiguration()
configuration.SetUnstableOperationEnabled("v2.CreateStaticAnalysisServerAnalysis", true)
apiClient := datadog.NewAPIClient(configuration)
api := datadogV2.NewSecurityMonitoringApi(apiClient)
resp, r, err := api.CreateStaticAnalysisServerAnalysis(ctx, body)
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `SecurityMonitoringApi.CreateStaticAnalysisServerAnalysis`: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
responseContent, _ := json.MarshalIndent(resp, "", " ")
fmt.Fprintf(os.Stdout, "Response from `SecurityMonitoringApi.CreateStaticAnalysisServerAnalysis`:\n%s\n", responseContent)
}
Instructions
First install the library and its dependencies and then save the example to main.go and run following commands:
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="us3.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="us5.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="datadoghq.eu" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="ap1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="ap2.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="uk1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="us2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"// Analyze code returns "OK" response
import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v2.api.SecurityMonitoringApi;
import com.datadog.api.client.v2.model.AnalysisRequest;
import com.datadog.api.client.v2.model.AnalysisRequestData;
import com.datadog.api.client.v2.model.AnalysisRequestDataAttributes;
import com.datadog.api.client.v2.model.AnalysisRequestDataType;
import com.datadog.api.client.v2.model.AnalysisRequestRule;
import com.datadog.api.client.v2.model.AnalysisRequestRuleArgument;
import com.datadog.api.client.v2.model.AnalysisRequestRuleTest;
import com.datadog.api.client.v2.model.AnalysisResponse;
import java.util.Collections;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = ApiClient.getDefaultApiClient();
defaultClient.setAccessToken(System.getenv("DD_BEARER_TOKEN"));
defaultClient.setUnstableOperationEnabled("v2.createStaticAnalysisServerAnalysis", true);
SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient);
AnalysisRequest body =
new AnalysisRequest()
.data(
new AnalysisRequestData()
.attributes(
new AnalysisRequestDataAttributes()
.code("aW1wb3J0IHN5cw==")
.fileEncoding("utf-8")
.filename("test.py")
.language("python")
.rules(
Collections.singletonList(
new AnalysisRequestRule()
.arguments(
Collections.singletonList(
new AnalysisRequestRuleArgument()))
.category("BEST_PRACTICES")
.checksum("abc123def456")
.code("ZnVuY3Rpb24gdmlzaXQobm9kZSkge30=")
.entityChecked(null)
.id("python-best-practices/no-exit")
.language("python")
.name("no-exit")
.regex(null)
.severity("WARNING")
.tests(
Collections.singletonList(
new AnalysisRequestRuleTest()))
.treeSitterQuery("KGNhbGwgbmFtZTogKGF0dHJpYnV0ZSkpQHZhbA==")
.type("TREE_SITTER_QUERY"))))
.type(AnalysisRequestDataType.ANALYSIS_REQUEST));
try {
AnalysisResponse result = apiInstance.createStaticAnalysisServerAnalysis(body);
System.out.println(result);
} catch (ApiException e) {
System.err.println(
"Exception when calling SecurityMonitoringApi#createStaticAnalysisServerAnalysis");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}
Instructions
First install the library and its dependencies and then save the example to Example.java and run following commands:
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="us3.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="us5.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="datadoghq.eu" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="ap1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="ap2.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="uk1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="us2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java""""
Analyze code returns "OK" response
"""
from os import environ
from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.security_monitoring_api import SecurityMonitoringApi
from datadog_api_client.v2.model.analysis_request import AnalysisRequest
from datadog_api_client.v2.model.analysis_request_data import AnalysisRequestData
from datadog_api_client.v2.model.analysis_request_data_attributes import AnalysisRequestDataAttributes
from datadog_api_client.v2.model.analysis_request_data_type import AnalysisRequestDataType
from datadog_api_client.v2.model.analysis_request_rule import AnalysisRequestRule
from datadog_api_client.v2.model.analysis_request_rule_argument import AnalysisRequestRuleArgument
from datadog_api_client.v2.model.analysis_request_rule_test import AnalysisRequestRuleTest
body = AnalysisRequest(
data=AnalysisRequestData(
attributes=AnalysisRequestDataAttributes(
code="aW1wb3J0IHN5cw==",
file_encoding="utf-8",
filename="test.py",
language="python",
rules=[
AnalysisRequestRule(
arguments=[
AnalysisRequestRuleArgument(),
],
category="BEST_PRACTICES",
checksum="abc123def456",
code="ZnVuY3Rpb24gdmlzaXQobm9kZSkge30=",
entity_checked=None,
id="python-best-practices/no-exit",
language="python",
name="no-exit",
regex=None,
severity="WARNING",
tags=[],
tests=[
AnalysisRequestRuleTest(),
],
tree_sitter_query="KGNhbGwgbmFtZTogKGF0dHJpYnV0ZSkpQHZhbA==",
type="TREE_SITTER_QUERY",
),
],
),
type=AnalysisRequestDataType.ANALYSIS_REQUEST,
),
)
configuration = Configuration()
configuration.access_token = environ["DD_BEARER_TOKEN"]
configuration.unstable_operations["create_static_analysis_server_analysis"] = True
with ApiClient(configuration) as api_client:
api_instance = SecurityMonitoringApi(api_client)
response = api_instance.create_static_analysis_server_analysis(body=body)
print(response)
Instructions
First install the library and its dependencies and then save the example to example.py and run following commands:
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="us3.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="us5.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="datadoghq.eu" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="ap1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="ap2.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="uk1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="us2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"# Analyze code returns "OK" response
require "datadog_api_client"
DatadogAPIClient.configure do |config|
config.access_token = ENV["DD_BEARER_TOKEN"]
config.unstable_operations["v2.create_static_analysis_server_analysis".to_sym] = true
end
api_instance = DatadogAPIClient::V2::SecurityMonitoringAPI.new
body = DatadogAPIClient::V2::AnalysisRequest.new({
data: DatadogAPIClient::V2::AnalysisRequestData.new({
attributes: DatadogAPIClient::V2::AnalysisRequestDataAttributes.new({
code: "aW1wb3J0IHN5cw==",
file_encoding: "utf-8",
filename: "test.py",
language: "python",
rules: [
DatadogAPIClient::V2::AnalysisRequestRule.new({
arguments: [
DatadogAPIClient::V2::AnalysisRequestRuleArgument.new({}),
],
category: "BEST_PRACTICES",
checksum: "abc123def456",
code: "ZnVuY3Rpb24gdmlzaXQobm9kZSkge30=",
entity_checked: nil,
id: "python-best-practices/no-exit",
language: "python",
name: "no-exit",
regex: nil,
severity: "WARNING",
tags: [],
tests: [
DatadogAPIClient::V2::AnalysisRequestRuleTest.new({}),
],
tree_sitter_query: "KGNhbGwgbmFtZTogKGF0dHJpYnV0ZSkpQHZhbA==",
type: "TREE_SITTER_QUERY",
}),
],
}),
type: DatadogAPIClient::V2::AnalysisRequestDataType::ANALYSIS_REQUEST,
}),
})
p api_instance.create_static_analysis_server_analysis(body)
Instructions
First install the library and its dependencies and then save the example to example.rb and run following commands:
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="us3.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="us5.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="datadoghq.eu" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="ap1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="ap2.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="uk1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="us2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"// Analyze code returns "OK" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV2::api_security_monitoring::SecurityMonitoringAPI;
use datadog_api_client::datadogV2::model::AnalysisRequest;
use datadog_api_client::datadogV2::model::AnalysisRequestData;
use datadog_api_client::datadogV2::model::AnalysisRequestDataAttributes;
use datadog_api_client::datadogV2::model::AnalysisRequestDataType;
use datadog_api_client::datadogV2::model::AnalysisRequestRule;
use datadog_api_client::datadogV2::model::AnalysisRequestRuleArgument;
use datadog_api_client::datadogV2::model::AnalysisRequestRuleTest;
#[tokio::main]
async fn main() {
let body = AnalysisRequest::new(AnalysisRequestData::new(
AnalysisRequestDataAttributes::new(
"aW1wb3J0IHN5cw==".to_string(),
"utf-8".to_string(),
"test.py".to_string(),
"python".to_string(),
vec![AnalysisRequestRule::new(
"BEST_PRACTICES".to_string(),
"abc123def456".to_string(),
"ZnVuY3Rpb24gdmlzaXQobm9kZSkge30=".to_string(),
"python-best-practices/no-exit".to_string(),
"python".to_string(),
"WARNING".to_string(),
"KGNhbGwgbmFtZTogKGF0dHJpYnV0ZSkpQHZhbA==".to_string(),
"TREE_SITTER_QUERY".to_string(),
)
.arguments(vec![AnalysisRequestRuleArgument::new()])
.entity_checked(None)
.name("no-exit".to_string())
.regex(None)
.tags(vec![])
.tests(vec![AnalysisRequestRuleTest::new()])],
),
AnalysisRequestDataType::ANALYSIS_REQUEST,
));
let mut configuration = datadog::Configuration::new();
configuration.set_unstable_operation_enabled("v2.create_static_analysis_server_analysis", true);
let api = SecurityMonitoringAPI::with_config(configuration);
let resp = api.create_static_analysis_server_analysis(body).await;
if let Ok(value) = resp {
println!("{:#?}", value);
} else {
println!("{:#?}", resp.unwrap_err());
}
}
Instructions
First install the library and its dependencies and then save the example to src/main.rs and run following commands:
DD_SITE="datadoghq.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo runDD_SITE="us3.datadoghq.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo runDD_SITE="us5.datadoghq.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo runDD_SITE="datadoghq.eu" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo runDD_SITE="ap1.datadoghq.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo runDD_SITE="ap2.datadoghq.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo runDD_SITE="uk1.datadoghq.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo runDD_SITE="ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo runDD_SITE="us2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo run/**
* Analyze code returns "OK" response
*/
import { client, v2 } from "@datadog/datadog-api-client";
const configuration = client.createConfiguration({
authMethods: {
AuthZ: {
accessToken: process.env.DD_BEARER_TOKEN as string,
},
},
});
configuration.unstableOperations["v2.createStaticAnalysisServerAnalysis"] =
true;
const apiInstance = new v2.SecurityMonitoringApi(configuration);
const params: v2.SecurityMonitoringApiCreateStaticAnalysisServerAnalysisRequest =
{
body: {
data: {
attributes: {
code: "aW1wb3J0IHN5cw==",
fileEncoding: "utf-8",
filename: "test.py",
language: "python",
rules: [
{
arguments: [{}],
category: "BEST_PRACTICES",
checksum: "abc123def456",
code: "ZnVuY3Rpb24gdmlzaXQobm9kZSkge30=",
entityChecked: undefined,
id: "python-best-practices/no-exit",
language: "python",
name: "no-exit",
regex: undefined,
severity: "WARNING",
tags: [],
tests: [{}],
treeSitterQuery: "KGNhbGwgbmFtZTogKGF0dHJpYnV0ZSkpQHZhbA==",
type: "TREE_SITTER_QUERY",
},
],
},
type: "analysis_request",
},
},
};
apiInstance
.createStaticAnalysisServerAnalysis(params)
.then((data: v2.AnalysisResponse) => {
console.log(
"API called successfully. Returned data: " + JSON.stringify(data)
);
})
.catch((error: any) => console.error(error));
Instructions
First install the library and its dependencies and then save the example to example.ts and run following commands:
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="us3.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="us5.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="datadoghq.eu" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="ap1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="ap2.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="uk1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="us2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"