datadog_api_client 2.12.0 → 2.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. checksums.yaml +4 -4
  2. data/.apigentools-info +6 -6
  3. data/.generator/conftest.py +7 -0
  4. data/.generator/poetry.lock +45 -75
  5. data/.generator/pyproject.toml +7 -7
  6. data/.generator/schemas/v1/openapi.yaml +76 -3
  7. data/.generator/schemas/v2/openapi.yaml +2328 -459
  8. data/.generator/src/generator/formatter.py +9 -3
  9. data/.generator/src/generator/openapi.py +4 -2
  10. data/.github/workflows/test_integration.yml +7 -1
  11. data/.pre-commit-config.yaml +2 -2
  12. data/CHANGELOG.md +31 -0
  13. data/examples/v1/dashboards/CreateDashboard_1284514532.rb +43 -0
  14. data/examples/v1/dashboards/CreateDashboard_2261785072.rb +47 -0
  15. data/examples/v1/dashboards/CreateDashboard_3513586382.rb +74 -0
  16. data/examples/v1/dashboards/CreateDashboard_3562282606.rb +1 -0
  17. data/examples/v1/organizations/UpdateOrg.rb +1 -1
  18. data/examples/v1/users/CreateUser.rb +1 -1
  19. data/examples/v1/users/CreateUser_266604071.rb +13 -0
  20. data/examples/v1/users/UpdateUser.rb +1 -1
  21. data/examples/v2/confluent-cloud/CreateConfluentAccount.rb +1 -0
  22. data/examples/v2/confluent-cloud/CreateConfluentResource.rb +1 -0
  23. data/examples/v2/confluent-cloud/UpdateConfluentResource.rb +1 -0
  24. data/examples/v2/downtimes/CancelDowntime.rb +11 -0
  25. data/examples/v2/downtimes/CreateDowntime.rb +26 -0
  26. data/examples/v2/downtimes/GetDowntime.rb +11 -0
  27. data/examples/v2/downtimes/ListDowntimes.rb +8 -0
  28. data/examples/v2/downtimes/ListMonitorDowntimes.rb +8 -0
  29. data/examples/v2/downtimes/ListMonitorDowntimes_128979780.rb +8 -0
  30. data/examples/v2/downtimes/UpdateDowntime.rb +21 -0
  31. data/examples/v2/logs/ListLogsGet_2034110533.rb +3 -1
  32. data/examples/v2/security-monitoring/CreateSecurityMonitoringRule_1092490364.rb +10 -0
  33. data/examples/v2/spans/AggregateSpans.rb +25 -0
  34. data/examples/v2/spans/ListSpans.rb +25 -0
  35. data/examples/v2/spans/ListSpansGet.rb +5 -0
  36. data/examples/v2/spans/ListSpansGet_1130763422.rb +8 -0
  37. data/examples/v2/spans/ListSpans_3495563906.rb +25 -0
  38. data/lib/datadog_api_client/configuration.rb +6 -0
  39. data/lib/datadog_api_client/inflector.rb +87 -0
  40. data/lib/datadog_api_client/v1/models/change_widget_request.rb +1 -1
  41. data/lib/datadog_api_client/v1/models/formula_and_function_cloud_cost_data_source.rb +26 -0
  42. data/lib/datadog_api_client/v1/models/formula_and_function_cloud_cost_query_definition.rb +150 -0
  43. data/lib/datadog_api_client/v1/models/formula_and_function_query_definition.rb +2 -1
  44. data/lib/datadog_api_client/v1/models/formula_and_function_response_format.rb +2 -1
  45. data/lib/datadog_api_client/v1/models/formula_and_function_slo_query_definition.rb +11 -1
  46. data/lib/datadog_api_client/v1/models/geomap_widget_request.rb +24 -2
  47. data/lib/datadog_api_client/v1/models/ip_prefixes_remote_configuration.rb +94 -0
  48. data/lib/datadog_api_client/v1/models/ip_ranges.rb +11 -1
  49. data/lib/datadog_api_client/v1/models/organization_settings.rb +8 -0
  50. data/lib/datadog_api_client/v1/models/query_value_widget_request.rb +1 -1
  51. data/lib/datadog_api_client/v1/models/scatterplot_table_request.rb +1 -1
  52. data/lib/datadog_api_client/v1/models/sunburst_widget_request.rb +1 -1
  53. data/lib/datadog_api_client/v1/models/table_widget_request.rb +1 -1
  54. data/lib/datadog_api_client/v1/models/timeseries_widget_request.rb +1 -1
  55. data/lib/datadog_api_client/v1/models/toplist_widget_request.rb +1 -1
  56. data/lib/datadog_api_client/v1/models/tree_map_widget_request.rb +1 -1
  57. data/lib/datadog_api_client/v1/models/user.rb +8 -0
  58. data/lib/datadog_api_client/v1/models/widget_display_type.rb +1 -0
  59. data/lib/datadog_api_client/v2/api/ci_visibility_pipelines_api.rb +2 -0
  60. data/lib/datadog_api_client/v2/api/downtimes_api.rb +462 -0
  61. data/lib/datadog_api_client/v2/api/logs_api.rb +2 -2
  62. data/lib/datadog_api_client/v2/api/metrics_api.rb +1 -1
  63. data/lib/datadog_api_client/v2/api/rum_api.rb +2 -2
  64. data/lib/datadog_api_client/v2/api/spans_api.rb +294 -0
  65. data/lib/datadog_api_client/v2/models/ci_app_pipeline_event_pipeline.rb +1 -1
  66. data/lib/datadog_api_client/v2/models/cloud_configuration_rule_create_payload.rb +13 -1
  67. data/lib/datadog_api_client/v2/models/cloud_workload_security_agent_rule_attributes.rb +41 -1
  68. data/lib/datadog_api_client/v2/models/confluent_account_resource_attributes.rb +11 -1
  69. data/lib/datadog_api_client/v2/models/confluent_resource_request_attributes.rb +11 -1
  70. data/lib/datadog_api_client/v2/models/confluent_resource_response_attributes.rb +21 -1
  71. data/lib/datadog_api_client/v2/models/dashboard_list_item.rb +12 -1
  72. data/lib/datadog_api_client/v2/models/downtime_create_request.rb +98 -0
  73. data/lib/datadog_api_client/v2/models/downtime_create_request_attributes.rb +194 -0
  74. data/lib/datadog_api_client/v2/models/downtime_create_request_data.rb +119 -0
  75. data/lib/datadog_api_client/v2/models/downtime_included_monitor_type.rb +26 -0
  76. data/lib/datadog_api_client/v2/models/downtime_meta.rb +80 -0
  77. data/lib/datadog_api_client/v2/models/downtime_meta_page.rb +80 -0
  78. data/lib/datadog_api_client/v2/models/downtime_monitor_identifier.rb +63 -0
  79. data/lib/datadog_api_client/v2/models/downtime_monitor_identifier_id.rb +98 -0
  80. data/lib/datadog_api_client/v2/models/downtime_monitor_identifier_tags.rb +107 -0
  81. data/lib/datadog_api_client/v2/models/downtime_monitor_included_attributes.rb +80 -0
  82. data/lib/datadog_api_client/v2/models/downtime_monitor_included_item.rb +100 -0
  83. data/lib/datadog_api_client/v2/models/downtime_notify_end_state_actions.rb +27 -0
  84. data/lib/datadog_api_client/v2/models/downtime_notify_end_state_types.rb +28 -0
  85. data/lib/datadog_api_client/v2/models/downtime_relationships.rb +90 -0
  86. data/lib/datadog_api_client/v2/models/downtime_relationships_created_by.rb +88 -0
  87. data/lib/datadog_api_client/v2/models/downtime_relationships_created_by_data.rb +90 -0
  88. data/lib/datadog_api_client/v2/models/downtime_relationships_monitor.rb +88 -0
  89. data/lib/datadog_api_client/v2/models/downtime_relationships_monitor_data.rb +90 -0
  90. data/lib/datadog_api_client/v2/models/downtime_resource_type.rb +26 -0
  91. data/lib/datadog_api_client/v2/models/downtime_response.rb +95 -0
  92. data/lib/datadog_api_client/v2/models/downtime_response_attributes.rb +208 -0
  93. data/lib/datadog_api_client/v2/models/downtime_response_data.rb +110 -0
  94. data/lib/datadog_api_client/v2/models/downtime_response_included_item.rb +63 -0
  95. data/lib/datadog_api_client/v2/models/downtime_schedule_create_request.rb +63 -0
  96. data/lib/datadog_api_client/v2/models/downtime_schedule_current_downtime_response.rb +100 -0
  97. data/lib/datadog_api_client/v2/models/downtime_schedule_one_time_create_update_request.rb +101 -0
  98. data/lib/datadog_api_client/v2/models/downtime_schedule_one_time_response.rb +98 -0
  99. data/lib/datadog_api_client/v2/models/downtime_schedule_recurrence_create_update_request.rb +143 -0
  100. data/lib/datadog_api_client/v2/models/downtime_schedule_recurrence_response.rb +106 -0
  101. data/lib/datadog_api_client/v2/models/downtime_schedule_recurrences_create_request.rb +110 -0
  102. data/lib/datadog_api_client/v2/models/downtime_schedule_recurrences_response.rb +131 -0
  103. data/lib/datadog_api_client/v2/models/downtime_schedule_recurrences_update_request.rb +92 -0
  104. data/lib/datadog_api_client/v2/models/downtime_schedule_response.rb +65 -0
  105. data/lib/datadog_api_client/v2/models/downtime_schedule_update_request.rb +63 -0
  106. data/lib/datadog_api_client/v2/models/downtime_status.rb +29 -0
  107. data/lib/datadog_api_client/v2/models/downtime_update_request.rb +98 -0
  108. data/lib/datadog_api_client/v2/models/downtime_update_request_attributes.rb +165 -0
  109. data/lib/datadog_api_client/v2/models/downtime_update_request_data.rb +140 -0
  110. data/lib/datadog_api_client/v2/models/event_response_attributes.rb +11 -1
  111. data/lib/datadog_api_client/v2/models/events_group_by_sort.rb +1 -1
  112. data/lib/datadog_api_client/v2/models/events_response_metadata.rb +11 -1
  113. data/lib/datadog_api_client/v2/models/list_downtimes_response.rb +104 -0
  114. data/lib/datadog_api_client/v2/models/metrics_aggregator.rb +1 -1
  115. data/lib/datadog_api_client/v2/models/metrics_scalar_query.rb +1 -1
  116. data/lib/datadog_api_client/v2/models/monitor_downtime_match_resource_type.rb +26 -0
  117. data/lib/datadog_api_client/v2/models/monitor_downtime_match_response.rb +92 -0
  118. data/lib/datadog_api_client/v2/models/monitor_downtime_match_response_attributes.rb +120 -0
  119. data/lib/datadog_api_client/v2/models/monitor_downtime_match_response_data.rb +108 -0
  120. data/lib/datadog_api_client/v2/models/restriction_policy_binding.rb +2 -1
  121. data/lib/datadog_api_client/v2/models/rum_application_list.rb +11 -1
  122. data/lib/datadog_api_client/v2/models/service_definition_data.rb +11 -1
  123. data/lib/datadog_api_client/v2/models/service_definition_meta.rb +36 -4
  124. data/lib/datadog_api_client/v2/models/service_definition_meta_warnings.rb +100 -0
  125. data/lib/datadog_api_client/v2/models/span.rb +100 -0
  126. data/lib/datadog_api_client/v2/models/spans_aggregate_bucket.rb +100 -0
  127. data/lib/datadog_api_client/v2/models/spans_aggregate_bucket_attributes.rb +100 -0
  128. data/lib/datadog_api_client/v2/models/spans_aggregate_bucket_type.rb +26 -0
  129. data/lib/datadog_api_client/v2/models/spans_aggregate_bucket_value.rb +64 -0
  130. data/lib/datadog_api_client/v2/models/spans_aggregate_bucket_value_timeseries_point.rb +90 -0
  131. data/lib/datadog_api_client/v2/models/spans_aggregate_data.rb +90 -0
  132. data/lib/datadog_api_client/v2/models/spans_aggregate_request.rb +80 -0
  133. data/lib/datadog_api_client/v2/models/spans_aggregate_request_attributes.rb +115 -0
  134. data/lib/datadog_api_client/v2/models/spans_aggregate_request_type.rb +26 -0
  135. data/lib/datadog_api_client/v2/models/spans_aggregate_response.rb +92 -0
  136. data/lib/datadog_api_client/v2/models/spans_aggregate_response_metadata.rb +113 -0
  137. data/lib/datadog_api_client/v2/models/spans_aggregate_response_status.rb +27 -0
  138. data/lib/datadog_api_client/v2/models/spans_aggregate_sort.rb +110 -0
  139. data/lib/datadog_api_client/v2/models/spans_aggregate_sort_type.rb +27 -0
  140. data/lib/datadog_api_client/v2/models/spans_aggregation_function.rb +37 -0
  141. data/lib/datadog_api_client/v2/models/spans_attributes.rb +244 -0
  142. data/lib/datadog_api_client/v2/models/spans_compute.rb +129 -0
  143. data/lib/datadog_api_client/v2/models/spans_compute_type.rb +27 -0
  144. data/lib/datadog_api_client/v2/models/spans_group_by.rb +149 -0
  145. data/lib/datadog_api_client/v2/models/spans_group_by_histogram.rb +143 -0
  146. data/lib/datadog_api_client/v2/models/spans_group_by_missing.rb +63 -0
  147. data/lib/datadog_api_client/v2/models/spans_group_by_total.rb +64 -0
  148. data/lib/datadog_api_client/v2/models/spans_list_request.rb +80 -0
  149. data/lib/datadog_api_client/v2/models/spans_list_request_attributes.rb +111 -0
  150. data/lib/datadog_api_client/v2/models/spans_list_request_data.rb +90 -0
  151. data/lib/datadog_api_client/v2/models/spans_list_request_page.rb +108 -0
  152. data/lib/datadog_api_client/v2/models/spans_list_request_type.rb +26 -0
  153. data/lib/datadog_api_client/v2/models/spans_list_response.rb +102 -0
  154. data/lib/datadog_api_client/v2/models/spans_list_response_links.rb +81 -0
  155. data/lib/datadog_api_client/v2/models/spans_list_response_metadata.rb +123 -0
  156. data/lib/datadog_api_client/v2/models/spans_query_filter.rb +100 -0
  157. data/lib/datadog_api_client/v2/models/spans_query_options.rb +91 -0
  158. data/lib/datadog_api_client/v2/models/spans_response_metadata_page.rb +81 -0
  159. data/lib/datadog_api_client/v2/models/spans_sort.rb +27 -0
  160. data/lib/datadog_api_client/v2/models/spans_sort_order.rb +27 -0
  161. data/lib/datadog_api_client/v2/models/spans_type.rb +26 -0
  162. data/lib/datadog_api_client/v2/models/spans_warning.rb +100 -0
  163. data/lib/datadog_api_client/v2/models/user_invitation_response_data.rb +11 -1
  164. data/lib/datadog_api_client/version.rb +1 -1
  165. metadata +105 -2
