datadog_api_client 2.18.0 → 2.20.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 (193) hide show
  1. checksums.yaml +4 -4
  2. data/.apigentools-info +4 -4
  3. data/.generator/conftest.py +1 -1
  4. data/.generator/poetry.lock +69 -69
  5. data/.generator/schemas/v1/openapi.yaml +286 -55
  6. data/.generator/schemas/v2/openapi.yaml +2021 -226
  7. data/.generator/src/generator/templates/api.j2 +5 -5
  8. data/.generator/src/generator/templates/model_generic.j2 +2 -2
  9. data/CHANGELOG.md +38 -0
  10. data/examples/v1/azure-integration/CreateAzureIntegration.rb +4 -4
  11. data/examples/v1/azure-integration/DeleteAzureIntegration.rb +2 -15
  12. data/examples/v1/azure-integration/UpdateAzureIntegration.rb +4 -4
  13. data/examples/v1/gcp-integration/CreateGCPIntegration.rb +4 -5
  14. data/examples/v1/gcp-integration/DeleteGCPIntegration.rb +2 -14
  15. data/examples/v1/gcp-integration/UpdateGCPIntegration.rb +4 -5
  16. data/examples/v1/logs-indexes/CreateLogsIndex.rb +5 -0
  17. data/examples/v1/logs-indexes/UpdateLogsIndex.rb +5 -0
  18. data/examples/v1/service-level-objectives/CreateSLO_3765703239.rb +46 -0
  19. data/examples/v1/synthetics/CreateSyntheticsAPITest.rb +1 -1
  20. data/examples/v1/synthetics/CreateSyntheticsBrowserTest.rb +1 -1
  21. data/examples/v1/synthetics/TriggerCITests.rb +1 -1
  22. data/examples/v1/synthetics/UpdateBrowserTest.rb +1 -1
  23. data/examples/v1/usage-metering/GetUsageLambda.rb +5 -2
  24. data/examples/v2/api-management/CreateOpenAPI.rb +11 -0
  25. data/examples/v2/api-management/DeleteOpenAPI.rb +11 -0
  26. data/examples/v2/api-management/GetOpenAPI.rb +11 -0
  27. data/examples/v2/api-management/UpdateOpenAPI.rb +14 -0
  28. data/examples/v2/ci-visibility-pipelines/CreateCIAppPipelineEvent.rb +0 -3
  29. data/examples/v2/ci-visibility-pipelines/CreateCIAppPipelineEvent_129899466.rb +0 -3
  30. data/examples/v2/cloud-cost-management/CreateCostAWSCURConfig.rb +18 -0
  31. data/examples/v2/cloud-cost-management/CreateCostAzureUCConfigs.rb +29 -0
  32. data/examples/v2/cloud-cost-management/DeleteCostAWSCURConfig.rb +5 -0
  33. data/examples/v2/cloud-cost-management/DeleteCostAzureUCConfig.rb +5 -0
  34. data/examples/v2/cloud-cost-management/GetCloudCostActivity.rb +5 -0
  35. data/examples/v2/cloud-cost-management/ListAWSRelatedAccounts.rb +5 -0
  36. data/examples/v2/cloud-cost-management/ListCostAWSCURConfigs.rb +5 -0
  37. data/examples/v2/cloud-cost-management/ListCostAzureUCConfigs.rb +5 -0
  38. data/examples/v2/cloud-cost-management/UpdateCostAWSCURConfig.rb +14 -0
  39. data/examples/v2/cloud-cost-management/UpdateCostAzureUCConfigs.rb +14 -0
  40. data/examples/v2/cloudflare-integration/CreateCloudflareAccount.rb +1 -1
  41. data/examples/v2/cloudflare-integration/UpdateCloudflareAccount.rb +4 -1
  42. data/examples/v2/downtimes/ListMonitorDowntimes_3316718253.rb +5 -0
  43. data/examples/v2/gcp-integration/CreateGCPSTSAccount_130557025.rb +16 -0
  44. data/examples/v2/gcp-integration/CreateGCPSTSAccount_2597004741.rb +16 -0
  45. data/examples/v2/gcp-integration/CreateGCPSTSAccount_4235664992.rb +17 -0
  46. data/examples/v2/gcp-integration/UpdateGCPSTSAccount_3205636354.rb +19 -0
  47. data/examples/v2/okta-integration/CreateOktaAccount.rb +1 -1
  48. data/examples/v2/security-monitoring/CreateSecurityMonitoringRule_3367706049.rb +46 -0
  49. data/examples/v2/security-monitoring/CreateSecurityMonitoringSuppression.rb +19 -0
  50. data/examples/v2/security-monitoring/DeleteSecurityMonitoringSuppression.rb +8 -0
  51. data/examples/v2/security-monitoring/GetSecurityMonitoringSuppression.rb +8 -0
  52. data/examples/v2/security-monitoring/ListSecurityMonitoringSuppressions.rb +5 -0
  53. data/examples/v2/security-monitoring/UpdateSecurityMonitoringSuppression.rb +17 -0
  54. data/examples/v2/sensitive-data-scanner/CreateScanningRule.rb +7 -0
  55. data/examples/v2/sensitive-data-scanner/UpdateScanningRule.rb +7 -10
  56. data/examples/v2/teams/CreateTeamMembership.rb +6 -0
  57. data/examples/v2/teams/GetTeamMemberships_3799131168.rb +8 -0
  58. data/examples/v2/usage-metering/GetUsageLambdaTracedInvocations.rb +1 -1
  59. data/lib/datadog_api_client/configuration.rb +4 -1
  60. data/lib/datadog_api_client/inflector.rb +74 -0
  61. data/lib/datadog_api_client/v1/api/downtimes_api.rb +28 -7
  62. data/lib/datadog_api_client/v1/api/monitors_api.rb +1 -1
  63. data/lib/datadog_api_client/v1/api/organizations_api.rb +1 -1
  64. data/lib/datadog_api_client/v1/api/usage_metering_api.rb +3 -3
  65. data/lib/datadog_api_client/v1/models/dashboard.rb +5 -1
  66. data/lib/datadog_api_client/v1/models/dashboard_summary_definition.rb +2 -0
  67. data/lib/datadog_api_client/v1/models/gcp_account.rb +22 -2
  68. data/lib/datadog_api_client/v1/models/log.rb +1 -1
  69. data/lib/datadog_api_client/v1/models/logs_daily_limit_reset.rb +90 -0
  70. data/lib/datadog_api_client/v1/models/logs_index.rb +36 -1
  71. data/lib/datadog_api_client/v1/models/logs_index_update_request.rb +36 -1
  72. data/lib/datadog_api_client/v1/models/metrics_payload.rb +1 -1
  73. data/lib/datadog_api_client/v1/models/metrics_query_metadata.rb +1 -1
  74. data/lib/datadog_api_client/v1/models/organization.rb +1 -1
  75. data/lib/datadog_api_client/v1/models/service_level_objective.rb +11 -1
  76. data/lib/datadog_api_client/v1/models/service_level_objective_request.rb +11 -1
  77. data/lib/datadog_api_client/v1/models/slo_correction_create_request_attributes.rb +1 -1
  78. data/lib/datadog_api_client/v1/models/slo_correction_response_attributes.rb +1 -1
  79. data/lib/datadog_api_client/v1/models/slo_correction_update_request_attributes.rb +1 -1
  80. data/lib/datadog_api_client/v1/models/slo_data_source_query_definition.rb +62 -0
  81. data/lib/datadog_api_client/v1/models/slo_formula.rb +98 -0
  82. data/lib/datadog_api_client/v1/models/slo_history_metrics.rb +2 -2
  83. data/lib/datadog_api_client/v1/models/slo_history_metrics_series.rb +1 -1
  84. data/lib/datadog_api_client/v1/models/slo_history_monitor.rb +1 -1
  85. data/lib/datadog_api_client/v1/models/slo_history_sli_data.rb +1 -1
  86. data/lib/datadog_api_client/v1/models/slo_response_data.rb +11 -1
  87. data/lib/datadog_api_client/v1/models/slo_sli_spec.rb +62 -0
  88. data/lib/datadog_api_client/v1/models/slo_time_slice_comparator.rb +29 -0
  89. data/lib/datadog_api_client/v1/models/slo_time_slice_condition.rb +141 -0
  90. data/lib/datadog_api_client/v1/models/slo_time_slice_query.rb +131 -0
  91. data/lib/datadog_api_client/v1/models/slo_time_slice_spec.rb +99 -0
  92. data/lib/datadog_api_client/v1/models/slo_type.rb +1 -0
  93. data/lib/datadog_api_client/v1/models/slo_type_numeric.rb +1 -0
  94. data/lib/datadog_api_client/v1/models/split_config.rb +6 -6
  95. data/lib/datadog_api_client/v1/models/synthetics_test_request.rb +11 -1
  96. data/lib/datadog_api_client/v1/models/usage_lambda_hour.rb +1 -1
  97. data/lib/datadog_api_client/v1/models/usage_lambda_response.rb +1 -1
  98. data/lib/datadog_api_client/v1/models/usage_summary_date.rb +11 -1
  99. data/lib/datadog_api_client/v1/models/usage_summary_date_org.rb +11 -1
  100. data/lib/datadog_api_client/v1/models/usage_summary_response.rb +11 -1
  101. data/lib/datadog_api_client/v2/api/api_management_api.rb +319 -0
  102. data/lib/datadog_api_client/v2/api/ci_visibility_pipelines_api.rb +0 -6
  103. data/lib/datadog_api_client/v2/api/cloud_cost_management_api.rb +680 -0
  104. data/lib/datadog_api_client/v2/api/downtimes_api.rb +25 -0
  105. data/lib/datadog_api_client/v2/api/metrics_api.rb +3 -2
  106. data/lib/datadog_api_client/v2/api/organizations_api.rb +1 -1
  107. data/lib/datadog_api_client/v2/api/security_monitoring_api.rb +329 -0
  108. data/lib/datadog_api_client/v2/api/teams_api.rb +22 -0
  109. data/lib/datadog_api_client/v2/api/usage_metering_api.rb +3 -3
  110. data/lib/datadog_api_client/v2/models/aws_cur_config.rb +129 -0
  111. data/lib/datadog_api_client/v2/models/aws_cur_config_attributes.rb +305 -0
  112. data/lib/datadog_api_client/v2/models/aws_cur_config_patch_data.rb +119 -0
  113. data/lib/datadog_api_client/v2/models/aws_cur_config_patch_request.rb +98 -0
  114. data/lib/datadog_api_client/v2/models/aws_cur_config_patch_request_attributes.rb +98 -0
  115. data/lib/datadog_api_client/v2/models/aws_cur_config_patch_request_type.rb +26 -0
  116. data/lib/datadog_api_client/v2/models/aws_cur_config_post_data.rb +119 -0
  117. data/lib/datadog_api_client/v2/models/aws_cur_config_post_request.rb +98 -0
  118. data/lib/datadog_api_client/v2/models/aws_cur_config_post_request_attributes.rb +202 -0
  119. data/lib/datadog_api_client/v2/models/aws_cur_config_post_request_type.rb +26 -0
  120. data/lib/datadog_api_client/v2/models/aws_cur_config_response.rb +80 -0
  121. data/lib/datadog_api_client/v2/models/aws_cur_config_type.rb +26 -0
  122. data/lib/datadog_api_client/v2/models/aws_cur_configs_response.rb +82 -0
  123. data/lib/datadog_api_client/v2/models/aws_related_account.rb +129 -0
  124. data/lib/datadog_api_client/v2/models/aws_related_account_attributes.rb +90 -0
  125. data/lib/datadog_api_client/v2/models/aws_related_account_type.rb +26 -0
  126. data/lib/datadog_api_client/v2/models/aws_related_accounts_response.rb +82 -0
  127. data/lib/datadog_api_client/v2/models/azure_uc_config.rb +378 -0
  128. data/lib/datadog_api_client/v2/models/azure_uc_config_pair.rb +129 -0
  129. data/lib/datadog_api_client/v2/models/azure_uc_config_pair_attributes.rb +110 -0
  130. data/lib/datadog_api_client/v2/models/azure_uc_config_pair_type.rb +26 -0
  131. data/lib/datadog_api_client/v2/models/azure_uc_config_pairs_response.rb +80 -0
  132. data/lib/datadog_api_client/v2/models/azure_uc_config_patch_data.rb +119 -0
  133. data/lib/datadog_api_client/v2/models/azure_uc_config_patch_request.rb +98 -0
  134. data/lib/datadog_api_client/v2/models/azure_uc_config_patch_request_attributes.rb +98 -0
  135. data/lib/datadog_api_client/v2/models/azure_uc_config_patch_request_type.rb +26 -0
  136. data/lib/datadog_api_client/v2/models/azure_uc_config_post_data.rb +119 -0
  137. data/lib/datadog_api_client/v2/models/azure_uc_config_post_request.rb +98 -0
  138. data/lib/datadog_api_client/v2/models/azure_uc_config_post_request_attributes.rb +192 -0
  139. data/lib/datadog_api_client/v2/models/azure_uc_config_post_request_type.rb +26 -0
  140. data/lib/datadog_api_client/v2/models/azure_uc_configs_response.rb +82 -0
  141. data/lib/datadog_api_client/v2/models/bill_config.rb +161 -0
  142. data/lib/datadog_api_client/v2/models/ci_app_git_info.rb +2 -2
  143. data/lib/datadog_api_client/v2/models/cloud_cost_activity.rb +119 -0
  144. data/lib/datadog_api_client/v2/models/cloud_cost_activity_attributes.rb +98 -0
  145. data/lib/datadog_api_client/v2/models/cloud_cost_activity_response.rb +80 -0
  146. data/lib/datadog_api_client/v2/models/cloud_cost_activity_type.rb +26 -0
  147. data/lib/datadog_api_client/v2/models/cloudflare_account_create_request_attributes.rb +28 -4
  148. data/lib/datadog_api_client/v2/models/cloudflare_account_response_attributes.rb +28 -4
  149. data/lib/datadog_api_client/v2/models/cloudflare_account_update_request_attributes.rb +28 -4
  150. data/lib/datadog_api_client/v2/models/create_open_api_response.rb +80 -0
  151. data/lib/datadog_api_client/v2/models/create_open_api_response_attributes.rb +82 -0
  152. data/lib/datadog_api_client/v2/models/create_open_api_response_data.rb +90 -0
  153. data/lib/datadog_api_client/v2/models/dora_deployment_request_attributes.rb +11 -1
  154. data/lib/datadog_api_client/v2/models/dora_git_info.rb +2 -2
  155. data/lib/datadog_api_client/v2/models/dora_incident_request_attributes.rb +11 -1
  156. data/lib/datadog_api_client/v2/models/gcpsts_service_account_attributes.rb +25 -5
  157. data/lib/datadog_api_client/v2/models/metric_payload.rb +1 -1
  158. data/lib/datadog_api_client/v2/models/open_api_endpoint.rb +90 -0
  159. data/lib/datadog_api_client/v2/models/open_api_file.rb +80 -0
  160. data/lib/datadog_api_client/v2/models/relationship_to_user_team_team.rb +98 -0
  161. data/lib/datadog_api_client/v2/models/relationship_to_user_team_team_data.rb +119 -0
  162. data/lib/datadog_api_client/v2/models/security_monitoring_rule_options.rb +14 -4
  163. data/lib/datadog_api_client/v2/models/security_monitoring_rule_third_party_options.rb +114 -0
  164. data/lib/datadog_api_client/v2/models/security_monitoring_rule_update_payload.rb +13 -1
  165. data/lib/datadog_api_client/v2/models/security_monitoring_standard_rule_create_payload.rb +13 -1
  166. data/lib/datadog_api_client/v2/models/security_monitoring_standard_rule_response.rb +13 -1
  167. data/lib/datadog_api_client/v2/models/security_monitoring_suppression.rb +100 -0
  168. data/lib/datadog_api_client/v2/models/security_monitoring_suppression_attributes.rb +198 -0
  169. data/lib/datadog_api_client/v2/models/security_monitoring_suppression_create_attributes.rb +181 -0
  170. data/lib/datadog_api_client/v2/models/security_monitoring_suppression_create_data.rb +119 -0
  171. data/lib/datadog_api_client/v2/models/security_monitoring_suppression_create_request.rb +98 -0
  172. data/lib/datadog_api_client/v2/models/security_monitoring_suppression_response.rb +80 -0
  173. data/lib/datadog_api_client/v2/models/security_monitoring_suppression_type.rb +26 -0
  174. data/lib/datadog_api_client/v2/models/security_monitoring_suppression_update_attributes.rb +166 -0
  175. data/lib/datadog_api_client/v2/models/security_monitoring_suppression_update_data.rb +119 -0
  176. data/lib/datadog_api_client/v2/models/security_monitoring_suppression_update_request.rb +98 -0
  177. data/lib/datadog_api_client/v2/models/security_monitoring_suppressions_response.rb +82 -0
  178. data/lib/datadog_api_client/v2/models/security_monitoring_third_party_root_query.rb +92 -0
  179. data/lib/datadog_api_client/v2/models/security_monitoring_third_party_rule_case.rb +112 -0
  180. data/lib/datadog_api_client/v2/models/security_monitoring_third_party_rule_case_create.rb +130 -0
  181. data/lib/datadog_api_client/v2/models/security_monitoring_user.rb +98 -0
  182. data/lib/datadog_api_client/v2/models/sensitive_data_scanner_included_keyword_configuration.rb +134 -0
  183. data/lib/datadog_api_client/v2/models/sensitive_data_scanner_rule_attributes.rb +46 -1
  184. data/lib/datadog_api_client/v2/models/sensitive_data_scanner_standard_pattern_attributes.rb +33 -1
  185. data/lib/datadog_api_client/v2/models/update_open_api_response.rb +80 -0
  186. data/lib/datadog_api_client/v2/models/update_open_api_response_attributes.rb +82 -0
  187. data/lib/datadog_api_client/v2/models/update_open_api_response_data.rb +90 -0
  188. data/lib/datadog_api_client/v2/models/user_team_attributes.rb +24 -1
  189. data/lib/datadog_api_client/v2/models/user_team_relationships.rb +11 -1
  190. data/lib/datadog_api_client/v2/models/user_team_team_type.rb +26 -0
  191. data/lib/datadog_api_client/version.rb +1 -1
  192. metadata +103 -3
  193. data/examples/v1/usage-metering/GetUsageLambda_3132428705.rb +0 -8
