Skip to content

Commit c2dd876

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-spec
and
ci.datadog-api-spec
authored
Document new properties and fix security monitoring schemas (#1248)
Co-authored-by: ci.datadog-api-spec <packages@datadoghq.com>
1 parent 7e94055 commit c2dd876

16 files changed

+216
-26
lines changed

.apigentools-info

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44
"spec_versions": {
55
"v1": {
66
"apigentools_version": "1.6.5",
7-
"regenerated": "2023-07-26 14:58:34.052664",
8-
"spec_repo_commit": "3d6b3d5a"
7+
"regenerated": "2023-07-26 17:14:51.413957",
8+
"spec_repo_commit": "69e8c6e4"
99
},
1010
"v2": {
1111
"apigentools_version": "1.6.5",
12-
"regenerated": "2023-07-26 14:58:34.074888",
13-
"spec_repo_commit": "3d6b3d5a"
12+
"regenerated": "2023-07-26 17:14:51.429473",
13+
"spec_repo_commit": "69e8c6e4"
1414
}
1515
}
1616
}

.generator/schemas/v2/openapi.yaml

Lines changed: 55 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2596,6 +2596,7 @@ components:
25962596
type: string
25972597
type: object
25982598
CloudConfigurationComplianceRuleOptions:
2599+
additionalProperties: {}
25992600
description: 'Options for cloud_configuration rules.
26002601

26012602
Fields `resourceType` and `regoRule` are mandatory when managing custom `cloud_configuration`
@@ -2667,6 +2668,16 @@ components:
26672668
description: How to generate compliance signals. Useful for cloud_configuration
26682669
rules only.
26692670
properties:
2671+
defaultActivationStatus:
2672+
description: The default activation status.
2673+
nullable: true
2674+
type: boolean
2675+
defaultGroupByFields:
2676+
description: The default group by fields.
2677+
items:
2678+
type: string
2679+
nullable: true
2680+
type: array
26702681
userActivationStatus:
26712682
description: Whether signals will be sent.
26722683
nullable: true
@@ -12904,6 +12915,7 @@ components:
1290412915
- data
1290512916
type: object
1290612917
SecurityMonitoringSignalAttributes:
12918+
additionalProperties: {}
1290712919
description: 'The object containing all signal attributes and their
1290812920

1290912921
associated values.'
@@ -13022,6 +13034,21 @@ components:
1302213034
maximum: 1000
1302313035
type: integer
1302413036
type: object
13037+
SecurityMonitoringSignalMetadataType:
13038+
default: signal_metadata
13039+
description: The type of event.
13040+
enum:
13041+
- signal_metadata
13042+
example: signal_metadata
13043+
type: string
13044+
x-enum-varnames:
13045+
- SIGNAL_METADATA
13046+
SecurityMonitoringSignalResponse:
13047+
description: Security Signal response data object.
13048+
properties:
13049+
data:
13050+
$ref: '#/components/schemas/SecurityMonitoringSignal'
13051+
type: object
1302513052
SecurityMonitoringSignalRuleCreatePayload:
1302613053
description: Create a new signal correlation rule.
1302713054
properties:
@@ -13190,7 +13217,7 @@ components:
1319013217
aggregation:
1319113218
$ref: '#/components/schemas/SecurityMonitoringRuleQueryAggregation'
1319213219
correlatedByFields:
13193-
description: Fields to group by.
13220+
description: Fields to correlate by.
1319413221
items:
1319513222
description: Field.
1319613223
type: string
@@ -13204,6 +13231,18 @@ components:
1320413231
description: Default Rule ID to match on signals.
1320513232
example: d3f-ru1-e1d
1320613233
type: string
13234+
distinctFields:
13235+
description: Field for which the cardinality is measured. Sent as an array.
13236+
items:
13237+
description: Field.
13238+
type: string
13239+
type: array
13240+
groupByFields:
13241+
description: Fields to group by.
13242+
items:
13243+
description: Field.
13244+
type: string
13245+
type: array
1320713246
metrics:
1320813247
description: Group of target fields to aggregate over.
1320913248
items:
@@ -13256,6 +13295,10 @@ components:
1325613295
properties:
1325713296
attributes:
1325813297
$ref: '#/components/schemas/SecurityMonitoringSignalStateUpdateAttributes'
13298+
id:
13299+
description: The unique ID of the security signal.
13300+
type:
13301+
$ref: '#/components/schemas/SecurityMonitoringSignalMetadataType'
1325913302
required:
1326013303
- attributes
1326113304
type: object
@@ -13306,6 +13349,11 @@ components:
1330613349
properties:
1330713350
attributes:
1330813351
$ref: '#/components/schemas/SecurityMonitoringSignalTriageAttributes'
13352+
id:
13353+
description: The unique ID of the security signal.
13354+
type: string
13355+
type:
13356+
$ref: '#/components/schemas/SecurityMonitoringSignalMetadataType'
1330913357
type: object
1331013358
SecurityMonitoringSignalTriageUpdateResponse:
1331113359
description: The response returned after all triage operations, containing the
@@ -13481,8 +13529,6 @@ components:
1348113529
description: Query to run on logs.
1348213530
example: a > 3
1348313531
type: string
13484-
required:
13485-
- query
1348613532
type: object
1348713533
SecurityMonitoringStandardRuleResponse:
1348813534
description: Rule.
@@ -13563,6 +13609,11 @@ components:
1356313609
handle:
1356413610
description: The handle for this user account.
1356513611
type: string
13612+
icon:
13613+
description: Gravatar icon associated to the user.
13614+
example: /path/to/matching/gravatar/icon
13615+
readOnly: true
13616+
type: string
1356613617
id:
1356713618
description: Numerical ID assigned by Datadog to this user account.
1356813619
format: int64
@@ -24478,7 +24529,7 @@ paths:
2447824529
content:
2447924530
application/json:
2448024531
schema:
24481-
$ref: '#/components/schemas/SecurityMonitoringSignal'
24532+
$ref: '#/components/schemas/SecurityMonitoringSignalResponse'
2448224533
description: OK
2448324534
'404':
2448424535
$ref: '#/components/responses/NotFoundResponse'

