사용 할당량을 업데이트하십시오

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}

개요

사용량 쿼터에 대해 제공된 필드를 업데이트하고 생략된 필드는 변경하지 않습니다. 쿼터는 호출자의 조직 또는 그 하위 조직 중 하나에 속해야 하며, 호출자의 불투명 식별자는 요청된 쿼터 네임스페이스에 속해야 합니다. user_access_manage, billing_edit 및 org_management 권한이 필요합니다. This endpoint requires the billing_edit permission.

OAuth apps require the billing_edit authorization scope to access this endpoint.

인수

경로 파라미터

이름

유형

설명

quota_namespace [required]

string

The product-specific namespace whose usage quotas are being managed.

id [required]

string

The opaque quota identifier returned by a previous list or create request. Clients must pass this value verbatim.

요청

Body Data (required)

업데이트할 사용량 쿼터 필드입니다. 속성을 생략하면 현재 값이 변경되지 않습니다.

Expand All

항목

유형

설명

data [required]

object

A usage quota resource to update.

attributes [required]

object

Attributes to update on a usage quota. Omitting a property leaves its current value unchanged.

enforced

boolean

Whether to actively block usage above the limit. Omit this field to leave the current enforcement setting unchanged.

usage_limit

int64

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.

id [required]

string

The opaque usage quota identifier, which must match the identifier in the request path.

type [required]

enum

The JSON:API resource type for a usage quota. Allowed enum values: quotas

{
  "data": {
    "attributes": {
      "enforced": false,
      "usage_limit": 120000
    },
    "id": "MjAfYWlfY3JlZGl0c1911c2VyX2hhbmRsZTpfX0FMTF9f",
    "type": "quotas"
  }
}

응답

OK

Response containing a usage quota.

Expand All

항목

유형

설명

data [required]

object

A usage quota resource.

attributes [required]

object

Attributes of a usage quota.

enforced [required]

boolean

Whether usage above the limit is actively blocked instead of only tracked or alerted on.

org_public_id [required]

string

The public ID of the organization that owns the quota.

scope

object

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.

<any-key>

string

usage_limit [required]

double

The quota limit in the usage units defined by the quota namespace. May be fractional for quotas configured before public writes required whole units.

id [required]

string

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.

type [required]

enum

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

항목

유형

설명

errors [required]

[object]

A list of errors.

detail

string

A human-readable explanation specific to this occurrence of the error.

meta

object

Non-standard meta-information about the error

source

object

References to the source of the error.

header

string

A string indicating the name of a single request header which caused the error.

parameter

string

A string indicating which URI query parameter caused the error.

pointer

string

A JSON pointer to the value in the request document that caused the error.

status

string

Status code of the response.

title

string

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

항목

유형

설명

errors [required]

[object]

A list of errors.

detail

string

A human-readable explanation specific to this occurrence of the error.

meta

object

Non-standard meta-information about the error

source

object

References to the source of the error.

header

string

A string indicating the name of a single request header which caused the error.

parameter

string

A string indicating which URI query parameter caused the error.

pointer

string

A JSON pointer to the value in the request document that caused the error.

status

string

Status code of the response.

title

string

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

항목

유형

설명

errors [required]

[object]

A list of errors.

detail

string

A human-readable explanation specific to this occurrence of the error.

meta

object

Non-standard meta-information about the error

source

object

References to the source of the error.

header

string

A string indicating the name of a single request header which caused the error.

parameter

string

A string indicating which URI query parameter caused the error.

pointer

string

A JSON pointer to the value in the request document that caused the error.

status

string

Status code of the response.

title

string

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

API error response.

Expand All

항목

유형

설명

errors [required]

[string]

A list of errors.

{
  "errors": [
    "Bad Request"
  ]
}

코드 예시

                  ## default
# 

# Path parameters
export quota_namespace="ai_credits"
export id="MjAfYWlfY3JlZGl0c1911c2VyX2hhbmRsZTpfX0FMTF9f"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"

# 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 "Authorization: Bearer ${DD_BEARER_TOKEN}" \ -d @- << EOF { "data": { "attributes": { "enforced": false, "usage_limit": 120000 }, "id": "MjAfYWlfY3JlZGl0c1911c2VyX2hhbmRsZTpfX0FMTF9f", "type": "quotas" } } EOF
"""
Update a usage quota returns "OK" response
"""

from os import environ
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.access_token = environ["DD_BEARER_TOKEN"]
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.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"
# Update a usage quota returns "OK" response

require "datadog_api_client"
DatadogAPIClient.configure do |config|
  config.access_token = ENV["DD_BEARER_TOKEN"]
  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.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" 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())
	ctx = context.WithValue(ctx, datadog.ContextAccessToken, os.Getenv("DD_BEARER_TOKEN"))
	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.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" 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.setAccessToken(System.getenv("DD_BEARER_TOKEN"));
    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.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" 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.update_quota", 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.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.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({
  authMethods: {
    AuthZ: {
      accessToken: process.env.DD_BEARER_TOKEN as string,
    },
  },
});
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.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"