@@ -325,6 +325,8 @@ module DatadogAPIClient::V2
325
325
  #
326
326
  # @param monitor_id [Integer] The id of the monitor.
327
327
  # @param opts [Hash] the optional parameters
328
+ # @option opts [Integer] :page_offset Specific offset to use as the beginning of the returned page.
329
+ # @option opts [Integer] :page_limit Maximum number of downtimes in the response.
328
330
  # @return [Array<(MonitorDowntimeMatchResponse, Integer, Hash)>] MonitorDowntimeMatchResponse data, response status code and response headers
329
331
  def list_monitor_downtimes_with_http_info(monitor_id, opts = {})
330
332
 
@@ -340,6 +342,8 @@ module DatadogAPIClient::V2
340
342
 
341
343
  # query parameters
342
344
  query_params = opts[:query_params] || {}
345
+ query_params[:'page[offset]'] = opts[:'page_offset'] if !opts[:'page_offset'].nil?
346
+ query_params[:'page[limit]'] = opts[:'page_limit'] if !opts[:'page_limit'].nil?
343
347
 
344
348
  # header parameters
345
349
  header_params = opts[:header_params] || {}
@@ -376,6 +380,27 @@ module DatadogAPIClient::V2
376
380
  return data, status_code, headers
377
381
  end
