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
37 changes: 31 additions & 6 deletions .generator/schemas/v1/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3448,9 +3448,10 @@ components:
$ref: '#/components/schemas/WidgetCustomLink'
type: array
requests:
description: 'Array of one request object to display in the widget. The
request must contain a `group-by` tag whose value is a country ISO code.

description: 'Array of request objects to display in the widget. May include
an optional request for the region layer and/or an optional request for
the points layer. Region layer requests must contain a `group-by` tag
whose value is a country ISO code.

See the [Request JSON schema documentation](https://docs.datadoghq.com/dashboards/graphing_json/request_json)

Expand All @@ -3461,7 +3462,7 @@ components:
query: <METRIC_1>{<SCOPE_1>}
items:
$ref: '#/components/schemas/GeomapWidgetRequest'
maxItems: 1
maxItems: 2
minItems: 1
type: array
style:
Expand Down Expand Up @@ -3519,8 +3520,9 @@ components:
focus: WORLD
properties:
focus:
description: The 2-letter ISO code of a country to focus the map on. Or
`WORLD`.
description: The 2-letter ISO code of a country to focus the map on, or
`WORLD` for global view, or a region (`EMEA`, `APAC`, `LATAM`), or a continent
(`NORTH_AMERICA`, `SOUTH_AMERICA`, `EUROPE`, `AFRICA`, `ASIA`, `OCEANIA`).
example: WORLD
type: string
required:
Expand All @@ -3539,6 +3541,12 @@ components:
items:
$ref: '#/components/schemas/ListStreamColumn'
type: array
conditional_formats:
description: Threshold (numeric) conditional formatting rules may be used
by a regions layer.
items:
$ref: '#/components/schemas/WidgetConditionalFormat'
type: array
formulas:
description: List of formulas that operate on queries.
items:
Expand All @@ -3564,6 +3572,23 @@ components:
$ref: '#/components/schemas/LogQueryDefinition'
sort:
$ref: '#/components/schemas/WidgetSortBy'
style:
$ref: '#/components/schemas/GeomapWidgetRequestStyle'
text_formats:
description: Text formatting rules may be used by a points layer.
items:
$ref: '#/components/schemas/TableWidgetTextFormatRule'
type: array
type: object
GeomapWidgetRequestStyle:
description: The style to apply to the request for points layer.
example:
color_by: status
properties:
color_by:
description: The category to color the points by.
example: status
type: string
type: object
GraphSnapshot:
description: Object representing a graph snapshot.
Expand Down
168 changes: 168 additions & 0 deletions examples/v1/dashboards/CreateDashboard_9836563.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,168 @@
// Create a geomap widget with conditional formats and text formats

import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v1.api.DashboardsApi;
import com.datadog.api.client.v1.model.Dashboard;
import com.datadog.api.client.v1.model.DashboardLayoutType;
import com.datadog.api.client.v1.model.DashboardReflowType;
import com.datadog.api.client.v1.model.FormulaAndFunctionEventAggregation;
import com.datadog.api.client.v1.model.FormulaAndFunctionEventQueryDefinition;
import com.datadog.api.client.v1.model.FormulaAndFunctionEventQueryDefinitionCompute;
import com.datadog.api.client.v1.model.FormulaAndFunctionEventQueryDefinitionSearch;
import com.datadog.api.client.v1.model.FormulaAndFunctionEventsDataSource;
import com.datadog.api.client.v1.model.FormulaAndFunctionQueryDefinition;
import com.datadog.api.client.v1.model.FormulaAndFunctionResponseFormat;
import com.datadog.api.client.v1.model.FormulaType;
import com.datadog.api.client.v1.model.GeomapWidgetDefinition;
import com.datadog.api.client.v1.model.GeomapWidgetDefinitionStyle;
import com.datadog.api.client.v1.model.GeomapWidgetDefinitionType;
import com.datadog.api.client.v1.model.GeomapWidgetDefinitionView;
import com.datadog.api.client.v1.model.GeomapWidgetRequest;
import com.datadog.api.client.v1.model.GeomapWidgetRequestStyle;
import com.datadog.api.client.v1.model.ListStreamColumn;
import com.datadog.api.client.v1.model.ListStreamColumnWidth;
import com.datadog.api.client.v1.model.ListStreamQuery;
import com.datadog.api.client.v1.model.ListStreamSource;
import com.datadog.api.client.v1.model.TableWidgetTextFormatMatch;
import com.datadog.api.client.v1.model.TableWidgetTextFormatMatchType;
import com.datadog.api.client.v1.model.TableWidgetTextFormatPalette;
import com.datadog.api.client.v1.model.TableWidgetTextFormatRule;
import com.datadog.api.client.v1.model.Widget;
import com.datadog.api.client.v1.model.WidgetComparator;
import com.datadog.api.client.v1.model.WidgetConditionalFormat;
import com.datadog.api.client.v1.model.WidgetDefinition;
import com.datadog.api.client.v1.model.WidgetFormula;
import com.datadog.api.client.v1.model.WidgetFormulaSort;
import com.datadog.api.client.v1.model.WidgetLayout;
import com.datadog.api.client.v1.model.WidgetPalette;
import com.datadog.api.client.v1.model.WidgetSort;
import com.datadog.api.client.v1.model.WidgetSortBy;
import com.datadog.api.client.v1.model.WidgetSortOrderBy;
import java.util.Arrays;
import java.util.Collections;

public class Example {
public static void main(String[] args) {
ApiClient defaultClient = ApiClient.getDefaultApiClient();
DashboardsApi apiInstance = new DashboardsApi(defaultClient);

Dashboard body =
new Dashboard()
.title("Example-Dashboard")
.description("Example-Dashboard")
.widgets(
Collections.singletonList(
new Widget()
.definition(
new WidgetDefinition(
new GeomapWidgetDefinition()
.title("Log Count by Service and Source")
.type(GeomapWidgetDefinitionType.GEOMAP)
.requests(
Arrays.asList(
new GeomapWidgetRequest()
.responseFormat(
FormulaAndFunctionResponseFormat.SCALAR)
.queries(
Collections.singletonList(
new FormulaAndFunctionQueryDefinition(
new FormulaAndFunctionEventQueryDefinition()
.dataSource(
FormulaAndFunctionEventsDataSource
.RUM)
.name("query1")
.search(
new FormulaAndFunctionEventQueryDefinitionSearch()
.query("@type:session"))
.indexes(
Collections.singletonList("*"))
.compute(
new FormulaAndFunctionEventQueryDefinitionCompute()
.aggregation(
FormulaAndFunctionEventAggregation
.COUNT)))))
.conditionalFormats(
Collections.singletonList(
new WidgetConditionalFormat()
.comparator(
WidgetComparator.GREATER_THAN)
.value(1000.0)
.palette(WidgetPalette.WHITE_ON_GREEN)))
.formulas(
Collections.singletonList(
new WidgetFormula().formula("query1")))
.sort(
new WidgetSortBy()
.count(250L)
.orderBy(
Collections.singletonList(
new WidgetSortOrderBy(
new WidgetFormulaSort()
.type(FormulaType.FORMULA)
.index(0L)
.order(
WidgetSort
.DESCENDING))))),
new GeomapWidgetRequest()
.responseFormat(
FormulaAndFunctionResponseFormat.EVENT_LIST)
.query(
new ListStreamQuery()
.dataSource(ListStreamSource.LOGS_STREAM)
.queryString("")
.storage("hot"))
.columns(
Arrays.asList(
new ListStreamColumn()
.field(
"@network.client.geoip.location.latitude")
.width(ListStreamColumnWidth.AUTO),
new ListStreamColumn()
.field(
"@network.client.geoip.location.longitude")
.width(ListStreamColumnWidth.AUTO),
new ListStreamColumn()
.field(
"@network.client.geoip.country.iso_code")
.width(ListStreamColumnWidth.AUTO),
new ListStreamColumn()
.field(
"@network.client.geoip.subdivision.name")
.width(ListStreamColumnWidth.AUTO)))
.style(
new GeomapWidgetRequestStyle()
.colorBy("status"))
.textFormats(
Collections.singletonList(
new TableWidgetTextFormatRule()
.match(
new TableWidgetTextFormatMatch()
.type(
TableWidgetTextFormatMatchType
.IS)
.value("error"))
.palette(
TableWidgetTextFormatPalette
.WHITE_ON_RED)))))
.style(
new GeomapWidgetDefinitionStyle()
.palette("hostmap_blues")
.paletteFlip(false))
.view(new GeomapWidgetDefinitionView().focus("NORTH_AMERICA"))))
.layout(new WidgetLayout().x(0L).y(0L).width(12L).height(6L))))
.layoutType(DashboardLayoutType.ORDERED)
.reflowType(DashboardReflowType.FIXED);

try {
Dashboard result = apiInstance.createDashboard(body);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling DashboardsApi#createDashboard");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -128,11 +128,11 @@ public GeomapWidgetDefinition addRequestsItem(GeomapWidgetRequest requestsItem)
}

/**
* Array of one request object to display in the widget. The request must contain a <code>group-by
* </code> tag whose value is a country ISO code.
*
* <p>See the <a href="https://docs.datadoghq.com/dashboards/graphing_json/request_json">Request
* JSON schema documentation</a> for information about building the <code>REQUEST_SCHEMA</code>.
* Array of request objects to display in the widget. May include an optional request for the
* region layer and/or an optional request for the points layer. Region layer requests must
* contain a <code>group-by</code> tag whose value is a country ISO code. See the <a
* href="https://docs.datadoghq.com/dashboards/graphing_json/request_json">Request JSON schema
* documentation</a> for information about building the <code>REQUEST_SCHEMA</code>.
*
* @return requests
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,10 @@ public GeomapWidgetDefinitionView focus(String focus) {
}

/**
* The 2-letter ISO code of a country to focus the map on. Or <code>WORLD</code>.
* The 2-letter ISO code of a country to focus the map on, or <code>WORLD</code> for global view,
* or a region (<code>EMEA</code>, <code>APAC</code>, <code>LATAM</code>), or a continent (<code>
* NORTH_AMERICA</code>, <code>SOUTH_AMERICA</code>, <code>EUROPE</code>, <code>AFRICA</code>,
* <code>ASIA</code>, <code>OCEANIA</code>).
*
* @return focus
*/
Expand Down
Loading
Loading