datadog_api_client 2.23.0 → 2.24.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 (94) hide show
  1. checksums.yaml +4 -4
  2. data/.apigentools-info +4 -4
  3. data/.generator/schemas/v1/openapi.yaml +666 -156
  4. data/.generator/schemas/v2/openapi.yaml +774 -89
  5. data/.generator/src/generator/replacement.json +1 -1
  6. data/.github/CODEOWNERS +5 -5
  7. data/CHANGELOG.md +26 -0
  8. data/examples/v1/dashboards/CreateDashboard_1213075383.rb +10 -4
  9. data/examples/v1/dashboards/CreateDashboard_2336428357.rb +10 -4
  10. data/examples/v1/dashboards/CreateDashboard_2563642929.rb +66 -0
  11. data/examples/v1/dashboards/CreateDashboard_3669695268.rb +10 -4
  12. data/examples/v1/dashboards/CreateDashboard_915214113.rb +10 -4
  13. data/examples/v1/monitors/UpdateMonitor.rb +1 -0
  14. data/examples/v1/synthetics/CreateSyntheticsAPITest_1241981394.rb +1 -0
  15. data/examples/v1/synthetics/CreateSyntheticsAPITest_1279271422.rb +9 -4
  16. data/examples/v1/synthetics/CreateSyntheticsAPITest_1487281163.rb +15 -0
  17. data/examples/v1/synthetics/CreateSyntheticsAPITest_1987645492.rb +134 -0
  18. data/examples/v2/api-management/ListAPIs.rb +8 -0
  19. data/examples/v2/csm-threats/CreateCSMThreatsAgentRule.rb +3 -0
  20. data/examples/v2/csm-threats/UpdateCloudWorkloadSecurityAgentRule.rb +1 -0
  21. data/examples/v2/organizations/GetOrgConfig.rb +5 -0
  22. data/examples/v2/organizations/ListOrgConfigs.rb +5 -0
  23. data/examples/v2/organizations/UpdateOrgConfig.rb +14 -0
  24. data/examples/v2/security-monitoring/TestExistingSecurityMonitoringRule.rb +21 -0
  25. data/examples/v2/security-monitoring/TestSecurityMonitoringRule.rb +58 -0
  26. data/examples/v2/security-monitoring/ValidateSecurityMonitoringRule.rb +1 -1
  27. data/lib/datadog_api_client/configuration.rb +1 -0
  28. data/lib/datadog_api_client/inflector.rb +37 -1
  29. data/lib/datadog_api_client/v1/api/monitors_api.rb +1 -1
  30. data/lib/datadog_api_client/v1/models/event.rb +1 -1
  31. data/lib/datadog_api_client/v1/models/formula_type.rb +26 -0
  32. data/lib/datadog_api_client/v1/models/geomap_widget_request.rb +14 -4
  33. data/lib/datadog_api_client/v1/models/group_type.rb +26 -0
  34. data/lib/datadog_api_client/v1/models/monitor.rb +1 -16
  35. data/lib/datadog_api_client/v1/models/monitor_update_request.rb +2 -23
  36. data/lib/datadog_api_client/v1/models/monthly_usage_attribution_values.rb +2 -2
  37. data/lib/datadog_api_client/v1/models/synthetics_api_step.rb +37 -180
  38. data/lib/datadog_api_client/v1/models/synthetics_api_test_step.rb +206 -0
  39. data/lib/datadog_api_client/v1/models/{synthetics_api_step_subtype.rb → synthetics_api_test_step_subtype.rb} +2 -2
  40. data/lib/datadog_api_client/v1/models/synthetics_api_wait_step.rb +148 -0
  41. data/lib/datadog_api_client/v1/models/synthetics_api_wait_step_subtype.rb +26 -0
  42. data/lib/datadog_api_client/v1/models/synthetics_assertion.rb +1 -0
  43. data/lib/datadog_api_client/v1/models/synthetics_assertion_body_hash_operator.rb +28 -0
  44. data/lib/datadog_api_client/v1/models/synthetics_assertion_body_hash_target.rb +140 -0
  45. data/lib/datadog_api_client/v1/models/synthetics_assertion_body_hash_type.rb +26 -0
  46. data/lib/datadog_api_client/v1/models/synthetics_assertion_json_path_target_target.rb +11 -1
  47. data/lib/datadog_api_client/v1/models/synthetics_test_options_monitor_options.rb +0 -4
  48. data/lib/datadog_api_client/v1/models/synthetics_test_request_body_file.rb +22 -1
  49. data/lib/datadog_api_client/v1/models/table_widget_request.rb +14 -4
  50. data/lib/datadog_api_client/v1/models/toplist_widget_request.rb +11 -1
  51. data/lib/datadog_api_client/v1/models/usage_rum_sessions_hour.rb +7 -7
  52. data/lib/datadog_api_client/v1/models/usage_rum_sessions_response.rb +2 -2
  53. data/lib/datadog_api_client/v1/models/usage_summary_date.rb +168 -18
  54. data/lib/datadog_api_client/v1/models/usage_summary_date_org.rb +169 -19
  55. data/lib/datadog_api_client/v1/models/usage_summary_response.rb +171 -21
  56. data/lib/datadog_api_client/v1/models/widget_formula_sort.rb +144 -0
  57. data/lib/datadog_api_client/v1/models/widget_group_sort.rb +140 -0
  58. data/lib/datadog_api_client/v1/models/widget_sort_by.rb +110 -0
  59. data/lib/datadog_api_client/v1/models/widget_sort_order_by.rb +63 -0
  60. data/lib/datadog_api_client/v2/api/api_management_api.rb +80 -2
  61. data/lib/datadog_api_client/v2/api/organizations_api.rb +197 -0
  62. data/lib/datadog_api_client/v2/api/security_monitoring_api.rb +140 -1
  63. data/lib/datadog_api_client/v2/models/cloud_configuration_rule_payload.rb +240 -0
  64. data/lib/datadog_api_client/v2/models/cloud_workload_security_agent_rule_create_attributes.rb +13 -1
  65. data/lib/datadog_api_client/v2/models/dora_incident_request_attributes.rb +1 -1
  66. data/lib/datadog_api_client/v2/models/events_group_by.rb +5 -4
  67. data/lib/datadog_api_client/v2/models/list_apis_response.rb +92 -0
  68. data/lib/datadog_api_client/v2/models/list_apis_response_data.rb +90 -0
  69. data/lib/datadog_api_client/v2/models/list_apis_response_data_attributes.rb +80 -0
  70. data/lib/datadog_api_client/v2/models/list_apis_response_meta.rb +80 -0
  71. data/lib/datadog_api_client/v2/models/list_apis_response_meta_pagination.rb +100 -0
  72. data/lib/datadog_api_client/v2/models/org_config_get_response.rb +98 -0
  73. data/lib/datadog_api_client/v2/models/org_config_list_response.rb +100 -0
  74. data/lib/datadog_api_client/v2/models/org_config_read.rb +140 -0
  75. data/lib/datadog_api_client/v2/models/org_config_read_attributes.rb +179 -0
  76. data/lib/datadog_api_client/v2/models/org_config_type.rb +26 -0
  77. data/lib/datadog_api_client/v2/models/org_config_write.rb +119 -0
  78. data/lib/datadog_api_client/v2/models/org_config_write_attributes.rb +98 -0
  79. data/lib/datadog_api_client/v2/models/org_config_write_request.rb +98 -0
  80. data/lib/datadog_api_client/v2/models/security_monitoring_rule_query_payload.rb +118 -0
  81. data/lib/datadog_api_client/v2/models/security_monitoring_rule_query_payload_data.rb +120 -0
  82. data/lib/datadog_api_client/v2/models/security_monitoring_rule_test_payload.rb +62 -0
  83. data/lib/datadog_api_client/v2/models/security_monitoring_rule_test_request.rb +92 -0
  84. data/lib/datadog_api_client/v2/models/security_monitoring_rule_test_response.rb +84 -0
  85. data/lib/datadog_api_client/v2/models/security_monitoring_rule_type_test.rb +26 -0
  86. data/lib/datadog_api_client/v2/models/security_monitoring_rule_update_payload.rb +1 -1
  87. data/lib/datadog_api_client/v2/models/security_monitoring_rule_validate_payload.rb +64 -0
  88. data/lib/datadog_api_client/v2/models/security_monitoring_signal_rule_payload.rb +251 -0
  89. data/lib/datadog_api_client/v2/models/security_monitoring_standard_rule_create_payload.rb +1 -1
  90. data/lib/datadog_api_client/v2/models/security_monitoring_standard_rule_payload.rb +263 -0
  91. data/lib/datadog_api_client/v2/models/security_monitoring_standard_rule_response.rb +1 -1
  92. data/lib/datadog_api_client/v2/models/security_monitoring_standard_rule_test_payload.rb +263 -0
  93. data/lib/datadog_api_client/version.rb +1 -1
  94. metadata +47 -3