378
382
 
383
+ # Get active downtimes for a monitor.
384
+ #
385
+ # Provide a paginated version of {#list_monitor_downtimes}, returning all items.
386
+ #
387
+ # To use it you need to use a block: list_monitor_downtimes_with_pagination { |item| p item }
388
+ #
389
+ # @yield [MonitorDowntimeMatchResponseData] Paginated items
390
+ def list_monitor_downtimes_with_pagination(monitor_id, opts = {})
391
+ api_version = "V2"
392
+ page_size = @api_client.get_attribute_from_path(opts, "page_limit", 30)
393
+ @api_client.set_attribute_from_path(api_version, opts, "page_limit", Integer, page_size)
394
+ while true do
395
+ response = list_monitor_downtimes(monitor_id, opts)
396
+ @api_client.get_attribute_from_path(response, "data").each { |item| yield(item) }
397
+ if @api_client.get_attribute_from_path(response, "data").length < page_size
398
+ break
399
+ end
400
+ @api_client.set_attribute_from_path(api_version, opts, "page_offset", Integer, @api_client.get_attribute_from_path(opts, "page_offset", 0) + page_size)
401
+ end
402
+ end
403
+
379
404
  # Update a downtime.
380
405
  #
381
406
  # @see #update_downtime_with_http_info
