Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .generated-info
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{
"spec_repo_commit": "fd3370f",
"generated": "2025-08-06 20:55:31.339"
"spec_repo_commit": "c5cca50",
"generated": "2025-08-07 18:04:36.602"
}
40 changes: 40 additions & 0 deletions .generator/schemas/v2/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -1625,6 +1625,8 @@ components:
example: arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder
type: string
type: array
log_source_config:
$ref: '#/components/schemas/AWSLambdaForwarderConfigLogSourceConfig'
sources:
description: 'List of service IDs set to enable automatic log collection.
Discover the list of available services with the
Expand All @@ -1636,6 +1638,44 @@ components:
type: string
type: array
type: object
AWSLambdaForwarderConfigLogSourceConfig:
description: Log source configuration.
properties:
tag_filters:
description: List of AWS log source tag filters. Defaults to `[]`.
items:
$ref: '#/components/schemas/AWSLogSourceTagFilter'
type: array
type: object
AWSLogSourceTagFilter:
description: 'AWS log source tag filter list. Defaults to `[]`.

Array of log source to AWS resource tag mappings. Each mapping contains a
log source and its associated AWS resource tags (in `key:value` format) used
to filter logs submitted to Datadog.

Tag filters are applied for tags on the AWS resource emitting logs; tags associated
with the log storage entity (such as a CloudWatch Log Group or S3 Bucket)
are not considered.

