Skip to content
Merged
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
871 changes: 867 additions & 4 deletions .generator/schemas/v2/openapi.yaml

Large diffs are not rendered by default.

547 changes: 275 additions & 272 deletions api/datadog/configuration.go

Large diffs are not rendered by default.

267 changes: 267 additions & 0 deletions api/datadogV2/api_security_monitoring.go
Original file line number Diff line number Diff line change
Expand Up @@ -525,6 +525,91 @@ func (a *SecurityMonitoringApi) BulkExportSecurityMonitoringRules(ctx _context.C
return localVarReturnValue, localVarHTTPResponse, nil
}

// BulkExportSecurityMonitoringTerraformResources Export security monitoring resources to Terraform.
// Export multiple security monitoring resources to Terraform, packaged as a zip archive.
// The `resource_type` path parameter specifies the type of resources to export
// and must be one of `suppressions` or `critical_assets`.
// A maximum of 1000 resources can be exported in a single request.
func (a *SecurityMonitoringApi) BulkExportSecurityMonitoringTerraformResources(ctx _context.Context, resourceType SecurityMonitoringTerraformResourceType, body SecurityMonitoringTerraformBulkExportRequest) (_io.Reader, *_nethttp.Response, error) {
var (
localVarHTTPMethod = _nethttp.MethodPost
localVarPostBody interface{}
localVarReturnValue _io.Reader
)

operationId := "v2.BulkExportSecurityMonitoringTerraformResources"
isOperationEnabled := a.Client.Cfg.IsUnstableOperationEnabled(operationId)
if !isOperationEnabled {
return localVarReturnValue, nil, datadog.GenericOpenAPIError{ErrorMessage: _fmt.Sprintf("Unstable operation '%s' is disabled", operationId)}
}
if isOperationEnabled && a.Client.Cfg.Debug {
_log.Printf("WARNING: Using unstable operation '%s'", operationId)
}

localBasePath, err := a.Client.Cfg.ServerURLWithContext(ctx, "v2.SecurityMonitoringApi.BulkExportSecurityMonitoringTerraformResources")
if err != nil {
return localVarReturnValue, nil, datadog.GenericOpenAPIError{ErrorMessage: err.Error()}
}

localVarPath := localBasePath + "/api/v2/security_monitoring/terraform/{resource_type}/bulk"
localVarPath = datadog.ReplacePathParameter(localVarPath, "{resource_type}", _neturl.PathEscape(datadog.ParameterToString(resourceType, "")))

localVarHeaderParams := make(map[string]string)
localVarQueryParams := _neturl.Values{}
localVarFormParams := _neturl.Values{}
localVarHeaderParams["Content-Type"] = "application/json"
localVarHeaderParams["Accept"] = "application/json"

// body params
localVarPostBody = &body
if a.Client.Cfg.DelegatedTokenConfig != nil {
err = datadog.UseDelegatedTokenAuth(ctx, &localVarHeaderParams, a.Client.Cfg.DelegatedTokenConfig)
if err != nil {
return localVarReturnValue, nil, err
}
} else {
datadog.SetAuthKeys(
ctx,
&localVarHeaderParams,
[2]string{"apiKeyAuth", "DD-API-KEY"},
[2]string{"appKeyAuth", "DD-APPLICATION-KEY"},
)
}
req, err := a.Client.PrepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, nil)
if err != nil {
return localVarReturnValue, nil, err
}

localVarHTTPResponse, err := a.Client.CallAPI(req)
if err != nil || localVarHTTPResponse == nil {
return localVarReturnValue, localVarHTTPResponse, err
}

if localVarHTTPResponse.StatusCode >= 300 {

localVarBody, err := datadog.ReadBody(localVarHTTPResponse)
if err != nil {
return localVarReturnValue, localVarHTTPResponse, err
}
newErr := datadog.GenericOpenAPIError{
ErrorBody: localVarBody,
ErrorMessage: localVarHTTPResponse.Status,
}
if localVarHTTPResponse.StatusCode == 400 || localVarHTTPResponse.StatusCode == 403 || localVarHTTPResponse.StatusCode == 404 || localVarHTTPResponse.StatusCode == 429 {
var v APIErrorResponse
err = a.Client.Decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
return localVarReturnValue, localVarHTTPResponse, newErr
}
newErr.ErrorModel = v
}
return localVarReturnValue, localVarHTTPResponse, newErr
}
localVarReturnValue = localVarHTTPResponse.Body

return localVarReturnValue, localVarHTTPResponse, nil
}