@@ -541,7 +541,7 @@ module DatadogAPIClient::V2
541
541
  # @option opts [String] :filter_tags_configured Filter tag configurations by configured tags.
542
542
  # @option opts [MetricTagConfigurationMetricTypes] :filter_metric_type Filter metrics by metric type.
543
543
  # @option opts [Boolean] :filter_include_percentiles Filter distributions with additional percentile aggregations enabled or disabled.
544
- # @option opts [Boolean] :filter_queried Filter custom metrics that have or have not been queried in the specified window[seconds]. If no window is provided or the window is less than 2 hours, a default of 2 hours will be applied.
544
+ # @option opts [Boolean] :filter_queried (Beta) Filter custom metrics that have or have not been queried in the specified window[seconds]. If no window is provided or the window is less than 2 hours, a default of 2 hours will be applied.
545
545
  # @option opts [String] :filter_tags Filter metrics that have been submitted with the given tags. Supports boolean and wildcard expressions. Can only be combined with the filter[queried] filter.
546
546
  # @option opts [Integer] :window_seconds The number of seconds of look back (from now) to apply to a filter[tag] or filter[queried] query. Default value is 3600 (1 hour), maximum value is 2,592,000 (30 days).
547
547
  # @return [Array<(MetricsAndMetricTagConfigurationsResponse, Integer, Hash)>] MetricsAndMetricTagConfigurationsResponse data, response status code and response headers
@@ -980,7 +980,8 @@ module DatadogAPIClient::V2
980
980
  # Update the tag configuration of a metric or percentile aggregations of a distribution metric or custom aggregations
981
981
  # of a count, rate, or gauge metric. By setting `exclude_tags_mode` to true the behavior is changed
982
982
  # from an allow-list to a deny-list, and tags in the defined list will not be queryable.
