datadog_api_client 2.12.0 → 2.13.0

Sign up to get free protection for your applications and to get access to all the features.
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,