datadog_api_client 2.46.0 → 2.47.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 (141) hide show
  1. checksums.yaml +4 -4
  2. data/.generator/schemas/v1/openapi.yaml +105 -7
  3. data/.generator/schemas/v2/openapi.yaml +1285 -324
  4. data/CHANGELOG.md +26 -0
  5. data/examples/v1/dashboards/CreateDashboard_3685886950.rb +36 -0
  6. data/examples/v1/dashboards/CreateDashboard_865807520.rb +36 -0
  7. data/examples/v1/dashboards/CreateDashboard_9836563.rb +118 -0
  8. data/examples/v2/apm/GetServiceList.rb +5 -0
  9. data/examples/v2/aws-integration/CreateAWSAccount.rb +11 -0
  10. data/examples/v2/aws-integration/CreateAWSAccount_1716720881.rb +11 -0
  11. data/examples/v2/aws-integration/UpdateAWSAccount.rb +11 -0
  12. data/examples/v2/csm-threats/CreateCSMThreatsAgentRule_1295653933.rb +3 -1
  13. data/examples/v2/csm-threats/CreateCSMThreatsAgentRule_1363354233.rb +1 -1
  14. data/examples/v2/deployment-gates/GetDeploymentGateRules.rb +11 -0
  15. data/examples/v2/events/CreateEvent.rb +1 -0
  16. data/examples/v2/observability-pipelines/CreatePipeline.rb +12 -4
  17. data/examples/v2/observability-pipelines/UpdatePipeline.rb +12 -4
  18. data/examples/v2/observability-pipelines/ValidatePipeline.rb +12 -4
  19. data/examples/v2/on-call/CreateUserNotificationChannel.rb +23 -0
  20. data/examples/v2/on-call/DeleteUserNotificationChannel.rb +11 -0
  21. data/examples/v2/on-call/GetUserNotificationChannel.rb +11 -0
  22. data/examples/v2/on-call/ListUserNotificationChannels.rb +8 -0
  23. data/examples/v2/security-monitoring/CreateCases.rb +2 -2
  24. data/examples/v2/security-monitoring/CreateCases_2385516013.rb +1 -1
  25. data/examples/v2/security-monitoring/CreateCases_2798851680.rb +2 -2
  26. data/examples/v2/security-monitoring/CreateJiraIssues.rb +14 -69
  27. data/examples/v2/security-monitoring/GetSecretsRules.rb +1 -1
  28. data/examples/v2/security-monitoring/GetSuppressionVersionHistory.rb +8 -0
  29. data/examples/v2/security-monitoring/ValidateSecurityMonitoringRule_2609327779.rb +54 -0
  30. data/lib/datadog_api_client/configuration.rb +4 -3
  31. data/lib/datadog_api_client/inflector.rb +43 -6
  32. data/lib/datadog_api_client/v1/models/formula_and_function_metric_query_definition.rb +13 -3
  33. data/lib/datadog_api_client/v1/models/formula_and_function_metric_semantic_mode.rb +27 -0
  34. data/lib/datadog_api_client/v1/models/geomap_widget_definition.rb +4 -5
  35. data/lib/datadog_api_client/v1/models/geomap_widget_definition_view.rb +1 -1
  36. data/lib/datadog_api_client/v1/models/geomap_widget_request.rb +37 -3
  37. data/lib/datadog_api_client/v1/models/geomap_widget_request_style.rb +105 -0
  38. data/lib/datadog_api_client/v1/models/monitor_search_response.rb +1 -1
  39. data/lib/datadog_api_client/v1/models/usage_summary_date.rb +41 -1
  40. data/lib/datadog_api_client/v1/models/usage_summary_date_org.rb +41 -1
  41. data/lib/datadog_api_client/v1/models/usage_summary_response.rb +41 -1
  42. data/lib/datadog_api_client/v2/api/apm_api.rb +83 -0
  43. data/lib/datadog_api_client/v2/api/deployment_gates_api.rb +71 -0
  44. data/lib/datadog_api_client/v2/api/incidents_api.rb +0 -18
  45. data/lib/datadog_api_client/v2/api/on_call_api.rb +277 -0
  46. data/lib/datadog_api_client/v2/api/security_monitoring_api.rb +99 -11
  47. data/lib/datadog_api_client/v2/api/teams_api.rb +6 -0
  48. data/lib/datadog_api_client/v2/models/attach_case_request_data.rb +1 -1
  49. data/lib/datadog_api_client/v2/models/attach_jira_issue_request_data.rb +1 -11
  50. data/lib/datadog_api_client/v2/models/attach_jira_issue_request_data_attributes.rb +1 -1
  51. data/lib/datadog_api_client/v2/models/aws_account_create_request_attributes.rb +11 -1
  52. data/lib/datadog_api_client/v2/models/aws_account_response_attributes.rb +11 -1
  53. data/lib/datadog_api_client/v2/models/aws_account_update_request_attributes.rb +11 -1
  54. data/lib/datadog_api_client/v2/models/awsccm_config.rb +107 -0
  55. data/lib/datadog_api_client/v2/models/case_insights_items.rb +3 -3
  56. data/lib/datadog_api_client/v2/models/case_management_project_data.rb +1 -1
  57. data/lib/datadog_api_client/v2/models/cloud_workload_security_agent_policy_attributes.rb +11 -1
  58. data/lib/datadog_api_client/v2/models/cloud_workload_security_agent_policy_version.rb +2 -2
  59. data/lib/datadog_api_client/v2/models/cloud_workload_security_agent_rule_action.rb +2 -2
  60. data/lib/datadog_api_client/v2/models/cloud_workload_security_agent_rule_action_hash.rb +105 -0
  61. data/lib/datadog_api_client/v2/models/cloud_workload_security_agent_rule_action_set.rb +1 -1
  62. data/lib/datadog_api_client/v2/models/{create_jira_issue_request_array_included.rb → cloud_workload_security_agent_rule_action_set_value.rb} +5 -5
  63. data/lib/datadog_api_client/v2/models/create_case_request_data.rb +1 -11
  64. data/lib/datadog_api_client/v2/models/create_case_request_data_attributes.rb +3 -3
  65. data/lib/datadog_api_client/v2/models/create_email_notification_channel_config.rb +167 -0
  66. data/lib/datadog_api_client/v2/models/create_jira_issue_request_array.rb +3 -15
  67. data/lib/datadog_api_client/v2/models/create_jira_issue_request_data.rb +1 -11
  68. data/lib/datadog_api_client/v2/models/create_jira_issue_request_data_attributes.rb +43 -3
  69. data/lib/datadog_api_client/v2/models/create_jira_issue_request_data_relationships.rb +35 -14
  70. data/lib/datadog_api_client/v2/models/create_notification_channel_attributes.rb +105 -0
  71. data/lib/datadog_api_client/v2/models/create_notification_channel_config.rb +63 -0
  72. data/lib/datadog_api_client/v2/models/create_notification_channel_data.rb +133 -0
  73. data/lib/datadog_api_client/v2/models/create_phone_notification_channel_config.rb +144 -0
  74. data/lib/datadog_api_client/v2/models/{create_jira_issue_request_data_relationships_case.rb → create_user_notification_channel_request.rb} +5 -5
  75. data/lib/datadog_api_client/v2/models/data_export_config.rb +145 -0
  76. data/lib/datadog_api_client/v2/models/deployment_gate_rules_response.rb +105 -0
  77. data/lib/datadog_api_client/v2/models/detach_case_request_data.rb +1 -11
  78. data/lib/datadog_api_client/v2/models/event_payload.rb +26 -1
  79. data/lib/datadog_api_client/v2/models/finding_case_response_data.rb +1 -1
  80. data/lib/datadog_api_client/v2/models/finding_data.rb +1 -1
  81. data/lib/datadog_api_client/v2/models/finding_jira_issue.rb +2 -2
  82. data/lib/datadog_api_client/v2/models/finding_jira_issue_result.rb +4 -4
  83. data/lib/datadog_api_client/v2/models/get_suppression_version_history_data.rb +125 -0
  84. data/lib/datadog_api_client/v2/models/get_suppression_version_history_data_type.rb +26 -0
  85. data/lib/datadog_api_client/v2/models/get_suppression_version_history_response.rb +105 -0
  86. data/lib/datadog_api_client/v2/models/library.rb +13 -1
  87. data/lib/datadog_api_client/v2/models/list_deployment_rule_response_data.rb +165 -0
  88. data/lib/datadog_api_client/v2/models/list_deployment_rules_data_type.rb +26 -0
  89. data/lib/datadog_api_client/v2/models/{create_jira_issue_request_data_attributes_fields.rb → list_deployment_rules_response_data_attributes.rb} +12 -10
  90. data/lib/datadog_api_client/v2/models/list_notification_channels_response.rb +107 -0
  91. data/lib/datadog_api_client/v2/models/notification_channel.rb +105 -0
  92. data/lib/datadog_api_client/v2/models/notification_channel_attributes.rb +115 -0
  93. data/lib/datadog_api_client/v2/models/notification_channel_config.rb +64 -0
  94. data/lib/datadog_api_client/v2/models/notification_channel_data.rb +143 -0
  95. data/lib/datadog_api_client/v2/models/notification_channel_email_config.rb +167 -0
  96. data/lib/datadog_api_client/v2/models/notification_channel_email_config_type.rb +26 -0
  97. data/lib/datadog_api_client/v2/models/notification_channel_email_format_type.rb +27 -0
  98. data/lib/datadog_api_client/v2/models/notification_channel_phone_config.rb +225 -0
  99. data/lib/datadog_api_client/v2/models/notification_channel_phone_config_type.rb +26 -0
  100. data/lib/datadog_api_client/v2/models/notification_channel_push_config.rb +165 -0
  101. data/lib/datadog_api_client/v2/models/notification_channel_push_config_type.rb +26 -0
  102. data/lib/datadog_api_client/v2/models/notification_channel_type.rb +26 -0
  103. data/lib/datadog_api_client/v2/models/observability_pipeline_add_env_vars_processor.rb +22 -24
  104. data/lib/datadog_api_client/v2/models/observability_pipeline_add_fields_processor.rb +22 -24
  105. data/lib/datadog_api_client/v2/models/observability_pipeline_config.rb +2 -2
  106. data/lib/datadog_api_client/v2/models/observability_pipeline_config_processor_group.rb +211 -0
  107. data/lib/datadog_api_client/v2/models/observability_pipeline_custom_processor.rb +22 -24
  108. data/lib/datadog_api_client/v2/models/observability_pipeline_custom_processor_remap.rb +1 -12
  109. data/lib/datadog_api_client/v2/models/observability_pipeline_datadog_tags_processor.rb +22 -24
  110. data/lib/datadog_api_client/v2/models/observability_pipeline_dedupe_processor.rb +22 -24
  111. data/lib/datadog_api_client/v2/models/observability_pipeline_enrichment_table_processor.rb +22 -24
  112. data/lib/datadog_api_client/v2/models/observability_pipeline_filter_processor.rb +22 -24
  113. data/lib/datadog_api_client/v2/models/observability_pipeline_generate_metrics_processor.rb +24 -48
  114. data/lib/datadog_api_client/v2/models/observability_pipeline_ocsf_mapper_processor.rb +22 -24
  115. data/lib/datadog_api_client/v2/models/observability_pipeline_parse_grok_processor.rb +22 -24
  116. data/lib/datadog_api_client/v2/models/observability_pipeline_parse_json_processor.rb +22 -24
  117. data/lib/datadog_api_client/v2/models/observability_pipeline_quota_processor.rb +18 -31
  118. data/lib/datadog_api_client/v2/models/observability_pipeline_reduce_processor.rb +22 -24
  119. data/lib/datadog_api_client/v2/models/observability_pipeline_remove_fields_processor.rb +22 -24
  120. data/lib/datadog_api_client/v2/models/observability_pipeline_rename_fields_processor.rb +22 -24
  121. data/lib/datadog_api_client/v2/models/observability_pipeline_sample_processor.rb +22 -24
  122. data/lib/datadog_api_client/v2/models/observability_pipeline_sensitive_data_scanner_processor.rb +22 -24
  123. data/lib/datadog_api_client/v2/models/observability_pipeline_throttle_processor.rb +22 -24
  124. data/lib/datadog_api_client/v2/models/rule_versions.rb +1 -1
  125. data/lib/datadog_api_client/v2/models/security_monitoring_rule_new_value_options.rb +11 -1
  126. data/lib/datadog_api_client/v2/models/service_list.rb +105 -0
  127. data/lib/datadog_api_client/v2/models/{create_jira_issue_request_data_relationships_case_data.rb → service_list_data.rb} +17 -18
  128. data/lib/datadog_api_client/v2/models/service_list_data_attributes.rb +119 -0
  129. data/lib/datadog_api_client/v2/models/service_list_data_attributes_metadata_items.rb +115 -0
  130. data/lib/datadog_api_client/v2/models/service_list_data_type.rb +26 -0
  131. data/lib/datadog_api_client/v2/models/suppression_version_history.rb +133 -0
  132. data/lib/datadog_api_client/v2/models/suppression_versions.rb +117 -0
  133. data/lib/datadog_api_client/v2/models/{rule_version_update.rb → version_history_update.rb} +3 -3
  134. data/lib/datadog_api_client/v2/models/{rule_version_update_type.rb → version_history_update_type.rb} +1 -1
  135. data/lib/datadog_api_client/v2/models/vulnerability_attributes.rb +11 -1
  136. data/lib/datadog_api_client/v2/models/vulnerability_ecosystem.rb +6 -1
  137. data/lib/datadog_api_client/v2/models/vulnerability_tool.rb +1 -0
  138. data/lib/datadog_api_client/version.rb +1 -1
  139. metadata +55 -9
  140. data/examples/v2/security-monitoring/CreateJiraIssues_379590688.rb +0 -56
  141. data/examples/v2/security-monitoring/CreateJiraIssues_829823123.rb +0 -64