983
- # Can only be used with application keys from users with the `Manage Tags for Metrics` permission.
983
+ # Can only be used with application keys from users with the `Manage Tags for Metrics` permission. This endpoint requires
984
+ # a tag configuration to be created first.
984
985
  #
985
986
  # @param metric_name [String] The name of the metric.
986
987
  # @param body [MetricTagConfigurationUpdateRequest]
@@ -63,7 +63,7 @@ module DatadogAPIClient::V2
63
63
  form_params['idp_file'] = opts[:'idp_file'] if !opts[:'idp_file'].nil?
64
64
 
65
65
  # http body (model)
66
- post_body = opts[:debug_body] || @api_client.object_to_http_body(body)
66
+ post_body = opts[:debug_body]
67
67
 
68
68
  # return_type
69
69
  return_type = opts[:debug_return_type]
@@ -160,6 +160,73 @@ module DatadogAPIClient::V2
160
160
  return data, status_code, headers
161
161
  end
162
162
 
163
+ # Create a suppression rule.
164
+ #
165
+ # @see #create_security_monitoring_suppression_with_http_info
166
+ def create_security_monitoring_suppression(body, opts = {})
167
+ data, _status_code, _headers = create_security_monitoring_suppression_with_http_info(body, opts)
168
+ data
169
+ end
170
+
171
+ # Create a suppression rule.
172
+ #
173
+ # Create a new suppression rule.
174
+ #
175
+ # @param body [SecurityMonitoringSuppressionCreateRequest] The definition of the new suppression rule.
176
+ # @param opts [Hash] the optional parameters
177
+ # @return [Array<(SecurityMonitoringSuppressionResponse, Integer, Hash)>] SecurityMonitoringSuppressionResponse data, response status code and response headers
178
+ def create_security_monitoring_suppression_with_http_info(body, opts = {})
179
+
180
+ if @api_client.config.debugging
181
+ @api_client.config.logger.debug 'Calling API: SecurityMonitoringAPI.create_security_monitoring_suppression ...'
182
+ end
183
+ # verify the required parameter 'body' is set
184
+ if @api_client.config.client_side_validation && body.nil?
185
+ fail ArgumentError, "Missing the required parameter 'body' when calling SecurityMonitoringAPI.create_security_monitoring_suppression"
186
+ end
187
+ # resource path
188
+ local_var_path = '/api/v2/security_monitoring/configuration/suppressions'
189
+
190
+ # query parameters
191
+ query_params = opts[:query_params] || {}
192
+
193
+ # header parameters
194
+ header_params = opts[:header_params] || {}
195
+ # HTTP header 'Accept' (if needed)
196
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
197
+ # HTTP header 'Content-Type'
198
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
199
+
200
+ # form parameters
201
+ form_params = opts[:form_params] || {}
202
+
203
+ # http body (model)
204
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(body)
205
+
206
+ # return_type
207
+ return_type = opts[:debug_return_type] || 'SecurityMonitoringSuppressionResponse'
208
+
209
+ # auth_names
210
+ auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth, :AuthZ]
211
+
212
+ new_options = opts.merge(
213
+ :operation => :create_security_monitoring_suppression,
214
+ :header_params => header_params,
215
+ :query_params => query_params,
216
+ :form_params => form_params,
217
+ :body => post_body,
218
+ :auth_names => auth_names,
219
+ :return_type => return_type,
220
+ :api_version => "V2"
221
+ )
222
+
223
+ data, status_code, headers = @api_client.call_api(Net::HTTP::Post, local_var_path, new_options)
224
+ if @api_client.config.debugging
225
+ @api_client.config.logger.debug "API called: SecurityMonitoringAPI#create_security_monitoring_suppression\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
226
+ end
227
+ return data, status_code, headers
228
+ end
229
+
163
230
  # Delete a security filter.
164
231
  #
165
232
  # @see #delete_security_filter_with_http_info
@@ -290,6 +357,71 @@ module DatadogAPIClient::V2
290
357
  return data, status_code, headers
291
358
  end
292
359
 
360
+ # Delete a suppression rule.
361
+ #
362
+ # @see #delete_security_monitoring_suppression_with_http_info
363
+ def delete_security_monitoring_suppression(suppression_id, opts = {})
364
+ delete_security_monitoring_suppression_with_http_info(suppression_id, opts)
365
+ nil
366
+ end
367
+
368
+ # Delete a suppression rule.
369
+ #
370
+ # Delete a specific suppression rule.
371
+ #
372
+ # @param suppression_id [String] The ID of the suppression rule
373
+ # @param opts [Hash] the optional parameters
374
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
375
+ def delete_security_monitoring_suppression_with_http_info(suppression_id, opts = {})
376
+
377
+ if @api_client.config.debugging
378
+ @api_client.config.logger.debug 'Calling API: SecurityMonitoringAPI.delete_security_monitoring_suppression ...'
379
+ end
380
+ # verify the required parameter 'suppression_id' is set
381
+ if @api_client.config.client_side_validation && suppression_id.nil?
382
+ fail ArgumentError, "Missing the required parameter 'suppression_id' when calling SecurityMonitoringAPI.delete_security_monitoring_suppression"
383
+ end
384
+ # resource path
385
+ local_var_path = '/api/v2/security_monitoring/configuration/suppressions/{suppression_id}'.sub('{suppression_id}', CGI.escape(suppression_id.to_s).gsub('%2F', '/'))
386
+
387
+ # query parameters
388
+ query_params = opts[:query_params] || {}
389
+
390
+ # header parameters
391
+ header_params = opts[:header_params] || {}
392
+ # HTTP header 'Accept' (if needed)
393
+ header_params['Accept'] = @api_client.select_header_accept(['*/*'])
394
+
395
+ # form parameters
396
+ form_params = opts[:form_params] || {}
397
+
398
+ # http body (model)
399
+ post_body = opts[:debug_body]
400
+
401
+ # return_type
402
+ return_type = opts[:debug_return_type]
403
+
404
+ # auth_names
405
+ auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth, :AuthZ]
406
+
407
+ new_options = opts.merge(
408
+ :operation => :delete_security_monitoring_suppression,
409
+ :header_params => header_params,
410
+ :query_params => query_params,
411
+ :form_params => form_params,
412
+ :body => post_body,
413
+ :auth_names => auth_names,
414
+ :return_type => return_type,
415
+ :api_version => "V2"
416
+ )
417
+
418
+ data, status_code, headers = @api_client.call_api(Net::HTTP::Delete, local_var_path, new_options)
419
+ if @api_client.config.debugging
420
+ @api_client.config.logger.debug "API called: SecurityMonitoringAPI#delete_security_monitoring_suppression\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
421
+ end
422
+ return data, status_code, headers
423
+ end
424
+
293
425
  # Modify the triage assignee of a security signal.