@@ -23,6 +23,203 @@ module DatadogAPIClient::V2
23
23
  @api_client = api_client
24
24
  end
25
25
 
26
+ # Get a specific Org Config value.
27
+ #
28
+ # @see #get_org_config_with_http_info
29
+ def get_org_config(org_config_name, opts = {})
30
+ data, _status_code, _headers = get_org_config_with_http_info(org_config_name, opts)
31
+ data
32
+ end
33
+
34
+ # Get a specific Org Config value.
35
+ #
36
+ # Return the name, description, and value of a specific Org Config.
37
+ #
38
+ # @param org_config_name [String] The name of an Org Config.
39
+ # @param opts [Hash] the optional parameters
40
+ # @return [Array<(OrgConfigGetResponse, Integer, Hash)>] OrgConfigGetResponse data, response status code and response headers
41
+ def get_org_config_with_http_info(org_config_name, opts = {})
42
+
43
+ if @api_client.config.debugging
44
+ @api_client.config.logger.debug 'Calling API: OrganizationsAPI.get_org_config ...'
45
+ end
46
+ # verify the required parameter 'org_config_name' is set
47
+ if @api_client.config.client_side_validation && org_config_name.nil?
48
+ fail ArgumentError, "Missing the required parameter 'org_config_name' when calling OrganizationsAPI.get_org_config"
49
+ end
50
+ # resource path
51
+ local_var_path = '/api/v2/org_configs/{org_config_name}'.sub('{org_config_name}', CGI.escape(org_config_name.to_s).gsub('%2F', '/'))
52
+
53
+ # query parameters
54
+ query_params = opts[:query_params] || {}
55
+
56
+ # header parameters
57
+ header_params = opts[:header_params] || {}
58
+ # HTTP header 'Accept' (if needed)
59
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
60
+
61
+ # form parameters
62
+ form_params = opts[:form_params] || {}
63
+
64
+ # http body (model)
65
+ post_body = opts[:debug_body]
66
+
67
+ # return_type
68
+ return_type = opts[:debug_return_type] || 'OrgConfigGetResponse'
69
+
70
+ # auth_names
71
+ auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth]
72
+
73
+ new_options = opts.merge(
74
+ :operation => :get_org_config,
75
+ :header_params => header_params,
76
+ :query_params => query_params,
77
+ :form_params => form_params,
78
+ :body => post_body,
79
+ :auth_names => auth_names,
80
+ :return_type => return_type,
81
+ :api_version => "V2"
82
+ )
83
+
84
+ data, status_code, headers = @api_client.call_api(Net::HTTP::Get, local_var_path, new_options)
85
+ if @api_client.config.debugging
86
+ @api_client.config.logger.debug "API called: OrganizationsAPI#get_org_config\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
87
+ end
88
+ return data, status_code, headers
89
+ end
90
+
91
+ # List Org Configs.
92
+ #
93
+ # @see #list_org_configs_with_http_info
94
+ def list_org_configs(opts = {})
95
+ data, _status_code, _headers = list_org_configs_with_http_info(opts)
96
+ data
97
+ end
98
+
99
+ # List Org Configs.
100
+ #
101
+ # Returns all Org Configs (name, description, and value).
102
+ #
103
+ # @param opts [Hash] the optional parameters
104
+ # @return [Array<(OrgConfigListResponse, Integer, Hash)>] OrgConfigListResponse data, response status code and response headers
105
+ def list_org_configs_with_http_info(opts = {})
106
+
107
+ if @api_client.config.debugging
108
+ @api_client.config.logger.debug 'Calling API: OrganizationsAPI.list_org_configs ...'
109
+ end
110
+ # resource path
111
+ local_var_path = '/api/v2/org_configs'
112
+
113
+ # query parameters
114
+ query_params = opts[:query_params] || {}
115
+
116
+ # header parameters
117
+ header_params = opts[:header_params] || {}
118
+ # HTTP header 'Accept' (if needed)
119
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
120
+
121
+ # form parameters
122
+ form_params = opts[:form_params] || {}
123
+
124
+ # http body (model)
125
+ post_body = opts[:debug_body]
126
+
127
+ # return_type
128
+ return_type = opts[:debug_return_type] || 'OrgConfigListResponse'
129
+
130
+ # auth_names
131
+ auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth]
132
+
133
+ new_options = opts.merge(
134
+ :operation => :list_org_configs,
135
+ :header_params => header_params,
136
+ :query_params => query_params,
137
+ :form_params => form_params,
138
+ :body => post_body,
139
+ :auth_names => auth_names,
140
+ :return_type => return_type,
141
+ :api_version => "V2"
142
+ )
143
+
144
+ data, status_code, headers = @api_client.call_api(Net::HTTP::Get, local_var_path, new_options)
145
+ if @api_client.config.debugging
146
+ @api_client.config.logger.debug "API called: OrganizationsAPI#list_org_configs\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
147
+ end
148
+ return data, status_code, headers
149
+ end
150
+
151
+ # Update a specific Org Config.
152
+ #
153
+ # @see #update_org_config_with_http_info
154
+ def update_org_config(org_config_name, body, opts = {})
155
+ data, _status_code, _headers = update_org_config_with_http_info(org_config_name, body, opts)
156
+ data
157
+ end
158
+
159
+ # Update a specific Org Config.
160
+ #
161
+ # Update the value of a specific Org Config.
162
+ #
163
+ # @param org_config_name [String] The name of an Org Config.
164
+ # @param body [OrgConfigWriteRequest]
165
+ # @param opts [Hash] the optional parameters
166
+ # @return [Array<(OrgConfigGetResponse, Integer, Hash)>] OrgConfigGetResponse data, response status code and response headers
167
+ def update_org_config_with_http_info(org_config_name, body, opts = {})
168
+
169
+ if @api_client.config.debugging
170
+ @api_client.config.logger.debug 'Calling API: OrganizationsAPI.update_org_config ...'
171
+ end
172
+ # verify the required parameter 'org_config_name' is set
173
+ if @api_client.config.client_side_validation && org_config_name.nil?
174
+ fail ArgumentError, "Missing the required parameter 'org_config_name' when calling OrganizationsAPI.update_org_config"
175
+ end
176
+ # verify the required parameter 'body' is set
177
+ if @api_client.config.client_side_validation && body.nil?
178
+ fail ArgumentError, "Missing the required parameter 'body' when calling OrganizationsAPI.update_org_config"
179
+ end
180
+ # resource path
181
+ local_var_path = '/api/v2/org_configs/{org_config_name}'.sub('{org_config_name}', CGI.escape(org_config_name.to_s).gsub('%2F', '/'))
182
+
183
+ # query parameters
184
+ query_params = opts[:query_params] || {}
185
+
186
+ # header parameters
187
+ header_params = opts[:header_params] || {}
188
+ # HTTP header 'Accept' (if needed)
189
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
190
+ # HTTP header 'Content-Type'
191
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
192
+
193
+ # form parameters
194
+ form_params = opts[:form_params] || {}
195
+
196
+ # http body (model)
197
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(body)
198
+
199
+ # return_type
200
+ return_type = opts[:debug_return_type] || 'OrgConfigGetResponse'
201
+
202
+ # auth_names
203
+ auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth, :AuthZ]
204
+
205
+ new_options = opts.merge(
206
+ :operation => :update_org_config,
207
+ :header_params => header_params,
208
+ :query_params => query_params,
209
+ :form_params => form_params,
210
+ :body => post_body,
211
+ :auth_names => auth_names,
212
+ :return_type => return_type,
213
+ :api_version => "V2"
214
+ )
215
+
216
+ data, status_code, headers = @api_client.call_api(Net::HTTP::Patch, local_var_path, new_options)
217
+ if @api_client.config.debugging
218
+ @api_client.config.logger.debug "API called: OrganizationsAPI#update_org_config\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
219
+ end
220
+ return data, status_code, headers
221
+ end
222
+
26
223
  # Upload IdP metadata.