@@ -216,9 +216,13 @@ def format_data_with_schema(
216
216
  default_name=None,
217
217
  ):
218
218
  name = get_name(schema)
219
+ nullable = schema.get("nullable", False)
219
220
 
220
- if "enum" in schema and data not in schema["enum"]:
221
- raise ValueError(f"{data} is not valid enum value {schema['enum']}")
221
+ if "enum" in schema:
222
+ if nullable and data is None:
223
+ pass
224
+ elif data not in schema["enum"]:
225
+ raise ValueError(f"{data} is not valid enum value {schema['enum']}")
222
226
 
223
227
  if replace_values and data in replace_values:
224
228
  parameters = replace_values[data]
@@ -227,9 +231,11 @@ def format_data_with_schema(
227
231
  elif schema.get("type") == "number":
228
232
  parameters = f"{parameters}.to_f"
229
233
  elif "enum" in schema:
234
+ if nullable and data is None:
235
+ return "nil"
230
236
  parameters = schema["x-enum-varnames"][schema["enum"].index(data)]
231
237
  else:
232
- if schema.get("nullable") and data is None:
238
+ if nullable and data is None:
233
239
  return "nil"
234
240
  else:
235
241
  if "oneOf" in schema:
@@ -461,8 +461,10 @@ def get_default(operation, attribute_path):
461
461
 
462
462
 
463
463
  def get_container(operation, attribute_path, with_type=False):
464
- def get_type(parameter):
464
+ def get_type(parameter, attribute=None):
465
465
  if with_type:
466
+ if attribute:
467
+ return ", {}".format(type_to_ruby(parameter_schema(parameter)["properties"][attribute]))
466
468
  return f", {get_type_for_parameter(parameter)}"
467
469
  return ""
468
470
 
@@ -473,7 +475,7 @@ def get_container(operation, attribute_path, with_type=False):
473
475
  return '{}, "{}"{}'.format(
474
476
  name,
475
477
  ".".join(formatter.attribute_name(a) for a in attribute_path.split(".")[1:]),
476
- get_type(parameter),
478
+ get_type(parameter, attribute_path.split(".")[1]),
477
479
  )
478
480
  return f'opts, "{formatter.attribute_path(attribute_path)}"{get_type(parameter)}'
479
481
 
@@ -2,7 +2,13 @@ name: Run Integration Tests
2
2
 
3
3
  on:
4
4
  pull_request:
5
- types: [opened, synchronize, reopened, ready_for_review]
5
+ types:
6
+ - opened
7
+ - reopened
8
+ - ready_for_review
9
+ - synchronize
10
+ - labeled
11
+ - unlabeled
6
12
  branches:
7
13
  - master
8
14
  schedule:
@@ -31,7 +31,7 @@ repos:
31
31
  - id: generator
32
32
  name: generator
33
33
  language: python
34
- entry: bash -c "unset VIRTUAL_ENV && cd .generator && poetry install && poetry run python -m generator ./schemas/v1/openapi.yaml ./schemas/v2/openapi.yaml -o ../lib/"
34
+ entry: bash -c "cd .generator && poetry install && poetry run python -m generator ./schemas/v1/openapi.yaml ./schemas/v2/openapi.yaml -o ../lib/"
35
35
  files: "^.generator/(config|schemas/v1|src|poetry.lock|pyproject.toml)"
36
36
  stages: [manual]
37
37
  pass_filenames: false
@@ -40,7 +40,7 @@ repos:
40
40
  - id: examples
41
41
  name: examples
42
42
  language: python
43
- entry: bash -c "unset VIRTUAL_ENV && cd .generator && poetry install && poetry run pytest"
43
+ entry: bash -c "cd .generator && poetry install && poetry run pytest"
44
44
  files: "^.generator/"
45
45
  stages: [manual]
46
46
  pass_filenames: false
data/CHANGELOG.md CHANGED
@@ -1,5 +1,36 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 2.13.0 / 2023-07-20
4
+
5
+ ### Fixed
6
+ * Set the right object creation in pagination by @therve in https://github.com/DataDog/datadog-api-client-ruby/pull/1437
7
+ * Spans API docs update by @api-clients-generation-pipeline in https://github.com/DataDog/datadog-api-client-ruby/pull/1442
8
+ * Fix filter indexes parameter in logs search by @api-clients-generation-pipeline in https://github.com/DataDog/datadog-api-client-ruby/pull/1447
9
+ * Fix Spans endpoint schemas by @api-clients-generation-pipeline in https://github.com/DataDog/datadog-api-client-ruby/pull/1462
10
+ ### Added
11
+ * Add support for geomap widget using response_type `event_list` by @api-clients-generation-pipeline in https://github.com/DataDog/datadog-api-client-ruby/pull/1427
12
+ * Add support for the spans API endpoints by @api-clients-generation-pipeline in https://github.com/DataDog/datadog-api-client-ruby/pull/1431
13
+ * Add a new field additional_query_filters to formula and function slo query by @api-clients-generation-pipeline in https://github.com/DataDog/datadog-api-client-ruby/pull/1443
14
+ * Add support for `enable_custom_metrics` in Confluent Account by @api-clients-generation-pipeline in https://github.com/DataDog/datadog-api-client-ruby/pull/1440
15
+ * Add missing `id` attribute for Confluent Account Response by @api-clients-generation-pipeline in https://github.com/DataDog/datadog-api-client-ruby/pull/1446
16
+ * Fix downtimes v2 schema and add missing field `canceled` by @api-clients-generation-pipeline in https://github.com/DataDog/datadog-api-client-ruby/pull/1451
17
+ * Add cloud_cost data source and query definition to dashboards by @api-clients-generation-pipeline in https://github.com/DataDog/datadog-api-client-ruby/pull/1452
18
+ * Add missing cloud workload security fields by @api-clients-generation-pipeline in https://github.com/DataDog/datadog-api-client-ruby/pull/1457
19
+ * Add `integration_id` field for dashboard list item by @api-clients-generation-pipeline in https://github.com/DataDog/datadog-api-client-ruby/pull/1461
20
+ * Add events response fields `message` and `status` by @api-clients-generation-pipeline in https://github.com/DataDog/datadog-api-client-ruby/pull/1459
21
+ * Add missing `GetRUMApplications` response field `id` by @api-clients-generation-pipeline in https://github.com/DataDog/datadog-api-client-ruby/pull/1458
22
+ * Add missing service definition fields by @api-clients-generation-pipeline in https://github.com/DataDog/datadog-api-client-ruby/pull/1460
23
+ * Add overlay type to Dashboards WidgetDisplayType by @api-clients-generation-pipeline in https://github.com/DataDog/datadog-api-client-ruby/pull/1463
24
+ * Update IP ranges with remote configuration section by @api-clients-generation-pipeline in https://github.com/DataDog/datadog-api-client-ruby/pull/1465
25
+ * Add missing `relationships` to UsersInvitations response by @api-clients-generation-pipeline in https://github.com/DataDog/datadog-api-client-ruby/pull/1467
26
+ * Added optional field filters when creating a cloud configuration rule by @api-clients-generation-pipeline in https://github.com/DataDog/datadog-api-client-ruby/pull/1471
27
+ ### Changed
28
+ * Add downtime v2 API in private beta by @api-clients-generation-pipeline in https://github.com/DataDog/datadog-api-client-ruby/pull/1388
29
+ * Mark `access_role` as nullable by @api-clients-generation-pipeline in https://github.com/DataDog/datadog-api-client-ruby/pull/1449
30
+
31
+
32
+ **Full Changelog**: https://github.com/DataDog/datadog-api-client-ruby/compare/v2.12.0...v2.13.0
33
+
3
34
  ## 2.12.0 / 2023-06-27
4
35
 
5
36
  ### Fixed
@@ -0,0 +1,43 @@
1
+ # Create a new dashboard with a timeseries widget using formulas and functions cloud cost query
2
+
3
+ require "datadog_api_client"
4
+ api_instance = DatadogAPIClient::V1::DashboardsAPI.new
5
+
6
+ body = DatadogAPIClient::V1::Dashboard.new({
7
+ title: "Example-Dashboard",
8
+ widgets: [
9
+ DatadogAPIClient::V1::Widget.new({
10
+ definition: DatadogAPIClient::V1::TimeseriesWidgetDefinition.new({
11
+ title: "Example Cloud Cost Query",
12
+ title_size: "16",
13
+ title_align: DatadogAPIClient::V1::WidgetTextAlign::LEFT,
14
+ type: DatadogAPIClient::V1::TimeseriesWidgetDefinitionType::TIMESERIES,
15
+ requests: [
16
+ DatadogAPIClient::V1::TimeseriesWidgetRequest.new({
17
+ formulas: [
18
+ DatadogAPIClient::V1::WidgetFormula.new({
19
+ formula: "query1",
20
+ }),
21
+ ],
22
+ queries: [
23
+ DatadogAPIClient::V1::FormulaAndFunctionCloudCostQueryDefinition.new({
24
+ data_source: DatadogAPIClient::V1::FormulaAndFunctionCloudCostDataSource::CLOUD_COST,
25
+ name: "query1",
26
+ query: "sum:aws.cost.amortized{*} by {aws_product}.rollup(sum, monthly)",
27
+ }),
28
+ ],
29
+ response_format: DatadogAPIClient::V1::FormulaAndFunctionResponseFormat::TIMESERIES,
30
+ style: DatadogAPIClient::V1::WidgetRequestStyle.new({
31
+ palette: "dog_classic",
32
+ line_type: DatadogAPIClient::V1::WidgetLineType::SOLID,
33
+ line_width: DatadogAPIClient::V1::WidgetLineWidth::NORMAL,
34
+ }),
35
+ display_type: DatadogAPIClient::V1::WidgetDisplayType::BARS,
36
+ }),
37
+ ],
38
+ }),
39
+ }),
40
+ ],
41
+ layout_type: DatadogAPIClient::V1::DashboardLayoutType::ORDERED,
42
+ })
43
+ p api_instance.create_dashboard(body)
@@ -0,0 +1,47 @@
1
+ # Create a new dashboard with a timeseries widget and an overlay request
2
+
3
+ require "datadog_api_client"
4
+ api_instance = DatadogAPIClient::V1::DashboardsAPI.new
5
+
6
+ body = DatadogAPIClient::V1::Dashboard.new({
7
+ layout_type: DatadogAPIClient::V1::DashboardLayoutType::ORDERED,
8
+ title: "Example-Dashboard",
9
+ widgets: [
10
+ DatadogAPIClient::V1::Widget.new({
11
+ definition: DatadogAPIClient::V1::TimeseriesWidgetDefinition.new({
12
+ type: DatadogAPIClient::V1::TimeseriesWidgetDefinitionType::TIMESERIES,
13
+ requests: [
14
+ DatadogAPIClient::V1::TimeseriesWidgetRequest.new({
15
+ on_right_yaxis: false,
16
+ queries: [
17
+ DatadogAPIClient::V1::FormulaAndFunctionMetricQueryDefinition.new({
18
+ data_source: DatadogAPIClient::V1::FormulaAndFunctionMetricDataSource::METRICS,
19
+ name: "mymetric",
20
+ query: "avg:system.cpu.user{*}",
21
+ }),
22
+ ],
23
+ response_format: DatadogAPIClient::V1::FormulaAndFunctionResponseFormat::TIMESERIES,
24
+ display_type: DatadogAPIClient::V1::WidgetDisplayType::LINE,
25
+ }),
26
+ DatadogAPIClient::V1::TimeseriesWidgetRequest.new({
27
+ response_format: DatadogAPIClient::V1::FormulaAndFunctionResponseFormat::TIMESERIES,
28
+ queries: [
29
+ DatadogAPIClient::V1::FormulaAndFunctionMetricQueryDefinition.new({
30
+ data_source: DatadogAPIClient::V1::FormulaAndFunctionMetricDataSource::METRICS,
31
+ name: "mymetricoverlay",
32
+ query: "avg:system.cpu.user{*}",
33
+ }),
34
+ ],
35
+ style: DatadogAPIClient::V1::WidgetRequestStyle.new({
36
+ palette: "purple",
37
+ line_type: DatadogAPIClient::V1::WidgetLineType::SOLID,
38
+ line_width: DatadogAPIClient::V1::WidgetLineWidth::NORMAL,
39
+ }),
40
+ display_type: DatadogAPIClient::V1::WidgetDisplayType::OVERLAY,
41
+ }),
42
+ ],
43
+ }),
44
+ }),
45
+ ],
46
+ })
47
+ p api_instance.create_dashboard(body)
@@ -0,0 +1,74 @@
1
+ # Create a geomap widget using an event_list request
2
+
3
+ require "datadog_api_client"
4
+ api_instance = DatadogAPIClient::V1::DashboardsAPI.new
5
+
6
+ body = DatadogAPIClient::V1::Dashboard.new({
7
+ title: "Example-Dashboard",
8
+ description: "Example-Dashboard",
9
+ widgets: [
10
+ DatadogAPIClient::V1::Widget.new({
11
+ definition: DatadogAPIClient::V1::GeomapWidgetDefinition.new({
12
+ title: "",
13
+ title_size: "16",
14
+ title_align: DatadogAPIClient::V1::WidgetTextAlign::LEFT,
15
+ type: DatadogAPIClient::V1::GeomapWidgetDefinitionType::GEOMAP,
16
+ requests: [
17
+ DatadogAPIClient::V1::GeomapWidgetRequest.new({
18
+ response_format: DatadogAPIClient::V1::FormulaAndFunctionResponseFormat::EVENT_LIST,
19
+ query: DatadogAPIClient::V1::ListStreamQuery.new({
20
+ data_source: DatadogAPIClient::V1::ListStreamSource::LOGS_STREAM,
21
+ query_string: "",
22
+ indexes: [],
23
+ }),
24
+ columns: [
25
+ DatadogAPIClient::V1::ListStreamColumn.new({
26
+ field: "@network.client.geoip.location.latitude",
27
+ width: DatadogAPIClient::V1::ListStreamColumnWidth::AUTO,
28
+ }),
29
+ DatadogAPIClient::V1::ListStreamColumn.new({
30
+ field: "@network.client.geoip.location.longitude",
31
+ width: DatadogAPIClient::V1::ListStreamColumnWidth::AUTO,
32
+ }),
33
+ DatadogAPIClient::V1::ListStreamColumn.new({
34
+ field: "@network.client.geoip.country.iso_code",
35
+ width: DatadogAPIClient::V1::ListStreamColumnWidth::AUTO,
36
+ }),
37
+ DatadogAPIClient::V1::ListStreamColumn.new({
38
+ field: "@network.client.geoip.subdivision.name",
39
+ width: DatadogAPIClient::V1::ListStreamColumnWidth::AUTO,
40
+ }),
41
+ DatadogAPIClient::V1::ListStreamColumn.new({
42
+ field: "classic",
43
+ width: DatadogAPIClient::V1::ListStreamColumnWidth::AUTO,
44
+ }),
45
+ DatadogAPIClient::V1::ListStreamColumn.new({
46
+ field: "",
47
+ width: DatadogAPIClient::V1::ListStreamColumnWidth::AUTO,
48
+ }),
49
+ ],
50
+ }),
51
+ ],
52
+ style: DatadogAPIClient::V1::GeomapWidgetDefinitionStyle.new({
53
+ palette: "hostmap_blues",
54
+ palette_flip: false,
55
+ }),
56
+ view: DatadogAPIClient::V1::GeomapWidgetDefinitionView.new({
57
+ focus: "WORLD",
58
+ }),
59
+ }),
60
+ layout: DatadogAPIClient::V1::WidgetLayout.new({
61
+ x: 0,
62
+ y: 0,
63
+ width: 12,
64
+ height: 6,
65
+ }),
66
+ }),
67
+ ],
68
+ template_variables: [],
69
+ layout_type: DatadogAPIClient::V1::DashboardLayoutType::ORDERED,
70
+ notify_list: [],
71
+ reflow_type: DatadogAPIClient::V1::DashboardReflowType::FIXED,
72
+ tags: [],
73
+ })
74
+ p api_instance.create_dashboard(body)
@@ -34,6 +34,7 @@ body = DatadogAPIClient::V1::Dashboard.new({
34
34
  measure: DatadogAPIClient::V1::FormulaAndFunctionSLOMeasure::SLO_STATUS,
35
35
  group_mode: DatadogAPIClient::V1::FormulaAndFunctionSLOGroupMode::OVERALL,
36
36
  slo_query_type: DatadogAPIClient::V1::FormulaAndFunctionSLOQueryType::METRIC,
37
+ additional_query_filters: "*",
37
38
  }),
38
39
  ],