@@ -392,6 +392,77 @@ module DatadogAPIClient::V2
392
392
  return data, status_code, headers
393
393
  end
394
394
 
395
+ # Get rules for a deployment gate.
396
+ #
397
+ # @see #get_deployment_gate_rules_with_http_info
398
+ def get_deployment_gate_rules(gate_id, opts = {})
399
+ data, _status_code, _headers = get_deployment_gate_rules_with_http_info(gate_id, opts)
400
+ data
401
+ end
402
+
403
+ # Get rules for a deployment gate.
404
+ #
405
+ # Endpoint to get rules for a deployment gate.
406
+ #
407
+ # @param gate_id [String] The ID of the deployment gate.
408
+ # @param opts [Hash] the optional parameters
409
+ # @return [Array<(DeploymentGateRulesResponse, Integer, Hash)>] DeploymentGateRulesResponse data, response status code and response headers
410
+ def get_deployment_gate_rules_with_http_info(gate_id, opts = {})
411
+ unstable_enabled = @api_client.config.unstable_operations["v2.get_deployment_gate_rules".to_sym]
412
+ if unstable_enabled
413
+ @api_client.config.logger.warn format("Using unstable operation '%s'", "v2.get_deployment_gate_rules")
414
+ else
415
+ raise DatadogAPIClient::APIError.new(message: format("Unstable operation '%s' is disabled", "v2.get_deployment_gate_rules"))
416
+ end
417
+
418
+ if @api_client.config.debugging
419
+ @api_client.config.logger.debug 'Calling API: DeploymentGatesAPI.get_deployment_gate_rules ...'
420
+ end
421
+ # verify the required parameter 'gate_id' is set
422
+ if @api_client.config.client_side_validation && gate_id.nil?
423
+ fail ArgumentError, "Missing the required parameter 'gate_id' when calling DeploymentGatesAPI.get_deployment_gate_rules"
424
+ end
425
+ # resource path
426
+ local_var_path = '/api/v2/deployment_gates/{gate_id}/rules'.sub('{gate_id}', CGI.escape(gate_id.to_s).gsub('%2F', '/'))
427
+
428
+ # query parameters
429
+ query_params = opts[:query_params] || {}
430
+
431
+ # header parameters
432
+ header_params = opts[:header_params] || {}
433
+ # HTTP header 'Accept' (if needed)
434
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
435
+
436
+ # form parameters
437
+ form_params = opts[:form_params] || {}
438
+
439
+ # http body (model)
440
+ post_body = opts[:debug_body]
441
+
442
+ # return_type
443
+ return_type = opts[:debug_return_type] || 'DeploymentGateRulesResponse'
444
+
445
+ # auth_names
446
+ auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth]
447
+
448
+ new_options = opts.merge(
449
+ :operation => :get_deployment_gate_rules,
450
+ :header_params => header_params,
451
+ :query_params => query_params,
452
+ :form_params => form_params,
453
+ :body => post_body,
454
+ :auth_names => auth_names,
455
+ :return_type => return_type,
456
+ :api_version => "V2"
457
+ )
458
+
459
+ data, status_code, headers = @api_client.call_api(Net::HTTP::Get, local_var_path, new_options)
460
+ if @api_client.config.debugging
461
+ @api_client.config.logger.debug "API called: DeploymentGatesAPI#get_deployment_gate_rules\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
462
+ end
463
+ return data, status_code, headers
464
+ end
465
+
395
466
  # Get deployment rule.
