Note : This endpoint is in Preview and is subject to change.
If you have any feedback, contact Datadog support .
PATCH https://api.ap1.datadoghq.com/api/v2/usage/quotas/{quota_namespace}/{id} https://api.ap2.datadoghq.com/api/v2/usage/quotas/{quota_namespace}/{id} https://api.datadoghq.eu/api/v2/usage/quotas/{quota_namespace}/{id} https://api.ddog-gov.com/api/v2/usage/quotas/{quota_namespace}/{id} https://api.us2.ddog-gov.com/api/v2/usage/quotas/{quota_namespace}/{id} https://api.uk1.datadoghq.com/api/v2/usage/quotas/{quota_namespace}/{id} https://api.datadoghq.com/api/v2/usage/quotas/{quota_namespace}/{id} https://api.us3.datadoghq.com/api/v2/usage/quotas/{quota_namespace}/{id} https://api.us5.datadoghq.com/api/v2/usage/quotas/{quota_namespace}/{id}
Descripción general Updates the supplied fields on a usage quota and leaves omitted fields unchanged. The quota must belong to the caller’s organization or one of its descendants, and its opaque identifier must belong to the requested quota namespace. Requires the billing_edit permission.
This endpoint requires the billing_edit permission.
OAuth apps require the billing_edit authorization scope to access this endpoint.
Argumentos Parámetros de ruta quota_namespace [required ]
The product-specific namespace whose usage quotas are being managed.
The opaque quota identifier returned by a previous list or create request. Clients must pass this value verbatim.
Solicitud Body Data (required) The usage quota fields to update. Omitting an attribute leaves its current value unchanged.
Expand All
A usage quota resource to update.
Attributes to update on a usage quota. Omitting a property leaves its current value unchanged.
Whether to actively block usage above the limit. Omit this field to leave the current enforcement setting unchanged.
The new quota limit in the usage units defined by the quota namespace. For an organization-wide quota (empty scope), the limit must be greater than the usage already recorded in the current period. Omit this field to leave the current limit unchanged.
The opaque usage quota identifier, which must match the identifier in the request path.
The JSON:API resource type for a usage quota.
Allowed enum values: quotas
{
"data" : {
"attributes" : {
"enforced" : false ,
"usage_limit" : 120000
},
"id" : "MjAfYWlfY3JlZGl0c1911c2VyX2hhbmRsZTpfX0FMTF9f" ,
"type" : "quotas"
}
} Respuesta OK
Response containing a usage quota.
Expand All
Attributes of a usage quota.
Whether usage above the limit is actively blocked instead of only tracked or alerted on.
The public ID of the organization that owns the quota.
A namespace-specific key and value identifying what the quota applies to within an organization. The object contains exactly one entry. A value of "*" identifies the default quota applied to entities without a specific quota. This field is omitted for an organization-wide quota.
The quota limit in the usage units defined by the quota namespace. May be fractional for quotas configured before public writes required whole units.
An opaque usage quota identifier. Clients must pass this value back verbatim in update and delete requests and must not infer any structure from it.
The JSON:API resource type for a usage quota.
Allowed enum values: quotas
{
"data" : {
"attributes" : {
"enforced" : true ,
"org_public_id" : "abcdef12345" ,
"scope" : {
"<any-key>" : "jane@example.com"
},
"usage_limit" : 100000
},
"id" : "MjAfYWlfY3JlZGl0c1911c2VyX2hhbmRsZTpfX0FMTF9f" ,
"type" : "quotas"
}
} Bad Request. Returned if the request is malformed, or if the `id` in the request body does not match the `id` in the request path.
API error response.
Expand All
A human-readable explanation specific to this occurrence of the error.
Non-standard meta-information about the error
References to the source of the error.
A string indicating the name of a single request header which caused the error.
A string indicating which URI query parameter caused the error.
A JSON pointer to the value in the request document that caused the error.
Status code of the response.
Short human-readable summary of the error.
{
"errors" : [
{
"detail" : "Missing required attribute in body" ,
"meta" : {},
"source" : {
"header" : "Authorization" ,
"parameter" : "limit" ,
"pointer" : "/data/attributes/title"
},
"status" : "400" ,
"title" : "Bad Request"
}
]
} Forbidden
API error response.
Expand All
A human-readable explanation specific to this occurrence of the error.
Non-standard meta-information about the error
References to the source of the error.
A string indicating the name of a single request header which caused the error.
A string indicating which URI query parameter caused the error.
A JSON pointer to the value in the request document that caused the error.
Status code of the response.
Short human-readable summary of the error.
{
"errors" : [
{
"detail" : "Missing required attribute in body" ,
"meta" : {},
"source" : {
"header" : "Authorization" ,
"parameter" : "limit" ,
"pointer" : "/data/attributes/title"
},
"status" : "400" ,
"title" : "Bad Request"
}
]
} Not Found
API error response.
Expand All
A human-readable explanation specific to this occurrence of the error.
Non-standard meta-information about the error
References to the source of the error.
A string indicating the name of a single request header which caused the error.
A string indicating which URI query parameter caused the error.
A JSON pointer to the value in the request document that caused the error.
Status code of the response.
Short human-readable summary of the error.
{
"errors" : [
{
"detail" : "Missing required attribute in body" ,
"meta" : {},
"source" : {
"header" : "Authorization" ,
"parameter" : "limit" ,
"pointer" : "/data/attributes/title"
},
"status" : "400" ,
"title" : "Bad Request"
}
]
} Too many requests
{
"errors" : [
"Bad Request"
]
} Ejemplo de código Copiar
## default
#
# Path parameters export quota_namespace = "ai_credits" export id = "MjAfYWlfY3JlZGl0c1911c2VyX2hhbmRsZTpfX0FMTF9f" # Curl command curl -X PATCH "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.uk1.datadoghq.com "https://api.datadoghq.com "https://api.us3.datadoghq.com "https://api.us5.datadoghq.com /api/v2/usage/quotas/${quota_namespace}/${id} " \
-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": {
"enforced": false,
"usage_limit": 120000
},
"id": "MjAfYWlfY3JlZGl0c1911c2VyX2hhbmRsZTpfX0FMTF9f",
"type": "quotas"
}
}
EOF
"""
Update a usage quota returns "OK" response
"""
from datadog_api_client import ApiClient , Configuration
from datadog_api_client.v2.api.usage_metering_api import UsageMeteringApi
from datadog_api_client.v2.model.usage_quota_type import UsageQuotaType
from datadog_api_client.v2.model.usage_quota_update_attributes import UsageQuotaUpdateAttributes
from datadog_api_client.v2.model.usage_quota_update_data import UsageQuotaUpdateData
from datadog_api_client.v2.model.usage_quota_update_request import UsageQuotaUpdateRequest
body = UsageQuotaUpdateRequest (
data = UsageQuotaUpdateData (
attributes = UsageQuotaUpdateAttributes (
enforced = False ,
usage_limit = 120000 ,
),
id = "MjAfYWlfY3JlZGl0c1911c2VyX2hhbmRsZTpfX0FMTF9f" ,
type = UsageQuotaType . QUOTAS ,
),
)
configuration = Configuration ()
configuration . unstable_operations [ "update_quota" ] = True
with ApiClient ( configuration ) as api_client :
api_instance = UsageMeteringApi ( api_client )
response = api_instance . update_quota (
quota_namespace = "ai_credits" , id = "MjAfYWlfY3JlZGl0c1911c2VyX2hhbmRsZTpfX0FMTF9f" , 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 uk1.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 usage quota returns "OK" response
require "datadog_api_client"
DatadogAPIClient . configure do | config |
config . unstable_operations [ "v2.update_quota" . to_sym ] = true
end
api_instance = DatadogAPIClient :: V2 :: UsageMeteringAPI . new
body = DatadogAPIClient :: V2 :: UsageQuotaUpdateRequest . new ({
data : DatadogAPIClient :: V2 :: UsageQuotaUpdateData . new ({
attributes : DatadogAPIClient :: V2 :: UsageQuotaUpdateAttributes . new ({
enforced : false ,
usage_limit : 120000 ,
}),
id : "MjAfYWlfY3JlZGl0c1911c2VyX2hhbmRsZTpfX0FMTF9f" ,
type : DatadogAPIClient :: V2 :: UsageQuotaType :: QUOTAS ,
}),
})
p api_instance . update_quota ( "ai_credits" , "MjAfYWlfY3JlZGl0c1911c2VyX2hhbmRsZTpfX0FMTF9f" , 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 uk1.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 usage quota 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 . UsageQuotaUpdateRequest {
Data : datadogV2 . UsageQuotaUpdateData {
Attributes : datadogV2 . UsageQuotaUpdateAttributes {
Enforced : * datadog . NewNullableBool ( datadog . PtrBool ( false )),
UsageLimit : * datadog . NewNullableInt64 ( datadog . PtrInt64 ( 120000 )),
},
Id : "MjAfYWlfY3JlZGl0c1911c2VyX2hhbmRsZTpfX0FMTF9f" ,
Type : datadogV2 . USAGEQUOTATYPE_QUOTAS ,
},
}
ctx := datadog . NewDefaultContext ( context . Background ())
configuration := datadog . NewConfiguration ()
configuration . SetUnstableOperationEnabled ( "v2.UpdateQuota" , true )
apiClient := datadog . NewAPIClient ( configuration )
api := datadogV2 . NewUsageMeteringApi ( apiClient )
resp , r , err := api . UpdateQuota ( ctx , "ai_credits" , "MjAfYWlfY3JlZGl0c1911c2VyX2hhbmRsZTpfX0FMTF9f" , body )
if err != nil {
fmt . Fprintf ( os . Stderr , "Error when calling `UsageMeteringApi.UpdateQuota`: %v\n" , err )
fmt . Fprintf ( os . Stderr , "Full HTTP response: %v\n" , r )
}
responseContent , _ := json . MarshalIndent ( resp , "" , " " )
fmt . Fprintf ( os . Stdout , "Response from `UsageMeteringApi.UpdateQuota`:\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 uk1.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 usage quota returns "OK" response
import com.datadog.api.client.ApiClient ;
import com.datadog.api.client.ApiException ;
import com.datadog.api.client.v2.api.UsageMeteringApi ;
import com.datadog.api.client.v2.model.UsageQuotaResponse ;
import com.datadog.api.client.v2.model.UsageQuotaType ;
import com.datadog.api.client.v2.model.UsageQuotaUpdateAttributes ;
import com.datadog.api.client.v2.model.UsageQuotaUpdateData ;
import com.datadog.api.client.v2.model.UsageQuotaUpdateRequest ;
public class Example {
public static void main ( String [] args ) {
ApiClient defaultClient = ApiClient . getDefaultApiClient ();
defaultClient . setUnstableOperationEnabled ( "v2.updateQuota" , true );
UsageMeteringApi apiInstance = new UsageMeteringApi ( defaultClient );
UsageQuotaUpdateRequest body =
new UsageQuotaUpdateRequest ()
. data (
new UsageQuotaUpdateData ()
. attributes (
new UsageQuotaUpdateAttributes (). enforced ( false ). usageLimit ( 120000L ))
. id ( "MjAfYWlfY3JlZGl0c1911c2VyX2hhbmRsZTpfX0FMTF9f" )
. type ( UsageQuotaType . QUOTAS ));
try {
UsageQuotaResponse result =
apiInstance . updateQuota (
"ai_credits" , "MjAfYWlfY3JlZGl0c1911c2VyX2hhbmRsZTpfX0FMTF9f" , body );
System . out . println ( result );
} catch ( ApiException e ) {
System . err . println ( "Exception when calling UsageMeteringApi#updateQuota" );
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 uk1.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 usage quota returns "OK" response
use datadog_api_client ::datadog ;
use datadog_api_client ::datadogV2 ::api_usage_metering ::UsageMeteringAPI ;
use datadog_api_client ::datadogV2 ::model ::UsageQuotaType ;
use datadog_api_client ::datadogV2 ::model ::UsageQuotaUpdateAttributes ;
use datadog_api_client ::datadogV2 ::model ::UsageQuotaUpdateData ;
use datadog_api_client ::datadogV2 ::model ::UsageQuotaUpdateRequest ;
#[tokio::main]
async fn main () {
let body = UsageQuotaUpdateRequest ::new ( UsageQuotaUpdateData ::new (
UsageQuotaUpdateAttributes ::new ()
. enforced ( Some ( false ))
. usage_limit ( Some ( 120000 )),
"MjAfYWlfY3JlZGl0c1911c2VyX2hhbmRsZTpfX0FMTF9f" . to_string (),
UsageQuotaType ::QUOTAS ,
));
let mut configuration = datadog ::Configuration ::new ();
configuration . set_unstable_operation_enabled ( "v2.UpdateQuota" , true );
let api = UsageMeteringAPI ::with_config ( configuration );
let resp = api
. update_quota (
"ai_credits" . to_string (),
"MjAfYWlfY3JlZGl0c1911c2VyX2hhbmRsZTpfX0FMTF9f" . 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 uk1.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 usage quota returns "OK" response
*/
import { client , v2 } from "@datadog/datadog-api-client" ;
const configuration = client . createConfiguration ();
configuration . unstableOperations [ "v2.updateQuota" ] = true ;
const apiInstance = new v2 . UsageMeteringApi ( configuration );
const params : v2.UsageMeteringApiUpdateQuotaRequest = {
body : {
data : {
attributes : {
enforced : false ,
usageLimit : 120000 ,
},
id : "MjAfYWlfY3JlZGl0c1911c2VyX2hhbmRsZTpfX0FMTF9f" ,
type : "quotas" ,
},
},
quotaNamespace : "ai_credits" ,
id : "MjAfYWlfY3JlZGl0c1911c2VyX2hhbmRsZTpfX0FMTF9f" ,
};
apiInstance
. updateQuota ( params )
. then (( data : v2.UsageQuotaResponse ) => {
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 uk1.datadoghq.com ddog-gov.com us2.ddog-gov.com " DD_API_KEY = "<DD_API_KEY>" DD_APP_KEY = "<DD_APP_KEY>" tsc "example.ts"