39
40
  response_format: DatadogAPIClient::V1::FormulaAndFunctionResponseFormat::SCALAR,
@@ -15,7 +15,7 @@ body = DatadogAPIClient::V1::Organization.new({
15
15
  saml: DatadogAPIClient::V1::OrganizationSettingsSaml.new({
16
16
  enabled: false,
17
17
  }),
18
- saml_autocreate_access_role: DatadogAPIClient::V1::AccessRole::STANDARD,
18
+ saml_autocreate_access_role: DatadogAPIClient::V1::AccessRole::READ_ONLY,
19
19
  saml_autocreate_users_domains: DatadogAPIClient::V1::OrganizationSettingsSamlAutocreateUsersDomains.new({
20
20
  domains: [
21
21
  "example.com",
@@ -4,7 +4,7 @@ require "datadog_api_client"
4
4
  api_instance = DatadogAPIClient::V1::UsersAPI.new
5
5
 
6
6
  body = DatadogAPIClient::V1::User.new({
7
- access_role: DatadogAPIClient::V1::AccessRole::STANDARD,
7
+ access_role: DatadogAPIClient::V1::AccessRole::READ_ONLY,
8
8
  disabled: false,
9
9
  email: "test@datadoghq.com",
10
10
  handle: "test@datadoghq.com",
@@ -0,0 +1,13 @@
1
+ # Create a user returns null access role
2
+
3
+ require "datadog_api_client"
4
+ api_instance = DatadogAPIClient::V1::UsersAPI.new
5
+
6
+ body = DatadogAPIClient::V1::User.new({
7
+ access_role: nil,
8
+ disabled: false,
9
+ email: "test@datadoghq.com",
10
+ handle: "test@datadoghq.com",
11
+ name: "test user",
12
+ })
13
+ p api_instance.create_user(body)
@@ -4,7 +4,7 @@ require "datadog_api_client"
4
4
  api_instance = DatadogAPIClient::V1::UsersAPI.new
5
5
 
6
6
  body = DatadogAPIClient::V1::User.new({
7
- access_role: DatadogAPIClient::V1::AccessRole::STANDARD,
7
+ access_role: DatadogAPIClient::V1::AccessRole::READ_ONLY,
8
8
  disabled: false,
9
9
  email: "test@datadoghq.com",
10
10
  handle: "test@datadoghq.com",
@@ -10,6 +10,7 @@ body = DatadogAPIClient::V2::ConfluentAccountCreateRequest.new({
10
10
  api_secret: "test-api-secret-123",
11
11
  resources: [
12
12
  DatadogAPIClient::V2::ConfluentAccountResourceAttributes.new({
13
+ enable_custom_metrics: false,
13
14
  id: "resource-id-123",
14
15
  resource_type: "kafka",
15
16
  tags: [
@@ -14,6 +14,7 @@ body = DatadogAPIClient::V2::ConfluentResourceRequest.new({
14
14
  "myTag",
15
15
  "myTag2:myValue",
16
16
  ],
17
+ enable_custom_metrics: false,
17
18
  }),
18
19
  id: "exampleconfluentcloud",
19
20
  type: DatadogAPIClient::V2::ConfluentResourceType::CONFLUENT_CLOUD_RESOURCES,
@@ -6,6 +6,7 @@ api_instance = DatadogAPIClient::V2::ConfluentCloudAPI.new
6
6
  body = DatadogAPIClient::V2::ConfluentResourceRequest.new({
7
7
  data: DatadogAPIClient::V2::ConfluentResourceRequestData.new({
8
8
  attributes: DatadogAPIClient::V2::ConfluentResourceRequestAttributes.new({
9
+ enable_custom_metrics: false,
9
10
  resource_type: "kafka",
10
11
  tags: [
11
12
  "myTag",
@@ -0,0 +1,11 @@
1
+ # Cancel a downtime returns "OK" response
2
+
3
+ require "datadog_api_client"
4
+ DatadogAPIClient.configure do |config|
5
+ config.unstable_operations["v2.cancel_downtime".to_sym] = true
6
+ end
7
+ api_instance = DatadogAPIClient::V2::DowntimesAPI.new
8
+
9
+ # there is a valid "downtime_v2" in the system
10
+ DOWNTIME_V2_DATA_ID = ENV["DOWNTIME_V2_DATA_ID"]
11
+ api_instance.cancel_downtime(DOWNTIME_V2_DATA_ID)
@@ -0,0 +1,26 @@
1
+ # Schedule a downtime returns "OK" response
2
+
3
+ require "datadog_api_client"
4
+ DatadogAPIClient.configure do |config|
5
+ config.unstable_operations["v2.create_downtime".to_sym] = true
6
+ end
7
+ api_instance = DatadogAPIClient::V2::DowntimesAPI.new
8
+
9
+ body = DatadogAPIClient::V2::DowntimeCreateRequest.new({
10
+ data: DatadogAPIClient::V2::DowntimeCreateRequestData.new({
11
+ attributes: DatadogAPIClient::V2::DowntimeCreateRequestAttributes.new({
12
+ message: "dark forest",
13
+ monitor_identifier: DatadogAPIClient::V2::DowntimeMonitorIdentifierTags.new({
14
+ monitor_tags: [
15
+ "cat:hat",
16
+ ],
17
+ }),
18
+ scope: "test:exampledowntime",
19
+ schedule: DatadogAPIClient::V2::DowntimeScheduleOneTimeCreateUpdateRequest.new({
20
+ start: nil,
21
+ }),
22
+ }),
23
+ type: DatadogAPIClient::V2::DowntimeResourceType::DOWNTIME,
24
+ }),
25
+ })
26
+ p api_instance.create_downtime(body)
@@ -0,0 +1,11 @@
1
+ # Get a downtime returns "OK" response
2
+
3
+ require "datadog_api_client"
4
+ DatadogAPIClient.configure do |config|
5
+ config.unstable_operations["v2.get_downtime".to_sym] = true
6
+ end
7
+ api_instance = DatadogAPIClient::V2::DowntimesAPI.new
8
+
9
+ # there is a valid "downtime_v2" in the system
10
+ DOWNTIME_V2_DATA_ID = ENV["DOWNTIME_V2_DATA_ID"]
11
+ p api_instance.get_downtime(DOWNTIME_V2_DATA_ID)
@@ -0,0 +1,8 @@
1
+ # Get all downtimes returns "OK" response
2
+
3
+ require "datadog_api_client"
4
+ DatadogAPIClient.configure do |config|
5
+ config.unstable_operations["v2.list_downtimes".to_sym] = true
6
+ end
7
+ api_instance = DatadogAPIClient::V2::DowntimesAPI.new
8
+ p api_instance.list_downtimes()
@@ -0,0 +1,8 @@
1
+ # Get active downtimes for a monitor returns "OK" response
2
+
3
+ require "datadog_api_client"
4
+ DatadogAPIClient.configure do |config|
5
+ config.unstable_operations["v2.list_monitor_downtimes".to_sym] = true
6
+ end
7
+ api_instance = DatadogAPIClient::V2::DowntimesAPI.new
8
+ p api_instance.list_monitor_downtimes(9223372036854775807)
@@ -0,0 +1,8 @@
1
+ # Get all downtimes for a monitor returns "OK" response
2
+
3
+ require "datadog_api_client"
4
+ DatadogAPIClient.configure do |config|
5
+ config.unstable_operations["v2.list_monitor_downtimes".to_sym] = true
6
+ end
7
+ api_instance = DatadogAPIClient::V2::DowntimesAPI.new
8
+ p api_instance.list_monitor_downtimes(35534610)
@@ -0,0 +1,21 @@
1
+ # Update a downtime returns "OK" response
2
+
3
+ require "datadog_api_client"
4
+ DatadogAPIClient.configure do |config|
5
+ config.unstable_operations["v2.update_downtime".to_sym] = true
6
+ end
7
+ api_instance = DatadogAPIClient::V2::DowntimesAPI.new
8
+
9
+ # there is a valid "downtime_v2" in the system
10
+ DOWNTIME_V2_DATA_ID = ENV["DOWNTIME_V2_DATA_ID"]
11
+
12
+ body = DatadogAPIClient::V2::DowntimeUpdateRequest.new({
13
+ data: DatadogAPIClient::V2::DowntimeUpdateRequestData.new({
14
+ attributes: DatadogAPIClient::V2::DowntimeUpdateRequestAttributes.new({
15
+ message: "light speed",
16
+ }),
17
+ id: DOWNTIME_V2_DATA_ID,
18
+ type: DatadogAPIClient::V2::DowntimeResourceType::DOWNTIME,
19
+ }),
20
+ })
21
+ p api_instance.update_downtime(DOWNTIME_V2_DATA_ID, body)
@@ -4,7 +4,9 @@ require "datadog_api_client"
4
4
  api_instance = DatadogAPIClient::V2::LogsAPI.new
5
5
  opts = {
6
6
  filter_query: "datadog-agent",
7
- filter_index: "main",
7
+ filter_indexes: [
8
+ "main",
9
+ ],
8
10
  filter_from: "2020-09-17T11:48:36+01:00",
9
11
  filter_to: "2020-09-17T12:48:36+01:00",
10
12
  page_limit: 5,
@@ -37,5 +37,15 @@ body = DatadogAPIClient::V2::CloudConfigurationRuleCreatePayload.new({
37
37
  "@account_id",
38
38
  ],
39
39
  }),
40
+ filters: [
41
+ DatadogAPIClient::V2::SecurityMonitoringFilter.new({
42
+ action: DatadogAPIClient::V2::SecurityMonitoringFilterAction::REQUIRE,
43
+ query: "resource_id:helo*",
44
+ }),
45
+ DatadogAPIClient::V2::SecurityMonitoringFilter.new({
46
+ action: DatadogAPIClient::V2::SecurityMonitoringFilterAction::SUPPRESS,
47
+ query: "control:helo*",
48
+ }),
49
+ ],
40
50
  })
41
51
  p api_instance.create_security_monitoring_rule(body)
@@ -0,0 +1,25 @@
1
+ # Aggregate spans returns "OK" response
2
+
3
+ require "datadog_api_client"
4
+ api_instance = DatadogAPIClient::V2::SpansAPI.new
5
+
6
+ body = DatadogAPIClient::V2::SpansAggregateRequest.new({
7
+ data: DatadogAPIClient::V2::SpansAggregateData.new({
8
+ attributes: DatadogAPIClient::V2::SpansAggregateRequestAttributes.new({
9
+ compute: [
10
+ DatadogAPIClient::V2::SpansCompute.new({
11
+ aggregation: DatadogAPIClient::V2::SpansAggregationFunction::COUNT,
12
+ interval: "5m",
13
+ type: DatadogAPIClient::V2::SpansComputeType::TIMESERIES,
14
+ }),
15
+ ],
16
+ filter: DatadogAPIClient::V2::SpansQueryFilter.new({
17
+ from: "now-15m",
18
+ query: "*",
19
+ to: "now",
20
+ }),
21
+ }),
22
+ type: DatadogAPIClient::V2::SpansAggregateRequestType::AGGREGATE_REQUEST,
23
+ }),
24
+ })
25
+ p api_instance.aggregate_spans(body)
@@ -0,0 +1,25 @@
1
+ # Search spans returns "OK" response
2
+
3
+ require "datadog_api_client"
4
+ api_instance = DatadogAPIClient::V2::SpansAPI.new
5
+
6
+ body = DatadogAPIClient::V2::SpansListRequest.new({
7
+ data: DatadogAPIClient::V2::SpansListRequestData.new({
8
+ attributes: DatadogAPIClient::V2::SpansListRequestAttributes.new({
9
+ filter: DatadogAPIClient::V2::SpansQueryFilter.new({
10
+ from: "now-15m",
11
+ query: "*",
12
+ to: "now",
13
+ }),
14
+ options: DatadogAPIClient::V2::SpansQueryOptions.new({
15
+ timezone: "GMT",
16
+ }),
17
+ page: DatadogAPIClient::V2::SpansListRequestPage.new({
18
+ limit: 25,
19
+ }),
20
+ sort: DatadogAPIClient::V2::SpansSort::TIMESTAMP_ASCENDING,
21
+ }),
22
+ type: DatadogAPIClient::V2::SpansListRequestType::SEARCH_REQUEST,
23
+ }),
24
+ })
25
+ p api_instance.list_spans(body)
@@ -0,0 +1,5 @@
1
+ # Get a list of spans returns "OK" response
2
+
3
+ require "datadog_api_client"
4
+ api_instance = DatadogAPIClient::V2::SpansAPI.new
5
+ p api_instance.list_spans_get()
@@ -0,0 +1,8 @@
1
+ # Get a list of spans returns "OK" response with pagination
2
+
3
+ require "datadog_api_client"
4
+ api_instance = DatadogAPIClient::V2::SpansAPI.new
5
+ opts = {
6
+ page_limit: 2,
7
+ }
8
+ api_instance.list_spans_get_with_pagination(opts) { |item| puts item }
@@ -0,0 +1,25 @@
1
+ # Search spans returns "OK" response with pagination
2
+
3
+ require "datadog_api_client"
4
+ api_instance = DatadogAPIClient::V2::SpansAPI.new
5
+
6
+ body = DatadogAPIClient::V2::SpansListRequest.new({
7
+ data: DatadogAPIClient::V2::SpansListRequestData.new({
8
+ attributes: DatadogAPIClient::V2::SpansListRequestAttributes.new({
9
+ filter: DatadogAPIClient::V2::SpansQueryFilter.new({
10
+ from: "now-15m",
11
+ query: "service:python*",
12
+ to: "now",
13
+ }),
14
+ options: DatadogAPIClient::V2::SpansQueryOptions.new({
15
+ timezone: "GMT",
16
+ }),
17
+ page: DatadogAPIClient::V2::SpansListRequestPage.new({
18
+ limit: 2,
19
+ }),
20
+ sort: DatadogAPIClient::V2::SpansSort::TIMESTAMP_ASCENDING,
21
+ }),
22
+ type: DatadogAPIClient::V2::SpansListRequestType::SEARCH_REQUEST,
23
+ }),
24
+ })
25
+ api_instance.list_spans_with_pagination(body) { |item| puts item }
@@ -175,6 +175,12 @@ module DatadogAPIClient
175
175
  @http_proxypass = nil
176
176
  @logger = defined?(Rails) ? Rails.logger : Logger.new(STDOUT)
177
177
  @unstable_operations = {
178
+ "v2.cancel_downtime": false,
179
+ "v2.create_downtime": false,
180
+ "v2.get_downtime": false,
181
+ "v2.list_downtimes": false,
182
+ "v2.list_monitor_downtimes": false,
183
+ "v2.update_downtime": false,
178
184
  "v2.list_events": false,
179
185
  "v2.search_events": false,
180
186
  "v2.create_incident": false,