// CancelThreatHuntingJob Cancel a threat hunting job.
// Cancel a threat hunting job.
func (a *SecurityMonitoringApi) CancelThreatHuntingJob(ctx _context.Context, jobId string) (*_nethttp.Response, error) {
Expand Down Expand Up @@ -851,6 +936,98 @@ func (a *SecurityMonitoringApi) ConvertSecurityMonitoringRuleFromJSONToTerraform
return localVarReturnValue, localVarHTTPResponse, nil
}

// ConvertSecurityMonitoringTerraformResource Convert security monitoring resource to Terraform.
// Convert a security monitoring resource that doesn't (yet) exist from JSON to Terraform.
// The `resource_type` path parameter specifies the type of resource to convert
// and must be one of `suppressions` or `critical_assets`.
func (a *SecurityMonitoringApi) ConvertSecurityMonitoringTerraformResource(ctx _context.Context, resourceType SecurityMonitoringTerraformResourceType, body SecurityMonitoringTerraformConvertRequest) (SecurityMonitoringTerraformExportResponse, *_nethttp.Response, error) {
var (
localVarHTTPMethod = _nethttp.MethodPost
localVarPostBody interface{}
localVarReturnValue SecurityMonitoringTerraformExportResponse
)

operationId := "v2.ConvertSecurityMonitoringTerraformResource"
isOperationEnabled := a.Client.Cfg.IsUnstableOperationEnabled(operationId)
if !isOperationEnabled {
return localVarReturnValue, nil, datadog.GenericOpenAPIError{ErrorMessage: _fmt.Sprintf("Unstable operation '%s' is disabled", operationId)}
}
if isOperationEnabled && a.Client.Cfg.Debug {
_log.Printf("WARNING: Using unstable operation '%s'", operationId)
}

localBasePath, err := a.Client.Cfg.ServerURLWithContext(ctx, "v2.SecurityMonitoringApi.ConvertSecurityMonitoringTerraformResource")
if err != nil {
return localVarReturnValue, nil, datadog.GenericOpenAPIError{ErrorMessage: err.Error()}
}

localVarPath := localBasePath + "/api/v2/security_monitoring/terraform/{resource_type}/convert"
localVarPath = datadog.ReplacePathParameter(localVarPath, "{resource_type}", _neturl.PathEscape(datadog.ParameterToString(resourceType, "")))

localVarHeaderParams := make(map[string]string)
localVarQueryParams := _neturl.Values{}
localVarFormParams := _neturl.Values{}
localVarHeaderParams["Content-Type"] = "application/json"
localVarHeaderParams["Accept"] = "application/json"

// body params
localVarPostBody = &body
if a.Client.Cfg.DelegatedTokenConfig != nil {
err = datadog.UseDelegatedTokenAuth(ctx, &localVarHeaderParams, a.Client.Cfg.DelegatedTokenConfig)
if err != nil {
return localVarReturnValue, nil, err
}
} else {
datadog.SetAuthKeys(
ctx,
&localVarHeaderParams,
[2]string{"apiKeyAuth", "DD-API-KEY"},
[2]string{"appKeyAuth", "DD-APPLICATION-KEY"},
)
}
req, err := a.Client.PrepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, nil)
if err != nil {
return localVarReturnValue, nil, err
}

localVarHTTPResponse, err := a.Client.CallAPI(req)
if err != nil || localVarHTTPResponse == nil {
return localVarReturnValue, localVarHTTPResponse, err
}

localVarBody, err := datadog.ReadBody(localVarHTTPResponse)
if err != nil {
return localVarReturnValue, localVarHTTPResponse, err
}

if localVarHTTPResponse.StatusCode >= 300 {
newErr := datadog.GenericOpenAPIError{
ErrorBody: localVarBody,
ErrorMessage: localVarHTTPResponse.Status,
}
if localVarHTTPResponse.StatusCode == 400 || localVarHTTPResponse.StatusCode == 403 || localVarHTTPResponse.StatusCode == 429 {
var v APIErrorResponse
err = a.Client.Decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
return localVarReturnValue, localVarHTTPResponse, newErr
}
newErr.ErrorModel = v
}
return localVarReturnValue, localVarHTTPResponse, newErr
}

err = a.Client.Decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr := datadog.GenericOpenAPIError{
ErrorBody: localVarBody,
ErrorMessage: err.Error(),
}
return localVarReturnValue, localVarHTTPResponse, newErr
}

return localVarReturnValue, localVarHTTPResponse, nil
}

// CreateCases Create cases for security findings.
// Create cases for security findings.
// You can create up to 50 cases per request and associate up to 50 security findings per case. Security findings that are already attached to another case will be detached from their previous case and attached to the newly created case.
Expand Down Expand Up @@ -2541,6 +2718,96 @@ func (a *SecurityMonitoringApi) EditSecurityMonitoringSignalState(ctx _context.C
return localVarReturnValue, localVarHTTPResponse, nil
}

