PUT https://api.ap1.datadoghq.com/api/v2/cloud_security_management/custom_frameworks/{handle}/{version} https://api.ap2.datadoghq.com/api/v2/cloud_security_management/custom_frameworks/{handle}/{version} https://api.datadoghq.eu/api/v2/cloud_security_management/custom_frameworks/{handle}/{version} https://api.ddog-gov.com/api/v2/cloud_security_management/custom_frameworks/{handle}/{version} https://api.us2.ddog-gov.com/api/v2/cloud_security_management/custom_frameworks/{handle}/{version} https://api.datadoghq.com/api/v2/cloud_security_management/custom_frameworks/{handle}/{version} https://api.us3.datadoghq.com/api/v2/cloud_security_management/custom_frameworks/{handle}/{version} https://api.us5.datadoghq.com/api/v2/cloud_security_management/custom_frameworks/{handle}/{version}
Overview Update a custom framework.
This endpoint requires
all
of the following permissions:
security_monitoring_rules_readsecurity_monitoring_rules_writeOAuth apps require the security_monitoring_rules_read, security_monitoring_rules_write authorization scope to access this endpoint.
Arguments Path Parameters Request Body Data (required)
Expand All
Contains type and attributes for custom frameworks.
Framework Data Attributes.
The type of the resource. The value must be custom_framework.
Allowed enum values: custom_framework
default: custom_framework
{
"data" : {
"type" : "custom_framework" ,
"attributes" : {
"name" : "name" ,
"handle" : "create-framework-new" ,
"version" : "10" ,
"icon_url" : "test-url" ,
"requirements" : [
{
"name" : "requirement" ,
"controls" : [
{
"name" : "control" ,
"rules_id" : [
"def-000-be9"
]
}
]
}
]
}
}
} Response OK
Response object to update a custom framework.
Expand All
Contains type and attributes for custom frameworks.
Framework Handle and Version.
The ID of the custom framework.
The type of the resource. The value must be custom_framework.
Allowed enum values: custom_framework
default: custom_framework
{
"data" : {
"attributes" : {
"handle" : "sec2" ,
"version" : "2"
},
"id" : "handle-version" ,
"type" : "custom_framework"
}
} Bad Request
{
"errors" : [
"Bad Request"
]
} Too many requests
{
"errors" : [
"Bad Request"
]
} Bad Request
{
"errors" : [
"Bad Request"
]
} Code Example Copy
## default
#
# Path parameters export handle = "CHANGE_ME" export version = "CHANGE_ME" # Curl command curl -X PUT "https://api.ap1.datadoghq.com "https://api.ap2.datadoghq.com "https://api.datadoghq.eu "https://api.ddog-gov.com "https://api.us2.ddog-gov.com "https://api.datadoghq.com "https://api.us3.datadoghq.com "https://api.us5.datadoghq.com /api/v2/cloud_security_management/custom_frameworks/${handle}/${version} " \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "DD-API-KEY: ${DD_API_KEY} " \
-H "DD-APPLICATION-KEY: ${DD_APP_KEY} " \
-d @- << EOF
{
"data": {
"attributes": {
"handle": "sec2",
"name": "security-framework",
"requirements": [
{
"controls": [
{
"name": "control",
"rules_id": [
"def-000-be9"
]
}
],
"name": "criteria"
}
],
"version": "2"
},
"type": "custom_framework"
}
}
EOF
// Update a custom framework 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 . UpdateCustomFrameworkRequest {
Data : datadogV2 . CustomFrameworkData {
Type : datadogV2 . CUSTOMFRAMEWORKTYPE_CUSTOM_FRAMEWORK ,
Attributes : datadogV2 . CustomFrameworkDataAttributes {
Name : "name" ,
Handle : "create-framework-new" ,
Version : "10" ,
IconUrl : datadog . PtrString ( "test-url" ),
Requirements : [] datadogV2 . CustomFrameworkRequirement {
{
Name : "requirement" ,
Controls : [] datadogV2 . CustomFrameworkControl {
{
Name : "control" ,
RulesId : [] string {
"def-000-be9" ,
},
},
},
},
},
},
},
}
ctx := datadog . NewDefaultContext ( context . Background ())
configuration := datadog . NewConfiguration ()
apiClient := datadog . NewAPIClient ( configuration )
api := datadogV2 . NewSecurityMonitoringApi ( apiClient )
resp , r , err := api . UpdateCustomFramework ( ctx , "create-framework-new" , "10" , body )
if err != nil {
fmt . Fprintf ( os . Stderr , "Error when calling `SecurityMonitoringApi.UpdateCustomFramework`: %v\n" , err )
fmt . Fprintf ( os . Stderr , "Full HTTP response: %v\n" , r )
}
responseContent , _ := json . MarshalIndent ( resp , "" , " " )
fmt . Fprintf ( os . Stdout , "Response from `SecurityMonitoringApi.UpdateCustomFramework`:\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 us3.datadoghq.com us5.datadoghq.com datadoghq.eu ap1.datadoghq.com ap2.datadoghq.com ddog-gov.com us2.ddog-gov.com " DD_API_KEY = "<DD_API_KEY>" DD_APP_KEY = "<DD_APP_KEY>" go run "main.go"
// Update a custom framework 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.CustomFrameworkControl ;
import com.datadog.api.client.v2.model.CustomFrameworkData ;
import com.datadog.api.client.v2.model.CustomFrameworkDataAttributes ;
import com.datadog.api.client.v2.model.CustomFrameworkRequirement ;
import com.datadog.api.client.v2.model.CustomFrameworkType ;
import com.datadog.api.client.v2.model.UpdateCustomFrameworkRequest ;
import com.datadog.api.client.v2.model.UpdateCustomFrameworkResponse ;
import java.util.Collections ;
public class Example {
public static void main ( String [] args ) {
ApiClient defaultClient = ApiClient . getDefaultApiClient ();
SecurityMonitoringApi apiInstance = new SecurityMonitoringApi ( defaultClient );
UpdateCustomFrameworkRequest body =
new UpdateCustomFrameworkRequest ()
. data (
new CustomFrameworkData ()
. type ( CustomFrameworkType . CUSTOM_FRAMEWORK )
. attributes (
new CustomFrameworkDataAttributes ()
. name ( "name" )
. handle ( "create-framework-new" )
. version ( "10" )
. iconUrl ( "test-url" )
. requirements (
Collections . singletonList (
new CustomFrameworkRequirement ()
. name ( "requirement" )
. controls (
Collections . singletonList (
new CustomFrameworkControl ()
. name ( "control" )
. rulesId (
Collections . singletonList (
"def-000-be9" ))))))));
try {
UpdateCustomFrameworkResponse result =
apiInstance . updateCustomFramework ( "create-framework-new" , "10" , body );
System . out . println ( result );
} catch ( ApiException e ) {
System . err . println ( "Exception when calling SecurityMonitoringApi#updateCustomFramework" );
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 us3.datadoghq.com us5.datadoghq.com datadoghq.eu ap1.datadoghq.com ap2.datadoghq.com ddog-gov.com us2.ddog-gov.com " DD_API_KEY = "<DD_API_KEY>" DD_APP_KEY = "<DD_APP_KEY>" java "Example.java"
"""
Update a custom framework returns "OK" response
"""
from datadog_api_client import ApiClient , Configuration
from datadog_api_client.v2.api.security_monitoring_api import SecurityMonitoringApi
from datadog_api_client.v2.model.custom_framework_control import CustomFrameworkControl
from datadog_api_client.v2.model.custom_framework_data import CustomFrameworkData
from datadog_api_client.v2.model.custom_framework_data_attributes import CustomFrameworkDataAttributes
from datadog_api_client.v2.model.custom_framework_requirement import CustomFrameworkRequirement
from datadog_api_client.v2.model.custom_framework_type import CustomFrameworkType
from datadog_api_client.v2.model.update_custom_framework_request import UpdateCustomFrameworkRequest
body = UpdateCustomFrameworkRequest (
data = CustomFrameworkData (
type = CustomFrameworkType . CUSTOM_FRAMEWORK ,
attributes = CustomFrameworkDataAttributes (
name = "name" ,
handle = "create-framework-new" ,
version = "10" ,
icon_url = "test-url" ,
requirements = [
CustomFrameworkRequirement (
name = "requirement" ,
controls = [
CustomFrameworkControl (
name = "control" ,
rules_id = [
"def-000-be9" ,
],
),
],
),
],
),
),
)
configuration = Configuration ()
with ApiClient ( configuration ) as api_client :
api_instance = SecurityMonitoringApi ( api_client )
response = api_instance . update_custom_framework ( handle = "create-framework-new" , version = "10" , 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 us3.datadoghq.com us5.datadoghq.com datadoghq.eu ap1.datadoghq.com ap2.datadoghq.com ddog-gov.com us2.ddog-gov.com " DD_API_KEY = "<DD_API_KEY>" DD_APP_KEY = "<DD_APP_KEY>" python3 "example.py"
# Update a custom framework returns "OK" response
require "datadog_api_client"
api_instance = DatadogAPIClient :: V2 :: SecurityMonitoringAPI . new
body = DatadogAPIClient :: V2 :: UpdateCustomFrameworkRequest . new ({
data : DatadogAPIClient :: V2 :: CustomFrameworkData . new ({
type : DatadogAPIClient :: V2 :: CustomFrameworkType :: CUSTOM_FRAMEWORK ,
attributes : DatadogAPIClient :: V2 :: CustomFrameworkDataAttributes . new ({
name : "name" ,
handle : "create-framework-new" ,
version : "10" ,
icon_url : "test-url" ,
requirements : [
DatadogAPIClient :: V2 :: CustomFrameworkRequirement . new ({
name : "requirement" ,
controls : [
DatadogAPIClient :: V2 :: CustomFrameworkControl . new ({
name : "control" ,
rules_id : [
"def-000-be9" ,
] ,
}),
] ,
}),
] ,
}),
}),
})
p api_instance . update_custom_framework ( "create-framework-new" , "10" , 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 us3.datadoghq.com us5.datadoghq.com datadoghq.eu ap1.datadoghq.com ap2.datadoghq.com ddog-gov.com us2.ddog-gov.com " DD_API_KEY = "<DD_API_KEY>" DD_APP_KEY = "<DD_APP_KEY>" rb "example.rb"
// Update a custom framework returns "OK" response
use datadog_api_client ::datadog ;
use datadog_api_client ::datadogV2 ::api_security_monitoring ::SecurityMonitoringAPI ;
use datadog_api_client ::datadogV2 ::model ::CustomFrameworkControl ;
use datadog_api_client ::datadogV2 ::model ::CustomFrameworkData ;
use datadog_api_client ::datadogV2 ::model ::CustomFrameworkDataAttributes ;
use datadog_api_client ::datadogV2 ::model ::CustomFrameworkRequirement ;
use datadog_api_client ::datadogV2 ::model ::CustomFrameworkType ;
use datadog_api_client ::datadogV2 ::model ::UpdateCustomFrameworkRequest ;
#[tokio::main]
async fn main () {
let body = UpdateCustomFrameworkRequest ::new ( CustomFrameworkData ::new (
CustomFrameworkDataAttributes ::new (
"create-framework-new" . to_string (),
"name" . to_string (),
vec! [ CustomFrameworkRequirement ::new (
vec! [ CustomFrameworkControl ::new (
"control" . to_string (),
vec! [ "def-000-be9" . to_string ()],
)],
"requirement" . to_string (),
)],
"10" . to_string (),
)
. icon_url ( "test-url" . to_string ()),
CustomFrameworkType ::CUSTOM_FRAMEWORK ,
));
let configuration = datadog ::Configuration ::new ();
let api = SecurityMonitoringAPI ::with_config ( configuration );
let resp = api
. update_custom_framework ( "create-framework-new" . to_string (), "10" . to_string (), 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 us3.datadoghq.com us5.datadoghq.com datadoghq.eu ap1.datadoghq.com ap2.datadoghq.com ddog-gov.com us2.ddog-gov.com " DD_API_KEY = "<DD_API_KEY>" DD_APP_KEY = "<DD_APP_KEY>" cargo run
/**
* Update a custom framework returns "OK" response
*/
import { client , v2 } from "@datadog/datadog-api-client" ;
const configuration = client . createConfiguration ();
const apiInstance = new v2 . SecurityMonitoringApi ( configuration );
const params : v2.SecurityMonitoringApiUpdateCustomFrameworkRequest = {
body : {
data : {
type : "custom_framework" ,
attributes : {
name : "name" ,
handle : "create-framework-new" ,
version : "10" ,
iconUrl : "test-url" ,
requirements : [
{
name : "requirement" ,
controls : [
{
name : "control" ,
rulesId : [ "def-000-be9" ],
},
],
},
],
},
},
},
handle : "create-framework-new" ,
version : "10" ,
};
apiInstance
. updateCustomFramework ( params )
. then (( data : v2.UpdateCustomFrameworkResponse ) => {
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 us3.datadoghq.com us5.datadoghq.com datadoghq.eu ap1.datadoghq.com ap2.datadoghq.com ddog-gov.com us2.ddog-gov.com " DD_API_KEY = "<DD_API_KEY>" DD_APP_KEY = "<DD_APP_KEY>" tsc "example.ts"