@datadog/datadog-api-client
Version:
OpenAPI client for Datadog APIs
481 lines (480 loc) • 24.6 kB
TypeScript
import { BaseAPIRequestFactory } from "../../datadog-api-client-common/baseapi";
import { Configuration } from "../../datadog-api-client-common/configuration";
import { RequestContext, ResponseContext } from "../../datadog-api-client-common/http/http";
import { IntakePayloadAccepted } from "../models/IntakePayloadAccepted";
import { MetricAllTagsResponse } from "../models/MetricAllTagsResponse";
import { MetricAssetsResponse } from "../models/MetricAssetsResponse";
import { MetricBulkTagConfigCreateRequest } from "../models/MetricBulkTagConfigCreateRequest";
import { MetricBulkTagConfigDeleteRequest } from "../models/MetricBulkTagConfigDeleteRequest";
import { MetricBulkTagConfigResponse } from "../models/MetricBulkTagConfigResponse";
import { MetricContentEncoding } from "../models/MetricContentEncoding";
import { MetricEstimateResponse } from "../models/MetricEstimateResponse";
import { MetricPayload } from "../models/MetricPayload";
import { MetricsAndMetricTagConfigurations } from "../models/MetricsAndMetricTagConfigurations";
import { MetricsAndMetricTagConfigurationsResponse } from "../models/MetricsAndMetricTagConfigurationsResponse";
import { MetricSuggestedTagsAndAggregationsResponse } from "../models/MetricSuggestedTagsAndAggregationsResponse";
import { MetricTagConfigurationCreateRequest } from "../models/MetricTagConfigurationCreateRequest";
import { MetricTagConfigurationMetricTypeCategory } from "../models/MetricTagConfigurationMetricTypeCategory";
import { MetricTagConfigurationResponse } from "../models/MetricTagConfigurationResponse";
import { MetricTagConfigurationUpdateRequest } from "../models/MetricTagConfigurationUpdateRequest";
import { MetricVolumesResponse } from "../models/MetricVolumesResponse";
import { ScalarFormulaQueryRequest } from "../models/ScalarFormulaQueryRequest";
import { ScalarFormulaQueryResponse } from "../models/ScalarFormulaQueryResponse";
import { TimeseriesFormulaQueryRequest } from "../models/TimeseriesFormulaQueryRequest";
import { TimeseriesFormulaQueryResponse } from "../models/TimeseriesFormulaQueryResponse";
export declare class MetricsApiRequestFactory extends BaseAPIRequestFactory {
createBulkTagsMetricsConfiguration(body: MetricBulkTagConfigCreateRequest, _options?: Configuration): Promise<RequestContext>;
createTagConfiguration(metricName: string, body: MetricTagConfigurationCreateRequest, _options?: Configuration): Promise<RequestContext>;
deleteBulkTagsMetricsConfiguration(body: MetricBulkTagConfigDeleteRequest, _options?: Configuration): Promise<RequestContext>;
deleteTagConfiguration(metricName: string, _options?: Configuration): Promise<RequestContext>;
estimateMetricsOutputSeries(metricName: string, filterGroups?: string, filterHoursAgo?: number, filterNumAggregations?: number, filterPct?: boolean, filterTimespanH?: number, _options?: Configuration): Promise<RequestContext>;
listActiveMetricConfigurations(metricName: string, windowSeconds?: number, _options?: Configuration): Promise<RequestContext>;
listMetricAssets(metricName: string, _options?: Configuration): Promise<RequestContext>;
listTagConfigurationByName(metricName: string, _options?: Configuration): Promise<RequestContext>;
listTagConfigurations(filterConfigured?: boolean, filterTagsConfigured?: string, filterMetricType?: MetricTagConfigurationMetricTypeCategory, filterIncludePercentiles?: boolean, filterQueried?: boolean, filterTags?: string, filterRelatedAssets?: boolean, windowSeconds?: number, pageSize?: number, pageCursor?: string, _options?: Configuration): Promise<RequestContext>;
listTagsByMetricName(metricName: string, _options?: Configuration): Promise<RequestContext>;
listVolumesByMetricName(metricName: string, _options?: Configuration): Promise<RequestContext>;
queryScalarData(body: ScalarFormulaQueryRequest, _options?: Configuration): Promise<RequestContext>;
queryTimeseriesData(body: TimeseriesFormulaQueryRequest, _options?: Configuration): Promise<RequestContext>;
submitMetrics(body: MetricPayload, contentEncoding?: MetricContentEncoding, _options?: Configuration): Promise<RequestContext>;
updateTagConfiguration(metricName: string, body: MetricTagConfigurationUpdateRequest, _options?: Configuration): Promise<RequestContext>;
}
export declare class MetricsApiResponseProcessor {
/**
* Unwraps the actual response sent by the server from the response context and deserializes the response content
* to the expected objects
*
* @params response Response returned by the server for a request to createBulkTagsMetricsConfiguration
* @throws ApiException if the response code was not in [200, 299]
*/
createBulkTagsMetricsConfiguration(response: ResponseContext): Promise<MetricBulkTagConfigResponse>;
/**
* Unwraps the actual response sent by the server from the response context and deserializes the response content
* to the expected objects
*
* @params response Response returned by the server for a request to createTagConfiguration
* @throws ApiException if the response code was not in [200, 299]
*/
createTagConfiguration(response: ResponseContext): Promise<MetricTagConfigurationResponse>;
/**
* Unwraps the actual response sent by the server from the response context and deserializes the response content
* to the expected objects
*
* @params response Response returned by the server for a request to deleteBulkTagsMetricsConfiguration
* @throws ApiException if the response code was not in [200, 299]
*/
deleteBulkTagsMetricsConfiguration(response: ResponseContext): Promise<MetricBulkTagConfigResponse>;
/**
* Unwraps the actual response sent by the server from the response context and deserializes the response content
* to the expected objects
*
* @params response Response returned by the server for a request to deleteTagConfiguration
* @throws ApiException if the response code was not in [200, 299]
*/
deleteTagConfiguration(response: ResponseContext): Promise<void>;
/**
* Unwraps the actual response sent by the server from the response context and deserializes the response content
* to the expected objects
*
* @params response Response returned by the server for a request to estimateMetricsOutputSeries
* @throws ApiException if the response code was not in [200, 299]
*/
estimateMetricsOutputSeries(response: ResponseContext): Promise<MetricEstimateResponse>;
/**
* Unwraps the actual response sent by the server from the response context and deserializes the response content
* to the expected objects
*
* @params response Response returned by the server for a request to listActiveMetricConfigurations
* @throws ApiException if the response code was not in [200, 299]
*/
listActiveMetricConfigurations(response: ResponseContext): Promise<MetricSuggestedTagsAndAggregationsResponse>;
/**
* Unwraps the actual response sent by the server from the response context and deserializes the response content
* to the expected objects
*
* @params response Response returned by the server for a request to listMetricAssets
* @throws ApiException if the response code was not in [200, 299]
*/
listMetricAssets(response: ResponseContext): Promise<MetricAssetsResponse>;
/**
* Unwraps the actual response sent by the server from the response context and deserializes the response content
* to the expected objects
*
* @params response Response returned by the server for a request to listTagConfigurationByName
* @throws ApiException if the response code was not in [200, 299]
*/
listTagConfigurationByName(response: ResponseContext): Promise<MetricTagConfigurationResponse>;
/**
* Unwraps the actual response sent by the server from the response context and deserializes the response content
* to the expected objects
*
* @params response Response returned by the server for a request to listTagConfigurations
* @throws ApiException if the response code was not in [200, 299]
*/
listTagConfigurations(response: ResponseContext): Promise<MetricsAndMetricTagConfigurationsResponse>;
/**
* Unwraps the actual response sent by the server from the response context and deserializes the response content
* to the expected objects
*
* @params response Response returned by the server for a request to listTagsByMetricName
* @throws ApiException if the response code was not in [200, 299]
*/
listTagsByMetricName(response: ResponseContext): Promise<MetricAllTagsResponse>;
/**
* Unwraps the actual response sent by the server from the response context and deserializes the response content
* to the expected objects
*
* @params response Response returned by the server for a request to listVolumesByMetricName
* @throws ApiException if the response code was not in [200, 299]
*/
listVolumesByMetricName(response: ResponseContext): Promise<MetricVolumesResponse>;
/**
* Unwraps the actual response sent by the server from the response context and deserializes the response content
* to the expected objects
*
* @params response Response returned by the server for a request to queryScalarData
* @throws ApiException if the response code was not in [200, 299]
*/
queryScalarData(response: ResponseContext): Promise<ScalarFormulaQueryResponse>;
/**
* Unwraps the actual response sent by the server from the response context and deserializes the response content
* to the expected objects
*
* @params response Response returned by the server for a request to queryTimeseriesData
* @throws ApiException if the response code was not in [200, 299]
*/
queryTimeseriesData(response: ResponseContext): Promise<TimeseriesFormulaQueryResponse>;
/**
* Unwraps the actual response sent by the server from the response context and deserializes the response content
* to the expected objects
*
* @params response Response returned by the server for a request to submitMetrics
* @throws ApiException if the response code was not in [200, 299]
*/
submitMetrics(response: ResponseContext): Promise<IntakePayloadAccepted>;
/**
* Unwraps the actual response sent by the server from the response context and deserializes the response content
* to the expected objects
*
* @params response Response returned by the server for a request to updateTagConfiguration
* @throws ApiException if the response code was not in [200, 299]
*/
updateTagConfiguration(response: ResponseContext): Promise<MetricTagConfigurationResponse>;
}
export interface MetricsApiCreateBulkTagsMetricsConfigurationRequest {
/**
* @type MetricBulkTagConfigCreateRequest
*/
body: MetricBulkTagConfigCreateRequest;
}
export interface MetricsApiCreateTagConfigurationRequest {
/**
* The name of the metric.
* @type string
*/
metricName: string;
/**
* @type MetricTagConfigurationCreateRequest
*/
body: MetricTagConfigurationCreateRequest;
}
export interface MetricsApiDeleteBulkTagsMetricsConfigurationRequest {
/**
* @type MetricBulkTagConfigDeleteRequest
*/
body: MetricBulkTagConfigDeleteRequest;
}
export interface MetricsApiDeleteTagConfigurationRequest {
/**
* The name of the metric.
* @type string
*/
metricName: string;
}
export interface MetricsApiEstimateMetricsOutputSeriesRequest {
/**
* The name of the metric.
* @type string
*/
metricName: string;
/**
* Filtered tag keys that the metric is configured to query with.
* @type string
*/
filterGroups?: string;
/**
* The number of hours of look back (from now) to estimate cardinality with. If unspecified, it defaults to 0 hours.
* @type number
*/
filterHoursAgo?: number;
/**
* Deprecated. Number of aggregations has no impact on volume.
* @type number
*/
filterNumAggregations?: number;
/**
* A boolean, for distribution metrics only, to estimate cardinality if the metric includes additional percentile aggregators.
* @type boolean
*/
filterPct?: boolean;
/**
* A window, in hours, from the look back to estimate cardinality with. The minimum and default is 1 hour.
* @type number
*/
filterTimespanH?: number;
}
export interface MetricsApiListActiveMetricConfigurationsRequest {
/**
* The name of the metric.
* @type string
*/
metricName: string;
/**
* The number of seconds of look back (from now).
* Default value is 604,800 (1 week), minimum value is 7200 (2 hours), maximum value is 2,630,000 (1 month).
* @type number
*/
windowSeconds?: number;
}
export interface MetricsApiListMetricAssetsRequest {
/**
* The name of the metric.
* @type string
*/
metricName: string;
}
export interface MetricsApiListTagConfigurationByNameRequest {
/**
* The name of the metric.
* @type string
*/
metricName: string;
}
export interface MetricsApiListTagConfigurationsRequest {
/**
* Filter custom metrics that have configured tags.
* @type boolean
*/
filterConfigured?: boolean;
/**
* Filter tag configurations by configured tags.
* @type string
*/
filterTagsConfigured?: string;
/**
* Filter metrics by metric type.
* @type MetricTagConfigurationMetricTypeCategory
*/
filterMetricType?: MetricTagConfigurationMetricTypeCategory;
/**
* Filter distributions with additional percentile
* aggregations enabled or disabled.
* @type boolean
*/
filterIncludePercentiles?: boolean;
/**
* (Preview) Filter custom metrics that have or have not been queried in the specified window[seconds].
* If no window is provided or the window is less than 2 hours, a default of 2 hours will be applied.
* @type boolean
*/
filterQueried?: boolean;
/**
* Filter metrics that have been submitted with the given tags. Supports boolean and wildcard expressions.
* Can only be combined with the filter[queried] filter.
* @type string
*/
filterTags?: string;
/**
* (Preview) Filter metrics that are used in dashboards, monitors, notebooks, SLOs.
* @type boolean
*/
filterRelatedAssets?: boolean;
/**
* The number of seconds of look back (from now) to apply to a filter[tag] or filter[queried] query.
* Default value is 3600 (1 hour), maximum value is 2,592,000 (30 days).
* @type number
*/
windowSeconds?: number;
/**
* Maximum number of results returned.
* @type number
*/
pageSize?: number;
/**
* String to query the next page of results.
* This key is provided with each valid response from the API in `meta.pagination.next_cursor`.
* Once the `meta.pagination.next_cursor` key is null, all pages have been retrieved.
* @type string
*/
pageCursor?: string;
}
export interface MetricsApiListTagsByMetricNameRequest {
/**
* The name of the metric.
* @type string
*/
metricName: string;
}
export interface MetricsApiListVolumesByMetricNameRequest {
/**
* The name of the metric.
* @type string
*/
metricName: string;
}
export interface MetricsApiQueryScalarDataRequest {
/**
* @type ScalarFormulaQueryRequest
*/
body: ScalarFormulaQueryRequest;
}
export interface MetricsApiQueryTimeseriesDataRequest {
/**
* @type TimeseriesFormulaQueryRequest
*/
body: TimeseriesFormulaQueryRequest;
}
export interface MetricsApiSubmitMetricsRequest {
/**
* @type MetricPayload
*/
body: MetricPayload;
/**
* HTTP header used to compress the media-type.
* @type MetricContentEncoding
*/
contentEncoding?: MetricContentEncoding;
}
export interface MetricsApiUpdateTagConfigurationRequest {
/**
* The name of the metric.
* @type string
*/
metricName: string;
/**
* @type MetricTagConfigurationUpdateRequest
*/
body: MetricTagConfigurationUpdateRequest;
}
export declare class MetricsApi {
private requestFactory;
private responseProcessor;
private configuration;
constructor(configuration: Configuration, requestFactory?: MetricsApiRequestFactory, responseProcessor?: MetricsApiResponseProcessor);
/**
* Create and define a list of queryable tag keys for a set of existing count, gauge, rate, and distribution metrics.
* Metrics are selected by passing a metric name prefix. Use the Delete method of this API path to remove tag configurations.
* Results can be sent to a set of account email addresses, just like the same operation in the Datadog web app.
* If multiple calls include the same metric, the last configuration applied (not by submit order) is used, do not
* expect deterministic ordering of concurrent calls. The `exclude_tags_mode` value will set all metrics that match the prefix to
* the same exclusion state, metric tag configurations do not support mixed inclusion and exclusion for tags on the same metric.
* Can only be used with application keys of users with the `Manage Tags for Metrics` permission.
* @param param The request object
*/
createBulkTagsMetricsConfiguration(param: MetricsApiCreateBulkTagsMetricsConfigurationRequest, options?: Configuration): Promise<MetricBulkTagConfigResponse>;
/**
* Create and define a list of queryable tag keys for an existing count/gauge/rate/distribution metric.
* Optionally, include percentile aggregations on any distribution metric. By setting `exclude_tags_mode`
* to true, the behavior is changed from an allow-list to a deny-list, and tags in the defined list are
* not queryable. Can only be used with application keys of users with the `Manage Tags for Metrics`
* permission.
* @param param The request object
*/
createTagConfiguration(param: MetricsApiCreateTagConfigurationRequest, options?: Configuration): Promise<MetricTagConfigurationResponse>;
/**
* Delete all custom lists of queryable tag keys for a set of existing count, gauge, rate, and distribution metrics.
* Metrics are selected by passing a metric name prefix.
* Results can be sent to a set of account email addresses, just like the same operation in the Datadog web app.
* Can only be used with application keys of users with the `Manage Tags for Metrics` permission.
* @param param The request object
*/
deleteBulkTagsMetricsConfiguration(param: MetricsApiDeleteBulkTagsMetricsConfigurationRequest, options?: Configuration): Promise<MetricBulkTagConfigResponse>;
/**
* Deletes a metric's tag configuration. Can only be used with application
* keys from users with the `Manage Tags for Metrics` permission.
* @param param The request object
*/
deleteTagConfiguration(param: MetricsApiDeleteTagConfigurationRequest, options?: Configuration): Promise<void>;
/**
* Returns the estimated cardinality for a metric with a given tag, percentile and number of aggregations configuration using Metrics without Limits™.
* @param param The request object
*/
estimateMetricsOutputSeries(param: MetricsApiEstimateMetricsOutputSeriesRequest, options?: Configuration): Promise<MetricEstimateResponse>;
/**
* List tags and aggregations that are actively queried on dashboards, notebooks, monitors, the Metrics Explorer, and using the API for a given metric name.
* @param param The request object
*/
listActiveMetricConfigurations(param: MetricsApiListActiveMetricConfigurationsRequest, options?: Configuration): Promise<MetricSuggestedTagsAndAggregationsResponse>;
/**
* Returns dashboards, monitors, notebooks, and SLOs that a metric is stored in, if any. Updated every 24 hours.
* @param param The request object
*/
listMetricAssets(param: MetricsApiListMetricAssetsRequest, options?: Configuration): Promise<MetricAssetsResponse>;
/**
* Returns the tag configuration for the given metric name.
* @param param The request object
*/
listTagConfigurationByName(param: MetricsApiListTagConfigurationByNameRequest, options?: Configuration): Promise<MetricTagConfigurationResponse>;
/**
* Returns all metrics that can be configured in the Metrics Summary page or with Metrics without Limits™ (matching additional filters if specified).
* Optionally, paginate by using the `page[cursor]` and/or `page[size]` query parameters.
* To fetch the first page, pass in a query parameter with either a valid `page[size]` or an empty cursor like `page[cursor]=`. To fetch the next page, pass in the `next_cursor` value from the response as the new `page[cursor]` value.
* Once the `meta.pagination.next_cursor` value is null, all pages have been retrieved.
* @param param The request object
*/
listTagConfigurations(param?: MetricsApiListTagConfigurationsRequest, options?: Configuration): Promise<MetricsAndMetricTagConfigurationsResponse>;
/**
* Provide a paginated version of listTagConfigurations returning a generator with all the items.
*/
listTagConfigurationsWithPagination(param?: MetricsApiListTagConfigurationsRequest, options?: Configuration): AsyncGenerator<MetricsAndMetricTagConfigurations>;
/**
* View indexed tag key-value pairs for a given metric name over the previous hour.
* @param param The request object
*/
listTagsByMetricName(param: MetricsApiListTagsByMetricNameRequest, options?: Configuration): Promise<MetricAllTagsResponse>;
/**
* View distinct metrics volumes for the given metric name.
*
* Custom metrics generated in-app from other products will return `null` for ingested volumes.
* @param param The request object
*/
listVolumesByMetricName(param: MetricsApiListVolumesByMetricNameRequest, options?: Configuration): Promise<MetricVolumesResponse>;
/**
* Query scalar values (as seen on Query Value, Table, and Toplist widgets).
* Multiple data sources are supported with the ability to
* process the data using formulas and functions.
* @param param The request object
*/
queryScalarData(param: MetricsApiQueryScalarDataRequest, options?: Configuration): Promise<ScalarFormulaQueryResponse>;
/**
* Query timeseries data across various data sources and
* process the data by applying formulas and functions.
* @param param The request object
*/
queryTimeseriesData(param: MetricsApiQueryTimeseriesDataRequest, options?: Configuration): Promise<TimeseriesFormulaQueryResponse>;
/**
* The metrics end-point allows you to post time-series data that can be graphed on Datadog’s dashboards.
* The maximum payload size is 500 kilobytes (512000 bytes). Compressed payloads must have a decompressed size of less than 5 megabytes (5242880 bytes).
*
* If you’re submitting metrics directly to the Datadog API without using DogStatsD, expect:
*
* - 64 bits for the timestamp
* - 64 bits for the value
* - 20 bytes for the metric names
* - 50 bytes for the timeseries
* - The full payload is approximately 100 bytes.
*
* Host name is one of the resources in the Resources field.
* @param param The request object
*/
submitMetrics(param: MetricsApiSubmitMetricsRequest, options?: Configuration): Promise<IntakePayloadAccepted>;
/**
* Update the tag configuration of a metric or percentile aggregations of a distribution metric or custom aggregations
* of a count, rate, or gauge metric. By setting `exclude_tags_mode` to true the behavior is changed
* from an allow-list to a deny-list, and tags in the defined list will not be queryable.
* Can only be used with application keys from users with the `Manage Tags for Metrics` permission. This endpoint requires
* a tag configuration to be created first.
* @param param The request object
*/
updateTagConfiguration(param: MetricsApiUpdateTagConfigurationRequest, options?: Configuration): Promise<MetricTagConfigurationResponse>;
}