396
467
  #
397
468
  # @see #get_deployment_rule_with_http_info
@@ -114,12 +114,6 @@ module DatadogAPIClient::V2
114
114
  # @option opts [Array<IncidentImpactRelatedObject>] :include Specifies which related resources should be included in the response.
115
115
  # @return [Array<(IncidentImpactResponse, Integer, Hash)>] IncidentImpactResponse data, response status code and response headers
116
116
  def create_incident_impact_with_http_info(incident_id, body, opts = {})
117
- unstable_enabled = @api_client.config.unstable_operations["v2.create_incident_impact".to_sym]
118
- if unstable_enabled
119
- @api_client.config.logger.warn format("Using unstable operation '%s'", "v2.create_incident_impact")
120
- else
121
- raise DatadogAPIClient::APIError.new(message: format("Unstable operation '%s' is disabled", "v2.create_incident_impact"))
122
- end
123
117
 
124
118
  if @api_client.config.debugging
125
119
  @api_client.config.logger.debug 'Calling API: IncidentsAPI.create_incident_impact ...'
@@ -639,12 +633,6 @@ module DatadogAPIClient::V2
639
633
  # @param opts [Hash] the optional parameters
640
634
  # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
641
635
  def delete_incident_impact_with_http_info(incident_id, impact_id, opts = {})