// ExportSecurityMonitoringTerraformResource Export security monitoring resource to Terraform.
// Export a security monitoring resource to a Terraform configuration.
// The `resource_type` path parameter specifies the type of resource to export
// and must be one of `suppressions` or `critical_assets`.
func (a *SecurityMonitoringApi) ExportSecurityMonitoringTerraformResource(ctx _context.Context, resourceType SecurityMonitoringTerraformResourceType, resourceId string) (SecurityMonitoringTerraformExportResponse, *_nethttp.Response, error) {
var (
localVarHTTPMethod = _nethttp.MethodGet
localVarPostBody interface{}
localVarReturnValue SecurityMonitoringTerraformExportResponse
)

operationId := "v2.ExportSecurityMonitoringTerraformResource"
isOperationEnabled := a.Client.Cfg.IsUnstableOperationEnabled(operationId)
if !isOperationEnabled {
return localVarReturnValue, nil, datadog.GenericOpenAPIError{ErrorMessage: _fmt.Sprintf("Unstable operation '%s' is disabled", operationId)}
}
if isOperationEnabled && a.Client.Cfg.Debug {
_log.Printf("WARNING: Using unstable operation '%s'", operationId)
}

localBasePath, err := a.Client.Cfg.ServerURLWithContext(ctx, "v2.SecurityMonitoringApi.ExportSecurityMonitoringTerraformResource")
if err != nil {
return localVarReturnValue, nil, datadog.GenericOpenAPIError{ErrorMessage: err.Error()}
}

localVarPath := localBasePath + "/api/v2/security_monitoring/terraform/{resource_type}/{resource_id}"
localVarPath = datadog.ReplacePathParameter(localVarPath, "{resource_type}", _neturl.PathEscape(datadog.ParameterToString(resourceType, "")))
localVarPath = datadog.ReplacePathParameter(localVarPath, "{resource_id}", _neturl.PathEscape(datadog.ParameterToString(resourceId, "")))

localVarHeaderParams := make(map[string]string)
localVarQueryParams := _neturl.Values{}
localVarFormParams := _neturl.Values{}
localVarHeaderParams["Accept"] = "application/json"

if a.Client.Cfg.DelegatedTokenConfig != nil {
err = datadog.UseDelegatedTokenAuth(ctx, &localVarHeaderParams, a.Client.Cfg.DelegatedTokenConfig)
if err != nil {
return localVarReturnValue, nil, err
}
} else {
datadog.SetAuthKeys(
ctx,
&localVarHeaderParams,
[2]string{"apiKeyAuth", "DD-API-KEY"},
[2]string{"appKeyAuth", "DD-APPLICATION-KEY"},
)
}
req, err := a.Client.PrepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, nil)
if err != nil {
return localVarReturnValue, nil, err
}

localVarHTTPResponse, err := a.Client.CallAPI(req)
if err != nil || localVarHTTPResponse == nil {
return localVarReturnValue, localVarHTTPResponse, err
}

localVarBody, err := datadog.ReadBody(localVarHTTPResponse)
if err != nil {
return localVarReturnValue, localVarHTTPResponse, err
}

if localVarHTTPResponse.StatusCode >= 300 {
newErr := datadog.GenericOpenAPIError{
ErrorBody: localVarBody,
ErrorMessage: localVarHTTPResponse.Status,
}
if localVarHTTPResponse.StatusCode == 403 || localVarHTTPResponse.StatusCode == 404 || localVarHTTPResponse.StatusCode == 429 {
var v APIErrorResponse
err = a.Client.Decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
return localVarReturnValue, localVarHTTPResponse, newErr
}
newErr.ErrorModel = v
}
return localVarReturnValue, localVarHTTPResponse, newErr
}

err = a.Client.Decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr := datadog.GenericOpenAPIError{
ErrorBody: localVarBody,
ErrorMessage: err.Error(),
}
return localVarReturnValue, localVarHTTPResponse, newErr
}

return localVarReturnValue, localVarHTTPResponse, nil
}

