datadog_api_client 2.0.2 → 2.2.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 (192) hide show
  1. checksums.yaml +4 -4
  2. data/.apigentools-info +6 -6
  3. data/.generator/poetry.lock +21 -14
  4. data/.generator/pyproject.toml +1 -1
  5. data/.generator/schemas/v1/openapi.yaml +840 -908
  6. data/.generator/schemas/v2/openapi.yaml +1304 -913
  7. data/.generator/src/generator/formatter.py +1 -1
  8. data/.generator/src/generator/templates/api_client.j2 +5 -1
  9. data/.generator/src/generator/templates/configuration.j2 +17 -0
  10. data/.github/workflows/test.yml +4 -1
  11. data/.github/workflows/test_integration.yml +5 -0
  12. data/.pre-commit-config.yaml +1 -1
  13. data/CHANGELOG.md +49 -0
  14. data/README.md +11 -0
  15. data/examples/v1/dashboards/CreateDashboard_1094917386.rb +37 -0
  16. data/examples/v1/dashboards/CreateDashboard_1307120899.rb +61 -0
  17. data/examples/v1/dashboards/CreateDashboard_1423904722.rb +38 -0
  18. data/examples/v1/dashboards/CreateDashboard_2652180930.rb +43 -0
  19. data/examples/v1/dashboards/CreateDashboard_2850365602.rb +55 -0
  20. data/examples/v1/dashboards/CreateDashboard_3117424216.rb +33 -0
  21. data/examples/v1/dashboards/CreateDashboard_3669695268.rb +50 -0
  22. data/examples/v1/dashboards/CreateDashboard_858397694.rb +41 -0
  23. data/examples/v1/monitors/ValidateExistingMonitor.rb +1 -0
  24. data/examples/v1/monitors/ValidateMonitor.rb +1 -0
  25. data/examples/v1/monitors/ValidateMonitor_4247196452.rb +38 -0
  26. data/examples/v1/synthetics/CreateGlobalVariable.rb +1 -0
  27. data/examples/v1/synthetics/CreateGlobalVariable_1068962881.rb +23 -0
  28. data/examples/v1/synthetics/CreateSyntheticsAPITest_1279271422.rb +10 -0
  29. data/examples/v1/synthetics/CreateSyntheticsBrowserTest_2932742688.rb +6 -0
  30. data/examples/v1/synthetics/EditGlobalVariable.rb +1 -0
  31. data/examples/v1/synthetics/UpdateBrowserTest.rb +1 -0
  32. data/examples/v1/usage-metering/GetDailyCustomReports.rb +0 -3
  33. data/examples/v1/usage-metering/GetMonthlyCustomReports.rb +0 -3
  34. data/examples/v1/usage-metering/GetSpecifiedDailyCustomReports.rb +0 -3
  35. data/examples/v1/usage-metering/GetSpecifiedMonthlyCustomReports.rb +0 -3
  36. data/examples/v1/usage-metering/GetUsageAttribution.rb +0 -3
  37. data/examples/v2/incidents/ListIncidentAttachments.rb +8 -0
  38. data/examples/v2/incidents/ListIncidentAttachments_2457735435.rb +11 -0
  39. data/examples/v2/incidents/UpdateIncidentAttachments.rb +38 -0
  40. data/examples/v2/incidents/UpdateIncidentAttachments_3881702075.rb +26 -0
  41. data/examples/v2/metrics/ListActiveMetricConfigurations.rb +5 -0
  42. data/examples/v2/metrics/ListTagConfigurations.rb +1 -1
  43. data/examples/v2/metrics/ListTagConfigurations_265033704.rb +8 -0
  44. data/examples/v2/metrics/{ListTagConfigurations_103226315.rb → ListTagConfigurations_2739018321.rb} +1 -1
  45. data/examples/v2/metrics/SubmitMetrics_1762007427.rb +23 -0
  46. data/examples/v2/roles/UpdateRole.rb +13 -0
  47. data/examples/v2/rum/CreateRUMApplication.rb +15 -0
  48. data/examples/v2/rum/DeleteRUMApplication.rb +8 -0
  49. data/examples/v2/rum/GetRUMApplication.rb +8 -0
  50. data/examples/v2/rum/GetRUMApplications.rb +5 -0
  51. data/examples/v2/rum/UpdateRUMApplication.rb +16 -0
  52. data/examples/v2/security-monitoring/CreateSecurityMonitoringRule.rb +3 -2
  53. data/examples/v2/security-monitoring/CreateSecurityMonitoringRule_461183901.rb +2 -2
  54. data/examples/v2/security-monitoring/CreateSecurityMonitoringRule_498211763.rb +2 -2
  55. data/examples/v2/security-monitoring/CreateSecurityMonitoringRule_914562040.rb +50 -0
  56. data/examples/v2/security-monitoring/GetSecurityMonitoringSignal.rb +5 -0
  57. data/examples/v2/security-monitoring/UpdateSecurityMonitoringRule.rb +2 -1
  58. data/examples/v2/usage-metering/GetEstimatedCostByOrg.rb +1 -4
  59. data/examples/v2/usage-metering/GetEstimatedCostByOrg_2734954020.rb +2 -4
  60. data/examples/v2/usage-metering/GetEstimatedCostByOrg_3186693804.rb +2 -4
  61. data/examples/v2/usage-metering/GetHistoricalCostByOrg.rb +8 -0
  62. data/examples/v2/usage-metering/GetHourlyUsage.rb +5 -0
  63. data/generate.sh +30 -0
  64. data/lib/datadog_api_client/api_client.rb +5 -1
  65. data/lib/datadog_api_client/configuration.rb +20 -6
  66. data/lib/datadog_api_client/inflector.rb +67 -1
  67. data/lib/datadog_api_client/v1/api/metrics_api.rb +1 -1
  68. data/lib/datadog_api_client/v1/api/service_level_objectives_api.rb +3 -1
  69. data/lib/datadog_api_client/v1/api/usage_metering_api.rb +42 -62
  70. data/lib/datadog_api_client/v1/models/dashboard_template_variable.rb +14 -2
  71. data/lib/datadog_api_client/v1/models/dashboard_template_variable_preset_value.rb +28 -5
  72. data/lib/datadog_api_client/v1/models/formula_and_function_event_query_definition.rb +14 -4
  73. data/lib/datadog_api_client/v1/models/formula_and_function_events_data_source.rb +1 -0
  74. data/lib/datadog_api_client/v1/models/hourly_usage_attribution_usage_type.rb +2 -0
  75. data/lib/datadog_api_client/v1/models/list_stream_query.rb +14 -4
  76. data/lib/datadog_api_client/v1/models/list_stream_source.rb +1 -0
  77. data/lib/datadog_api_client/v1/models/metric_content_encoding.rb +1 -0
  78. data/lib/datadog_api_client/v1/models/monitor_options.rb +28 -1
  79. data/lib/datadog_api_client/v1/models/monitor_summary_widget_definition.rb +13 -1
  80. data/lib/datadog_api_client/v1/models/monthly_usage_attribution_supported_metrics.rb +4 -0
  81. data/lib/datadog_api_client/v1/models/monthly_usage_attribution_values.rb +41 -1
  82. data/lib/datadog_api_client/v1/models/on_missing_data_option.rb +33 -0
  83. data/lib/datadog_api_client/v1/models/search_service_level_objective.rb +111 -0
  84. data/lib/datadog_api_client/v1/models/search_service_level_objective_attributes.rb +286 -0
  85. data/lib/datadog_api_client/v1/models/search_service_level_objective_data.rb +134 -0
  86. data/lib/datadog_api_client/v1/models/search_slo_query.rb +137 -0
  87. data/lib/datadog_api_client/v1/models/search_slo_response_data_attributes.rb +8 -8
  88. data/lib/datadog_api_client/v1/models/search_slo_response_links.rb +2 -0
  89. data/lib/datadog_api_client/v1/models/search_slo_threshold.rb +184 -0
  90. data/lib/datadog_api_client/v1/models/search_slo_timeframe.rb +28 -0
  91. data/lib/datadog_api_client/v1/models/slo_creator.rb +131 -0
  92. data/lib/datadog_api_client/v1/models/slo_list_widget_definition.rb +185 -0
  93. data/lib/datadog_api_client/v1/models/slo_list_widget_definition_type.rb +26 -0
  94. data/lib/datadog_api_client/v1/models/slo_list_widget_query.rb +149 -0
  95. data/lib/datadog_api_client/v1/models/slo_list_widget_request.rb +143 -0
  96. data/lib/datadog_api_client/v1/models/slo_list_widget_request_type.rb +26 -0
  97. data/lib/datadog_api_client/v1/models/slo_overall_statuses.rb +174 -0
  98. data/lib/datadog_api_client/v1/models/slo_raw_error_budget_remaining.rb +121 -0
  99. data/lib/datadog_api_client/v1/models/synthetics_assertion_operator.rb +1 -0
  100. data/lib/datadog_api_client/v1/models/synthetics_basic_auth.rb +2 -1
  101. data/lib/datadog_api_client/v1/models/synthetics_basic_auth_digest.rb +155 -0
  102. data/lib/datadog_api_client/v1/models/synthetics_basic_auth_digest_type.rb +26 -0
  103. data/lib/datadog_api_client/v1/models/synthetics_global_variable_parse_test_options.rb +11 -12
  104. data/lib/datadog_api_client/v1/models/synthetics_global_variable_parse_test_options_type.rb +1 -0
  105. data/lib/datadog_api_client/v1/models/synthetics_test_options.rb +31 -1
  106. data/lib/datadog_api_client/v1/models/synthetics_test_process_status.rb +0 -1
  107. data/lib/datadog_api_client/v1/models/synthetics_test_request.rb +15 -1
  108. data/lib/datadog_api_client/v1/models/topology_map_widget_definition.rb +193 -0
  109. data/lib/datadog_api_client/v1/models/topology_map_widget_definition_type.rb +26 -0
  110. data/lib/datadog_api_client/v1/models/topology_query.rb +144 -0
  111. data/lib/datadog_api_client/v1/models/topology_query_data_source.rb +27 -0
  112. data/lib/datadog_api_client/v1/models/topology_request.rb +121 -0
  113. data/lib/datadog_api_client/v1/models/topology_request_type.rb +26 -0
  114. data/lib/datadog_api_client/v1/models/usage_attribution_sort.rb +4 -0
  115. data/lib/datadog_api_client/v1/models/usage_attribution_supported_metrics.rb +4 -0
  116. data/lib/datadog_api_client/v1/models/usage_attribution_values.rb +41 -1
  117. data/lib/datadog_api_client/v1/models/usage_billable_summary_hour.rb +11 -1
  118. data/lib/datadog_api_client/v1/models/usage_cloud_security_posture_management_hour.rb +12 -1
  119. data/lib/datadog_api_client/v1/models/usage_fargate_hour.rb +11 -1
  120. data/lib/datadog_api_client/v1/models/usage_summary_date.rb +21 -1
  121. data/lib/datadog_api_client/v1/models/usage_summary_date_org.rb +31 -1
  122. data/lib/datadog_api_client/v1/models/usage_summary_response.rb +21 -1
  123. data/lib/datadog_api_client/v1/models/widget_definition.rb +3 -1
  124. data/lib/datadog_api_client/v1/models/widget_monitor_summary_sort.rb +2 -0
  125. data/lib/datadog_api_client/v2/api/events_api.rb +1 -1
  126. data/lib/datadog_api_client/v2/api/incident_services_api.rb +2 -2
  127. data/lib/datadog_api_client/v2/api/incident_teams_api.rb +2 -2
  128. data/lib/datadog_api_client/v2/api/incidents_api.rb +155 -0
  129. data/lib/datadog_api_client/v2/api/logs_api.rb +1 -1
  130. data/lib/datadog_api_client/v2/api/metrics_api.rb +77 -9
  131. data/lib/datadog_api_client/v2/api/rum_api.rb +329 -0
  132. data/lib/datadog_api_client/v2/api/security_monitoring_api.rb +68 -3
  133. data/lib/datadog_api_client/v2/api/usage_metering_api.rb +83 -17
  134. data/lib/datadog_api_client/v2/models/content_encoding.rb +1 -0
  135. data/lib/datadog_api_client/v2/models/incident_attachment_attachment_type.rb +27 -0
  136. data/lib/datadog_api_client/v2/models/incident_attachment_attributes.rb +63 -0
  137. data/lib/datadog_api_client/v2/models/incident_attachment_data.rb +187 -0
  138. data/lib/datadog_api_client/v2/models/incident_attachment_link_attachment_type.rb +26 -0
  139. data/lib/datadog_api_client/v2/models/incident_attachment_link_attributes.rb +145 -0
  140. data/lib/datadog_api_client/v2/models/incident_attachment_link_attributes_attachment_object.rb +143 -0
  141. data/lib/datadog_api_client/v2/models/incident_attachment_postmortem_attachment_type.rb +26 -0
  142. data/lib/datadog_api_client/v2/models/incident_attachment_postmortem_attributes.rb +145 -0
  143. data/lib/datadog_api_client/v2/models/incident_attachment_related_object.rb +26 -0
  144. data/lib/datadog_api_client/v2/models/incident_attachment_relationships.rb +111 -0
  145. data/lib/datadog_api_client/v2/models/incident_attachment_type.rb +26 -0
  146. data/lib/datadog_api_client/v2/models/incident_attachment_update_attributes.rb +63 -0
  147. data/lib/datadog_api_client/v2/models/incident_attachment_update_data.rb +144 -0
  148. data/lib/datadog_api_client/v2/models/incident_attachment_update_request.rb +127 -0
  149. data/lib/datadog_api_client/v2/models/incident_attachment_update_response.rb +137 -0
  150. data/lib/datadog_api_client/v2/models/incident_attachments_postmortem_attributes_attachment_object.rb +143 -0
  151. data/lib/datadog_api_client/v2/models/incident_attachments_response.rb +136 -0
  152. data/lib/datadog_api_client/v2/models/incident_attachments_response_included_item.rb +62 -0
  153. data/lib/datadog_api_client/v2/models/incident_related_object.rb +1 -0
  154. data/lib/datadog_api_client/v2/models/incident_response_attributes.rb +1 -11
  155. data/lib/datadog_api_client/v2/models/incident_response_included_item.rb +2 -1
  156. data/lib/datadog_api_client/v2/models/incident_response_relationships.rb +14 -14
  157. data/lib/datadog_api_client/v2/models/metric_active_configuration_type.rb +26 -0
  158. data/lib/datadog_api_client/v2/models/metric_content_encoding.rb +2 -0
  159. data/lib/datadog_api_client/v2/models/metric_suggested_tags_and_aggregations.rb +133 -0
  160. data/lib/datadog_api_client/v2/models/metric_suggested_tags_and_aggregations_response.rb +111 -0
  161. data/lib/datadog_api_client/v2/models/metric_suggested_tags_attributes.rb +125 -0
  162. data/lib/datadog_api_client/v2/models/relationship_to_incident_attachment.rb +124 -0
  163. data/lib/datadog_api_client/v2/models/relationship_to_incident_attachment_data.rb +145 -0
  164. data/lib/datadog_api_client/v2/models/role_update_data.rb +11 -1
  165. data/lib/datadog_api_client/v2/models/rum_application.rb +166 -0
  166. data/lib/datadog_api_client/v2/models/rum_application_attributes.rb +279 -0
  167. data/lib/datadog_api_client/v2/models/rum_application_create.rb +145 -0
  168. data/lib/datadog_api_client/v2/models/rum_application_create_attributes.rb +132 -0
  169. data/lib/datadog_api_client/v2/models/rum_application_create_request.rb +122 -0
  170. data/lib/datadog_api_client/v2/models/rum_application_create_type.rb +26 -0
  171. data/lib/datadog_api_client/v2/models/rum_application_response.rb +111 -0
  172. data/lib/datadog_api_client/v2/models/rum_application_type.rb +26 -0
  173. data/lib/datadog_api_client/v2/models/rum_application_update.rb +155 -0
  174. data/lib/datadog_api_client/v2/models/rum_application_update_attributes.rb +121 -0
  175. data/lib/datadog_api_client/v2/models/rum_application_update_request.rb +122 -0
  176. data/lib/datadog_api_client/v2/models/rum_application_update_type.rb +26 -0
  177. data/lib/datadog_api_client/v2/models/rum_applications_response.rb +113 -0
  178. data/lib/datadog_api_client/v2/models/security_monitoring_rule_create_payload.rb +36 -248
  179. data/lib/datadog_api_client/v2/models/security_monitoring_rule_query.rb +36 -151
  180. data/lib/datadog_api_client/v2/models/security_monitoring_rule_query_aggregation.rb +1 -0
  181. data/lib/datadog_api_client/v2/models/security_monitoring_rule_response.rb +37 -253
  182. data/lib/datadog_api_client/v2/models/security_monitoring_signal_rule_create_payload.rb +275 -0
  183. data/lib/datadog_api_client/v2/models/security_monitoring_signal_rule_query.rb +187 -0
  184. data/lib/datadog_api_client/v2/models/security_monitoring_signal_rule_response.rb +279 -0
  185. data/lib/datadog_api_client/v2/models/security_monitoring_signal_rule_type.rb +26 -0
  186. data/lib/datadog_api_client/v2/models/security_monitoring_standard_rule_create_payload.rb +275 -0
  187. data/lib/datadog_api_client/v2/models/{security_monitoring_rule_query_create.rb → security_monitoring_standard_rule_query.rb} +3 -3
  188. data/lib/datadog_api_client/v2/models/security_monitoring_standard_rule_response.rb +279 -0
  189. data/lib/datadog_api_client/version.rb +1 -1
  190. metadata +97 -6
  191. data/Makefile +0 -7
  192. data/examples/v2/metrics/ListTagConfigurations_1799362914.rb +0 -8