examples/v2/security-monitoring/GetSecurityMonitoringSignal.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ const params: v2.SecurityMonitoringApiGetSecurityMonitoringSignalRequest = {
1313

1414
apiInstance
1515
.getSecurityMonitoringSignal(params)
16-
.then((data: v2.SecurityMonitoringSignal) => {
16+
.then((data: v2.SecurityMonitoringSignalResponse) => {
1717
console.log(
1818
"API called successfully. Returned data: " + JSON.stringify(data)
1919
);

features/support/scenarios_model_mapping.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4003,7 +4003,7 @@ export const ScenariosModelMappings: {[key: string]: {[key: string]: any}} = {
40034003
"type": "string",
40044004
"format": "",
40054005
},
4006-
"operationResponseType": "SecurityMonitoringSignal",
4006+
"operationResponseType": "SecurityMonitoringSignalResponse",
40074007
},
40084008
"v2.EditSecurityMonitoringSignalAssignee": {
40094009
"signalId": {

features/v2/security_monitoring.feature

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,15 +35,15 @@ Feature: Security Monitoring
3535
Scenario: Change the triage state of a security signal returns "Bad Request" response
3636
Given new "EditSecurityMonitoringSignalState" request
3737
And request contains "signal_id" parameter from "REPLACE.ME"
38-
And body with value {"data": {"attributes": {"archive_reason": "none", "state": "open"}}}
38+
And body with value {"data": {"attributes": {"archive_reason": "none", "state": "open"}, "type": "signal_metadata"}}
3939
When the request is sent
4040
Then the response status is 400 Bad Request
4141

4242
@generated @skip @team:DataDog/k9-cloud-security-platform
4343
Scenario: Change the triage state of a security signal returns "Not Found" response
4444
Given new "EditSecurityMonitoringSignalState" request
4545
And request contains "signal_id" parameter from "REPLACE.ME"
46-
And body with value {"data": {"attributes": {"archive_reason": "none", "state": "open"}}}
46+
And body with value {"data": {"attributes": {"archive_reason": "none", "state": "open"}, "type": "signal_metadata"}}
4747
When the request is sent
4848
Then the response status is 404 Not Found
4949

packages/datadog-api-client-v2/apis/SecurityMonitoringApi.ts

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ import { SecurityMonitoringSignalAssigneeUpdateRequest } from "../models/Securit
3939
import { SecurityMonitoringSignalIncidentsUpdateRequest } from "../models/SecurityMonitoringSignalIncidentsUpdateRequest";
4040
import { SecurityMonitoringSignalListRequest } from "../models/SecurityMonitoringSignalListRequest";
4141
import { SecurityMonitoringSignalListRequestPage } from "../models/SecurityMonitoringSignalListRequestPage";
42+
import { SecurityMonitoringSignalResponse } from "../models/SecurityMonitoringSignalResponse";
4243
import { SecurityMonitoringSignalsListResponse } from "../models/SecurityMonitoringSignalsListResponse";
4344
import { SecurityMonitoringSignalsSort } from "../models/SecurityMonitoringSignalsSort";
4445
import { SecurityMonitoringSignalStateUpdateRequest } from "../models/SecurityMonitoringSignalStateUpdateRequest";
@@ -1634,15 +1635,16 @@ export class SecurityMonitoringApiResponseProcessor {
16341635
*/
16351636
public async getSecurityMonitoringSignal(
16361637
response: ResponseContext
1637-
): Promise<SecurityMonitoringSignal> {
1638+
): Promise<SecurityMonitoringSignalResponse> {
16381639
const contentType = ObjectSerializer.normalizeMediaType(
16391640
response.headers["content-type"]
16401641
);
16411642
if (response.httpStatusCode == 200) {
1642-
const body: SecurityMonitoringSignal = ObjectSerializer.deserialize(
1643-
ObjectSerializer.parse(await response.body.text(), contentType),
1644-
"SecurityMonitoringSignal"
1645-
) as SecurityMonitoringSignal;
1643+
const body: SecurityMonitoringSignalResponse =
1644+
ObjectSerializer.deserialize(
1645+
ObjectSerializer.parse(await response.body.text(), contentType),
1646+
"SecurityMonitoringSignalResponse"
1647+
) as SecurityMonitoringSignalResponse;
16461648
return body;
16471649
}
16481650
if (response.httpStatusCode == 404 || response.httpStatusCode == 429) {
@@ -1668,11 +1670,12 @@ export class SecurityMonitoringApiResponseProcessor {
16681670

16691671
// Work around for missing responses in specification, e.g. for petstore.yaml
16701672
if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {
1671-
const body: SecurityMonitoringSignal = ObjectSerializer.deserialize(
1672-
ObjectSerializer.parse(await response.body.text(), contentType),
1673-
"SecurityMonitoringSignal",
1674-
""
1675-
) as SecurityMonitoringSignal;
1673+
const body: SecurityMonitoringSignalResponse =
1674+
ObjectSerializer.deserialize(
1675+
ObjectSerializer.parse(await response.body.text(), contentType),
1676+
"SecurityMonitoringSignalResponse",
1677+
""
1678+
) as SecurityMonitoringSignalResponse;
16761679
return body;
16771680
}
16781681

@@ -2710,7 +2713,7 @@ export class SecurityMonitoringApi {
27102713
public getSecurityMonitoringSignal(
27112714
param: SecurityMonitoringApiGetSecurityMonitoringSignalRequest,
27122715
options?: Configuration
2713-
): Promise<SecurityMonitoringSignal> {
2716+
): Promise<SecurityMonitoringSignalResponse> {
27142717
const requestContextPromise =
27152718
this.requestFactory.getSecurityMonitoringSignal(param.signalId, options);
27162719
return requestContextPromise.then((requestContext) => {

packages/datadog-api-client-v2/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1202,6 +1202,8 @@ export { SecurityMonitoringSignalIncidentsUpdateRequest } from "./models/Securit
12021202
export { SecurityMonitoringSignalListRequest } from "./models/SecurityMonitoringSignalListRequest";
12031203
export { SecurityMonitoringSignalListRequestFilter } from "./models/SecurityMonitoringSignalListRequestFilter";
12041204
export { SecurityMonitoringSignalListRequestPage } from "./models/SecurityMonitoringSignalListRequestPage";
1205+
export { SecurityMonitoringSignalMetadataType } from "./models/SecurityMonitoringSignalMetadataType";
1206+
export { SecurityMonitoringSignalResponse } from "./models/SecurityMonitoringSignalResponse";
12051207
export { SecurityMonitoringSignalRuleCreatePayload } from "./models/SecurityMonitoringSignalRuleCreatePayload";
12061208
export { SecurityMonitoringSignalRuleQuery } from "./models/SecurityMonitoringSignalRuleQuery";
12071209
export { SecurityMonitoringSignalRuleResponse } from "./models/SecurityMonitoringSignalRuleResponse";

packages/datadog-api-client-v2/models/CloudConfigurationRuleComplianceSignalOptions.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,14 @@ import { AttributeTypeMap } from "../../datadog-api-client-common/util";
1010
* How to generate compliance signals. Useful for cloud_configuration rules only.
1111
*/
1212
export class CloudConfigurationRuleComplianceSignalOptions {
13+
/**
14+
* The default activation status.
15+
*/
16+
"defaultActivationStatus"?: boolean;
17+
/**
18+
* The default group by fields.
19+
*/
20+
"defaultGroupByFields"?: Array<string>;
1321
/**
1422
* Whether signals will be sent.
1523
*/
@@ -28,6 +36,14 @@ export class CloudConfigurationRuleComplianceSignalOptions {
2836
* @ignore
2937
*/
3038
static readonly attributeTypeMap: AttributeTypeMap = {
39+
defaultActivationStatus: {
40+
baseName: "defaultActivationStatus",
41+
type: "boolean",
42+
},
43+
defaultGroupByFields: {
44+
baseName: "defaultGroupByFields",
45+
type: "Array<string>",
46+
},
3147
userActivationStatus: {
3248
baseName: "userActivationStatus",
3349
type: "boolean",

packages/datadog-api-client-v2/models/ObjectSerializer.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -618,6 +618,7 @@ import { SecurityMonitoringSignalIncidentsUpdateRequest } from "./SecurityMonito
618618
import { SecurityMonitoringSignalListRequest } from "./SecurityMonitoringSignalListRequest";
619619
import { SecurityMonitoringSignalListRequestFilter } from "./SecurityMonitoringSignalListRequestFilter";
620620
import { SecurityMonitoringSignalListRequestPage } from "./SecurityMonitoringSignalListRequestPage";
621+
import { SecurityMonitoringSignalResponse } from "./SecurityMonitoringSignalResponse";
621622
import { SecurityMonitoringSignalRuleCreatePayload } from "./SecurityMonitoringSignalRuleCreatePayload";
622623
import { SecurityMonitoringSignalRuleQuery } from "./SecurityMonitoringSignalRuleQuery";
623624
import { SecurityMonitoringSignalRuleResponse } from "./SecurityMonitoringSignalRuleResponse";
@@ -1202,6 +1203,7 @@ const enumsMap: { [key: string]: any[] } = {
12021203
"investigated_case_opened",
12031204
"other",
12041205
],
1206+
SecurityMonitoringSignalMetadataType: ["signal_metadata"],
12051207
SecurityMonitoringSignalRuleType: ["signal_correlation"],
12061208
SecurityMonitoringSignalState: ["open", "archived", "under_review"],
12071209
SecurityMonitoringSignalType: ["signal"],
@@ -1991,6 +1993,7 @@ const typeMap: { [index: string]: any } = {
19911993
SecurityMonitoringSignalListRequestFilter,
19921994
SecurityMonitoringSignalListRequestPage:
19931995
SecurityMonitoringSignalListRequestPage,
1996+
SecurityMonitoringSignalResponse: SecurityMonitoringSignalResponse,
19941997
SecurityMonitoringSignalRuleCreatePayload:
19951998
SecurityMonitoringSignalRuleCreatePayload,
19961999
SecurityMonitoringSignalRuleQuery: SecurityMonitoringSignalRuleQuery,
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
/**
2+
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
3+
* This product includes software developed at Datadog (https://www.datadoghq.com/).
4+
* Copyright 2020-Present Datadog, Inc.
5+
*/
6+
7+
import { UnparsedObject } from "../../datadog-api-client-common/util";
8+
9+
/**
10+
* The type of event.
11+
*/
12+
13+
export type SecurityMonitoringSignalMetadataType =
14+
| typeof SIGNAL_METADATA
15+
| UnparsedObject;
16+
export const SIGNAL_METADATA = "signal_metadata";
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
/**
2+
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
3+
* This product includes software developed at Datadog (https://www.datadoghq.com/).
4+
* Copyright 2020-Present Datadog, Inc.
5+
*/
6+
import { SecurityMonitoringSignal } from "./SecurityMonitoringSignal";
7+
8+
import { AttributeTypeMap } from "../../datadog-api-client-common/util";
9+
10+
/**
11+
* Security Signal response data object.
12+
*/
13+
export class SecurityMonitoringSignalResponse {
14+
/**
15+
* Object description of a security signal.
16+
*/
17+
"data"?: SecurityMonitoringSignal;
18+
19+
/**
20+
* @ignore
21+
*/
22+
"_unparsed"?: boolean;
23+
24+
/**
25+
* @ignore
26+
*/
27+
static readonly attributeTypeMap: AttributeTypeMap = {
28+
data: {
29+
baseName: "data",
30+
type: "SecurityMonitoringSignal",
31+
},
32+
};
33+
34+
/**
35+
* @ignore
36+
*/
37+
static getAttributeTypeMap(): AttributeTypeMap {
38+
return SecurityMonitoringSignalResponse.attributeTypeMap;
39+
}
40+
41+
public constructor() {}
42+
}

0 commit comments

Comments
 (0)