Skip to content

Commit 2499159

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-spec
andauthored
Regenerate client from commit befca65 of spec repo (#4169)
Co-authored-by: ci.datadog-api-spec <packages@datadoghq.com>
1 parent caf261b commit 2499159

10 files changed

Lines changed: 707 additions & 0 deletions

.generator/schemas/v2/openapi.yaml

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76342,6 +76342,53 @@ components:
7634276342
required:
7634376343
- status
7634476344
type: object
76345+
SecurityMonitoringRuleConvertBulkAttributes:
76346+
description: Attributes for bulk converting security monitoring rules to Terraform.
76347+
properties:
76348+
ruleIds:
76349+
description: "List of rule IDs to convert. Each rule will be included in the resulting ZIP file\nas a separate Terraform file."
76350+
example:
76351+
- def-000-u7q
76352+
- def-000-7dd
76353+
items:
76354+
description: A rule ID to include in the bulk convert.
76355+
type: string
76356+
minItems: 1
76357+
type: array
76358+
required:
76359+
- ruleIds
76360+
type: object
76361+
SecurityMonitoringRuleConvertBulkData:
76362+
description: Data for bulk converting security monitoring rules to Terraform.
76363+
properties:
76364+
attributes:
76365+
$ref: "#/components/schemas/SecurityMonitoringRuleConvertBulkAttributes"
76366+
id:
76367+
description: Request ID.
76368+
example: convert_bulk
76369+
type: string
76370+
type:
76371+
$ref: "#/components/schemas/SecurityMonitoringRuleConvertBulkDataType"
76372+
required:
76373+
- attributes
76374+
- type
76375+
type: object
76376+
SecurityMonitoringRuleConvertBulkDataType:
76377+
description: The type of the resource.
76378+
enum:
76379+
- security_monitoring_rules_convert_bulk
76380+
example: security_monitoring_rules_convert_bulk
76381+
type: string
76382+
x-enum-varnames:
76383+
- SECURITY_MONITORING_RULES_CONVERT_BULK
76384+
SecurityMonitoringRuleConvertBulkPayload:
76385+
description: Payload for bulk converting security monitoring rules to Terraform.
76386+
properties:
76387+
data:
76388+
$ref: "#/components/schemas/SecurityMonitoringRuleConvertBulkData"
76389+
required:
76390+
- data
76391+
type: object
7634576392
SecurityMonitoringRuleConvertPayload:
7634676393
description: Convert a rule from JSON to Terraform.
7634776394
oneOf:
@@ -153879,6 +153926,63 @@ paths:
153879153926
operator: OR
153880153927
permissions:
153881153928
- security_monitoring_rules_write
153929+
/api/v2/security_monitoring/rules/convert/bulk:
153930+
post:
153931+
description: |-
153932+
Convert a list of existing security monitoring rules to Terraform for the Datadog provider
153933+
resource `datadog_security_monitoring_rule`. Returns a ZIP archive containing one Terraform
153934+
file per rule. You can convert rules for the following types:
153935+
- App and API Protection
153936+
- Cloud SIEM (log detection and signal correlation)
153937+
- Workload Protection
153938+
operationId: BulkConvertExistingSecurityMonitoringRules
153939+
requestBody:
153940+
content:
153941+
"application/json":
153942+
examples:
153943+
default:
153944+
value:
153945+
data:
153946+
attributes:
153947+
ruleIds:
153948+
- def-000-u7q
153949+
- def-000-7dd
153950+
id: convert_bulk
153951+
type: security_monitoring_rules_convert_bulk
153952+
schema:
153953+
$ref: "#/components/schemas/SecurityMonitoringRuleConvertBulkPayload"
153954+
required: true
153955+
responses:
153956+
"200":
153957+
content:
153958+
application/zip:
153959+
examples:
153960+
default:
153961+
value: "<binary zip data>"
153962+
schema:
153963+
format: binary
153964+
type: string
153965+
description: OK
153966+
"400":
153967+
$ref: "#/components/responses/BadRequestResponse"
153968+
"403":
153969+
$ref: "#/components/responses/NotAuthorizedResponse"
153970+
"404":
153971+
$ref: "#/components/responses/NotFoundResponse"
153972+
"429":
153973+
$ref: "#/components/responses/TooManyRequestsResponse"
153974+
security:
153975+
- apiKeyAuth: []
153976+
appKeyAuth: []
153977+
- AuthZ:
153978+
- security_monitoring_rules_read
153979+
summary: Bulk convert rules to Terraform
153980+
tags: ["Security Monitoring"]
153981+
x-codegen-request-body-name: body
153982+
"x-permission":
153983+
operator: OR
153984+
permissions:
153985+
- security_monitoring_rules_read
153882153986
/api/v2/security_monitoring/rules/test:
153883153987
post:
153884153988
description: |-

api/datadogV2/api_security_monitoring.go

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -370,6 +370,83 @@ func (a *SecurityMonitoringApi) BatchGetSecurityMonitoringDatasetDependencies(ct
370370
return localVarReturnValue, localVarHTTPResponse, nil
371371
}
372372

373+
// BulkConvertExistingSecurityMonitoringRules Bulk convert rules to Terraform.
374+
// Convert a list of existing security monitoring rules to Terraform for the Datadog provider
375+
// resource `datadog_security_monitoring_rule`. Returns a ZIP archive containing one Terraform
376+
// file per rule. You can convert rules for the following types:
377+
// - App and API Protection
378+
// - Cloud SIEM (log detection and signal correlation)
379+
// - Workload Protection
380+
func (a *SecurityMonitoringApi) BulkConvertExistingSecurityMonitoringRules(ctx _context.Context, body SecurityMonitoringRuleConvertBulkPayload) (_io.Reader, *_nethttp.Response, error) {
381+
var (
382+
localVarHTTPMethod = _nethttp.MethodPost
383+
localVarPostBody interface{}
384+
localVarReturnValue _io.Reader
385+
)
386+
387+
localBasePath, err := a.Client.Cfg.ServerURLWithContext(ctx, "v2.SecurityMonitoringApi.BulkConvertExistingSecurityMonitoringRules")
388+
if err != nil {
389+
return localVarReturnValue, nil, datadog.GenericOpenAPIError{ErrorMessage: err.Error()}
390+
}
391+
392+
localVarPath := localBasePath + "/api/v2/security_monitoring/rules/convert/bulk"
393+
394+
localVarHeaderParams := make(map[string]string)
395+
localVarQueryParams := _neturl.Values{}
396+
localVarFormParams := _neturl.Values{}
397+
localVarHeaderParams["Content-Type"] = "application/json"
398+
localVarHeaderParams["Accept"] = "application/json"
399+
400+
// body params
401+
localVarPostBody = &body
402+
if a.Client.Cfg.DelegatedTokenConfig != nil {
403+
err = datadog.UseDelegatedTokenAuth(ctx, &localVarHeaderParams, a.Client.Cfg.DelegatedTokenConfig)
404+
if err != nil {
405+
return localVarReturnValue, nil, err
406+
}
407+
} else {
408+
datadog.SetAuthKeys(
409+
ctx,
410+
&localVarHeaderParams,
411+
[2]string{"apiKeyAuth", "DD-API-KEY"},
412+
[2]string{"appKeyAuth", "DD-APPLICATION-KEY"},
413+
)
414+
}
415+
req, err := a.Client.PrepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, nil)
416+
if err != nil {
417+
return localVarReturnValue, nil, err
418+
}
419+
420+
localVarHTTPResponse, err := a.Client.CallAPI(req)
421+
if err != nil || localVarHTTPResponse == nil {
422+
return localVarReturnValue, localVarHTTPResponse, err
423+
}
424+
425+
if localVarHTTPResponse.StatusCode >= 300 {
426+
427+
localVarBody, err := datadog.ReadBody(localVarHTTPResponse)
428+
if err != nil {
429+
return localVarReturnValue, localVarHTTPResponse, err
430+
}
431+
newErr := datadog.GenericOpenAPIError{
432+
ErrorBody: localVarBody,
433+
ErrorMessage: localVarHTTPResponse.Status,
434+
}
435+
if localVarHTTPResponse.StatusCode == 400 || localVarHTTPResponse.StatusCode == 403 || localVarHTTPResponse.StatusCode == 404 || localVarHTTPResponse.StatusCode == 429 {
436+
var v APIErrorResponse
437+
err = a.Client.Decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
438+
if err != nil {
439+
return localVarReturnValue, localVarHTTPResponse, newErr
440+
}
441+
newErr.ErrorModel = v
442+
}
443+
return localVarReturnValue, localVarHTTPResponse, newErr
444+
}
445+
localVarReturnValue = localVarHTTPResponse.Body
446+
447+
return localVarReturnValue, localVarHTTPResponse, nil
448+
}
449+
373450
// BulkCreateSampleLogGenerationSubscriptions Bulk subscribe to sample log generation.
374451
// Subscribe to sample log generation for multiple Cloud SIEM content packs in a single call.
375452
// Each requested content pack is processed independently; the response includes a per-item