642
- unstable_enabled = @api_client.config.unstable_operations["v2.delete_incident_impact".to_sym]
643
- if unstable_enabled
644
- @api_client.config.logger.warn format("Using unstable operation '%s'", "v2.delete_incident_impact")
645
- else
646
- raise DatadogAPIClient::APIError.new(message: format("Unstable operation '%s' is disabled", "v2.delete_incident_impact"))
647
- end
648
636
 
649
637
  if @api_client.config.debugging
650
638
  @api_client.config.logger.debug 'Calling API: IncidentsAPI.delete_incident_impact ...'
@@ -1601,12 +1589,6 @@ module DatadogAPIClient::V2
1601
1589
  # @option opts [Array<IncidentImpactRelatedObject>] :include Specifies which related resources should be included in the response.
1602
1590
  # @return [Array<(IncidentImpactsResponse, Integer, Hash)>] IncidentImpactsResponse data, response status code and response headers
1603
1591
  def list_incident_impacts_with_http_info(incident_id, opts = {})
1604
- unstable_enabled = @api_client.config.unstable_operations["v2.list_incident_impacts".to_sym]
1605
- if unstable_enabled
1606
- @api_client.config.logger.warn format("Using unstable operation '%s'", "v2.list_incident_impacts")
1607
- else
1608
- raise DatadogAPIClient::APIError.new(message: format("Unstable operation '%s' is disabled", "v2.list_incident_impacts"))
1609
- end
1610
1592
 
1611
1593
  if @api_client.config.debugging
1612
1594
  @api_client.config.logger.debug 'Calling API: IncidentsAPI.list_incident_impacts ...'
@@ -161,6 +161,78 @@ module DatadogAPIClient::V2
161
161
  return data, status_code, headers
162
162
  end
163
163
 
164
+ # Create an On-Call notification channel for a user.
165
+ #
166
+ # @see #create_user_notification_channel_with_http_info
167
+ def create_user_notification_channel(user_id, body, opts = {})
168
+ data, _status_code, _headers = create_user_notification_channel_with_http_info(user_id, body, opts)
169
+ data
170
+ end
171
+
172
+ # Create an On-Call notification channel for a user.
173
+ #
174
+ # Create a new notification channel for a user. The authenticated user must be the target user or have the `on_call_admin` permission
175
+ #
176
+ # @param user_id [String] The user ID
177
+ # @param body [CreateUserNotificationChannelRequest]
178
+ # @param opts [Hash] the optional parameters
179
+ # @return [Array<(NotificationChannel, Integer, Hash)>] NotificationChannel data, response status code and response headers
180
+ def create_user_notification_channel_with_http_info(user_id, body, opts = {})
181
+
182
+ if @api_client.config.debugging
183
+ @api_client.config.logger.debug 'Calling API: OnCallAPI.create_user_notification_channel ...'
184
+ end
185
+ # verify the required parameter 'user_id' is set
186
+ if @api_client.config.client_side_validation && user_id.nil?
187
+ fail ArgumentError, "Missing the required parameter 'user_id' when calling OnCallAPI.create_user_notification_channel"
188
+ end
189
+ # verify the required parameter 'body' is set
190
+ if @api_client.config.client_side_validation && body.nil?
191
+ fail ArgumentError, "Missing the required parameter 'body' when calling OnCallAPI.create_user_notification_channel"
192
+ end
193
+ # resource path
194
+ local_var_path = '/api/v2/on-call/users/{user_id}/notification-channels'.sub('{user_id}', CGI.escape(user_id.to_s).gsub('%2F', '/'))
195
+
196
+ # query parameters
197
+ query_params = opts[:query_params] || {}
198
+
199
+ # header parameters
200
+ header_params = opts[:header_params] || {}
201
+ # HTTP header 'Accept' (if needed)
202
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
203
+ # HTTP header 'Content-Type'
204
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
205
+
206
+ # form parameters
207
+ form_params = opts[:form_params] || {}
208
+
209
+ # http body (model)
210
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(body)
211
+
212
+ # return_type
213
+ return_type = opts[:debug_return_type] || 'NotificationChannel'
214
+
215
+ # auth_names
216
+ auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth, :AuthZ]
217
+
218
+ new_options = opts.merge(
219
+ :operation => :create_user_notification_channel,
220
+ :header_params => header_params,
221
+ :query_params => query_params,
222
+ :form_params => form_params,
223
+ :body => post_body,
224
+ :auth_names => auth_names,
225
+ :return_type => return_type,
226
+ :api_version => "V2"
227
+ )
228
+
229
+ data, status_code, headers = @api_client.call_api(Net::HTTP::Post, local_var_path, new_options)
230
+ if @api_client.config.debugging
231
+ @api_client.config.logger.debug "API called: OnCallAPI#create_user_notification_channel\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
232
+ end
233
+ return data, status_code, headers
234
+ end
235
+
164
236
  # Delete On-Call escalation policy.
165
237
  #
166
238
  # @see #delete_on_call_escalation_policy_with_http_info
@@ -291,6 +363,76 @@ module DatadogAPIClient::V2
291
363
  return data, status_code, headers
292
364
  end
293
365
 