For more information on resource tag filter syntax, [see AWS resource exclusion](https://docs.datadoghq.com/account_management/billing/aws/#aws-resource-exclusion)
in the AWS integration billing page.'
properties:
source:
description: The AWS log source to which the tag filters defined in `tags`
are applied.
example: s3
type: string
tags:
description: The AWS resource tags to filter on for the log source specified
by `source`.
items:
description: Tag in the form `key:value`.
example: env:prod
type: string
nullable: true
type: array
type: object
AWSLogsConfig:
description: AWS Logs Collection config.
properties:
Expand Down
11 changes: 11 additions & 0 deletions examples/v2/aws-integration/CreateAWSAccount.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
import com.datadog.api.client.v2.model.AWSAuthConfig;
import com.datadog.api.client.v2.model.AWSAuthConfigKeys;
import com.datadog.api.client.v2.model.AWSLambdaForwarderConfig;
import com.datadog.api.client.v2.model.AWSLambdaForwarderConfigLogSourceConfig;
import com.datadog.api.client.v2.model.AWSLogSourceTagFilter;
import com.datadog.api.client.v2.model.AWSLogsConfig;
import com.datadog.api.client.v2.model.AWSMetricsConfig;
import com.datadog.api.client.v2.model.AWSNamespaceTagFilter;
Expand Down Expand Up @@ -47,6 +49,15 @@ public static void main(String[] args) {
.lambdas(
Collections.singletonList(
"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder"))
.logSourceConfig(
new AWSLambdaForwarderConfigLogSourceConfig()
.tagFilters(
Collections.singletonList(
new AWSLogSourceTagFilter()
.source("s3")
.tags(
Collections.singletonList(
"test:test")))))
.sources(Collections.singletonList("s3"))))
.metricsConfig(
new AWSMetricsConfig()
Expand Down
11 changes: 11 additions & 0 deletions examples/v2/aws-integration/CreateAWSAccount_1716720881.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
import com.datadog.api.client.v2.model.AWSAuthConfig;
import com.datadog.api.client.v2.model.AWSAuthConfigRole;
import com.datadog.api.client.v2.model.AWSLambdaForwarderConfig;
import com.datadog.api.client.v2.model.AWSLambdaForwarderConfigLogSourceConfig;
import com.datadog.api.client.v2.model.AWSLogSourceTagFilter;
import com.datadog.api.client.v2.model.AWSLogsConfig;
import com.datadog.api.client.v2.model.AWSMetricsConfig;
import com.datadog.api.client.v2.model.AWSNamespaceTagFilter;
Expand Down Expand Up @@ -44,6 +46,15 @@ public static void main(String[] args) {
.lambdas(
Collections.singletonList(
"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder"))
.logSourceConfig(
new AWSLambdaForwarderConfigLogSourceConfig()
.tagFilters(
Collections.singletonList(
new AWSLogSourceTagFilter()
.source("s3")
.tags(
Collections.singletonList(
"test:test")))))
.sources(Collections.singletonList("s3"))))
.metricsConfig(
new AWSMetricsConfig()
Expand Down
11 changes: 11 additions & 0 deletions examples/v2/aws-integration/UpdateAWSAccount.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
import com.datadog.api.client.v2.model.AWSAuthConfig;
import com.datadog.api.client.v2.model.AWSAuthConfigRole;
import com.datadog.api.client.v2.model.AWSLambdaForwarderConfig;
import com.datadog.api.client.v2.model.AWSLambdaForwarderConfigLogSourceConfig;
import com.datadog.api.client.v2.model.AWSLogSourceTagFilter;
import com.datadog.api.client.v2.model.AWSLogsConfig;
import com.datadog.api.client.v2.model.AWSMetricsConfig;
import com.datadog.api.client.v2.model.AWSNamespaceTagFilter;
Expand Down Expand Up @@ -47,6 +49,15 @@ public static void main(String[] args) {
.lambdas(
Collections.singletonList(
"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder"))
.logSourceConfig(
new AWSLambdaForwarderConfigLogSourceConfig()
.tagFilters(
Collections.singletonList(
new AWSLogSourceTagFilter()
.source("s3")
.tags(
Collections.singletonList(
"test:test")))))
.sources(Collections.singletonList("s3"))))
.metricsConfig(
new AWSMetricsConfig()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
*/
@JsonPropertyOrder({
AWSLambdaForwarderConfig.JSON_PROPERTY_LAMBDAS,
AWSLambdaForwarderConfig.JSON_PROPERTY_LOG_SOURCE_CONFIG,
AWSLambdaForwarderConfig.JSON_PROPERTY_SOURCES
})
@jakarta.annotation.Generated(
Expand All @@ -34,6 +35,9 @@ public class AWSLambdaForwarderConfig {
public static final String JSON_PROPERTY_LAMBDAS = "lambdas";
private List<String> lambdas = null;

public static final String JSON_PROPERTY_LOG_SOURCE_CONFIG = "log_source_config";
private AWSLambdaForwarderConfigLogSourceConfig logSourceConfig;

public static final String JSON_PROPERTY_SOURCES = "sources";
private List<String> sources = null;

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

public AWSLambdaForwarderConfig logSourceConfig(
AWSLambdaForwarderConfigLogSourceConfig logSourceConfig) {
this.logSourceConfig = logSourceConfig;
this.unparsed |= logSourceConfig.unparsed;
return this;
}

/**
* Log source configuration.
*
* @return logSourceConfig
*/
@jakarta.annotation.Nullable
@JsonProperty(JSON_PROPERTY_LOG_SOURCE_CONFIG)
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
public AWSLambdaForwarderConfigLogSourceConfig getLogSourceConfig() {
return logSourceConfig;
}

public void setLogSourceConfig(AWSLambdaForwarderConfigLogSourceConfig logSourceConfig) {
this.logSourceConfig = logSourceConfig;
}

public AWSLambdaForwarderConfig sources(List<String> sources) {
this.sources = sources;
return this;
Expand Down Expand Up @@ -155,20 +182,22 @@ public boolean equals(Object o) {
}
AWSLambdaForwarderConfig awsLambdaForwarderConfig = (AWSLambdaForwarderConfig) o;
return Objects.equals(this.lambdas, awsLambdaForwarderConfig.lambdas)
&& Objects.equals(this.logSourceConfig, awsLambdaForwarderConfig.logSourceConfig)
&& Objects.equals(this.sources, awsLambdaForwarderConfig.sources)
&& Objects.equals(this.additionalProperties, awsLambdaForwarderConfig.additionalProperties);
}

@Override
public int hashCode() {
return Objects.hash(lambdas, sources, additionalProperties);
return Objects.hash(lambdas, logSourceConfig, sources, additionalProperties);
}

@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("class AWSLambdaForwarderConfig {\n");
sb.append(" lambdas: ").append(toIndentedString(lambdas)).append("\n");
sb.append(" logSourceConfig: ").append(toIndentedString(logSourceConfig)).append("\n");
sb.append(" sources: ").append(toIndentedString(sources)).append("\n");
sb.append(" additionalProperties: ")
.append(toIndentedString(additionalProperties))
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,154 @@
/*
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
* This product includes software developed at Datadog (https://www.datadoghq.com/).
* Copyright 2019-Present Datadog, Inc.
*/

package com.datadog.api.client.v2.model;

import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonAnySetter;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;

/** Log source configuration. */
@JsonPropertyOrder({AWSLambdaForwarderConfigLogSourceConfig.JSON_PROPERTY_TAG_FILTERS})
@jakarta.annotation.Generated(
value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
public class AWSLambdaForwarderConfigLogSourceConfig {
@JsonIgnore public boolean unparsed = false;
public static final String JSON_PROPERTY_TAG_FILTERS = "tag_filters";
private List<AWSLogSourceTagFilter> tagFilters = null;

public AWSLambdaForwarderConfigLogSourceConfig tagFilters(
List<AWSLogSourceTagFilter> tagFilters) {
this.tagFilters = tagFilters;
for (AWSLogSourceTagFilter item : tagFilters) {
this.unparsed |= item.unparsed;
}
return this;
}

public AWSLambdaForwarderConfigLogSourceConfig addTagFiltersItem(
AWSLogSourceTagFilter tagFiltersItem) {
if (this.tagFilters == null) {
this.tagFilters = new ArrayList<>();
}
this.tagFilters.add(tagFiltersItem);
this.unparsed |= tagFiltersItem.unparsed;
return this;
}

/**
* List of AWS log source tag filters. Defaults to <code>[]</code>.
*
* @return tagFilters
*/
@jakarta.annotation.Nullable
@JsonProperty(JSON_PROPERTY_TAG_FILTERS)
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
public List<AWSLogSourceTagFilter> getTagFilters() {
return tagFilters;
}

public void setTagFilters(List<AWSLogSourceTagFilter> tagFilters) {
this.tagFilters = tagFilters;
}

/**
* A container for additional, undeclared properties. This is a holder for any undeclared
* properties as specified with the 'additionalProperties' keyword in the OAS document.
*/
private Map<String, Object> additionalProperties;

/**
* Set the additional (undeclared) property with the specified name and value. If the property
* does not already exist, create it otherwise replace it.
*
* @param key The arbitrary key to set
* @param value The associated value
* @return AWSLambdaForwarderConfigLogSourceConfig
*/
@JsonAnySetter
public AWSLambdaForwarderConfigLogSourceConfig putAdditionalProperty(String key, Object value) {
if (this.additionalProperties == null) {
this.additionalProperties = new HashMap<String, Object>();
}
this.additionalProperties.put(key, value);
return this;
}

/**
* Return the additional (undeclared) property.
*
* @return The additional properties
*/
@JsonAnyGetter
public Map<String, Object> getAdditionalProperties() {
return additionalProperties;
}

/**
* Return the additional (undeclared) property with the specified name.
*
* @param key The arbitrary key to get
* @return The specific additional property for the given key
*/
public Object getAdditionalProperty(String key) {
if (this.additionalProperties == null) {
return null;
}
return this.additionalProperties.get(key);
}

/** Return true if this AWSLambdaForwarderConfigLogSourceConfig object is equal to o. */
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
AWSLambdaForwarderConfigLogSourceConfig awsLambdaForwarderConfigLogSourceConfig =
(AWSLambdaForwarderConfigLogSourceConfig) o;
return Objects.equals(this.tagFilters, awsLambdaForwarderConfigLogSourceConfig.tagFilters)
&& Objects.equals(
this.additionalProperties,
awsLambdaForwarderConfigLogSourceConfig.additionalProperties);
}

@Override
public int hashCode() {
return Objects.hash(tagFilters, additionalProperties);
}

@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("class AWSLambdaForwarderConfigLogSourceConfig {\n");
sb.append(" tagFilters: ").append(toIndentedString(tagFilters)).append("\n");
sb.append(" additionalProperties: ")
.append(toIndentedString(additionalProperties))
.append("\n");
sb.append('}');
return sb.toString();
}

/**
* Convert the given object to string with each line indented by 4 spaces (except the first line).
*/
private String toIndentedString(Object o) {
if (o == null) {
return "null";
}
return o.toString().replace("\n", "\n ");
}
}
Loading