api/datadogV2/doc.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -868,6 +868,7 @@
868868
// - [SecurityMonitoringApi.AttachCase]
869869
// - [SecurityMonitoringApi.AttachJiraIssue]
870870
// - [SecurityMonitoringApi.BatchGetSecurityMonitoringDatasetDependencies]
871+
// - [SecurityMonitoringApi.BulkConvertExistingSecurityMonitoringRules]
871872
// - [SecurityMonitoringApi.BulkCreateSampleLogGenerationSubscriptions]
872873
// - [SecurityMonitoringApi.BulkDeleteSecurityMonitoringRules]
873874
// - [SecurityMonitoringApi.BulkEditSecurityMonitoringSignals]
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
// Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
2+
// This product includes software developed at Datadog (https://www.datadoghq.com/).
3+
// Copyright 2019-Present Datadog, Inc.
4+
5+
package datadogV2
6+
7+
import (
8+
"fmt"
9+
10+
"github.com/DataDog/datadog-api-client-go/v2/api/datadog"
11+
)
12+
13+
// SecurityMonitoringRuleConvertBulkAttributes Attributes for bulk converting security monitoring rules to Terraform.
14+
type SecurityMonitoringRuleConvertBulkAttributes struct {
15+
// List of rule IDs to convert. Each rule will be included in the resulting ZIP file
16+
// as a separate Terraform file.
17+
RuleIds []string `json:"ruleIds"`
18+
// UnparsedObject contains the raw value of the object if there was an error when deserializing into the struct
19+
UnparsedObject map[string]interface{} `json:"-"`
20+
AdditionalProperties map[string]interface{} `json:"-"`
21+
}
22+
23+
// NewSecurityMonitoringRuleConvertBulkAttributes instantiates a new SecurityMonitoringRuleConvertBulkAttributes object.
24+
// This constructor will assign default values to properties that have it defined,
25+
// and makes sure properties required by API are set, but the set of arguments
26+
// will change when the set of required properties is changed.
27+
func NewSecurityMonitoringRuleConvertBulkAttributes(ruleIds []string) *SecurityMonitoringRuleConvertBulkAttributes {
28+
this := SecurityMonitoringRuleConvertBulkAttributes{}
29+
this.RuleIds = ruleIds
30+
return &this
31+
}
32+
33+
// NewSecurityMonitoringRuleConvertBulkAttributesWithDefaults instantiates a new SecurityMonitoringRuleConvertBulkAttributes object.
34+
// This constructor will only assign default values to properties that have it defined,
35+
// but it doesn't guarantee that properties required by API are set.
36+
func NewSecurityMonitoringRuleConvertBulkAttributesWithDefaults() *SecurityMonitoringRuleConvertBulkAttributes {
37+
this := SecurityMonitoringRuleConvertBulkAttributes{}
38+
return &this
39+
}
40+
41+
// GetRuleIds returns the RuleIds field value.
42+
func (o *SecurityMonitoringRuleConvertBulkAttributes) GetRuleIds() []string {
43+
if o == nil {
44+
var ret []string
45+
return ret
46+
}
47+
return o.RuleIds
48+
}
49+
50+
// GetRuleIdsOk returns a tuple with the RuleIds field value
51+
// and a boolean to check if the value has been set.
52+
func (o *SecurityMonitoringRuleConvertBulkAttributes) GetRuleIdsOk() (*[]string, bool) {
53+
if o == nil {
54+
return nil, false
55+
}
56+
return &o.RuleIds, true
57+
}
58+
59+
// SetRuleIds sets field value.
60+
func (o *SecurityMonitoringRuleConvertBulkAttributes) SetRuleIds(v []string) {
61+
o.RuleIds = v
62+
}
63+
64+
// MarshalJSON serializes the struct using spec logic.
65+
func (o SecurityMonitoringRuleConvertBulkAttributes) MarshalJSON() ([]byte, error) {
66+
toSerialize := map[string]interface{}{}
67+
if o.UnparsedObject != nil {
68+
return datadog.Marshal(o.UnparsedObject)
69+
}
70+
toSerialize["ruleIds"] = o.RuleIds
71+
72+
for key, value := range o.AdditionalProperties {
73+
toSerialize[key] = value
74+
}
75+
return datadog.Marshal(toSerialize)
76+
}
77+
78+
// UnmarshalJSON deserializes the given payload.
79+
func (o *SecurityMonitoringRuleConvertBulkAttributes) UnmarshalJSON(bytes []byte) (err error) {
80+
all := struct {
81+
RuleIds *[]string `json:"ruleIds"`
82+
}{}
83+
if err = datadog.Unmarshal(bytes, &all); err != nil {
84+
return datadog.Unmarshal(bytes, &o.UnparsedObject)
85+
}
86+
if all.RuleIds == nil {
87+
return fmt.Errorf("required field ruleIds missing")
88+
}
89+
additionalProperties := make(map[string]interface{})
90+
if err = datadog.UnmarshalUseNumber(bytes, &additionalProperties); err == nil {
91+
datadog.DeleteKeys(additionalProperties, &[]string{"ruleIds"})
92+
} else {
93+
return err
94+
}
95+
o.RuleIds = *all.RuleIds
96+
97+
if len(additionalProperties) > 0 {
98+
o.AdditionalProperties = additionalProperties
99+
}
100+
101+
return nil
102+
}

0 commit comments

Comments
 (0)