Skip to content

Commit cffccf3

Browse files
author
ci.datadog-api-spec
committed
Regenerate client from commit 38f6b77 of spec repo
1 parent 0f98846 commit cffccf3

45 files changed

Lines changed: 6686 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.generator/schemas/v2/openapi.yaml‎

Lines changed: 609 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
// Evaluate an AI Guard request returns "OK" response
2+
3+
import com.datadog.api.client.ApiClient;
4+
import com.datadog.api.client.ApiException;
5+
import com.datadog.api.client.v2.api.AiGuardApi;
6+
import com.datadog.api.client.v2.model.AIGuardConfidenceThresholdOverride;
7+
import com.datadog.api.client.v2.model.AIGuardEvaluateRequest;
8+
import com.datadog.api.client.v2.model.AIGuardEvaluateRequestData;
9+
import com.datadog.api.client.v2.model.AIGuardEvaluateRequestDataAttributes;
10+
import com.datadog.api.client.v2.model.AIGuardEvaluateResponse;
11+
import com.datadog.api.client.v2.model.AIGuardEvaluationType;
12+
import com.datadog.api.client.v2.model.AIGuardMessage;
13+
import com.datadog.api.client.v2.model.AIGuardMessageContent;
14+
import com.datadog.api.client.v2.model.AIGuardMessageRole;
15+
import com.datadog.api.client.v2.model.AIGuardMeta;
16+
import java.util.Collections;
17+
18+
public class Example {
19+
public static void main(String[] args) {
20+
ApiClient defaultClient = ApiClient.getDefaultApiClient();
21+
defaultClient.setAccessToken(System.getenv("DD_BEARER_TOKEN"));
22+
defaultClient.setUnstableOperationEnabled("v2.evaluateAIGuardRequest", true);
23+
AiGuardApi apiInstance = new AiGuardApi(defaultClient);
24+
25+
AIGuardEvaluateRequest body =
26+
new AIGuardEvaluateRequest()
27+
.data(
28+
new AIGuardEvaluateRequestData()
29+
.type(AIGuardEvaluationType.EVALUATIONS)
30+
.attributes(
31+
new AIGuardEvaluateRequestDataAttributes()
32+
.messages(
33+
Collections.singletonList(
34+
new AIGuardMessage()
35+
.content(new AIGuardMessageContent("Hello world!"))
36+
.role(AIGuardMessageRole.USER)))
37+
.meta(
38+
new AIGuardMeta()
39+
.confidenceThreshold(
40+
new AIGuardConfidenceThresholdOverride(0.8)))));
41+
42+
try {
43+
AIGuardEvaluateResponse result = apiInstance.evaluateAIGuardRequest(body);
44+
System.out.println(result);
45+
} catch (ApiException e) {
46+
System.err.println("Exception when calling AiGuardApi#evaluateAIGuardRequest");
47+
System.err.println("Status code: " + e.getCode());
48+
System.err.println("Reason: " + e.getResponseBody());
49+
System.err.println("Response headers: " + e.getResponseHeaders());
50+
e.printStackTrace();
51+
}
52+
}
53+
}
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
// Evaluate an AI Guard request with per-category confidence thresholds
2+
3+
import com.datadog.api.client.ApiClient;
4+
import com.datadog.api.client.ApiException;
5+
import com.datadog.api.client.v2.api.AiGuardApi;
6+
import com.datadog.api.client.v2.model.AIGuardConfidenceThreshold;
7+
import com.datadog.api.client.v2.model.AIGuardConfidenceThresholdOverride;
8+
import com.datadog.api.client.v2.model.AIGuardEvaluateRequest;
9+
import com.datadog.api.client.v2.model.AIGuardEvaluateRequestData;
10+
import com.datadog.api.client.v2.model.AIGuardEvaluateRequestDataAttributes;
11+
import com.datadog.api.client.v2.model.AIGuardEvaluateResponse;
12+
import com.datadog.api.client.v2.model.AIGuardEvaluationType;
13+
import com.datadog.api.client.v2.model.AIGuardMessage;
14+
import com.datadog.api.client.v2.model.AIGuardMessageContent;
15+
import com.datadog.api.client.v2.model.AIGuardMessageRole;
16+
import com.datadog.api.client.v2.model.AIGuardMeta;
17+
import java.util.Collections;
18+
19+
public class Example {
20+
public static void main(String[] args) {
21+
ApiClient defaultClient = ApiClient.getDefaultApiClient();
22+
defaultClient.setAccessToken(System.getenv("DD_BEARER_TOKEN"));
23+
defaultClient.setUnstableOperationEnabled("v2.evaluateAIGuardRequest", true);
24+
AiGuardApi apiInstance = new AiGuardApi(defaultClient);
25+
26+
AIGuardEvaluateRequest body =
27+
new AIGuardEvaluateRequest()
28+
.data(
29+
new AIGuardEvaluateRequestData()
30+
.type(AIGuardEvaluationType.EVALUATIONS)
31+
.attributes(
32+
new AIGuardEvaluateRequestDataAttributes()
33+
.messages(
34+
Collections.singletonList(
35+
new AIGuardMessage()
36+
.role(AIGuardMessageRole.USER)
37+
.content(new AIGuardMessageContent("Hello world!"))))
38+
.meta(
39+
new AIGuardMeta()
40+
.confidenceThreshold(
41+
new AIGuardConfidenceThresholdOverride(
42+
new AIGuardConfidenceThreshold()
43+
.flaggingGlobal(0.6)
44+
.putAdditionalProperty("policy-evasion", 0.9)
45+
.putAdditionalProperty(
46+
"indirect-prompt-injection", 0.4))))));
47+
48+
try {
49+
AIGuardEvaluateResponse result = apiInstance.evaluateAIGuardRequest(body);
50+
System.out.println(result);
51+
} catch (ApiException e) {
52+
System.err.println("Exception when calling AiGuardApi#evaluateAIGuardRequest");
53+
System.err.println("Status code: " + e.getCode());
54+
System.err.println("Reason: " + e.getResponseBody());
55+
System.err.println("Response headers: " + e.getResponseHeaders());
56+
e.printStackTrace();
57+
}
58+
}
59+
}
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
// Evaluate an AI Guard request with a numeric confidence threshold
2+
3+
import com.datadog.api.client.ApiClient;
4+
import com.datadog.api.client.ApiException;
5+
import com.datadog.api.client.v2.api.AiGuardApi;
6+
import com.datadog.api.client.v2.model.AIGuardConfidenceThresholdOverride;
7+
import com.datadog.api.client.v2.model.AIGuardEvaluateRequest;
8+
import com.datadog.api.client.v2.model.AIGuardEvaluateRequestData;
9+
import com.datadog.api.client.v2.model.AIGuardEvaluateRequestDataAttributes;
10+
import com.datadog.api.client.v2.model.AIGuardEvaluateResponse;
11+
import com.datadog.api.client.v2.model.AIGuardEvaluationType;
12+
import com.datadog.api.client.v2.model.AIGuardMessage;
13+
import com.datadog.api.client.v2.model.AIGuardMessageContent;
14+
import com.datadog.api.client.v2.model.AIGuardMessageRole;
15+
import com.datadog.api.client.v2.model.AIGuardMeta;
16+
import java.util.Collections;
17+
18+
public class Example {
19+
public static void main(String[] args) {
20+
ApiClient defaultClient = ApiClient.getDefaultApiClient();
21+
defaultClient.setAccessToken(System.getenv("DD_BEARER_TOKEN"));
22+
defaultClient.setUnstableOperationEnabled("v2.evaluateAIGuardRequest", true);
23+
AiGuardApi apiInstance = new AiGuardApi(defaultClient);
24+
25+
AIGuardEvaluateRequest body =
26+
new AIGuardEvaluateRequest()
27+
.data(
28+
new AIGuardEvaluateRequestData()
29+
.type(AIGuardEvaluationType.EVALUATIONS)
30+
.attributes(
31+
new AIGuardEvaluateRequestDataAttributes()
32+
.messages(
33+
Collections.singletonList(
34+
new AIGuardMessage()
35+
.role(AIGuardMessageRole.USER)
36+
.content(new AIGuardMessageContent("Hello world!"))))
37+
.meta(
38+
new AIGuardMeta()
39+
.confidenceThreshold(
40+
new AIGuardConfidenceThresholdOverride(0.8)))));
41+
42+
try {
43+
AIGuardEvaluateResponse result = apiInstance.evaluateAIGuardRequest(body);
44+
System.out.println(result);
45+
} catch (ApiException e) {
46+
System.err.println("Exception when calling AiGuardApi#evaluateAIGuardRequest");
47+
System.err.println("Status code: " + e.getCode());
48+
System.err.println("Reason: " + e.getResponseBody());
49+
System.err.println("Response headers: " + e.getResponseHeaders());
50+
e.printStackTrace();
51+
}
52+
}
53+
}