294
426
  #
295
427
  # @see #edit_security_monitoring_signal_assignee_with_http_info
@@ -780,6 +912,71 @@ module DatadogAPIClient::V2
780
912
  return data, status_code, headers
781
913
  end
782
914
 
915
+ # Get a suppression rule.
916
+ #
917
+ # @see #get_security_monitoring_suppression_with_http_info
918
+ def get_security_monitoring_suppression(suppression_id, opts = {})
919
+ data, _status_code, _headers = get_security_monitoring_suppression_with_http_info(suppression_id, opts)
920
+ data
921
+ end
922
+
923
+ # Get a suppression rule.
924
+ #
925
+ # Get the details of a specific suppression rule.
926
+ #
927
+ # @param suppression_id [String] The ID of the suppression rule
928
+ # @param opts [Hash] the optional parameters
929
+ # @return [Array<(SecurityMonitoringSuppressionResponse, Integer, Hash)>] SecurityMonitoringSuppressionResponse data, response status code and response headers
930
+ def get_security_monitoring_suppression_with_http_info(suppression_id, opts = {})
931
+
932
+ if @api_client.config.debugging
933
+ @api_client.config.logger.debug 'Calling API: SecurityMonitoringAPI.get_security_monitoring_suppression ...'
934
+ end
935
+ # verify the required parameter 'suppression_id' is set
936
+ if @api_client.config.client_side_validation && suppression_id.nil?
937
+ fail ArgumentError, "Missing the required parameter 'suppression_id' when calling SecurityMonitoringAPI.get_security_monitoring_suppression"
938
+ end
939
+ # resource path
940
+ local_var_path = '/api/v2/security_monitoring/configuration/suppressions/{suppression_id}'.sub('{suppression_id}', CGI.escape(suppression_id.to_s).gsub('%2F', '/'))
941
+
942
+ # query parameters
943
+ query_params = opts[:query_params] || {}
944
+
945
+ # header parameters
946
+ header_params = opts[:header_params] || {}
947
+ # HTTP header 'Accept' (if needed)
948
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
949
+
950
+ # form parameters
951
+ form_params = opts[:form_params] || {}
952
+
953
+ # http body (model)
954
+ post_body = opts[:debug_body]
955
+
956
+ # return_type
957
+ return_type = opts[:debug_return_type] || 'SecurityMonitoringSuppressionResponse'
958
+
959
+ # auth_names
960
+ auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth, :AuthZ]
961
+
962
+ new_options = opts.merge(
963
+ :operation => :get_security_monitoring_suppression,
964
+ :header_params => header_params,
965
+ :query_params => query_params,
966
+ :form_params => form_params,
967
+ :body => post_body,
968
+ :auth_names => auth_names,
969
+ :return_type => return_type,
970
+ :api_version => "V2"
971
+ )
972
+
973
+ data, status_code, headers = @api_client.call_api(Net::HTTP::Get, local_var_path, new_options)
974
+ if @api_client.config.debugging
975
+ @api_client.config.logger.debug "API called: SecurityMonitoringAPI#get_security_monitoring_suppression\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
976
+ end
977
+ return data, status_code, headers
978
+ end
979
+
783
980
  # List findings.
784
981
  #
785
982
  # @see #list_findings_with_http_info
@@ -1164,6 +1361,66 @@ module DatadogAPIClient::V2
1164
1361
  end
1165
1362
  end
1166
1363
 
1364
+ # Get all suppression rules.
1365
+ #
1366
+ # @see #list_security_monitoring_suppressions_with_http_info
1367
+ def list_security_monitoring_suppressions(opts = {})
1368
+ data, _status_code, _headers = list_security_monitoring_suppressions_with_http_info(opts)
1369
+ data
1370
+ end
1371
+
1372
+ # Get all suppression rules.
1373
+ #
1374
+ # Get the list of all suppression rules.
1375
+ #
1376
+ # @param opts [Hash] the optional parameters
1377
+ # @return [Array<(SecurityMonitoringSuppressionsResponse, Integer, Hash)>] SecurityMonitoringSuppressionsResponse data, response status code and response headers
1378
+ def list_security_monitoring_suppressions_with_http_info(opts = {})
1379
+
1380
+ if @api_client.config.debugging
1381
+ @api_client.config.logger.debug 'Calling API: SecurityMonitoringAPI.list_security_monitoring_suppressions ...'
1382
+ end
1383
+ # resource path
1384
+ local_var_path = '/api/v2/security_monitoring/configuration/suppressions'
1385
+
1386
+ # query parameters
1387
+ query_params = opts[:query_params] || {}
1388
+
1389
+ # header parameters
1390
+ header_params = opts[:header_params] || {}
1391
+ # HTTP header 'Accept' (if needed)
1392
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
1393
+
1394
+ # form parameters
1395
+ form_params = opts[:form_params] || {}
1396
+
1397
+ # http body (model)
1398
+ post_body = opts[:debug_body]
1399
+
1400
+ # return_type
1401
+ return_type = opts[:debug_return_type] || 'SecurityMonitoringSuppressionsResponse'
1402
+
1403
+ # auth_names
1404
+ auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth, :AuthZ]
1405
+
1406
+ new_options = opts.merge(
1407
+ :operation => :list_security_monitoring_suppressions,
1408
+ :header_params => header_params,
1409
+ :query_params => query_params,
1410
+ :form_params => form_params,
1411
+ :body => post_body,
1412
+ :auth_names => auth_names,
1413
+ :return_type => return_type,
1414
+ :api_version => "V2"
1415
+ )
1416
+
1417
+ data, status_code, headers = @api_client.call_api(Net::HTTP::Get, local_var_path, new_options)
1418
+ if @api_client.config.debugging
1419
+ @api_client.config.logger.debug "API called: SecurityMonitoringAPI#list_security_monitoring_suppressions\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1420
+ end
1421
+ return data, status_code, headers
1422
+ end
1423
+
1167
1424
  # Mute or unmute a batch of findings.