366
+ # Delete an On-Call notification channel for a user.
367
+ #
368
+ # @see #delete_user_notification_channel_with_http_info
369
+ def delete_user_notification_channel(user_id, channel_id, opts = {})
370
+ delete_user_notification_channel_with_http_info(user_id, channel_id, opts)
371
+ nil
372
+ end
373
+
374
+ # Delete an On-Call notification channel for a user.
375
+ #
376
+ # Delete a notification channel for a user. The authenticated user must be the target user or have the `on_call_admin` permission
377
+ #
378
+ # @param user_id [String] The user ID
379
+ # @param channel_id [String] The channel ID
380
+ # @param opts [Hash] the optional parameters
381
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
382
+ def delete_user_notification_channel_with_http_info(user_id, channel_id, opts = {})
383
+
384
+ if @api_client.config.debugging
385
+ @api_client.config.logger.debug 'Calling API: OnCallAPI.delete_user_notification_channel ...'
386
+ end
387
+ # verify the required parameter 'user_id' is set
388
+ if @api_client.config.client_side_validation && user_id.nil?
389
+ fail ArgumentError, "Missing the required parameter 'user_id' when calling OnCallAPI.delete_user_notification_channel"
390
+ end
391
+ # verify the required parameter 'channel_id' is set
392
+ if @api_client.config.client_side_validation && channel_id.nil?
393
+ fail ArgumentError, "Missing the required parameter 'channel_id' when calling OnCallAPI.delete_user_notification_channel"
394
+ end
395
+ # resource path
396
+ local_var_path = '/api/v2/on-call/users/{user_id}/notification-channels/{channel_id}'.sub('{user_id}', CGI.escape(user_id.to_s).gsub('%2F', '/')).sub('{channel_id}', CGI.escape(channel_id.to_s).gsub('%2F', '/'))
397
+
398
+ # query parameters
399
+ query_params = opts[:query_params] || {}
400
+
401
+ # header parameters
402
+ header_params = opts[:header_params] || {}
403
+ # HTTP header 'Accept' (if needed)
404
+ header_params['Accept'] = @api_client.select_header_accept(['*/*'])
405
+
406
+ # form parameters
407
+ form_params = opts[:form_params] || {}
408
+
409
+ # http body (model)
410
+ post_body = opts[:debug_body]
411
+
412
+ # return_type
413
+ return_type = opts[:debug_return_type]
414
+
415
+ # auth_names
416
+ auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth, :AuthZ]
417
+
418
+ new_options = opts.merge(
419
+ :operation => :delete_user_notification_channel,
420
+ :header_params => header_params,
421
+ :query_params => query_params,
422
+ :form_params => form_params,
423
+ :body => post_body,
424
+ :auth_names => auth_names,
425
+ :return_type => return_type,
426
+ :api_version => "V2"
427
+ )
428
+
429
+ data, status_code, headers = @api_client.call_api(Net::HTTP::Delete, local_var_path, new_options)
430
+ if @api_client.config.debugging
431
+ @api_client.config.logger.debug "API called: OnCallAPI#delete_user_notification_channel\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
432
+ end
433
+ return data, status_code, headers
434
+ end
435
+
294
436
  # Get On-Call escalation policy.
295
437
  #
296
438
  # @see #get_on_call_escalation_policy_with_http_info
@@ -628,6 +770,141 @@ module DatadogAPIClient::V2
628
770
  return data, status_code, headers
629
771
  end
630
772
 
773
+ # Get an On-Call notification channel for a user.
774
+ #
775
+ # @see #get_user_notification_channel_with_http_info
776
+ def get_user_notification_channel(user_id, channel_id, opts = {})
777
+ data, _status_code, _headers = get_user_notification_channel_with_http_info(user_id, channel_id, opts)
778
+ data
779
+ end
780
+
781
+ # Get an On-Call notification channel for a user.
782
+ #
783
+ # Get a notification channel for a user. The authenticated user must be the target user or have the `on_call_admin` permission
784
+ #
785
+ # @param user_id [String] The user ID
786
+ # @param channel_id [String] The channel ID
787
+ # @param opts [Hash] the optional parameters
788
+ # @return [Array<(NotificationChannel, Integer, Hash)>] NotificationChannel data, response status code and response headers
789
+ def get_user_notification_channel_with_http_info(user_id, channel_id, opts = {})
790
+
791
+ if @api_client.config.debugging
792
+ @api_client.config.logger.debug 'Calling API: OnCallAPI.get_user_notification_channel ...'
793
+ end
794
+ # verify the required parameter 'user_id' is set
795
+ if @api_client.config.client_side_validation && user_id.nil?
796
+ fail ArgumentError, "Missing the required parameter 'user_id' when calling OnCallAPI.get_user_notification_channel"
797
+ end
798
+ # verify the required parameter 'channel_id' is set
799
+ if @api_client.config.client_side_validation && channel_id.nil?
800
+ fail ArgumentError, "Missing the required parameter 'channel_id' when calling OnCallAPI.get_user_notification_channel"
801
+ end
802
+ # resource path
803
+ local_var_path = '/api/v2/on-call/users/{user_id}/notification-channels/{channel_id}'.sub('{user_id}', CGI.escape(user_id.to_s).gsub('%2F', '/')).sub('{channel_id}', CGI.escape(channel_id.to_s).gsub('%2F', '/'))
804
+
805
+ # query parameters
806
+ query_params = opts[:query_params] || {}
807
+
808
+ # header parameters
809
+ header_params = opts[:header_params] || {}
810
+ # HTTP header 'Accept' (if needed)
811
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
812
+
813
+ # form parameters
814
+ form_params = opts[:form_params] || {}
815
+
816
+ # http body (model)
817
+ post_body = opts[:debug_body]
818
+
819
+ # return_type
820
+ return_type = opts[:debug_return_type] || 'NotificationChannel'
821
+
822
+ # auth_names
823
+ auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth, :AuthZ]
824
+
825
+ new_options = opts.merge(
826
+ :operation => :get_user_notification_channel,
827
+ :header_params => header_params,
828
+ :query_params => query_params,
829
+ :form_params => form_params,
830
+ :body => post_body,
831
+ :auth_names => auth_names,
832
+ :return_type => return_type,
833
+ :api_version => "V2"
834
+ )
835
+
836
+ data, status_code, headers = @api_client.call_api(Net::HTTP::Get, local_var_path, new_options)
837
+ if @api_client.config.debugging
838
+ @api_client.config.logger.debug "API called: OnCallAPI#get_user_notification_channel\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
839
+ end
840
+ return data, status_code, headers
841
+ end
842
+
843
+ # List On-Call notification channels for a user.
844
+ #
845
+ # @see #list_user_notification_channels_with_http_info
846
+ def list_user_notification_channels(user_id, opts = {})
847
+ data, _status_code, _headers = list_user_notification_channels_with_http_info(user_id, opts)
848
+ data
849
+ end
850
+
851
+ # List On-Call notification channels for a user.
852
+ #
853
+ # List the notification channels for a user. The authenticated user must be the target user or have the `on_call_admin` permission
854
+ #
855
+ # @param user_id [String] The user ID
856
+ # @param opts [Hash] the optional parameters
857
+ # @return [Array<(ListNotificationChannelsResponse, Integer, Hash)>] ListNotificationChannelsResponse data, response status code and response headers
858
+ def list_user_notification_channels_with_http_info(user_id, opts = {})
859
+
860
+ if @api_client.config.debugging
861
+ @api_client.config.logger.debug 'Calling API: OnCallAPI.list_user_notification_channels ...'
862
+ end
863
+ # verify the required parameter 'user_id' is set
864
+ if @api_client.config.client_side_validation && user_id.nil?
865
+ fail ArgumentError, "Missing the required parameter 'user_id' when calling OnCallAPI.list_user_notification_channels"
866
+ end
867
+ # resource path
868
+ local_var_path = '/api/v2/on-call/users/{user_id}/notification-channels'.sub('{user_id}', CGI.escape(user_id.to_s).gsub('%2F', '/'))
869
+
870
+ # query parameters
871
+ query_params = opts[:query_params] || {}
872
+
873
+ # header parameters
874
+ header_params = opts[:header_params] || {}
875
+ # HTTP header 'Accept' (if needed)
876
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
877
+
878
+ # form parameters
879
+ form_params = opts[:form_params] || {}
880
+
881
+ # http body (model)
882
+ post_body = opts[:debug_body]
883
+
884
+ # return_type
885
+ return_type = opts[:debug_return_type] || 'ListNotificationChannelsResponse'
886
+
887
+ # auth_names
888
+ auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth, :AuthZ]
889
+
890
+ new_options = opts.merge(
891
+ :operation => :list_user_notification_channels,
892
+ :header_params => header_params,
893
+ :query_params => query_params,
894
+ :form_params => form_params,
895
+ :body => post_body,
896
+ :auth_names => auth_names,
897
+ :return_type => return_type,
898
+ :api_version => "V2"
899
+ )
900
+
901
+ data, status_code, headers = @api_client.call_api(Net::HTTP::Get, local_var_path, new_options)
902
+ if @api_client.config.debugging
903
+ @api_client.config.logger.debug "API called: OnCallAPI#list_user_notification_channels\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
904
+ end
905
+ return data, status_code, headers
906
+ end
907
+
631
908
  # Set On-Call team routing rules.