27
224
  #
28
225
  # @see #upload_idp_metadata_with_http_info
@@ -1580,6 +1580,145 @@ module DatadogAPIClient::V2
1580
1580
  end
1581
1581
  end
1582
1582
 
1583
+ # Test an existing rule.
1584
+ #
1585
+ # @see #test_existing_security_monitoring_rule_with_http_info
1586
+ def test_existing_security_monitoring_rule(rule_id, body, opts = {})
1587
+ data, _status_code, _headers = test_existing_security_monitoring_rule_with_http_info(rule_id, body, opts)
1588
+ data
1589
+ end
1590
+
1591
+ # Test an existing rule.
1592
+ #
1593
+ # Test an existing rule.
1594
+ #
1595
+ # @param rule_id [String] The ID of the rule.
1596
+ # @param body [SecurityMonitoringRuleTestRequest]
1597
+ # @param opts [Hash] the optional parameters
1598
+ # @return [Array<(SecurityMonitoringRuleTestResponse, Integer, Hash)>] SecurityMonitoringRuleTestResponse data, response status code and response headers
1599
+ def test_existing_security_monitoring_rule_with_http_info(rule_id, body, opts = {})
1600
+
1601
+ if @api_client.config.debugging
1602
+ @api_client.config.logger.debug 'Calling API: SecurityMonitoringAPI.test_existing_security_monitoring_rule ...'
1603
+ end
1604
+ # verify the required parameter 'rule_id' is set
1605
+ if @api_client.config.client_side_validation && rule_id.nil?
1606
+ fail ArgumentError, "Missing the required parameter 'rule_id' when calling SecurityMonitoringAPI.test_existing_security_monitoring_rule"
1607
+ end
1608
+ # verify the required parameter 'body' is set
1609
+ if @api_client.config.client_side_validation && body.nil?
1610
+ fail ArgumentError, "Missing the required parameter 'body' when calling SecurityMonitoringAPI.test_existing_security_monitoring_rule"
1611
+ end
1612
+ # resource path
1613
+ local_var_path = '/api/v2/security_monitoring/rules/{rule_id}/test'.sub('{rule_id}', CGI.escape(rule_id.to_s).gsub('%2F', '/'))
1614
+
1615
+ # query parameters
1616
+ query_params = opts[:query_params] || {}
1617
+
1618
+ # header parameters
1619
+ header_params = opts[:header_params] || {}
1620
+ # HTTP header 'Accept' (if needed)
1621
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
1622
+ # HTTP header 'Content-Type'
1623
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
1624
+
1625
+ # form parameters
1626
+ form_params = opts[:form_params] || {}
1627
+
1628
+ # http body (model)
1629
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(body)
1630
+
1631
+ # return_type
1632
+ return_type = opts[:debug_return_type] || 'SecurityMonitoringRuleTestResponse'
1633
+
1634
+ # auth_names
1635
+ auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth, :AuthZ]
1636
+
1637
+ new_options = opts.merge(
1638
+ :operation => :test_existing_security_monitoring_rule,
1639
+ :header_params => header_params,
1640
+ :query_params => query_params,
1641
+ :form_params => form_params,
1642
+ :body => post_body,
1643
+ :auth_names => auth_names,
1644
+ :return_type => return_type,
1645
+ :api_version => "V2"
1646
+ )
1647
+
1648
+ data, status_code, headers = @api_client.call_api(Net::HTTP::Post, local_var_path, new_options)
1649
+ if @api_client.config.debugging
1650
+ @api_client.config.logger.debug "API called: SecurityMonitoringAPI#test_existing_security_monitoring_rule\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1651
+ end
1652
+ return data, status_code, headers
1653
+ end
1654
+
1655
+ # Test a rule.
1656
+ #
1657
+ # @see #test_security_monitoring_rule_with_http_info
1658
+ def test_security_monitoring_rule(body, opts = {})
1659
+ data, _status_code, _headers = test_security_monitoring_rule_with_http_info(body, opts)
1660
+ data
1661
+ end
1662
+
1663
+ # Test a rule.
1664
+ #
1665
+ # Test a rule.
1666
+ #
1667
+ # @param body [SecurityMonitoringRuleTestRequest]
1668
+ # @param opts [Hash] the optional parameters
1669
+ # @return [Array<(SecurityMonitoringRuleTestResponse, Integer, Hash)>] SecurityMonitoringRuleTestResponse data, response status code and response headers
1670
+ def test_security_monitoring_rule_with_http_info(body, opts = {})
1671
+
1672
+ if @api_client.config.debugging
1673
+ @api_client.config.logger.debug 'Calling API: SecurityMonitoringAPI.test_security_monitoring_rule ...'
1674
+ end
1675
+ # verify the required parameter 'body' is set
1676
+ if @api_client.config.client_side_validation && body.nil?
1677
+ fail ArgumentError, "Missing the required parameter 'body' when calling SecurityMonitoringAPI.test_security_monitoring_rule"
1678
+ end
1679
+ # resource path
1680
+ local_var_path = '/api/v2/security_monitoring/rules/test'
1681
+
1682
+ # query parameters
1683
+ query_params = opts[:query_params] || {}
1684
+
1685
+ # header parameters
1686
+ header_params = opts[:header_params] || {}
1687
+ # HTTP header 'Accept' (if needed)
1688
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
1689
+ # HTTP header 'Content-Type'
1690
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
1691
+
1692
+ # form parameters
1693
+ form_params = opts[:form_params] || {}
1694
+
1695
+ # http body (model)
1696
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(body)
1697
+
1698
+ # return_type
1699
+ return_type = opts[:debug_return_type] || 'SecurityMonitoringRuleTestResponse'
1700
+
1701
+ # auth_names
1702
+ auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth, :AuthZ]
1703
+
1704
+ new_options = opts.merge(
1705
+ :operation => :test_security_monitoring_rule,
1706
+ :header_params => header_params,
1707
+ :query_params => query_params,
1708
+ :form_params => form_params,
1709
+ :body => post_body,
1710
+ :auth_names => auth_names,
1711
+ :return_type => return_type,
1712
+ :api_version => "V2"
1713
+ )
1714
+
1715
+ data, status_code, headers = @api_client.call_api(Net::HTTP::Post, local_var_path, new_options)
1716
+ if @api_client.config.debugging
1717
+ @api_client.config.logger.debug "API called: SecurityMonitoringAPI#test_security_monitoring_rule\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1718
+ end
1719
+ return data, status_code, headers
1720
+ end
1721
+
1583
1722
  # Update a security filter.