‎src/main/java/com/datadog/api/client/ApiClient.java‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1064,6 +1064,7 @@ public class ApiClient {
10641064
put("v2.getExecutionPolicy", false);
10651065
put("v2.listExecutionPolicies", false);
10661066
put("v2.updateExecutionPolicy", false);
1067+
put("v2.evaluateAIGuardRequest", false);
10671068
put("v2.createAnnotation", false);
10681069
put("v2.deleteAnnotation", false);
10691070
put("v2.getPageAnnotations", false);
Lines changed: 209 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,209 @@
1+
package com.datadog.api.client.v2.api;
2+
3+
import com.datadog.api.client.ApiClient;
4+
import com.datadog.api.client.ApiException;
5+
import com.datadog.api.client.ApiResponse;
6+
import com.datadog.api.client.Pair;
7+
import com.datadog.api.client.v2.model.AIGuardEvaluateRequest;
8+
import com.datadog.api.client.v2.model.AIGuardEvaluateResponse;
9+
import jakarta.ws.rs.client.Invocation;
10+
import jakarta.ws.rs.core.GenericType;
11+
import java.util.ArrayList;
12+
import java.util.HashMap;
13+
import java.util.Map;
14+
import java.util.concurrent.CompletableFuture;
15+
16+
@jakarta.annotation.Generated(
17+
value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
18+
public class AiGuardApi {
19+
private ApiClient apiClient;
20+
21+
public AiGuardApi() {
22+
this(ApiClient.getDefaultApiClient());
23+
}
24+
25+
public AiGuardApi(ApiClient apiClient) {
26+
this.apiClient = apiClient;
27+
}
28+
29+
/**
30+
* Get the API client.
31+
*
32+
* @return API client
33+
*/
34+
public ApiClient getApiClient() {
35+
return apiClient;
36+
}
37+
38+
/**
39+
* Set the API client.
40+
*
41+
* @param apiClient an instance of API client
42+
*/
43+
public void setApiClient(ApiClient apiClient) {
44+
this.apiClient = apiClient;
45+
}
46+
47+
/**
48+
* Evaluate an AI Guard request.
49+
*
50+
* <p>See {@link #evaluateAIGuardRequestWithHttpInfo}.
51+
*
52+
* @param body The conversation to evaluate for security threats. (required)
53+
* @return AIGuardEvaluateResponse
54+
* @throws ApiException if fails to make API call
55+
*/
56+
public AIGuardEvaluateResponse evaluateAIGuardRequest(AIGuardEvaluateRequest body)
57+
throws ApiException {
58+
return evaluateAIGuardRequestWithHttpInfo(body).getData();
59+
}
60+
61+
/**
62+
* Evaluate an AI Guard request.
63+
*
64+
* <p>See {@link #evaluateAIGuardRequestWithHttpInfoAsync}.
65+
*
66+
* @param body The conversation to evaluate for security threats. (required)
67+
* @return CompletableFuture&lt;AIGuardEvaluateResponse&gt;
68+
*/
69+
public CompletableFuture<AIGuardEvaluateResponse> evaluateAIGuardRequestAsync(
70+
AIGuardEvaluateRequest body) {
71+
return evaluateAIGuardRequestWithHttpInfoAsync(body)
72+
.thenApply(
73+
response -> {
74+
return response.getData();
75+
});
76+
}
77+
78+
/**
79+
* Analyzes a conversation for security threats such as prompt injection, jailbreak attempts, and
80+
* other AI-specific attacks. Returns an action recommendation (<code>ALLOW</code>, <code>DENY
81+
* </code>, or <code>ABORT</code>) along with the detected threat tags and their confidence
82+
* scores. AI Guard must be activated for the organization, and the calling user or application
83+
* key requires the <code>ai_guard_evaluate</code> permission. The action is a recommendation for
84+
* the caller to enforce: ALLOW permits the interaction, DENY blocks the interaction, and ABORT
85+
* terminates the workflow. This endpoint is rate limited to <code>700</code> requests per minute
86+
* per organization. Organization token limits can also result in a 429 response. Malformed
87+
* messages return a 400 response. Requests exceeding the raw-input limit of 1,000,000 tokens
88+
* return a 413 response; this limit applies to the input context, not only the size of the HTTP
89+
* request body.
90+
*
91+
* @param body The conversation to evaluate for security threats. (required)
92+
* @return ApiResponse&lt;AIGuardEvaluateResponse&gt;
93+
* @throws ApiException if fails to make API call
94+
* @http.response.details
95+
* <table border="1">
96+
* <caption>Response details</caption>
97+
* <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
98+
* <tr><td> 200 </td><td> OK </td><td> - </td></tr>
99+
* <tr><td> 400 </td><td> Bad Request </td><td> - </td></tr>
100+
* <tr><td> 401 </td><td> Unauthorized </td><td> - </td></tr>
101+
* <tr><td> 403 </td><td> Forbidden </td><td> - </td></tr>
102+
* <tr><td> 408 </td><td> Request Timeout </td><td> - </td></tr>
103+
* <tr><td> 413 </td><td> Payload Too Large </td><td> - </td></tr>
104+
* <tr><td> 429 </td><td> Too many requests </td><td> - </td></tr>
105+
* </table>
106+
*/
107+
public ApiResponse<AIGuardEvaluateResponse> evaluateAIGuardRequestWithHttpInfo(
108+
AIGuardEvaluateRequest body) throws ApiException {
109+
// Check if unstable operation is enabled
110+
String operationId = "evaluateAIGuardRequest";
111+
if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
112+
apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
113+
} else {
114+
throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId));
115+
}
116+
Object localVarPostBody = body;
117+
118+
// verify the required parameter 'body' is set
119+
if (body == null) {
120+
throw new ApiException(
121+
400, "Missing the required parameter 'body' when calling evaluateAIGuardRequest");
122+
}
123+
// create path and map variables
124+
String localVarPath = "/api/v2/ai-guard/evaluate";
125+
126+
Map<String, String> localVarHeaderParams = new HashMap<String, String>();
127+
128+
Invocation.Builder builder =
129+
apiClient.createBuilder(
130+
"v2.AiGuardApi.evaluateAIGuardRequest",
131+
localVarPath,
132+
new ArrayList<Pair>(),
133+
localVarHeaderParams,
134+
new HashMap<String, String>(),
135+
new String[] {"application/json"},
136+
new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
137+
return apiClient.invokeAPI(
138+
"POST",
139+
builder,
140+
localVarHeaderParams,
141+
new String[] {"application/json"},
142+
localVarPostBody,
143+
new HashMap<String, Object>(),
144+
false,
145+
new GenericType<AIGuardEvaluateResponse>() {});
146+
}
147+
148+
/**
149+
* Evaluate an AI Guard request.
150+
*
151+
* <p>See {@link #evaluateAIGuardRequestWithHttpInfo}.
152+
*
153+
* @param body The conversation to evaluate for security threats. (required)
154+
* @return CompletableFuture&lt;ApiResponse&lt;AIGuardEvaluateResponse&gt;&gt;
155+
*/
156+
public CompletableFuture<ApiResponse<AIGuardEvaluateResponse>>
157+
evaluateAIGuardRequestWithHttpInfoAsync(AIGuardEvaluateRequest body) {
158+
// Check if unstable operation is enabled
159+
String operationId = "evaluateAIGuardRequest";
160+
if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
161+
apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
162+
} else {
163+
CompletableFuture<ApiResponse<AIGuardEvaluateResponse>> result = new CompletableFuture<>();
164+
result.completeExceptionally(
165+
new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)));
166+
return result;
167+
}
168+
Object localVarPostBody = body;
169+
170+
// verify the required parameter 'body' is set
171+
if (body == null) {
172+
CompletableFuture<ApiResponse<AIGuardEvaluateResponse>> result = new CompletableFuture<>();
173+
result.completeExceptionally(
174+
new ApiException(
175+
400, "Missing the required parameter 'body' when calling evaluateAIGuardRequest"));
176+
return result;
177+
}
178+
// create path and map variables
179+
String localVarPath = "/api/v2/ai-guard/evaluate";
180+
181+
Map<String, String> localVarHeaderParams = new HashMap<String, String>();
182+
183+
Invocation.Builder builder;
184+
try {
185+
builder =
186+
apiClient.createBuilder(
187+
"v2.AiGuardApi.evaluateAIGuardRequest",
188+
localVarPath,
189+
new ArrayList<Pair>(),
190+
localVarHeaderParams,
191+
new HashMap<String, String>(),
192+
new String[] {"application/json"},
193+
new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
194+
} catch (ApiException ex) {
195+
CompletableFuture<ApiResponse<AIGuardEvaluateResponse>> result = new CompletableFuture<>();
196+
result.completeExceptionally(ex);
197+
return result;
198+
}
199+
return apiClient.invokeAPIAsync(
200+
"POST",
201+
builder,
202+
localVarHeaderParams,
203+
new String[] {"application/json"},
204+
localVarPostBody,
205+
new HashMap<String, Object>(),
206+
false,
207+
new GenericType<AIGuardEvaluateResponse>() {});
208+
}
209+
}

0 commit comments

Comments
 (0)