632
909
  #
633
910
  # @see #set_on_call_team_routing_rules_with_http_info
@@ -33,9 +33,10 @@ module DatadogAPIClient::V2
33
33
 
34
34
  # Attach security findings to a case.
35
35
  #
36
- # Attach security findings to a case. You can attach up to 50 security findings per case. Security findings that are already attached to another case will be detached from their previous case and attached to the specified case.
36
+ # Attach security findings to a case.
37
+ # You can attach up to 50 security findings per case. Security findings that are already attached to another case will be detached from their previous case and attached to the specified case.
37
38
  #
38
- # @param case_id [String] The unique identifier of the case to attach security findings to
39
+ # @param case_id [String] Unique identifier of the case to attach security findings to
39
40
  # @param body [AttachCaseRequest]
40
41
  # @param opts [Hash] the optional parameters
41
42
  # @return [Array<(FindingCaseResponse, Integer, Hash)>] FindingCaseResponse data, response status code and response headers
@@ -105,12 +106,19 @@ module DatadogAPIClient::V2
105
106
 
106
107
  # Attach security findings to a Jira issue.
107
108
  #
108
- # Attach security findings to a Jira issue by providing the Jira issue URL. You can attach up to 50 security findings per Jira issue. If the Jira issue is not linked to any case, this operation will create a case for the security findings and link the Jira issue to the newly created case. Security findings that are already attached to another Jira issue will be detached from their previous Jira issue and attached to the specified Jira issue.
109
+ # Attach security findings to a Jira issue by providing the Jira issue URL.
110
+ # You can attach up to 50 security findings per Jira issue. If the Jira issue is not linked to any case, this operation will create a case for the security findings and link the Jira issue to the newly created case. To configure the Jira integration, see [Bidirectional ticket syncing with Jira](https://docs.datadoghq.com/security/ticketing_integrations/#bidirectional-ticket-syncing-with-jira). Security findings that are already attached to another Jira issue will be detached from their previous Jira issue and attached to the specified Jira issue.
109
111
  #
110
112
  # @param body [AttachJiraIssueRequest]
111
113
  # @param opts [Hash] the optional parameters
112
114
  # @return [Array<(FindingCaseResponse, Integer, Hash)>] FindingCaseResponse data, response status code and response headers
113
115
  def attach_jira_issue_with_http_info(body, opts = {})
116
+ unstable_enabled = @api_client.config.unstable_operations["v2.attach_jira_issue".to_sym]
117
+ if unstable_enabled
118
+ @api_client.config.logger.warn format("Using unstable operation '%s'", "v2.attach_jira_issue")
119
+ else
120
+ raise DatadogAPIClient::APIError.new(message: format("Unstable operation '%s' is disabled", "v2.attach_jira_issue"))
121
+ end
114
122
 
115
123
  if @api_client.config.debugging
116
124
  @api_client.config.logger.debug 'Calling API: SecurityMonitoringAPI.attach_jira_issue ...'
@@ -460,7 +468,8 @@ module DatadogAPIClient::V2
460
468
 
461
469
  # Create cases for security findings.
462
470
  #
463
- # Create cases for security findings. You can create up to 50 cases per request and associate up to 50 security findings per case. Security findings that are already attached to another case will be detached from their previous case and attached to the newly created case.
471
+ # Create cases for security findings.
472
+ # You can create up to 50 cases per request and associate up to 50 security findings per case. Security findings that are already attached to another case will be detached from their previous case and attached to the newly created case.
464
473
  #
465
474
  # @param body [CreateCaseRequestArray]
466
475
  # @param opts [Hash] the optional parameters
@@ -594,12 +603,19 @@ module DatadogAPIClient::V2
594
603
 
595
604
  # Create Jira issues for security findings.
596
605
  #
597
- # Create Jira issues for security findings. This operation creates a case in Datadog and a Jira issue linked to that case for bidirectional sync between Datadog and Jira. You can create up to 50 Jira issues per request and associate up to 50 security findings per Jira issue. Security findings that are already attached to another Jira issue will be detached from their previous Jira issue and attached to the newly created Jira issue.
606
+ # Create Jira issues for security findings.
607
+ # This operation creates a case in Datadog and a Jira issue linked to that case for bidirectional sync between Datadog and Jira. To configure the Jira integration, see [Bidirectional ticket syncing with Jira](https://docs.datadoghq.com/security/ticketing_integrations/#bidirectional-ticket-syncing-with-jira). You can create up to 50 Jira issues per request and associate up to 50 security findings per Jira issue. Security findings that are already attached to another Jira issue will be detached from their previous Jira issue and attached to the newly created Jira issue.
598
608
  #