1584
1723
  #
1585
1724
  # @see #update_security_filter_with_http_info
@@ -1812,7 +1951,7 @@ module DatadogAPIClient::V2
1812
1951
  #
1813
1952
  # Validate a detection rule.
1814
1953
  #
1815
- # @param body [SecurityMonitoringRuleCreatePayload]
1954
+ # @param body [SecurityMonitoringRuleValidatePayload]
1816
1955
  # @param opts [Hash] the optional parameters
1817
1956
  # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
1818
1957
  def validate_security_monitoring_rule_with_http_info(body, opts = {})
@@ -0,0 +1,240 @@
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
+ # The payload of a cloud configuration rule.
21
+ class CloudConfigurationRulePayload
22
+ include BaseGenericModel
23
+
24
+ # Description of generated findings and signals (severity and channels to be notified in case of a signal). Must contain exactly one item.
25
+ #
26
+ attr_reader :cases
27
+
28
+ # How to generate compliance signals. Useful for cloud_configuration rules only.
29
+ attr_reader :compliance_signal_options
30
+
31
+ # Additional queries to filter matched events before they are processed.
32
+ attr_accessor :filters
33
+
34
+ # Whether the rule is enabled.
35
+ attr_reader :is_enabled
36
+
37
+ # Message in markdown format for generated findings and signals.
38
+ attr_reader :message
39
+
40
+ # The name of the rule.
41
+ attr_reader :name
42
+
43
+ # Options on cloud configuration rules.
44
+ attr_reader :options
45
+
46
+ # Tags for generated findings and signals.
47
+ attr_accessor :tags
48
+
49
+ # The rule type.
50
+ attr_accessor :type
51
+
52
+ # Attribute mapping from ruby-style variable name to JSON key.
53
+ # @!visibility private
54
+ def self.attribute_map
55
+ {
56
+ :'cases' => :'cases',
57
+ :'compliance_signal_options' => :'complianceSignalOptions',
58
+ :'filters' => :'filters',
59
+ :'is_enabled' => :'isEnabled',
60
+ :'message' => :'message',
61
+ :'name' => :'name',
62
+ :'options' => :'options',
63
+ :'tags' => :'tags',
64
+ :'type' => :'type'
65
+ }
66
+ end
67
+
68
+ # Attribute type mapping.
69
+ # @!visibility private
70
+ def self.openapi_types
71
+ {
72
+ :'cases' => :'Array<CloudConfigurationRuleCaseCreate>',
73
+ :'compliance_signal_options' => :'CloudConfigurationRuleComplianceSignalOptions',
74
+ :'filters' => :'Array<SecurityMonitoringFilter>',
75
+ :'is_enabled' => :'Boolean',
76
+ :'message' => :'String',
77
+ :'name' => :'String',
78
+ :'options' => :'CloudConfigurationRuleOptions',
79
+ :'tags' => :'Array<String>',
80
+ :'type' => :'CloudConfigurationRuleType'
81
+ }
82
+ end
83
+
84
+ # Initializes the object
85
+ # @param attributes [Hash] Model attributes in the form of hash
86
+ # @!visibility private
87
+ def initialize(attributes = {})
88
+ if (!attributes.is_a?(Hash))
89
+ fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::CloudConfigurationRulePayload` initialize method"
90
+ end
91
+
92
+ # check to see if the attribute exists and convert string to symbol for hash key
93
+ attributes = attributes.each_with_object({}) { |(k, v), h|
94
+ if (!self.class.attribute_map.key?(k.to_sym))
95
+ fail ArgumentError, "`#{k}` is not a valid attribute in `DatadogAPIClient::V2::CloudConfigurationRulePayload`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
96
+ end
97
+ h[k.to_sym] = v
98
+ }
99
+
100
+ if attributes.key?(:'cases')
101
+ if (value = attributes[:'cases']).is_a?(Array)
102
+ self.cases = value
103
+ end
104
+ end
105
+
106
+ if attributes.key?(:'compliance_signal_options')
107
+ self.compliance_signal_options = attributes[:'compliance_signal_options']
108
+ end
109
+
110
+ if attributes.key?(:'filters')
111
+ if (value = attributes[:'filters']).is_a?(Array)
112
+ self.filters = value
113
+ end
114
+ end
115
+
116
+ if attributes.key?(:'is_enabled')
117
+ self.is_enabled = attributes[:'is_enabled']
118
+ end
119
+
120
+ if attributes.key?(:'message')
121
+ self.message = attributes[:'message']
122
+ end
123
+
124
+ if attributes.key?(:'name')
125
+ self.name = attributes[:'name']
126
+ end
127
+
128
+ if attributes.key?(:'options')
129
+ self.options = attributes[:'options']
130
+ end
131
+
132
+ if attributes.key?(:'tags')
133
+ if (value = attributes[:'tags']).is_a?(Array)
134
+ self.tags = value
135
+ end
136
+ end
137
+
138
+ if attributes.key?(:'type')
139
+ self.type = attributes[:'type']
140
+ end
141
+ end
142
+
143
+ # Check to see if the all the properties in the model are valid
144
+ # @return true if the model is valid
145
+ # @!visibility private
146
+ def valid?
147
+ return false if @cases.nil?
148
+ return false if @compliance_signal_options.nil?
149
+ return false if @is_enabled.nil?
150
+ return false if @message.nil?
151
+ return false if @name.nil?
152
+ return false if @options.nil?
153
+ true
154
+ end
155
+
156
+ # Custom attribute writer method with validation
157
+ # @param cases [Object] Object to be assigned
158
+ # @!visibility private
159
+ def cases=(cases)
160
+ if cases.nil?
161
+ fail ArgumentError, 'invalid value for "cases", cases cannot be nil.'
162
+ end
163
+ @cases = cases
164
+ end
165
+
166
+ # Custom attribute writer method with validation
167
+ # @param compliance_signal_options [Object] Object to be assigned
168
+ # @!visibility private
169
+ def compliance_signal_options=(compliance_signal_options)
170
+ if compliance_signal_options.nil?
171
+ fail ArgumentError, 'invalid value for "compliance_signal_options", compliance_signal_options cannot be nil.'
172
+ end
173
+ @compliance_signal_options = compliance_signal_options
174
+ end
175
+
176
+ # Custom attribute writer method with validation
177
+ # @param is_enabled [Object] Object to be assigned
178
+ # @!visibility private
179
+ def is_enabled=(is_enabled)
180
+ if is_enabled.nil?
181
+ fail ArgumentError, 'invalid value for "is_enabled", is_enabled cannot be nil.'
182
+ end
183
+ @is_enabled = is_enabled
184
+ end
185
+
186
+ # Custom attribute writer method with validation
187
+ # @param message [Object] Object to be assigned
188
+ # @!visibility private
189
+ def message=(message)
190
+ if message.nil?
191
+ fail ArgumentError, 'invalid value for "message", message cannot be nil.'
192
+ end
193
+ @message = message
194
+ end
195
+
196
+ # Custom attribute writer method with validation
197
+ # @param name [Object] Object to be assigned
198
+ # @!visibility private
199
+ def name=(name)
200
+ if name.nil?
201
+ fail ArgumentError, 'invalid value for "name", name cannot be nil.'
202
+ end
203
+ @name = name
204
+ end
205
+
206
+ # Custom attribute writer method with validation
207
+ # @param options [Object] Object to be assigned
208
+ # @!visibility private
209
+ def options=(options)
210
+ if options.nil?
211
+ fail ArgumentError, 'invalid value for "options", options cannot be nil.'
212
+ end
213
+ @options = options
214
+ end
215
+
216
+ # Checks equality by comparing each attribute.
217
+ # @param o [Object] Object to be compared
218
+ # @!visibility private
219
+ def ==(o)
220
+ return true if self.equal?(o)
221
+ self.class == o.class &&
222
+ cases == o.cases &&
223
+ compliance_signal_options == o.compliance_signal_options &&
224
+ filters == o.filters &&
225
+ is_enabled == o.is_enabled &&
226
+ message == o.message &&
227
+ name == o.name &&
228
+ options == o.options &&
229
+ tags == o.tags &&
230
+ type == o.type
231
+ end
232
+
233
+ # Calculates hash code according to all attributes.
234
+ # @return [Integer] Hash code
235
+ # @!visibility private
236
+ def hash
237
+ [cases, compliance_signal_options, filters, is_enabled, message, name, options, tags, type].hash
238
+ end
239
+ end
240
+ end
@@ -30,6 +30,9 @@ module DatadogAPIClient::V2
30
30
  # The SECL expression of the Agent rule.
