Skip to content

Commit 5d14ae8

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-spec
andauthored
Add provider_name attribute to pipelines API (#2643)
Co-authored-by: ci.datadog-api-spec <packages@datadoghq.com>
1 parent 4775fbc commit 5d14ae8

16 files changed

+797
-9
lines changed

.apigentools-info

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44
"spec_versions": {
55
"v1": {
66
"apigentools_version": "1.6.6",
7-
"regenerated": "2025-01-17 21:03:20.750319",
8-
"spec_repo_commit": "617655da"
7+
"regenerated": "2025-01-21 14:16:35.887810",
8+
"spec_repo_commit": "0bbc13ae"
99
},
1010
"v2": {
1111
"apigentools_version": "1.6.6",
12-
"regenerated": "2025-01-17 21:03:20.765449",
13-
"spec_repo_commit": "617655da"
12+
"regenerated": "2025-01-21 14:16:35.904462",
13+
"spec_repo_commit": "0bbc13ae"
1414
}
1515
}
1616
}

.generator/schemas/v1/openapi.yaml

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6784,6 +6784,62 @@ components:
67846784
- FIREFOX_LAPTOP_LARGE
67856785
- FIREFOX_TABLET
67866786
- FIREFOX_MOBILE_SMALL
6787+
MonitorFormulaAndFunctionCostAggregator:
6788+
description: Aggregation methods for metric queries.
6789+
enum:
6790+
- avg
6791+
- sum
6792+
- max
6793+
- min
6794+
- last
6795+
- area
6796+
- l2norm
6797+
- percentile
6798+
- stddev
6799+
example: avg
6800+
type: string
6801+
x-enum-varnames:
6802+
- AVG
6803+
- SUM
6804+
- MAX
6805+
- MIN
6806+
- LAST
6807+
- AREA
6808+
- L2NORM
6809+
- PERCENTILE
6810+
- STDDEV
6811+
MonitorFormulaAndFunctionCostDataSource:
6812+
description: Data source for cost queries.
6813+
enum:
6814+
- metrics
6815+
- cloud_cost
6816+
- datadog_usage
6817+
example: cloud_cost
6818+
type: string
6819+
x-enum-varnames:
6820+
- METRICS
6821+
- CLOUD_COST
6822+
- DATADOG_USAGE
6823+
MonitorFormulaAndFunctionCostQueryDefinition:
6824+
description: A formula and functions cost query.
6825+
properties:
6826+
aggregator:
6827+
$ref: '#/components/schemas/MonitorFormulaAndFunctionCostAggregator'
6828+
data_source:
6829+
$ref: '#/components/schemas/MonitorFormulaAndFunctionCostDataSource'
6830+
name:
6831+
description: Name of the query for use in formulas.
6832+
example: query1
6833+
type: string
6834+
query:
6835+
description: The monitor query.
6836+
example: sum:all.cost{*}.rollup(sum, 86400)
6837+
type: string
6838+
required:
6839+
- name
6840+
- data_source
6841+
- query
6842+
type: object
67876843
MonitorFormulaAndFunctionEventAggregation:
67886844
description: Aggregation methods for event platform queries.
67896845
enum:
@@ -6934,6 +6990,7 @@ components:
69346990
description: A formula and function query.
69356991
oneOf:
69366992
- $ref: '#/components/schemas/MonitorFormulaAndFunctionEventQueryDefinition'
6993+
- $ref: '#/components/schemas/MonitorFormulaAndFunctionCostQueryDefinition'
69376994
MonitorGroupSearchResponse:
69386995
description: The response of a monitor group search.
69396996
example:

.generator/schemas/v2/openapi.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3552,6 +3552,9 @@ components:
35523552
env:
35533553
description: The Datadog environment.
35543554
type: string
3555+
provider_name:
3556+
description: The name of the CI provider. By default, this is "custom".
3557+
type: string
35553558
resource:
35563559
$ref: '#/components/schemas/CIAppCreatePipelineEventRequestAttributesResource'
35573560
service:
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
// Create a Cost Monitor returns "OK" response
2+
3+
import com.datadog.api.client.ApiClient;
4+
import com.datadog.api.client.ApiException;
5+
import com.datadog.api.client.v1.api.MonitorsApi;
6+
import com.datadog.api.client.v1.model.Monitor;
7+
import com.datadog.api.client.v1.model.MonitorFormulaAndFunctionCostAggregator;
8+
import com.datadog.api.client.v1.model.MonitorFormulaAndFunctionCostDataSource;
9+
import com.datadog.api.client.v1.model.MonitorFormulaAndFunctionCostQueryDefinition;
10+
import com.datadog.api.client.v1.model.MonitorFormulaAndFunctionQueryDefinition;
11+
import com.datadog.api.client.v1.model.MonitorOptions;
12+
import com.datadog.api.client.v1.model.MonitorThresholds;
13+
import com.datadog.api.client.v1.model.MonitorType;
14+
import java.util.Arrays;
15+
import java.util.Collections;
16+
17+
public class Example {
18+
public static void main(String[] args) {
19+
ApiClient defaultClient = ApiClient.getDefaultApiClient();
20+
MonitorsApi apiInstance = new MonitorsApi(defaultClient);
21+
22+
Monitor body =
23+
new Monitor()
24+
.name("Example Monitor")
25+
.type(MonitorType.COST_ALERT)
26+
.query(
27+
"""
28+
formula("exclude_null(query1)").last("7d").anomaly(direction="above", threshold=10) >= 5
29+
""")
30+
.message("some message Notify: @hipchat-channel")
31+
.tags(Arrays.asList("test:examplemonitor", "env:ci"))
32+
.priority(3L)
33+
.options(
34+
new MonitorOptions()
35+
.thresholds(new MonitorThresholds().critical(5.0).warning(3.0))
36+
.variables(
37+
Collections.singletonList(
38+
new MonitorFormulaAndFunctionQueryDefinition(
39+
new MonitorFormulaAndFunctionCostQueryDefinition()
40+
.dataSource(MonitorFormulaAndFunctionCostDataSource.CLOUD_COST)
41+
.query(
42+
"sum:aws.cost.net.amortized.shared.resources.allocated{aws_product"
43+
+ " IN (amplify ,athena, backup, bedrock ) } by"
44+
+ " {aws_product}.rollup(sum, 86400)")
45+
.name("query1")
46+
.aggregator(MonitorFormulaAndFunctionCostAggregator.SUM))))
47+
.includeTags(true));
48+
49+
try {
50+
Monitor result = apiInstance.createMonitor(body);
51+
System.out.println(result);
52+
} catch (ApiException e) {
53+
System.err.println("Exception when calling MonitorsApi#createMonitor");
54+
System.err.println("Status code: " + e.getCode());
55+
System.err.println("Reason: " + e.getResponseBody());
56+
System.err.println("Response headers: " + e.getResponseHeaders());
57+
e.printStackTrace();
58+
}
59+
}
60+
}
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
// Send pipeline event with custom provider returns "Request accepted for processing" response
2+
import com.datadog.api.client.ApiClient;
3+
import com.datadog.api.client.ApiException;
4+
import com.datadog.api.client.v2.api.CiVisibilityPipelinesApi;
5+
import com.datadog.api.client.v2.model.CIAppCreatePipelineEventRequest;
6+
import com.datadog.api.client.v2.model.CIAppCreatePipelineEventRequestAttributes;
7+
import com.datadog.api.client.v2.model.CIAppCreatePipelineEventRequestAttributesResource;
8+
import com.datadog.api.client.v2.model.CIAppCreatePipelineEventRequestData;
9+
import com.datadog.api.client.v2.model.CIAppCreatePipelineEventRequestDataType;
10+
import com.datadog.api.client.v2.model.CIAppGitInfo;
11+
import com.datadog.api.client.v2.model.CIAppPipelineEventFinishedPipeline;
12+
import com.datadog.api.client.v2.model.CIAppPipelineEventPipeline;
13+
import com.datadog.api.client.v2.model.CIAppPipelineEventPipelineLevel;
14+
import com.datadog.api.client.v2.model.CIAppPipelineEventPipelineStatus;
15+
import java.time.OffsetDateTime;
16+
17+
public class Example {
18+
public static void main(String[] args) {
19+
ApiClient defaultClient = ApiClient.getDefaultApiClient();
20+
CiVisibilityPipelinesApi apiInstance = new CiVisibilityPipelinesApi(defaultClient);
21+
22+
CIAppCreatePipelineEventRequest body =
23+
new CIAppCreatePipelineEventRequest()
24+
.data(
25+
new CIAppCreatePipelineEventRequestData()
26+
.attributes(
27+
new CIAppCreatePipelineEventRequestAttributes()
28+
.providerName("example-provider")
29+
.resource(
30+
new CIAppCreatePipelineEventRequestAttributesResource(
31+
new CIAppPipelineEventPipeline(
32+
new CIAppPipelineEventFinishedPipeline()
33+
.level(CIAppPipelineEventPipelineLevel.PIPELINE)
34+
.uniqueId("3eacb6f3-ff04-4e10-8a9c-46e6d054024a")
35+
.name("Deploy to AWS")
36+
.url(
37+
"https://my-ci-provider.example/pipelines/my-pipeline/run/1")
38+
.start(OffsetDateTime.now().plusSeconds(-120))
39+
.end(OffsetDateTime.now().plusSeconds(-30))
40+
.status(CIAppPipelineEventPipelineStatus.SUCCESS)
41+
.partialRetry(false)
42+
.git(
43+
new CIAppGitInfo()
44+
.repositoryUrl(
45+
"https://github.com/DataDog/datadog-agent")
46+
.sha("7f263865994b76066c4612fd1965215e7dcb4cd2")
47+
.authorEmail("john.doe@email.com"))))))
48+
.type(CIAppCreatePipelineEventRequestDataType.CIPIPELINE_RESOURCE_REQUEST));
49+
50+
try {
51+
apiInstance.createCIAppPipelineEvent(body);
52+
} catch (ApiException e) {
53+
System.err.println(
54+
"Exception when calling CiVisibilityPipelinesApi#createCIAppPipelineEvent");
55+
System.err.println("Status code: " + e.getCode());
56+
System.err.println("Reason: " + e.getResponseBody());
57+
System.err.println("Response headers: " + e.getResponseHeaders());
58+
e.printStackTrace();
59+
}
60+
}
61+
}
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
/*
2+
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
3+
* This product includes software developed at Datadog (https://www.datadoghq.com/).
4+
* Copyright 2019-Present Datadog, Inc.
5+
*/
6+
7+
package com.datadog.api.client.v1.model;
8+
9+
import com.datadog.api.client.ModelEnum;
10+
import com.fasterxml.jackson.annotation.JsonCreator;
11+
import com.fasterxml.jackson.core.JsonGenerator;
12+
import com.fasterxml.jackson.core.JsonProcessingException;
13+
import com.fasterxml.jackson.databind.SerializerProvider;
14+
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
15+
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
16+
import java.io.IOException;
17+
import java.util.Arrays;
18+
import java.util.HashSet;
19+
import java.util.Set;
20+
21+
/** Aggregation methods for metric queries. */
22+
@JsonSerialize(
23+
using =
24+
MonitorFormulaAndFunctionCostAggregator.MonitorFormulaAndFunctionCostAggregatorSerializer
25+
.class)
26+
public class MonitorFormulaAndFunctionCostAggregator extends ModelEnum<String> {
27+
28+
private static final Set<String> allowedValues =
29+
new HashSet<String>(
30+
Arrays.asList(
31+
"avg", "sum", "max", "min", "last", "area", "l2norm", "percentile", "stddev"));
32+
33+
public static final MonitorFormulaAndFunctionCostAggregator AVG =
34+
new MonitorFormulaAndFunctionCostAggregator("avg");
35+
public static final MonitorFormulaAndFunctionCostAggregator SUM =
36+
new MonitorFormulaAndFunctionCostAggregator("sum");
37+
public static final MonitorFormulaAndFunctionCostAggregator MAX =
38+
new MonitorFormulaAndFunctionCostAggregator("max");
39+
public static final MonitorFormulaAndFunctionCostAggregator MIN =
40+
new MonitorFormulaAndFunctionCostAggregator("min");
41+
public static final MonitorFormulaAndFunctionCostAggregator LAST =
42+
new MonitorFormulaAndFunctionCostAggregator("last");
43+
public static final MonitorFormulaAndFunctionCostAggregator AREA =
44+
new MonitorFormulaAndFunctionCostAggregator("area");
45+
public static final MonitorFormulaAndFunctionCostAggregator L2NORM =
46+
new MonitorFormulaAndFunctionCostAggregator("l2norm");
47+
public static final MonitorFormulaAndFunctionCostAggregator PERCENTILE =
48+
new MonitorFormulaAndFunctionCostAggregator("percentile");
49+
public static final MonitorFormulaAndFunctionCostAggregator STDDEV =
50+
new MonitorFormulaAndFunctionCostAggregator("stddev");
51+
52+
MonitorFormulaAndFunctionCostAggregator(String value) {
53+
super(value, allowedValues);
54+
}
55+
56+
public static class MonitorFormulaAndFunctionCostAggregatorSerializer
57+
extends StdSerializer<MonitorFormulaAndFunctionCostAggregator> {
58+
public MonitorFormulaAndFunctionCostAggregatorSerializer(
59+
Class<MonitorFormulaAndFunctionCostAggregator> t) {
60+
super(t);
61+
}
62+
63+
public MonitorFormulaAndFunctionCostAggregatorSerializer() {
64+
this(null);
65+
}
66+
67+
@Override
68+
public void serialize(
69+
MonitorFormulaAndFunctionCostAggregator value,
70+
JsonGenerator jgen,
71+
SerializerProvider provider)
72+
throws IOException, JsonProcessingException {
73+
jgen.writeObject(value.value);
74+
}
75+
}
76+
77+
@JsonCreator
78+
public static MonitorFormulaAndFunctionCostAggregator fromValue(String value) {
79+
return new MonitorFormulaAndFunctionCostAggregator(value);
80+
}
81+
}
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
/*
2+
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
3+
* This product includes software developed at Datadog (https://www.datadoghq.com/).
4+
* Copyright 2019-Present Datadog, Inc.
5+
*/
6+
7+
package com.datadog.api.client.v1.model;
8+
9+
import com.datadog.api.client.ModelEnum;
10+
import com.fasterxml.jackson.annotation.JsonCreator;
11+
import com.fasterxml.jackson.core.JsonGenerator;
12+
import com.fasterxml.jackson.core.JsonProcessingException;
13+
import com.fasterxml.jackson.databind.SerializerProvider;
14+
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
15+
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
16+
import java.io.IOException;
17+
import java.util.Arrays;
18+
import java.util.HashSet;
19+
import java.util.Set;
20+
21+
/** Data source for cost queries. */
22+
@JsonSerialize(
23+
using =
24+
MonitorFormulaAndFunctionCostDataSource.MonitorFormulaAndFunctionCostDataSourceSerializer
25+
.class)
26+
public class MonitorFormulaAndFunctionCostDataSource extends ModelEnum<String> {
27+
28+
private static final Set<String> allowedValues =
29+
new HashSet<String>(Arrays.asList("metrics", "cloud_cost", "datadog_usage"));
30+
31+
public static final MonitorFormulaAndFunctionCostDataSource METRICS =
32+
new MonitorFormulaAndFunctionCostDataSource("metrics");
33+
public static final MonitorFormulaAndFunctionCostDataSource CLOUD_COST =
34+
new MonitorFormulaAndFunctionCostDataSource("cloud_cost");
35+
public static final MonitorFormulaAndFunctionCostDataSource DATADOG_USAGE =
36+
new MonitorFormulaAndFunctionCostDataSource("datadog_usage");
37+
38+
MonitorFormulaAndFunctionCostDataSource(String value) {
39+
super(value, allowedValues);
40+
}
41+
42+
public static class MonitorFormulaAndFunctionCostDataSourceSerializer
43+
extends StdSerializer<MonitorFormulaAndFunctionCostDataSource> {
44+
public MonitorFormulaAndFunctionCostDataSourceSerializer(
45+
Class<MonitorFormulaAndFunctionCostDataSource> t) {
46+
super(t);
47+
}
48+
49+
public MonitorFormulaAndFunctionCostDataSourceSerializer() {
50+
this(null);
51+
}
52+
53+
@Override
54+
public void serialize(
55+
MonitorFormulaAndFunctionCostDataSource value,
56+
JsonGenerator jgen,
57+
SerializerProvider provider)
58+
throws IOException, JsonProcessingException {
59+
jgen.writeObject(value.value);
60+
}
61+
}
62+
63+
@JsonCreator
64+
public static MonitorFormulaAndFunctionCostDataSource fromValue(String value) {
65+
return new MonitorFormulaAndFunctionCostDataSource(value);
66+
}
67+
}

0 commit comments

Comments
 (0)