599
609
  # @param body [CreateJiraIssueRequestArray]
600
610
  # @param opts [Hash] the optional parameters
601
611
  # @return [Array<(FindingCaseResponseArray, Integer, Hash)>] FindingCaseResponseArray data, response status code and response headers
602
612
  def create_jira_issues_with_http_info(body, opts = {})
613
+ unstable_enabled = @api_client.config.unstable_operations["v2.create_jira_issues".to_sym]
614
+ if unstable_enabled
615
+ @api_client.config.logger.warn format("Using unstable operation '%s'", "v2.create_jira_issues")
616
+ else
617
+ raise DatadogAPIClient::APIError.new(message: format("Unstable operation '%s' is disabled", "v2.create_jira_issues"))
618
+ end
603
619
 
604
620
  if @api_client.config.debugging
605
621
  @api_client.config.logger.debug 'Calling API: SecurityMonitoringAPI.create_jira_issues ...'
@@ -1465,7 +1481,8 @@ module DatadogAPIClient::V2
1465
1481
 
1466
1482
  # Detach security findings from their case.
1467
1483
  #
1468
- # Detach security findings from their case. This operation dissociates security findings from their associated cases without deleting the cases themselves. You can detach security findings from multiple different cases in a single request, with a limit of 50 security findings per request. Security findings that are not currently attached to any case will be ignored.
1484
+ # Detach security findings from their case.
1485
+ # This operation dissociates security findings from their associated cases without deleting the cases themselves. You can detach security findings from multiple different cases in a single request, with a limit of 50 security findings per request. Security findings that are not currently attached to any case will be ignored.
1469
1486
  #
1470
1487
  # @param body [DetachCaseRequest]
1471
1488
  # @param opts [Hash] the optional parameters
@@ -2115,7 +2132,7 @@ module DatadogAPIClient::V2
2115
2132
  return data, status_code, headers
2116
2133
  end
2117
2134
 
2118
- # Returns list of Secrets rules.
2135
+ # Returns a list of Secrets rules.
2119
2136
  #
2120
2137
  # @see #get_secrets_rules_with_http_info
2121
2138
  def get_secrets_rules(opts = {})
@@ -2123,9 +2140,9 @@ module DatadogAPIClient::V2
2123
2140
  data
2124
2141
  end
2125
2142
 
2126
- # Returns list of Secrets rules.
2143
+ # Returns a list of Secrets rules.
2127
2144
  #
2128
- # Returns list of Secrets rules with ID, Pattern, Description, Priority, and SDS ID
2145
+ # Returns a list of Secrets rules with ID, Pattern, Description, Priority, and SDS ID.
2129
2146
  #
2130
2147
  # @param opts [Hash] the optional parameters
2131
2148
  # @return [Array<(SecretRuleArray, Integer, Hash)>] SecretRuleArray data, response status code and response headers
@@ -2862,6 +2879,75 @@ module DatadogAPIClient::V2
2862
2879
  return data, status_code, headers
2863
2880
  end
2864
2881
 
2882
+ # Get a suppression's version history.
2883
+ #
2884
+ # @see #get_suppression_version_history_with_http_info
2885
+ def get_suppression_version_history(suppression_id, opts = {})
2886
+ data, _status_code, _headers = get_suppression_version_history_with_http_info(suppression_id, opts)
2887
+ data
2888
+ end
2889
+
2890
+ # Get a suppression's version history.
2891
+ #
2892
+ # Get a suppression's version history.
2893
+ #
2894
+ # @param suppression_id [String] The ID of the suppression rule
2895
+ # @param opts [Hash] the optional parameters
2896
+ # @option opts [Integer] :page_size Size for a given page. The maximum allowed value is 100.
2897
+ # @option opts [Integer] :page_number Specific page number to return.
2898
+ # @return [Array<(GetSuppressionVersionHistoryResponse, Integer, Hash)>] GetSuppressionVersionHistoryResponse data, response status code and response headers
2899
+ def get_suppression_version_history_with_http_info(suppression_id, opts = {})
2900
+
2901
+ if @api_client.config.debugging
2902
+ @api_client.config.logger.debug 'Calling API: SecurityMonitoringAPI.get_suppression_version_history ...'
2903
+ end
2904
+ # verify the required parameter 'suppression_id' is set
2905
+ if @api_client.config.client_side_validation && suppression_id.nil?
2906
+ fail ArgumentError, "Missing the required parameter 'suppression_id' when calling SecurityMonitoringAPI.get_suppression_version_history"
2907
+ end
2908
+ # resource path
2909
+ local_var_path = '/api/v2/security_monitoring/configuration/suppressions/{suppression_id}/version_history'.sub('{suppression_id}', CGI.escape(suppression_id.to_s).gsub('%2F', '/'))
2910
+
2911
+ # query parameters
2912
+ query_params = opts[:query_params] || {}
2913
+ query_params[:'page[size]'] = opts[:'page_size'] if !opts[:'page_size'].nil?
2914
+ query_params[:'page[number]'] = opts[:'page_number'] if !opts[:'page_number'].nil?
2915
+
2916
+ # header parameters
2917
+ header_params = opts[:header_params] || {}
2918
+ # HTTP header 'Accept' (if needed)
2919
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
2920
+
2921
+ # form parameters
2922
+ form_params = opts[:form_params] || {}
2923
+
2924
+ # http body (model)
2925
+ post_body = opts[:debug_body]
2926
+
2927
+ # return_type
2928
+ return_type = opts[:debug_return_type] || 'GetSuppressionVersionHistoryResponse'
2929
+
2930
+ # auth_names
2931
+ auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth, :AuthZ]
2932
+
2933
+ new_options = opts.merge(
2934
+ :operation => :get_suppression_version_history,
2935
+ :header_params => header_params,
2936
+ :query_params => query_params,
2937
+ :form_params => form_params,
2938
+ :body => post_body,
2939
+ :auth_names => auth_names,
2940
+ :return_type => return_type,
2941
+ :api_version => "V2"
2942
+ )
2943
+
2944
+ data, status_code, headers = @api_client.call_api(Net::HTTP::Get, local_var_path, new_options)
2945
+ if @api_client.config.debugging
2946
+ @api_client.config.logger.debug "API called: SecurityMonitoringAPI#get_suppression_version_history\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
2947
+ end
2948
+ return data, status_code, headers
2949
+ end
2950
+
2865
2951
  # Get a job's details.