31
31
  attr_reader :expression
32
32
 
33
+ # The platforms the Agent rule is supported on.
34
+ attr_accessor :filters
35
+
33
36
  # The name of the Agent rule.
34
37
  attr_reader :name
35
38
 
@@ -40,6 +43,7 @@ module DatadogAPIClient::V2
40
43
  :'description' => :'description',
41
44
  :'enabled' => :'enabled',
42
45
  :'expression' => :'expression',
46
+ :'filters' => :'filters',
43
47
  :'name' => :'name'
44
48
  }
45
49
  end
@@ -51,6 +55,7 @@ module DatadogAPIClient::V2
51
55
  :'description' => :'String',
52
56
  :'enabled' => :'Boolean',
53
57
  :'expression' => :'String',
58
+ :'filters' => :'Array<String>',
54
59
  :'name' => :'String'
55
60
  }
56
61
  end
@@ -83,6 +88,12 @@ module DatadogAPIClient::V2
83
88
  self.expression = attributes[:'expression']
84
89
  end
85
90
 
91
+ if attributes.key?(:'filters')
92
+ if (value = attributes[:'filters']).is_a?(Array)
93
+ self.filters = value
94
+ end
95
+ end
96
+
86
97
  if attributes.key?(:'name')
87
98
  self.name = attributes[:'name']