// GetContentPacksStates Get content pack states.
// Get the activation and configuration states for all security monitoring content packs.
// This endpoint returns status information about each content pack including activation state,
Expand Down
3 changes: 3 additions & 0 deletions api/datadogV2/doc.go
Original file line number Diff line number Diff line change
Expand Up @@ -734,10 +734,12 @@
// - [SecurityMonitoringApi.BulkEditSecurityMonitoringSignalsAssignee]
// - [SecurityMonitoringApi.BulkEditSecurityMonitoringSignalsState]
// - [SecurityMonitoringApi.BulkExportSecurityMonitoringRules]
// - [SecurityMonitoringApi.BulkExportSecurityMonitoringTerraformResources]
// - [SecurityMonitoringApi.CancelThreatHuntingJob]
// - [SecurityMonitoringApi.ConvertExistingSecurityMonitoringRule]
// - [SecurityMonitoringApi.ConvertJobResultToSignal]
// - [SecurityMonitoringApi.ConvertSecurityMonitoringRuleFromJSONToTerraform]
// - [SecurityMonitoringApi.ConvertSecurityMonitoringTerraformResource]
// - [SecurityMonitoringApi.CreateCases]
// - [SecurityMonitoringApi.CreateCustomFramework]
// - [SecurityMonitoringApi.CreateJiraIssues]
Expand All @@ -760,6 +762,7 @@
// - [SecurityMonitoringApi.EditSecurityMonitoringSignalAssignee]
// - [SecurityMonitoringApi.EditSecurityMonitoringSignalIncidents]
// - [SecurityMonitoringApi.EditSecurityMonitoringSignalState]
// - [SecurityMonitoringApi.ExportSecurityMonitoringTerraformResource]
// - [SecurityMonitoringApi.GetContentPacksStates]
// - [SecurityMonitoringApi.GetCriticalAssetsAffectingRule]
// - [SecurityMonitoringApi.GetCustomFramework]
Expand Down
76 changes: 76 additions & 0 deletions api/datadogV2/model_apm_dependency_stat_name.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
// 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 2019-Present Datadog, Inc.

package datadogV2

import (
"fmt"

"github.com/DataDog/datadog-api-client-go/v2/api/datadog"
)

// ApmDependencyStatName The APM dependency statistic to query.
type ApmDependencyStatName string

// List of ApmDependencyStatName.
const (
APMDEPENDENCYSTATNAME_AVG_DURATION ApmDependencyStatName = "avg_duration"
APMDEPENDENCYSTATNAME_AVG_ROOT_DURATION ApmDependencyStatName = "avg_root_duration"
APMDEPENDENCYSTATNAME_AVG_SPANS_PER_TRACE ApmDependencyStatName = "avg_spans_per_trace"
APMDEPENDENCYSTATNAME_ERROR_RATE ApmDependencyStatName = "error_rate"
APMDEPENDENCYSTATNAME_PCT_EXEC_TIME ApmDependencyStatName = "pct_exec_time"
APMDEPENDENCYSTATNAME_PCT_OF_TRACES ApmDependencyStatName = "pct_of_traces"
APMDEPENDENCYSTATNAME_TOTAL_TRACES_COUNT ApmDependencyStatName = "total_traces_count"
)

var allowedApmDependencyStatNameEnumValues = []ApmDependencyStatName{
APMDEPENDENCYSTATNAME_AVG_DURATION,
APMDEPENDENCYSTATNAME_AVG_ROOT_DURATION,
APMDEPENDENCYSTATNAME_AVG_SPANS_PER_TRACE,
APMDEPENDENCYSTATNAME_ERROR_RATE,
APMDEPENDENCYSTATNAME_PCT_EXEC_TIME,
APMDEPENDENCYSTATNAME_PCT_OF_TRACES,
APMDEPENDENCYSTATNAME_TOTAL_TRACES_COUNT,
}

// GetAllowedValues reeturns the list of possible values.
func (v *ApmDependencyStatName) GetAllowedValues() []ApmDependencyStatName {
return allowedApmDependencyStatNameEnumValues
}

// UnmarshalJSON deserializes the given payload.
func (v *ApmDependencyStatName) UnmarshalJSON(src []byte) error {
var value string
err := datadog.Unmarshal(src, &value)
if err != nil {
return err
}
*v = ApmDependencyStatName(value)
return nil
}

// NewApmDependencyStatNameFromValue returns a pointer to a valid ApmDependencyStatName
// for the value passed as argument, or an error if the value passed is not allowed by the enum.
func NewApmDependencyStatNameFromValue(v string) (*ApmDependencyStatName, error) {
ev := ApmDependencyStatName(v)
if ev.IsValid() {
return &ev, nil
}
return nil, fmt.Errorf("invalid value '%v' for ApmDependencyStatName: valid values are %v", v, allowedApmDependencyStatNameEnumValues)
}

// IsValid return true if the value is valid for the enum, false otherwise.
func (v ApmDependencyStatName) IsValid() bool {
for _, existing := range allowedApmDependencyStatNameEnumValues {
if existing == v {
return true
}
}
return false
}

// Ptr returns reference to ApmDependencyStatName value.
func (v ApmDependencyStatName) Ptr() *ApmDependencyStatName {
return &v
}
Loading
Loading