1168
1425
  #
1169
1426
  # @see #mute_findings_with_http_info
@@ -1469,5 +1726,77 @@ module DatadogAPIClient::V2
1469
1726
  end
1470
1727
  return data, status_code, headers
1471
1728
  end
1729
+
1730
+ # Update a suppression rule.
1731
+ #
1732
+ # @see #update_security_monitoring_suppression_with_http_info
1733
+ def update_security_monitoring_suppression(suppression_id, body, opts = {})
1734
+ data, _status_code, _headers = update_security_monitoring_suppression_with_http_info(suppression_id, body, opts)
1735
+ data
1736
+ end
1737
+
1738
+ # Update a suppression rule.
1739
+ #
1740
+ # Update a specific suppression rule.
1741
+ #
1742
+ # @param suppression_id [String] The ID of the suppression rule
1743
+ # @param body [SecurityMonitoringSuppressionUpdateRequest] New definition of the suppression rule. Supports partial updates.
1744
+ # @param opts [Hash] the optional parameters
1745
+ # @return [Array<(SecurityMonitoringSuppressionResponse, Integer, Hash)>] SecurityMonitoringSuppressionResponse data, response status code and response headers
1746
+ def update_security_monitoring_suppression_with_http_info(suppression_id, body, opts = {})
1747
+
1748
+ if @api_client.config.debugging
1749
+ @api_client.config.logger.debug 'Calling API: SecurityMonitoringAPI.update_security_monitoring_suppression ...'
1750
+ end
1751
+ # verify the required parameter 'suppression_id' is set
1752
+ if @api_client.config.client_side_validation && suppression_id.nil?
1753
+ fail ArgumentError, "Missing the required parameter 'suppression_id' when calling SecurityMonitoringAPI.update_security_monitoring_suppression"
1754
+ end
1755
+ # verify the required parameter 'body' is set
1756
+ if @api_client.config.client_side_validation && body.nil?
1757
+ fail ArgumentError, "Missing the required parameter 'body' when calling SecurityMonitoringAPI.update_security_monitoring_suppression"
1758
+ end
1759
+ # resource path
1760
+ local_var_path = '/api/v2/security_monitoring/configuration/suppressions/{suppression_id}'.sub('{suppression_id}', CGI.escape(suppression_id.to_s).gsub('%2F', '/'))
1761
+
1762
+ # query parameters
1763
+ query_params = opts[:query_params] || {}
1764
+
1765
+ # header parameters
1766
+ header_params = opts[:header_params] || {}
1767
+ # HTTP header 'Accept' (if needed)
1768
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
1769
+ # HTTP header 'Content-Type'
1770
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
1771
+
1772
+ # form parameters
1773
+ form_params = opts[:form_params] || {}
1774
+
1775
+ # http body (model)
1776
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(body)
1777
+
1778
+ # return_type
1779
+ return_type = opts[:debug_return_type] || 'SecurityMonitoringSuppressionResponse'
1780
+
1781
+ # auth_names
1782
+ auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth, :AuthZ]
1783
+
1784
+ new_options = opts.merge(
1785
+ :operation => :update_security_monitoring_suppression,
1786
+ :header_params => header_params,
1787
+ :query_params => query_params,
1788
+ :form_params => form_params,
1789
+ :body => post_body,
1790
+ :auth_names => auth_names,
1791
+ :return_type => return_type,
1792
+ :api_version => "V2"
1793
+ )
1794
+
1795
+ data, status_code, headers = @api_client.call_api(Net::HTTP::Patch, local_var_path, new_options)
1796
+ if @api_client.config.debugging
1797
+ @api_client.config.logger.debug "API called: SecurityMonitoringAPI#update_security_monitoring_suppression\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1798
+ end
1799
+ return data, status_code, headers
1800
+ end
1472
1801
  end
1473
1802
  end
@@ -717,6 +717,28 @@ module DatadogAPIClient::V2
717
717
  return data, status_code, headers
718
718
  end
719
719
 
720
+ # Get team memberships.
721
+ #
722
+ # Provide a paginated version of {#get_team_memberships}, returning all items.
723
+ #
724
+ # To use it you need to use a block: get_team_memberships_with_pagination { |item| p item }
725
+ #
726
+ # @yield [UserTeam] Paginated items
727
+ def get_team_memberships_with_pagination(team_id, opts = {})
728
+ api_version = "V2"
729
+ page_size = @api_client.get_attribute_from_path(opts, "page_size", 10)
730
+ @api_client.set_attribute_from_path(api_version, opts, "page_size", Integer, page_size)
731
+ @api_client.set_attribute_from_path(api_version, opts, "page_number", Integer, 0)
732
+ while true do
733
+ response = get_team_memberships(team_id, opts)
734
+ @api_client.get_attribute_from_path(response, "data").each { |item| yield(item) }
735
+ if @api_client.get_attribute_from_path(response, "data").length < page_size
736
+ break
737
+ end
738
+ @api_client.set_attribute_from_path(api_version, opts, "page_number", Integer, @api_client.get_attribute_from_path(opts, "page_number", 0) + 1)
739
+ end
740
+ end
741
+
720
742
  # Get permission settings for a team.
