Skip to content

Commit 3f52fb7

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-spec
andauthored
Add log autosubscription tag filters config to aws v2 API (#3040)
Co-authored-by: ci.datadog-api-spec <[email protected]>
1 parent 1d16fe5 commit 3f52fb7

File tree

46 files changed

+550
-96
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+550
-96
lines changed

.generated-info

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
{
2-
"spec_repo_commit": "fd3370f",
3-
"generated": "2025-08-06 20:55:31.339"
2+
"spec_repo_commit": "c5cca50",
3+
"generated": "2025-08-07 18:04:36.602"
44
}

.generator/schemas/v2/openapi.yaml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1625,6 +1625,8 @@ components:
16251625
example: arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder
16261626
type: string
16271627
type: array
1628+
log_source_config:
1629+
$ref: '#/components/schemas/AWSLambdaForwarderConfigLogSourceConfig'
16281630
sources:
16291631
description: 'List of service IDs set to enable automatic log collection.
16301632
Discover the list of available services with the
@@ -1636,6 +1638,44 @@ components:
16361638
type: string
16371639
type: array
16381640
type: object
1641+
AWSLambdaForwarderConfigLogSourceConfig:
1642+
description: Log source configuration.
1643+
properties:
1644+
tag_filters:
1645+
description: List of AWS log source tag filters. Defaults to `[]`.
1646+
items:
1647+
$ref: '#/components/schemas/AWSLogSourceTagFilter'
1648+
type: array
1649+
type: object
1650+
AWSLogSourceTagFilter:
1651+
description: 'AWS log source tag filter list. Defaults to `[]`.
1652+
1653+
Array of log source to AWS resource tag mappings. Each mapping contains a
1654+
log source and its associated AWS resource tags (in `key:value` format) used
1655+
to filter logs submitted to Datadog.
1656+
1657+
Tag filters are applied for tags on the AWS resource emitting logs; tags associated
1658+
with the log storage entity (such as a CloudWatch Log Group or S3 Bucket)
1659+
are not considered.
1660+
1661+
For more information on resource tag filter syntax, [see AWS resource exclusion](https://docs.datadoghq.com/account_management/billing/aws/#aws-resource-exclusion)
1662+
in the AWS integration billing page.'
1663+
properties:
1664+
source:
1665+
description: The AWS log source to which the tag filters defined in `tags`
1666+
are applied.
1667+
example: s3
1668+
type: string
1669+
tags:
1670+
description: The AWS resource tags to filter on for the log source specified
1671+
by `source`.
1672+
items:
1673+
description: Tag in the form `key:value`.
1674+
example: env:prod
1675+
type: string
1676+
nullable: true
1677+
type: array
1678+
type: object
16391679
AWSLogsConfig:
16401680
description: AWS Logs Collection config.
16411681
properties:

examples/v2/aws-integration/CreateAWSAccount.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
import com.datadog.api.client.v2.model.AWSAuthConfig;
1313
import com.datadog.api.client.v2.model.AWSAuthConfigKeys;
1414
import com.datadog.api.client.v2.model.AWSLambdaForwarderConfig;
15+
import com.datadog.api.client.v2.model.AWSLambdaForwarderConfigLogSourceConfig;
16+
import com.datadog.api.client.v2.model.AWSLogSourceTagFilter;
1517
import com.datadog.api.client.v2.model.AWSLogsConfig;
1618
import com.datadog.api.client.v2.model.AWSMetricsConfig;
1719
import com.datadog.api.client.v2.model.AWSNamespaceTagFilter;
@@ -47,6 +49,15 @@ public static void main(String[] args) {
4749
.lambdas(
4850
Collections.singletonList(
4951
"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder"))
52+
.logSourceConfig(
53+
new AWSLambdaForwarderConfigLogSourceConfig()
54+
.tagFilters(
55+
Collections.singletonList(
56+
new AWSLogSourceTagFilter()
57+
.source("s3")
58+
.tags(
59+
Collections.singletonList(
60+
"test:test")))))
5061
.sources(Collections.singletonList("s3"))))
5162
.metricsConfig(
5263
new AWSMetricsConfig()

examples/v2/aws-integration/CreateAWSAccount_1716720881.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
import com.datadog.api.client.v2.model.AWSAuthConfig;
1313
import com.datadog.api.client.v2.model.AWSAuthConfigRole;
1414
import com.datadog.api.client.v2.model.AWSLambdaForwarderConfig;
15+
import com.datadog.api.client.v2.model.AWSLambdaForwarderConfigLogSourceConfig;
16+
import com.datadog.api.client.v2.model.AWSLogSourceTagFilter;
1517
import com.datadog.api.client.v2.model.AWSLogsConfig;
1618
import com.datadog.api.client.v2.model.AWSMetricsConfig;
1719
import com.datadog.api.client.v2.model.AWSNamespaceTagFilter;
@@ -44,6 +46,15 @@ public static void main(String[] args) {
4446
.lambdas(
4547
Collections.singletonList(
4648
"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder"))
49+
.logSourceConfig(
50+
new AWSLambdaForwarderConfigLogSourceConfig()
51+
.tagFilters(
52+
Collections.singletonList(
53+
new AWSLogSourceTagFilter()
54+
.source("s3")
55+
.tags(
56+
Collections.singletonList(
57+
"test:test")))))
4758
.sources(Collections.singletonList("s3"))))
4859
.metricsConfig(
4960
new AWSMetricsConfig()

examples/v2/aws-integration/UpdateAWSAccount.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
import com.datadog.api.client.v2.model.AWSAuthConfig;
1313
import com.datadog.api.client.v2.model.AWSAuthConfigRole;
1414
import com.datadog.api.client.v2.model.AWSLambdaForwarderConfig;
15+
import com.datadog.api.client.v2.model.AWSLambdaForwarderConfigLogSourceConfig;
16+
import com.datadog.api.client.v2.model.AWSLogSourceTagFilter;
1517
import com.datadog.api.client.v2.model.AWSLogsConfig;
1618
import com.datadog.api.client.v2.model.AWSMetricsConfig;
1719
import com.datadog.api.client.v2.model.AWSNamespaceTagFilter;
@@ -47,6 +49,15 @@ public static void main(String[] args) {
4749
.lambdas(
4850
Collections.singletonList(
4951
"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder"))
52+
.logSourceConfig(
53+
new AWSLambdaForwarderConfigLogSourceConfig()
54+
.tagFilters(
55+
Collections.singletonList(
56+
new AWSLogSourceTagFilter()
57+
.source("s3")
58+
.tags(
59+
Collections.singletonList(
60+
"test:test")))))
5061
.sources(Collections.singletonList("s3"))))
5162
.metricsConfig(
5263
new AWSMetricsConfig()

src/main/java/com/datadog/api/client/v2/model/AWSLambdaForwarderConfig.java

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
*/
2626
@JsonPropertyOrder({
2727
AWSLambdaForwarderConfig.JSON_PROPERTY_LAMBDAS,
28+
AWSLambdaForwarderConfig.JSON_PROPERTY_LOG_SOURCE_CONFIG,
2829
AWSLambdaForwarderConfig.JSON_PROPERTY_SOURCES
2930
})
3031
@jakarta.annotation.Generated(
@@ -34,6 +35,9 @@ public class AWSLambdaForwarderConfig {
3435
public static final String JSON_PROPERTY_LAMBDAS = "lambdas";
3536
private List<String> lambdas = null;
3637

38+
public static final String JSON_PROPERTY_LOG_SOURCE_CONFIG = "log_source_config";
39+
private AWSLambdaForwarderConfigLogSourceConfig logSourceConfig;
40+
3741
public static final String JSON_PROPERTY_SOURCES = "sources";
3842
private List<String> sources = null;
3943

@@ -66,6 +70,29 @@ public void setLambdas(List<String> lambdas) {
6670
this.lambdas = lambdas;
6771
}
6872

73+
public AWSLambdaForwarderConfig logSourceConfig(
74+
AWSLambdaForwarderConfigLogSourceConfig logSourceConfig) {
75+
this.logSourceConfig = logSourceConfig;
76+
this.unparsed |= logSourceConfig.unparsed;
77+
return this;
78+
}
79+
80+
/**
81+
* Log source configuration.
82+
*
83+
* @return logSourceConfig
84+
*/
85+
@jakarta.annotation.Nullable
86+
@JsonProperty(JSON_PROPERTY_LOG_SOURCE_CONFIG)
87+
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
88+
public AWSLambdaForwarderConfigLogSourceConfig getLogSourceConfig() {
89+
return logSourceConfig;
90+
}
91+
92+
public void setLogSourceConfig(AWSLambdaForwarderConfigLogSourceConfig logSourceConfig) {
93+
this.logSourceConfig = logSourceConfig;
94+
}
95+
6996
public AWSLambdaForwarderConfig sources(List<String> sources) {
7097
this.sources = sources;
7198
return this;
@@ -155,20 +182,22 @@ public boolean equals(Object o) {
155182
}
156183
AWSLambdaForwarderConfig awsLambdaForwarderConfig = (AWSLambdaForwarderConfig) o;
157184
return Objects.equals(this.lambdas, awsLambdaForwarderConfig.lambdas)
185+
&& Objects.equals(this.logSourceConfig, awsLambdaForwarderConfig.logSourceConfig)
158186
&& Objects.equals(this.sources, awsLambdaForwarderConfig.sources)
159187
&& Objects.equals(this.additionalProperties, awsLambdaForwarderConfig.additionalProperties);
160188
}
161189

162190
@Override
163191
public int hashCode() {
164-
return Objects.hash(lambdas, sources, additionalProperties);
192+
return Objects.hash(lambdas, logSourceConfig, sources, additionalProperties);
165193
}
166194

167195
@Override
168196
public String toString() {
169197
StringBuilder sb = new StringBuilder();
170198
sb.append("class AWSLambdaForwarderConfig {\n");
171199
sb.append(" lambdas: ").append(toIndentedString(lambdas)).append("\n");
200+
sb.append(" logSourceConfig: ").append(toIndentedString(logSourceConfig)).append("\n");
172201
sb.append(" sources: ").append(toIndentedString(sources)).append("\n");
173202
sb.append(" additionalProperties: ")
174203
.append(toIndentedString(additionalProperties))
Lines changed: 154 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
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.v2.model;
8+
9+
import com.fasterxml.jackson.annotation.JsonAnyGetter;
10+
import com.fasterxml.jackson.annotation.JsonAnySetter;
11+
import com.fasterxml.jackson.annotation.JsonIgnore;
12+
import com.fasterxml.jackson.annotation.JsonInclude;
13+
import com.fasterxml.jackson.annotation.JsonProperty;
14+
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
15+
import java.util.ArrayList;
16+
import java.util.HashMap;
17+
import java.util.List;
18+
import java.util.Map;
19+
import java.util.Objects;
20+
21+
/** Log source configuration. */
22+
@JsonPropertyOrder({AWSLambdaForwarderConfigLogSourceConfig.JSON_PROPERTY_TAG_FILTERS})
23+
@jakarta.annotation.Generated(
24+
value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
25+
public class AWSLambdaForwarderConfigLogSourceConfig {
26+
@JsonIgnore public boolean unparsed = false;
27+
public static final String JSON_PROPERTY_TAG_FILTERS = "tag_filters";
28+
private List<AWSLogSourceTagFilter> tagFilters = null;
29+
30+
public AWSLambdaForwarderConfigLogSourceConfig tagFilters(
31+
List<AWSLogSourceTagFilter> tagFilters) {
32+
this.tagFilters = tagFilters;
33+
for (AWSLogSourceTagFilter item : tagFilters) {
34+
this.unparsed |= item.unparsed;
35+
}
36+
return this;
37+
}
38+
39+
public AWSLambdaForwarderConfigLogSourceConfig addTagFiltersItem(
40+
AWSLogSourceTagFilter tagFiltersItem) {
41+
if (this.tagFilters == null) {
42+
this.tagFilters = new ArrayList<>();
43+
}
44+
this.tagFilters.add(tagFiltersItem);
45+
this.unparsed |= tagFiltersItem.unparsed;
46+
return this;
47+
}
48+
49+
/**
50+
* List of AWS log source tag filters. Defaults to <code>[]</code>.
51+
*
52+
* @return tagFilters
53+
*/
54+
@jakarta.annotation.Nullable
55+
@JsonProperty(JSON_PROPERTY_TAG_FILTERS)
56+
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
57+
public List<AWSLogSourceTagFilter> getTagFilters() {
58+
return tagFilters;
59+
}
60+
61+
public void setTagFilters(List<AWSLogSourceTagFilter> tagFilters) {
62+
this.tagFilters = tagFilters;
63+
}
64+
65+
/**
66+
* A container for additional, undeclared properties. This is a holder for any undeclared
67+
* properties as specified with the 'additionalProperties' keyword in the OAS document.
68+
*/
69+
private Map<String, Object> additionalProperties;
70+
71+
/**
72+
* Set the additional (undeclared) property with the specified name and value. If the property
73+
* does not already exist, create it otherwise replace it.
74+
*
75+
* @param key The arbitrary key to set
76+
* @param value The associated value
77+
* @return AWSLambdaForwarderConfigLogSourceConfig
78+
*/
79+
@JsonAnySetter
80+
public AWSLambdaForwarderConfigLogSourceConfig putAdditionalProperty(String key, Object value) {
81+
if (this.additionalProperties == null) {
82+
this.additionalProperties = new HashMap<String, Object>();
83+
}
84+
this.additionalProperties.put(key, value);
85+
return this;
86+
}
87+
88+
/**
89+
* Return the additional (undeclared) property.
90+
*
91+
* @return The additional properties
92+
*/
93+
@JsonAnyGetter
94+
public Map<String, Object> getAdditionalProperties() {
95+
return additionalProperties;
96+
}
97+
98+
/**
99+
* Return the additional (undeclared) property with the specified name.
100+
*
101+
* @param key The arbitrary key to get
102+
* @return The specific additional property for the given key
103+
*/
104+
public Object getAdditionalProperty(String key) {
105+
if (this.additionalProperties == null) {
106+
return null;
107+
}
108+
return this.additionalProperties.get(key);
109+
}
110+
111+
/** Return true if this AWSLambdaForwarderConfigLogSourceConfig object is equal to o. */
112+
@Override
113+
public boolean equals(Object o) {
114+
if (this == o) {
115+
return true;
116+
}
117+
if (o == null || getClass() != o.getClass()) {
118+
return false;
119+
}
120+
AWSLambdaForwarderConfigLogSourceConfig awsLambdaForwarderConfigLogSourceConfig =
121+
(AWSLambdaForwarderConfigLogSourceConfig) o;
122+
return Objects.equals(this.tagFilters, awsLambdaForwarderConfigLogSourceConfig.tagFilters)
123+
&& Objects.equals(
124+
this.additionalProperties,
125+
awsLambdaForwarderConfigLogSourceConfig.additionalProperties);
126+
}
127+
128+
@Override
129+
public int hashCode() {
130+
return Objects.hash(tagFilters, additionalProperties);
131+
}
132+
133+
@Override
134+
public String toString() {
135+
StringBuilder sb = new StringBuilder();
136+
sb.append("class AWSLambdaForwarderConfigLogSourceConfig {\n");
137+
sb.append(" tagFilters: ").append(toIndentedString(tagFilters)).append("\n");
138+
sb.append(" additionalProperties: ")
139+
.append(toIndentedString(additionalProperties))
140+
.append("\n");
141+
sb.append('}');
142+
return sb.toString();
143+
}
144+
145+
/**
146+
* Convert the given object to string with each line indented by 4 spaces (except the first line).
147+
*/
148+
private String toIndentedString(Object o) {
149+
if (o == null) {
150+
return "null";
151+
}
152+
return o.toString().replace("\n", "\n ");
153+
}
154+
}

0 commit comments

Comments
 (0)