Skip to content

Commit aea359c

Browse files
author
ci.datadog-api-spec
committed
Regenerate client from commit 25f4ac3 of spec repo
1 parent 464cf17 commit aea359c

15 files changed

Lines changed: 2155 additions & 0 deletions

.generator/schemas/v2/openapi.yaml

Lines changed: 198 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17831,6 +17831,76 @@ components:
1783117831
required:
1783217832
- data
1783317833
type: object
17834+
CostRecommendationArray:
17835+
description: A page of cost recommendations with pagination metadata.
17836+
properties:
17837+
data:
17838+
description: The list of cost recommendations on this page.
17839+
items:
17840+
$ref: "#/components/schemas/CostRecommendationData"
17841+
type: array
17842+
meta:
17843+
$ref: "#/components/schemas/RecommendationsPageMeta"
17844+
required:
17845+
- data
17846+
type: object
17847+
CostRecommendationData:
17848+
description: A single cost recommendation entry in JSON:API form.
17849+
properties:
17850+
attributes:
17851+
$ref: "#/components/schemas/CostRecommendationDataAttributes"
17852+
id:
17853+
description: Unique identifier for the recommendation.
17854+
type: string
17855+
type:
17856+
$ref: "#/components/schemas/CostRecommendationDataType"
17857+
required:
17858+
- type
17859+
type: object
17860+
CostRecommendationDataAttributes:
17861+
description: Attributes describing a single cost recommendation.
17862+
properties:
17863+
dd_resource_key:
17864+
description: Datadog resource key identifying the recommended resource.
17865+
type: string
17866+
potential_daily_savings:
17867+
$ref: "#/components/schemas/CostRecommendationDataAttributesPotentialDailySavings"
17868+
recommendation_type:
17869+
description: The kind of recommendation (for example, `terminate` or `rightsize`).
17870+
type: string
17871+
resource_id:
17872+
description: Cloud provider identifier of the resource.
17873+
type: string
17874+
resource_type:
17875+
description: Resource type (for example, `aws_ec2_instance`).
17876+
type: string
17877+
tags:
17878+
description: Tags attached to the recommended resource.
17879+
items:
17880+
description: A single resource tag.
17881+
type: string
17882+
type: array
17883+
type: object
17884+
CostRecommendationDataAttributesPotentialDailySavings:
17885+
description: Estimated daily savings if the recommendation is applied.
17886+
properties:
17887+
amount:
17888+
description: Numeric amount of the potential daily savings.
17889+
format: double
17890+
type: number
17891+
currency:
17892+
description: ISO 4217 currency code for the savings amount.
17893+
type: string
17894+
type: object
17895+
CostRecommendationDataType:
17896+
default: recommendation
17897+
description: Recommendation resource type.
17898+
enum:
17899+
- recommendation
17900+
example: recommendation
17901+
type: string
17902+
x-enum-varnames:
17903+
- RECOMMENDATION
1783417904
CostTag:
1783517905
description: A Cloud Cost Management tag.
1783617906
properties:
@@ -63436,6 +63506,64 @@ components:
6343663506
type: string
6343763507
x-enum-varnames:
6343863508
- RECOMMENDATION
63509+
RecommendationsFilterRequest:
63510+
description: Request body for filtering cost recommendations.
63511+
example:
63512+
filter: "@resource_table:aws_ec2_instance"
63513+
sort:
63514+
- expression: potential_daily_savings.amount
63515+
order: DESC
63516+
properties:
63517+
filter:
63518+
description: Filter expression applied to the recommendations.
63519+
type: string
63520+
scope:
63521+
description: Recommendations scope. Defaults to `ccm`; use `experiment` for experimental recommendations or `*` for both.
63522+
type: string
63523+
sort:
63524+
description: Ordered list of sort clauses applied to the result set.
63525+
items:
63526+
$ref: "#/components/schemas/RecommendationsFilterRequestSortItems"
63527+
type: array
63528+
view:
63529+
description: Active view name (for example, `active`, `dismissed`, `open`, `in-progress`, or `completed`).
63530+
type: string
63531+
type: object
63532+
RecommendationsFilterRequestSortItems:
63533+
description: A single sort clause applied to the cost recommendations result set.
63534+
properties:
63535+
expression:
63536+
description: Field to sort by (for example, `potential_daily_savings.amount`).
63537+
type: string
63538+
order:
63539+
description: Sort direction, either `ASC` or `DESC`.
63540+
type: string
63541+
type: object
63542+
RecommendationsPageMeta:
63543+
description: Top-level JSON:API meta object for paginated cost recommendation responses.
63544+
properties:
63545+
page:
63546+
$ref: "#/components/schemas/RecommendationsPageMetaPage"
63547+
type: object
63548+
RecommendationsPageMetaPage:
63549+
description: Pagination metadata for a page of cost recommendations.
63550+
properties:
63551+
filter:
63552+
description: The filter expression that was applied to produce this page.
63553+
type: string
63554+
next_page_token:
63555+
description: Opaque token used to fetch the next page; absent on the last page.
63556+
type: string
63557+
page_size:
63558+
description: Number of items returned in this page (1–10000).
63559+
format: int32
63560+
maximum: 10000
63561+
minimum: 1
63562+
type: integer
63563+
page_token:
63564+
description: Pagination token echoed back from the request.
63565+
type: string
63566+
type: object
6343963567
ReferenceTableCreateSourceType:
6344063568
description: The source type for creating reference table data. Only these source types can be created through this API.
6344163569
enum:
@@ -105850,6 +105978,76 @@ paths:
105850105978
operator: OR
105851105979
permissions:
105852105980
- cloud_cost_management_read
105981+
/api/v2/cost/recommendations:
105982+
post:
105983+
description: List cost recommendations matching a filter, with pagination and sorting.
105984+
operationId: SearchCostRecommendations
105985+
parameters:
105986+
- description: Number of results per page (1–10000).
105987+
in: query
105988+
name: page[size]
105989+
schema:
105990+
type: string
105991+
- description: Pagination token from a previous response.
105992+
in: query
105993+
name: page[token]
105994+
schema:
105995+
type: string
105996+
requestBody:
105997+
content:
105998+
application/json:
105999+
examples:
106000+
default:
106001+
value:
106002+
filter: "@resource_table:aws_ec2_instance"
106003+
sort:
106004+
- expression: potential_daily_savings.amount
106005+
order: DESC
106006+
schema:
106007+
$ref: "#/components/schemas/RecommendationsFilterRequest"
106008+
required: true
106009+
responses:
106010+
"200":
106011+
content:
106012+
application/json:
106013+
examples:
106014+
default:
106015+
value:
106016+
data:
106017+
- attributes:
106018+
dd_resource_key: "arn:aws:ec2:us-east-1:123456789012:instance/i-1234567890abcdef0"
106019+
potential_daily_savings:
106020+
amount: 1.23
106021+
currency: USD
106022+
recommendation_type: terminate
106023+
resource_id: i-1234567890abcdef0
106024+
resource_type: aws_ec2_instance
106025+
tags:
106026+
- "env:prod"
106027+
- "team:ccm"
106028+
id: encoded-event-id-1
106029+
type: recommendation
106030+
meta:
106031+
page:
106032+
filter: "@resource_table:aws_ec2_instance"
106033+
next_page_token: ""
106034+
page_size: 100
106035+
schema:
106036+
$ref: "#/components/schemas/CostRecommendationArray"
106037+
description: OK
106038+
"429":
106039+
$ref: "#/components/responses/TooManyRequestsResponse"
106040+
security:
106041+
- apiKeyAuth: []
106042+
appKeyAuth: []
106043+
- AuthZ:
106044+
- cloud_cost_management_read
106045+
summary: Search cost recommendations
106046+
tags:
106047+
- Cloud Cost Management
106048+
x-unstable: |-
106049+
**Note**: This endpoint is in preview and is subject to change.
106050+
If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).
105853106051
/api/v2/cost/tag_descriptions:
105854106052
get:
105855106053
description: List Cloud Cost Management tag key descriptions for the organization. Use `filter[cloud]` to scope the result to a single cloud provider; when omitted, both cross-cloud defaults and cloud-specific descriptions are returned.
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
// Search cost recommendations returns "OK" response
2+
3+
import com.datadog.api.client.ApiClient;
4+
import com.datadog.api.client.ApiException;
5+
import com.datadog.api.client.v2.api.CloudCostManagementApi;
6+
import com.datadog.api.client.v2.model.CostRecommendationArray;
7+
import com.datadog.api.client.v2.model.RecommendationsFilterRequest;
8+
import com.datadog.api.client.v2.model.RecommendationsFilterRequestSortItems;
9+
import java.util.Collections;
10+
11+
public class Example {
12+
public static void main(String[] args) {
13+
ApiClient defaultClient = ApiClient.getDefaultApiClient();
14+
defaultClient.setUnstableOperationEnabled("v2.searchCostRecommendations", true);
15+
CloudCostManagementApi apiInstance = new CloudCostManagementApi(defaultClient);
16+
17+
RecommendationsFilterRequest body =
18+
new RecommendationsFilterRequest()
19+
.filter("@resource_table:aws_ec2_instance")
20+
.sort(
21+
Collections.singletonList(
22+
new RecommendationsFilterRequestSortItems()
23+
.expression("potential_daily_savings.amount")
24+
.order("DESC")));
25+
26+
try {
27+
CostRecommendationArray result = apiInstance.searchCostRecommendations(body);
28+
System.out.println(result);
29+
} catch (ApiException e) {
30+
System.err.println("Exception when calling CloudCostManagementApi#searchCostRecommendations");
31+
System.err.println("Status code: " + e.getCode());
32+
System.err.println("Reason: " + e.getResponseBody());
33+
System.err.println("Response headers: " + e.getResponseHeaders());
34+
e.printStackTrace();
35+
}
36+
}
37+
}

src/main/java/com/datadog/api/client/ApiClient.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -918,6 +918,7 @@ public class ApiClient {
918918
put("v2.listCostTagMetadata", false);
919919
put("v2.listCostTagMetadataMetrics", false);
920920
put("v2.listCostTagMetadataOrchestrators", false);
921+
put("v2.searchCostRecommendations", false);
921922
put("v2.createDashboardSecureEmbed", false);
922923
put("v2.deleteDashboardSecureEmbed", false);
923924
put("v2.getDashboardSecureEmbed", false);

0 commit comments

Comments
 (0)