@@ -0,0 +1,275 @@
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
+ # Create a new signal correlation rule.
21
+ class SecurityMonitoringSignalRuleCreatePayload
22
+ include BaseGenericModel
23
+
24
+ # Whether the object has unparsed attributes
25
+ # @!visibility private
26
+ attr_accessor :_unparsed
27
+
28
+ # Cases for generating signals.
29
+ attr_accessor :cases
30
+
31
+ # Additional queries to filter matched events before they are processed.
32
+ attr_accessor :filters
33
+
34
+ # Whether the notifications include the triggering group-by values in their title.
35
+ attr_accessor :has_extended_title
36
+
37
+ # Whether the rule is enabled.
38
+ attr_accessor :is_enabled
39
+
40
+ # Message for generated signals.
41
+ attr_accessor :message
42
+
43
+ # The name of the rule.
44
+ attr_accessor :name
45
+
46
+ # Options on rules.
47
+ attr_accessor :options
48
+
49
+ # Queries for selecting signals which are part of the rule.
50
+ attr_accessor :queries
51
+
52
+ # Tags for generated signals.
53
+ attr_accessor :tags
54
+
55
+ # The rule type.
56
+ attr_accessor :type
57
+
58
+ # Attribute mapping from ruby-style variable name to JSON key.
59
+ # @!visibility private
60
+ def self.attribute_map
61
+ {
62
+ :'cases' => :'cases',
63
+ :'filters' => :'filters',
64
+ :'has_extended_title' => :'hasExtendedTitle',
65
+ :'is_enabled' => :'isEnabled',
66
+ :'message' => :'message',
67
+ :'name' => :'name',
68
+ :'options' => :'options',
69
+ :'queries' => :'queries',
70
+ :'tags' => :'tags',
71
+ :'type' => :'type'
72
+ }
73
+ end
74
+
75
+ # Returns all the JSON keys this model knows about
76
+ # @!visibility private
77
+ def self.acceptable_attributes
78
+ attribute_map.values
79
+ end
80
+
81
+ # Attribute type mapping.
82
+ # @!visibility private
83
+ def self.openapi_types
84
+ {
85
+ :'cases' => :'Array<SecurityMonitoringRuleCaseCreate>',
86
+ :'filters' => :'Array<SecurityMonitoringFilter>',
87
+ :'has_extended_title' => :'Boolean',
88
+ :'is_enabled' => :'Boolean',
89
+ :'message' => :'String',
90
+ :'name' => :'String',
91
+ :'options' => :'SecurityMonitoringRuleOptions',
92
+ :'queries' => :'Array<SecurityMonitoringSignalRuleQuery>',
93
+ :'tags' => :'Array<String>',
94
+ :'type' => :'SecurityMonitoringSignalRuleType'
95
+ }
96
+ end
97
+
98
+ # List of attributes with nullable: true
99
+ # @!visibility private
100
+ def self.openapi_nullable
101
+ Set.new([
102
+ ])
103
+ end
104
+
105
+ # Initializes the object
106
+ # @param attributes [Hash] Model attributes in the form of hash
107
+ # @!visibility private
108
+ def initialize(attributes = {})
109
+ if (!attributes.is_a?(Hash))
110
+ fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::SecurityMonitoringSignalRuleCreatePayload` initialize method"
111
+ end
112
+
113
+ # check to see if the attribute exists and convert string to symbol for hash key
114
+ attributes = attributes.each_with_object({}) { |(k, v), h|
115
+ if (!self.class.attribute_map.key?(k.to_sym))
116
+ fail ArgumentError, "`#{k}` is not a valid attribute in `DatadogAPIClient::V2::SecurityMonitoringSignalRuleCreatePayload`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
117
+ end
118
+ h[k.to_sym] = v
119
+ }
120
+
121
+ if attributes.key?(:'cases')
122
+ if (value = attributes[:'cases']).is_a?(Array)
123
+ self.cases = value
124
+ end
125
+ end
126
+
127
+ if attributes.key?(:'filters')
128
+ if (value = attributes[:'filters']).is_a?(Array)
129
+ self.filters = value
130
+ end
131
+ end
132
+
133
+ if attributes.key?(:'has_extended_title')
134
+ self.has_extended_title = attributes[:'has_extended_title']
135
+ end
136
+
137
+ if attributes.key?(:'is_enabled')
138
+ self.is_enabled = attributes[:'is_enabled']
139
+ end
140
+
141
+ if attributes.key?(:'message')
142
+ self.message = attributes[:'message']
143
+ end
144
+
145
+ if attributes.key?(:'name')
146
+ self.name = attributes[:'name']
147
+ end
148
+
149
+ if attributes.key?(:'options')
150
+ self.options = attributes[:'options']
151
+ end
152
+
153
+ if attributes.key?(:'queries')
154
+ if (value = attributes[:'queries']).is_a?(Array)
155
+ self.queries = value
156
+ end
157
+ end
158
+
159
+ if attributes.key?(:'tags')
160
+ if (value = attributes[:'tags']).is_a?(Array)
161
+ self.tags = value
162
+ end
163
+ end
164
+
165
+ if attributes.key?(:'type')
166
+ self.type = attributes[:'type']
167
+ end
168
+ end
169
+
170
+ # Check to see if the all the properties in the model are valid
171
+ # @return true if the model is valid
172
+ # @!visibility private
173
+ def valid?
174
+ return false if @cases.nil?
175
+ return false if @is_enabled.nil?
176
+ return false if @message.nil?
177
+ return false if @name.nil?
178
+ return false if @options.nil?
179
+ return false if @queries.nil?
180
+ true
181
+ end
182
+
183
+ # Custom attribute writer method with validation
184
+ # @param cases [Object] Object to be assigned
185
+ # @!visibility private
186
+ def cases=(cases)
187
+ if cases.nil?
188
+ fail ArgumentError, 'invalid value for "cases", cases cannot be nil.'
189
+ end
190
+ @cases = cases
191
+ end
192
+
193
+ # Custom attribute writer method with validation
194
+ # @param is_enabled [Object] Object to be assigned
195
+ # @!visibility private
196
+ def is_enabled=(is_enabled)
197
+ if is_enabled.nil?
198
+ fail ArgumentError, 'invalid value for "is_enabled", is_enabled cannot be nil.'
199
+ end
200
+ @is_enabled = is_enabled
201
+ end
202
+
203
+ # Custom attribute writer method with validation
204
+ # @param message [Object] Object to be assigned
205
+ # @!visibility private
206
+ def message=(message)
207
+ if message.nil?
208
+ fail ArgumentError, 'invalid value for "message", message cannot be nil.'
209
+ end
210
+ @message = message
211
+ end
212
+
213
+ # Custom attribute writer method with validation
214
+ # @param name [Object] Object to be assigned
215
+ # @!visibility private
216
+ def name=(name)
217
+ if name.nil?
218
+ fail ArgumentError, 'invalid value for "name", name cannot be nil.'
219
+ end
220
+ @name = name
221
+ end
222
+
223
+ # Custom attribute writer method with validation
224
+ # @param options [Object] Object to be assigned
225
+ # @!visibility private
226
+ def options=(options)
227
+ if options.nil?
228
+ fail ArgumentError, 'invalid value for "options", options cannot be nil.'
229
+ end
230
+ @options = options
231
+ end
232
+
233
+ # Custom attribute writer method with validation
234
+ # @param queries [Object] Object to be assigned
235
+ # @!visibility private
236
+ def queries=(queries)
237
+ if queries.nil?
238
+ fail ArgumentError, 'invalid value for "queries", queries cannot be nil.'
239
+ end
240
+ @queries = queries
241
+ end
242
+
243
+ # Checks equality by comparing each attribute.
244
+ # @param o [Object] Object to be compared
245
+ # @!visibility private
246
+ def ==(o)
247
+ return true if self.equal?(o)
248
+ self.class == o.class &&
249
+ cases == o.cases &&
250
+ filters == o.filters &&
251
+ has_extended_title == o.has_extended_title &&
252
+ is_enabled == o.is_enabled &&
253
+ message == o.message &&
254
+ name == o.name &&
255
+ options == o.options &&
256
+ queries == o.queries &&
257
+ tags == o.tags &&
258
+ type == o.type
259
+ end
260
+
261
+ # @see the `==` method
262
+ # @param o [Object] Object to be compared
263
+ # @!visibility private
264
+ def eql?(o)
265
+ self == o
266
+ end
267
+
268
+ # Calculates hash code according to all attributes.
269
+ # @return [Integer] Hash code
270
+ # @!visibility private
271
+ def hash
272
+ [cases, filters, has_extended_title, is_enabled, message, name, options, queries, tags, type].hash
273
+ end
274
+ end
275
+ end
@@ -0,0 +1,187 @@
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
+ # Query for matching rule on signals
21
+ class SecurityMonitoringSignalRuleQuery
22
+ include BaseGenericModel
23
+
24
+ # Whether the object has unparsed attributes
25
+ # @!visibility private
26
+ attr_accessor :_unparsed
27
+
28
+ # The aggregation type.
29
+ attr_accessor :aggregation
30
+
31
+ # Fields to group by.
32
+ attr_accessor :correlated_by_fields
33
+
34
+ # Index of the rule query used to retrieve the correlated field.
35
+ attr_accessor :correlated_query_index
36
+
37
+ # Group of target fields to aggregate over when using the new value aggregations.
38
+ attr_accessor :metrics
39
+
40
+ # Name of the query.
41
+ attr_accessor :name
42
+
43
+ # Rule ID to match on signals.
44
+ attr_accessor :rule_id
45
+
46
+ # Attribute mapping from ruby-style variable name to JSON key.
47
+ # @!visibility private
48
+ def self.attribute_map
49
+ {
50
+ :'aggregation' => :'aggregation',
51
+ :'correlated_by_fields' => :'correlatedByFields',
52
+ :'correlated_query_index' => :'correlatedQueryIndex',
53
+ :'metrics' => :'metrics',
54
+ :'name' => :'name',
55
+ :'rule_id' => :'ruleId'
56
+ }
57
+ end
58
+
59
+ # Returns all the JSON keys this model knows about
60
+ # @!visibility private
61
+ def self.acceptable_attributes
62
+ attribute_map.values
63
+ end
64
+
65
+ # Attribute type mapping.
66
+ # @!visibility private
67
+ def self.openapi_types
68
+ {
69
+ :'aggregation' => :'SecurityMonitoringRuleQueryAggregation',
70
+ :'correlated_by_fields' => :'Array<String>',
71
+ :'correlated_query_index' => :'Integer',
72
+ :'metrics' => :'Array<String>',
73
+ :'name' => :'String',
74
+ :'rule_id' => :'String'
75
+ }
76
+ end
77
+
78
+ # List of attributes with nullable: true
79
+ # @!visibility private
80
+ def self.openapi_nullable
81
+ Set.new([
82
+ ])
83
+ end
84
+
85
+ # Initializes the object
86
+ # @param attributes [Hash] Model attributes in the form of hash
87
+ # @!visibility private
88
+ def initialize(attributes = {})
89
+ if (!attributes.is_a?(Hash))
90
+ fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::SecurityMonitoringSignalRuleQuery` initialize method"
91
+ end
92
+
93
+ # check to see if the attribute exists and convert string to symbol for hash key
94
+ attributes = attributes.each_with_object({}) { |(k, v), h|
95
+ if (!self.class.attribute_map.key?(k.to_sym))
96
+ fail ArgumentError, "`#{k}` is not a valid attribute in `DatadogAPIClient::V2::SecurityMonitoringSignalRuleQuery`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
97
+ end
98
+ h[k.to_sym] = v
99
+ }
100
+
101
+ if attributes.key?(:'aggregation')
102
+ self.aggregation = attributes[:'aggregation']
103
+ end
104
+
105
+ if attributes.key?(:'correlated_by_fields')
106
+ if (value = attributes[:'correlated_by_fields']).is_a?(Array)
107
+ self.correlated_by_fields = value
108
+ end
109
+ end
110
+
111
+ if attributes.key?(:'correlated_query_index')
112
+ self.correlated_query_index = attributes[:'correlated_query_index']
113
+ end
114
+
115
+ if attributes.key?(:'metrics')
116
+ if (value = attributes[:'metrics']).is_a?(Array)
117
+ self.metrics = value
118
+ end
119
+ end
120
+
121
+ if attributes.key?(:'name')
122
+ self.name = attributes[:'name']
123
+ end
124
+
125
+ if attributes.key?(:'rule_id')
126
+ self.rule_id = attributes[:'rule_id']
127
+ end
128
+ end
129
+
130
+ # Check to see if the all the properties in the model are valid
131
+ # @return true if the model is valid
132
+ # @!visibility private
133
+ def valid?
134
+ return false if !@correlated_query_index.nil? && @correlated_query_index > 9
135
+ return false if @rule_id.nil?
136
+ true
137
+ end
138
+
139
+ # Custom attribute writer method with validation
140
+ # @param correlated_query_index [Object] Object to be assigned
141
+ # @!visibility private
142
+ def correlated_query_index=(correlated_query_index)
143
+ if !correlated_query_index.nil? && correlated_query_index > 9
144
+ fail ArgumentError, 'invalid value for "correlated_query_index", must be smaller than or equal to 9.'
145
+ end
146
+ @correlated_query_index = correlated_query_index
147
+ end
148
+
149
+ # Custom attribute writer method with validation
150
+ # @param rule_id [Object] Object to be assigned
151
+ # @!visibility private
152
+ def rule_id=(rule_id)
153
+ if rule_id.nil?
154
+ fail ArgumentError, 'invalid value for "rule_id", rule_id cannot be nil.'
155
+ end
156
+ @rule_id = rule_id
157
+ end
158
+
159
+ # Checks equality by comparing each attribute.
160
+ # @param o [Object] Object to be compared
161
+ # @!visibility private
162
+ def ==(o)
163
+ return true if self.equal?(o)
164
+ self.class == o.class &&
165
+ aggregation == o.aggregation &&
166
+ correlated_by_fields == o.correlated_by_fields &&
167
+ correlated_query_index == o.correlated_query_index &&
168
+ metrics == o.metrics &&
169
+ name == o.name &&
170
+ rule_id == o.rule_id
171
+ end
172
+
173
+ # @see the `==` method
174
+ # @param o [Object] Object to be compared
175
+ # @!visibility private
176
+ def eql?(o)
177
+ self == o
178
+ end
179
+
180
+ # Calculates hash code according to all attributes.
181
+ # @return [Integer] Hash code
182
+ # @!visibility private
183
+ def hash
184
+ [aggregation, correlated_by_fields, correlated_query_index, metrics, name, rule_id].hash
185
+ end
186
+ end
187
+ end