88
99
  end
@@ -126,6 +137,7 @@ module DatadogAPIClient::V2
126
137
  description == o.description &&
127
138
  enabled == o.enabled &&
128
139
  expression == o.expression &&
140
+ filters == o.filters &&
129
141
  name == o.name
130
142
  end
131
143
 
@@ -133,7 +145,7 @@ module DatadogAPIClient::V2
133
145
  # @return [Integer] Hash code
134
146
  # @!visibility private
135
147
  def hash
136
- [description, enabled, expression, name].hash
148
+ [description, enabled, expression, filters, name].hash
137
149
  end
138
150
  end
139
151
  end
@@ -24,7 +24,7 @@ module DatadogAPIClient::V2
24
24
  # Environment name that was impacted by the incident.
25
25
  attr_accessor :env
26
26
 
27
- # Unix timestamp in nanoseconds when the incident finished. It should not be older than 3 hours.
27
+ # Unix timestamp in nanoseconds when the incident finished. It should not be older than 1 hour.
28
28
  attr_accessor :finished_at
29
29
 
30
30
  # Git info for DORA Metrics events.
@@ -24,7 +24,8 @@ module DatadogAPIClient::V2
24
24
  # The facet by which to split groups.
25
25
  attr_reader :facet
26
26
 
27
- # The maximum number of groups to return.
27
+ # The maximum buckets to return for this group by. Note: at most 10000 buckets are allowed.
28
+ # If grouping by multiple facets, the product of limits must not exceed 10000.
28
29
  attr_reader :limit
29
30
 
30
31
  # The dimension by which to sort a query's results.
@@ -84,7 +85,7 @@ module DatadogAPIClient::V2
84
85
  # @!visibility private
85
86
  def valid?
86
87
  return false if @facet.nil?
87
- return false if !@limit.nil? && @limit > 2147483647
88
+ return false if !@limit.nil? && @limit > 10000
88
89
  true
89
90
  end
90
91
 
@@ -102,8 +103,8 @@ module DatadogAPIClient::V2
102
103
  # @param limit [Object] Object to be assigned
103
104
  # @!visibility private
104
105
  def limit=(limit)
105
- if !limit.nil? && limit > 2147483647
106
- fail ArgumentError, 'invalid value for "limit", must be smaller than or equal to 2147483647.'
106
+ if !limit.nil? && limit > 10000
107
+ fail ArgumentError, 'invalid value for "limit", must be smaller than or equal to 10000.'
107
108
  end
108
109
  @limit = limit
109
110
  end