721
743
  #
722
744
  # @see #get_team_permission_settings_with_http_info
@@ -642,7 +642,7 @@ module DatadogAPIClient::V2
642
642
  return data, status_code, headers
643
643
  end
644
644
 
645
- # Get hourly usage for lambda traced invocations.
645
+ # Get hourly usage for Lambda traced invocations.
646
646
  #
647
647
  # @see #get_usage_lambda_traced_invocations_with_http_info
648
648
  def get_usage_lambda_traced_invocations(start_hr, opts = {})
@@ -650,9 +650,9 @@ module DatadogAPIClient::V2
650
650
  data
651
651
  end
652
652
 
653
- # Get hourly usage for lambda traced invocations.
653
+ # Get hourly usage for Lambda traced invocations.
654
654
  #
655
- # Get hourly usage for lambda traced invocations.
655
+ # Get hourly usage for Lambda traced invocations.
656
656
  # **Note:** hourly usage data for all products is now available in the [Get hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family)
657
657
  #
658
658
  # @param start_hr [Time] Datetime in ISO-8601 format, UTC, precise to hour: `[YYYY-MM-DDThh]` for usage beginning at this hour.
@@ -0,0 +1,129 @@
1
+ =begin
2
+ #Datadog API V2 Collection
3
+
4
+ #Collection of all Datadog Public endpoints.
5
+
6
+ The version of the OpenAPI document: 1.0
7
+ Contact: support@datadoghq.com
8
+ Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator
9
+
10
+ Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
11
+ This product includes software developed at Datadog (https://www.datadoghq.com/).
12
+ Copyright 2020-Present Datadog, Inc.
13
+
14
+ =end
15
+
16
+ require 'date'
17
+ require 'time'
18
+
19
+ module DatadogAPIClient::V2
20
+ # AWS CUR config.
21
+ class AwsCURConfig
22
+ include BaseGenericModel
23
+
24
+ # Attributes for An AWS CUR config.
25
+ attr_reader :attributes
26
+
27
+ # The ID of the AWS CUR config.
28
+ attr_accessor :id
29
+
30
+ # Type of AWS CUR config.
31
+ attr_reader :type
32
+
33
+ # Attribute mapping from ruby-style variable name to JSON key.
34
+ # @!visibility private
35
+ def self.attribute_map
36
+ {
37
+ :'attributes' => :'attributes',
38
+ :'id' => :'id',
39
+ :'type' => :'type'
40
+ }
41
+ end
42
+
43
+ # Attribute type mapping.
44
+ # @!visibility private
45
+ def self.openapi_types
46
+ {
47
+ :'attributes' => :'AwsCURConfigAttributes',
48
+ :'id' => :'Integer',
49
+ :'type' => :'AwsCURConfigType'
50
+ }
51
+ end
52
+
53
+ # Initializes the object
54
+ # @param attributes [Hash] Model attributes in the form of hash
55
+ # @!visibility private
56
+ def initialize(attributes = {})
57
+ if (!attributes.is_a?(Hash))
58
+ fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::AwsCURConfig` initialize method"
59
+ end
60
+
61
+ # check to see if the attribute exists and convert string to symbol for hash key
62
+ attributes = attributes.each_with_object({}) { |(k, v), h|
63
+ if (!self.class.attribute_map.key?(k.to_sym))
64
+ fail ArgumentError, "`#{k}` is not a valid attribute in `DatadogAPIClient::V2::AwsCURConfig`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
65
+ end
66
+ h[k.to_sym] = v
67
+ }
68
+
69
+ if attributes.key?(:'attributes')
70
+ self.attributes = attributes[:'attributes']
71
+ end
72
+
73
+ if attributes.key?(:'id')
74
+ self.id = attributes[:'id']
75
+ end
76
+
77
+ if attributes.key?(:'type')
78
+ self.type = attributes[:'type']
79
+ end
80
+ end
81
+
82
+ # Check to see if the all the properties in the model are valid
83
+ # @return true if the model is valid
84
+ # @!visibility private
85
+ def valid?
86
+ return false if @attributes.nil?
87
+ return false if @type.nil?
88
+ true
89
+ end
90
+
91
+ # Custom attribute writer method with validation
92
+ # @param attributes [Object] Object to be assigned
93
+ # @!visibility private
94
+ def attributes=(attributes)
95
+ if attributes.nil?
96
+ fail ArgumentError, 'invalid value for "attributes", attributes cannot be nil.'
97
+ end
98
+ @attributes = attributes
99
+ end
100
+
101
+ # Custom attribute writer method with validation
102
+ # @param type [Object] Object to be assigned
103
+ # @!visibility private
104
+ def type=(type)
105
+ if type.nil?
106
+ fail ArgumentError, 'invalid value for "type", type cannot be nil.'
107
+ end
108
+ @type = type
109
+ end
110
+
111
+ # Checks equality by comparing each attribute.
112
+ # @param o [Object] Object to be compared
113
+ # @!visibility private
114
+ def ==(o)
115
+ return true if self.equal?(o)
116
+ self.class == o.class &&
117
+ attributes == o.attributes &&
118
+ id == o.id &&
119
+ type == o.type
120
+ end
121
+
122
+ # Calculates hash code according to all attributes.
123
+ # @return [Integer] Hash code
124
+ # @!visibility private
125
+ def hash
126
+ [attributes, id, type].hash
127
+ end
128
+ end
129
+ end