2866
2952
  #
2867
2953
  # @see #get_threat_hunting_job_with_http_info
@@ -4117,6 +4203,7 @@ module DatadogAPIClient::V2
4117
4203
  # @option opts [Boolean] :filter_fix_available Filter by fix availability.
4118
4204
  # @option opts [String] :filter_repo_digests Filter by vulnerability `repo_digest` (when the vulnerability is related to `Image` asset).
4119
4205
  # @option opts [String] :filter_origin Filter by origin.
4206
+ # @option opts [Boolean] :filter_running_kernel Filter for whether the vulnerability affects a running kernel (for vulnerabilities related to a `Host` asset).
4120
4207
  # @option opts [String] :filter_asset_name Filter by asset name. This field supports the usage of wildcards (*).
4121
4208
  # @option opts [AssetType] :filter_asset_type Filter by asset type.
4122
4209
  # @option opts [String] :filter_asset_version_first Filter by the first version of the asset this vulnerability has been detected on.
@@ -4175,7 +4262,7 @@ module DatadogAPIClient::V2
4175
4262
  if @api_client.config.client_side_validation && opts[:'filter_status'] && !allowable_values.include?(opts[:'filter_status'])
4176
4263
  fail ArgumentError, "invalid value for \"filter_status\", must be one of #{allowable_values}"
4177
4264
  end
4178
- allowable_values = ['IAST', 'SCA', 'Infra']
4265
+ allowable_values = ['IAST', 'SCA', 'Infra', 'SAST']
4179
4266
  if @api_client.config.client_side_validation && opts[:'filter_tool'] && !allowable_values.include?(opts[:'filter_tool'])
4180
4267
  fail ArgumentError, "invalid value for \"filter_tool\", must be one of #{allowable_values}"
4181
4268
  end
@@ -4189,7 +4276,7 @@ module DatadogAPIClient::V2
4189
4276
  if @api_client.config.client_side_validation && opts[:'filter_risks_epss_severity'] && !allowable_values.include?(opts[:'filter_risks_epss_severity'])
4190
4277
  fail ArgumentError, "invalid value for \"filter_risks_epss_severity\", must be one of #{allowable_values}"
4191
4278
  end
4192
- allowable_values = ['PyPI', 'Maven', 'NuGet', 'Npm', 'RubyGems', 'Go', 'Packagist', 'Ddeb', 'Rpm', 'Apk', 'Windows']
4279
+ allowable_values = ['PyPI', 'Maven', 'NuGet', 'Npm', 'RubyGems', 'Go', 'Packagist', 'Deb', 'Rpm', 'Apk', 'Windows', 'Generic', 'MacOs', 'Oci', 'BottleRocket', 'None']
4193
4280
  if @api_client.config.client_side_validation && opts[:'filter_ecosystem'] && !allowable_values.include?(opts[:'filter_ecosystem'])
4194
4281
  fail ArgumentError, "invalid value for \"filter_ecosystem\", must be one of #{allowable_values}"
4195
4282
  end
@@ -4229,6 +4316,7 @@ module DatadogAPIClient::V2
4229
4316
  query_params[:'filter[fix_available]'] = opts[:'filter_fix_available'] if !opts[:'filter_fix_available'].nil?
4230
4317
  query_params[:'filter[repo_digests]'] = opts[:'filter_repo_digests'] if !opts[:'filter_repo_digests'].nil?
4231
4318
  query_params[:'filter[origin]'] = opts[:'filter_origin'] if !opts[:'filter_origin'].nil?
4319
+ query_params[:'filter[running_kernel]'] = opts[:'filter_running_kernel'] if !opts[:'filter_running_kernel'].nil?
4232
4320
  query_params[:'filter[asset.name]'] = opts[:'filter_asset_name'] if !opts[:'filter_asset_name'].nil?
4233
4321
  query_params[:'filter[asset.type]'] = opts[:'filter_asset_type'] if !opts[:'filter_asset_type'].nil?
4234
4322
  query_params[:'filter[asset.version.first]'] = opts[:'filter_asset_version_first'] if !opts[:'filter_asset_version_first'].nil?
@@ -399,6 +399,8 @@ module DatadogAPIClient::V2
399
399
  #
400
400
  # Add a user to a team.
401
401
  #
402
+ # **Note**: Each team has a setting that determines who is allowed to modify membership of the team. The `user_access_manage` permission generally grants access to modify membership of any team. To get the full picture, see [Team Membership documentation](https://docs.datadoghq.com/account_management/teams/manage/#team-membership).
403
+ #
402
404
  # @param team_id [String] None
403
405
  # @param body [UserTeamRequest]
404
406
  # @param opts [Hash] the optional parameters
@@ -679,6 +681,8 @@ module DatadogAPIClient::V2
679
681
  #
680
682
  # Remove a user from a team.
681
683
  #
684
+ # **Note**: Each team has a setting that determines who is allowed to modify membership of the team. The `user_access_manage` permission generally grants access to modify membership of any team. To get the full picture, see [Team Membership documentation](https://docs.datadoghq.com/account_management/teams/manage/#team-membership).
685
+ #
682
686
  # @param team_id [String] None
683
687
  # @param user_id [String] None
684
688
  # @param opts [Hash] the optional parameters
@@ -2097,6 +2101,8 @@ module DatadogAPIClient::V2
2097
2101
  #
2098
2102
  # Update a user's membership attributes on a team.
2099
2103
  #
2104
+ # **Note**: Each team has a setting that determines who is allowed to modify membership of the team. The `user_access_manage` permission generally grants access to modify membership of any team. To get the full picture, see [Team Membership documentation](https://docs.datadoghq.com/account_management/teams/manage/#team-membership).
2105
+ #
2100
2106
  # @param team_id [String] None
2101
2107
  # @param user_id [String] None
2102
2108
  # @param body [UserTeamUpdateRequest]
@@ -21,7 +21,7 @@ module DatadogAPIClient::V2
21
21
  class AttachCaseRequestData
22
22
  include BaseGenericModel
23
23
 
24
- # The unique identifier of the case.
24
+ # Unique identifier of the case.
25
25
  attr_reader :id
26
26
 
27
27
  # Relationships of the case to attach security findings to.