datadog_api_client 2.1.0 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (130) hide show
  1. checksums.yaml +4 -4
  2. data/.apigentools-info +4 -4
  3. data/.generator/poetry.lock +21 -14
  4. data/.generator/pyproject.toml +1 -1
  5. data/.generator/schemas/v1/openapi.yaml +558 -8
  6. data/.generator/schemas/v2/openapi.yaml +973 -253
  7. data/.generator/src/generator/templates/api_client.j2 +5 -1
  8. data/.generator/src/generator/templates/configuration.j2 +17 -0
  9. data/.github/workflows/test.yml +3 -0
  10. data/.pre-commit-config.yaml +1 -1
  11. data/CHANGELOG.md +26 -0
  12. data/README.md +11 -0
  13. data/examples/v1/dashboards/CreateDashboard_1423904722.rb +38 -0
  14. data/examples/v1/dashboards/CreateDashboard_2652180930.rb +43 -0
  15. data/examples/v1/dashboards/CreateDashboard_2850365602.rb +55 -0
  16. data/examples/v1/dashboards/CreateDashboard_3117424216.rb +33 -0
  17. data/examples/v1/dashboards/CreateDashboard_3669695268.rb +50 -0
  18. data/examples/v1/dashboards/CreateDashboard_858397694.rb +41 -0
  19. data/examples/v1/synthetics/CreateGlobalVariable_1068962881.rb +1 -1
  20. data/examples/v2/incidents/ListIncidentAttachments.rb +8 -0
  21. data/examples/v2/incidents/ListIncidentAttachments_2457735435.rb +11 -0
  22. data/examples/v2/incidents/UpdateIncidentAttachments.rb +38 -0
  23. data/examples/v2/incidents/UpdateIncidentAttachments_3881702075.rb +26 -0
  24. data/examples/v2/metrics/ListActiveMetricConfigurations.rb +5 -0
  25. data/examples/v2/metrics/ListTagConfigurations.rb +1 -1
  26. data/examples/v2/metrics/ListTagConfigurations_265033704.rb +8 -0
  27. data/examples/v2/metrics/{ListTagConfigurations_103226315.rb → ListTagConfigurations_2739018321.rb} +1 -1
  28. data/examples/v2/security-monitoring/CreateSecurityMonitoringRule.rb +3 -2
  29. data/examples/v2/security-monitoring/CreateSecurityMonitoringRule_461183901.rb +2 -2
  30. data/examples/v2/security-monitoring/CreateSecurityMonitoringRule_498211763.rb +2 -2
  31. data/examples/v2/security-monitoring/CreateSecurityMonitoringRule_914562040.rb +50 -0
  32. data/examples/v2/security-monitoring/GetSecurityMonitoringSignal.rb +5 -0
  33. data/examples/v2/security-monitoring/UpdateSecurityMonitoringRule.rb +2 -1
  34. data/examples/v2/usage-metering/GetEstimatedCostByOrg.rb +1 -4
  35. data/examples/v2/usage-metering/GetEstimatedCostByOrg_2734954020.rb +2 -4
  36. data/examples/v2/usage-metering/GetEstimatedCostByOrg_3186693804.rb +2 -4
  37. data/examples/v2/usage-metering/GetHistoricalCostByOrg.rb +8 -0
  38. data/generate.sh +30 -0
  39. data/lib/datadog_api_client/api_client.rb +5 -1
  40. data/lib/datadog_api_client/configuration.rb +20 -1
  41. data/lib/datadog_api_client/inflector.rb +51 -1
  42. data/lib/datadog_api_client/v1/api/service_level_objectives_api.rb +3 -1
  43. data/lib/datadog_api_client/v1/api/usage_metering_api.rb +5 -5
  44. data/lib/datadog_api_client/v1/models/dashboard_template_variable.rb +14 -2
  45. data/lib/datadog_api_client/v1/models/dashboard_template_variable_preset_value.rb +28 -5
  46. data/lib/datadog_api_client/v1/models/formula_and_function_event_query_definition.rb +14 -4
  47. data/lib/datadog_api_client/v1/models/hourly_usage_attribution_usage_type.rb +1 -0
  48. data/lib/datadog_api_client/v1/models/list_stream_query.rb +14 -4
  49. data/lib/datadog_api_client/v1/models/monthly_usage_attribution_supported_metrics.rb +2 -0
  50. data/lib/datadog_api_client/v1/models/monthly_usage_attribution_values.rb +21 -1
  51. data/lib/datadog_api_client/v1/models/search_service_level_objective.rb +111 -0
  52. data/lib/datadog_api_client/v1/models/search_service_level_objective_attributes.rb +286 -0
  53. data/lib/datadog_api_client/v1/models/search_service_level_objective_data.rb +134 -0
  54. data/lib/datadog_api_client/v1/models/search_slo_query.rb +137 -0
  55. data/lib/datadog_api_client/v1/models/search_slo_response_data_attributes.rb +8 -8
  56. data/lib/datadog_api_client/v1/models/search_slo_response_links.rb +2 -0
  57. data/lib/datadog_api_client/v1/models/search_slo_threshold.rb +184 -0
  58. data/lib/datadog_api_client/v1/models/search_slo_timeframe.rb +28 -0
  59. data/lib/datadog_api_client/v1/models/slo_creator.rb +131 -0
  60. data/lib/datadog_api_client/v1/models/slo_list_widget_definition.rb +185 -0
  61. data/lib/datadog_api_client/v1/models/slo_list_widget_definition_type.rb +26 -0
  62. data/lib/datadog_api_client/v1/models/slo_list_widget_query.rb +149 -0
  63. data/lib/datadog_api_client/v1/models/slo_list_widget_request.rb +143 -0
  64. data/lib/datadog_api_client/v1/models/slo_list_widget_request_type.rb +26 -0
  65. data/lib/datadog_api_client/v1/models/slo_overall_statuses.rb +174 -0
  66. data/lib/datadog_api_client/v1/models/slo_raw_error_budget_remaining.rb +121 -0
  67. data/lib/datadog_api_client/v1/models/synthetics_assertion_operator.rb +1 -0
  68. data/lib/datadog_api_client/v1/models/topology_map_widget_definition.rb +193 -0
  69. data/lib/datadog_api_client/v1/models/topology_map_widget_definition_type.rb +26 -0
  70. data/lib/datadog_api_client/v1/models/topology_query.rb +144 -0
  71. data/lib/datadog_api_client/v1/models/topology_query_data_source.rb +27 -0
  72. data/lib/datadog_api_client/v1/models/topology_request.rb +121 -0
  73. data/lib/datadog_api_client/v1/models/topology_request_type.rb +26 -0
  74. data/lib/datadog_api_client/v1/models/usage_attribution_sort.rb +2 -0
  75. data/lib/datadog_api_client/v1/models/usage_attribution_supported_metrics.rb +2 -0
  76. data/lib/datadog_api_client/v1/models/usage_attribution_values.rb +21 -1
  77. data/lib/datadog_api_client/v1/models/usage_fargate_hour.rb +11 -1
  78. data/lib/datadog_api_client/v1/models/usage_summary_date.rb +11 -1
  79. data/lib/datadog_api_client/v1/models/usage_summary_date_org.rb +11 -1
  80. data/lib/datadog_api_client/v1/models/usage_summary_response.rb +11 -1
  81. data/lib/datadog_api_client/v1/models/widget_definition.rb +3 -1
  82. data/lib/datadog_api_client/v2/api/incident_services_api.rb +2 -2
  83. data/lib/datadog_api_client/v2/api/incident_teams_api.rb +2 -2
  84. data/lib/datadog_api_client/v2/api/incidents_api.rb +155 -0
  85. data/lib/datadog_api_client/v2/api/metrics_api.rb +76 -8
  86. data/lib/datadog_api_client/v2/api/security_monitoring_api.rb +65 -0
  87. data/lib/datadog_api_client/v2/api/usage_metering_api.rb +83 -17
  88. data/lib/datadog_api_client/v2/models/incident_attachment_attachment_type.rb +27 -0
  89. data/lib/datadog_api_client/v2/models/incident_attachment_attributes.rb +63 -0
  90. data/lib/datadog_api_client/v2/models/incident_attachment_data.rb +187 -0
  91. data/lib/datadog_api_client/v2/models/incident_attachment_link_attachment_type.rb +26 -0
  92. data/lib/datadog_api_client/v2/models/incident_attachment_link_attributes.rb +145 -0
  93. data/lib/datadog_api_client/v2/models/incident_attachment_link_attributes_attachment_object.rb +143 -0
  94. data/lib/datadog_api_client/v2/models/incident_attachment_postmortem_attachment_type.rb +26 -0
  95. data/lib/datadog_api_client/v2/models/incident_attachment_postmortem_attributes.rb +145 -0
  96. data/lib/datadog_api_client/v2/models/incident_attachment_related_object.rb +26 -0
  97. data/lib/datadog_api_client/v2/models/incident_attachment_relationships.rb +111 -0
  98. data/lib/datadog_api_client/v2/models/incident_attachment_type.rb +26 -0
  99. data/lib/datadog_api_client/v2/models/incident_attachment_update_attributes.rb +63 -0
  100. data/lib/datadog_api_client/v2/models/incident_attachment_update_data.rb +144 -0
  101. data/lib/datadog_api_client/v2/models/incident_attachment_update_request.rb +127 -0
  102. data/lib/datadog_api_client/v2/models/incident_attachment_update_response.rb +137 -0
  103. data/lib/datadog_api_client/v2/models/incident_attachments_postmortem_attributes_attachment_object.rb +143 -0
  104. data/lib/datadog_api_client/v2/models/incident_attachments_response.rb +136 -0
  105. data/lib/datadog_api_client/v2/models/incident_attachments_response_included_item.rb +62 -0
  106. data/lib/datadog_api_client/v2/models/incident_related_object.rb +1 -0
  107. data/lib/datadog_api_client/v2/models/incident_response_attributes.rb +1 -11
  108. data/lib/datadog_api_client/v2/models/incident_response_included_item.rb +2 -1
  109. data/lib/datadog_api_client/v2/models/incident_response_relationships.rb +14 -14
  110. data/lib/datadog_api_client/v2/models/metric_active_configuration_type.rb +26 -0
  111. data/lib/datadog_api_client/v2/models/metric_suggested_tags_and_aggregations.rb +133 -0
  112. data/lib/datadog_api_client/v2/models/metric_suggested_tags_and_aggregations_response.rb +111 -0
  113. data/lib/datadog_api_client/v2/models/metric_suggested_tags_attributes.rb +125 -0
  114. data/lib/datadog_api_client/v2/models/relationship_to_incident_attachment.rb +124 -0
  115. data/lib/datadog_api_client/v2/models/relationship_to_incident_attachment_data.rb +145 -0
  116. data/lib/datadog_api_client/v2/models/security_monitoring_rule_create_payload.rb +36 -248
  117. data/lib/datadog_api_client/v2/models/security_monitoring_rule_query.rb +36 -151
  118. data/lib/datadog_api_client/v2/models/security_monitoring_rule_query_aggregation.rb +1 -0
  119. data/lib/datadog_api_client/v2/models/security_monitoring_rule_response.rb +37 -253
  120. data/lib/datadog_api_client/v2/models/security_monitoring_signal_rule_create_payload.rb +275 -0
  121. data/lib/datadog_api_client/v2/models/security_monitoring_signal_rule_query.rb +187 -0
  122. data/lib/datadog_api_client/v2/models/security_monitoring_signal_rule_response.rb +279 -0
  123. data/lib/datadog_api_client/v2/models/security_monitoring_signal_rule_type.rb +26 -0
  124. data/lib/datadog_api_client/v2/models/security_monitoring_standard_rule_create_payload.rb +275 -0
  125. data/lib/datadog_api_client/v2/models/{security_monitoring_rule_query_create.rb → security_monitoring_standard_rule_query.rb} +3 -3
  126. data/lib/datadog_api_client/v2/models/security_monitoring_standard_rule_response.rb +279 -0
  127. data/lib/datadog_api_client/version.rb +1 -1
  128. metadata +70 -6
  129. data/Makefile +0 -7
  130. data/examples/v2/metrics/ListTagConfigurations_1799362914.rb +0 -8
@@ -0,0 +1,145 @@
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 attachment relationship data.
21
+ class RelationshipToIncidentAttachmentData
22
+ include BaseGenericModel
23
+
24
+ # Whether the object has unparsed attributes
25
+ # @!visibility private
26
+ attr_accessor :_unparsed
27
+
28
+ # A unique identifier that represents the attachment.
29
+ attr_accessor :id
30
+
31
+ # The incident attachment resource type.
32
+ attr_accessor :type
33
+
34
+ # Attribute mapping from ruby-style variable name to JSON key.
35
+ # @!visibility private
36
+ def self.attribute_map
37
+ {
38
+ :'id' => :'id',
39
+ :'type' => :'type'
40
+ }
41
+ end
42
+
43
+ # Returns all the JSON keys this model knows about
44
+ # @!visibility private
45
+ def self.acceptable_attributes
46
+ attribute_map.values
47
+ end
48
+
49
+ # Attribute type mapping.
50
+ # @!visibility private
51
+ def self.openapi_types
52
+ {
53
+ :'id' => :'String',
54
+ :'type' => :'IncidentAttachmentType'
55
+ }
56
+ end
57
+
58
+ # List of attributes with nullable: true
59
+ # @!visibility private
60
+ def self.openapi_nullable
61
+ Set.new([
62
+ ])
63
+ end
64
+
65
+ # Initializes the object
66
+ # @param attributes [Hash] Model attributes in the form of hash
67
+ # @!visibility private
68
+ def initialize(attributes = {})
69
+ if (!attributes.is_a?(Hash))
70
+ fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::RelationshipToIncidentAttachmentData` initialize method"
71
+ end
72
+
73
+ # check to see if the attribute exists and convert string to symbol for hash key
74
+ attributes = attributes.each_with_object({}) { |(k, v), h|
75
+ if (!self.class.attribute_map.key?(k.to_sym))
76
+ fail ArgumentError, "`#{k}` is not a valid attribute in `DatadogAPIClient::V2::RelationshipToIncidentAttachmentData`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
77
+ end
78
+ h[k.to_sym] = v
79
+ }
80
+
81
+ if attributes.key?(:'id')
82
+ self.id = attributes[:'id']
83
+ end
84
+
85
+ if attributes.key?(:'type')
86
+ self.type = attributes[:'type']
87
+ else
88
+ self.type = 'incident_attachments'
89
+ end
90
+ end
91
+
92
+ # Check to see if the all the properties in the model are valid
93
+ # @return true if the model is valid
94
+ # @!visibility private
95
+ def valid?
96
+ return false if @id.nil?
97
+ return false if @type.nil?
98
+ true
99
+ end
100
+
101
+ # Custom attribute writer method with validation
102
+ # @param id [Object] Object to be assigned
103
+ # @!visibility private
104
+ def id=(id)
105
+ if id.nil?
106
+ fail ArgumentError, 'invalid value for "id", id cannot be nil.'
107
+ end
108
+ @id = id
109
+ end
110
+
111
+ # Custom attribute writer method with validation
112
+ # @param type [Object] Object to be assigned
113
+ # @!visibility private
114
+ def type=(type)
115
+ if type.nil?
116
+ fail ArgumentError, 'invalid value for "type", type cannot be nil.'
117
+ end
118
+ @type = type
119
+ end
120
+
121
+ # Checks equality by comparing each attribute.
122
+ # @param o [Object] Object to be compared
123
+ # @!visibility private
124
+ def ==(o)
125
+ return true if self.equal?(o)
126
+ self.class == o.class &&
127
+ id == o.id &&
128
+ type == o.type
129
+ end
130
+
131
+ # @see the `==` method
132
+ # @param o [Object] Object to be compared
133
+ # @!visibility private
134
+ def eql?(o)
135
+ self == o
136
+ end
137
+
138
+ # Calculates hash code according to all attributes.
139
+ # @return [Integer] Hash code
140
+ # @!visibility private
141
+ def hash
142
+ [id, type].hash
143
+ end
144
+ end
145
+ end
@@ -18,258 +18,46 @@ require 'time'
18
18
 
19
19
  module DatadogAPIClient::V2
20
20
  # Create a new rule.
21
- class SecurityMonitoringRuleCreatePayload
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 logs 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<SecurityMonitoringRuleQueryCreate>',
93
- :'tags' => :'Array<String>',
94
- :'type' => :'SecurityMonitoringRuleTypeCreate'
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::SecurityMonitoringRuleCreatePayload` 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::SecurityMonitoringRuleCreatePayload`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
21
+ module SecurityMonitoringRuleCreatePayload
22
+ class << self
23
+ include BaseOneOfModel
24
+ include BaseOneOfModelNoDiscriminator
25
+
26
+ # List of class defined in oneOf (OpenAPI v3)
27
+ def openapi_one_of
28
+ [
29
+ :'SecurityMonitoringStandardRuleCreatePayload',
30
+ :'SecurityMonitoringSignalRuleCreatePayload'
31
+ ]
32
+ end
33
+ # Builds the object
34
+ # @param [Mixed] Data to be matched against the list of oneOf items
35
+ # @return [Object] Returns the model or the data itself
36
+ def build(data)
37
+ # Go through the list of oneOf items and attempt to identify the appropriate one.
38
+ # Note:
39
+ # - We do not attempt to check whether exactly one item matches.
40
+ # - No advanced validation of types in some cases (e.g. "x: { type: string }" will happily match { x: 123 })
41
+ # due to the way the deserialization is made in the base_object template (it just casts without verifying).
42
+ # - TODO: scalar values are de facto behaving as if they were nullable.
43
+ # - TODO: logging when debugging is set.
44
+ openapi_one_of.each do |klass|
45
+ begin
46
+ next if klass == :AnyType # "nullable: true"
47
+ typed_data = find_and_cast_into_type(klass, data)
48
+ next if typed_data._unparsed
49
+ return typed_data if typed_data
50
+ rescue # rescue all errors so we keep iterating even if the current item lookup raises
51
+ end
117
52
  end
118
- h[k.to_sym] = v
119
- }
120
53
 
121
- if attributes.key?(:'cases')
122
- if (value = attributes[:'cases']).is_a?(Array)
123
- self.cases = value
54
+ if openapi_one_of.include?(:AnyType)
55
+ data
56
+ else
57
+ self._unparsed = true
58
+ DatadogAPIClient::UnparsedObject.new(data)
124
59
  end
125
60
  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
61
  end
274
62
  end
275
63
  end
@@ -18,161 +18,46 @@ require 'time'
18
18
 
19
19
  module DatadogAPIClient::V2
20
20
  # Query for matching rule.
21
- class SecurityMonitoringRuleQuery
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
- # Field for which the cardinality is measured. Sent as an array.
32
- attr_accessor :distinct_fields
33
-
34
- # Fields to group by.
35
- attr_accessor :group_by_fields
36
-
37
- # The target field to aggregate over when using the sum or max
38
- # aggregations.
39
- attr_accessor :metric
40
-
41
- # Group of target fields to aggregate over when using the new value aggregations.
42
- attr_accessor :metrics
43
-
44
- # Name of the query.
45
- attr_accessor :name
46
-
47
- # Query to run on logs.
48
- attr_accessor :query
49
-
50
- # Attribute mapping from ruby-style variable name to JSON key.
51
- # @!visibility private
52
- def self.attribute_map
53
- {
54
- :'aggregation' => :'aggregation',
55
- :'distinct_fields' => :'distinctFields',
56
- :'group_by_fields' => :'groupByFields',
57
- :'metric' => :'metric',
58
- :'metrics' => :'metrics',
59
- :'name' => :'name',
60
- :'query' => :'query'
61
- }
62
- end
63
-
64
- # Returns all the JSON keys this model knows about
65
- # @!visibility private
66
- def self.acceptable_attributes
67
- attribute_map.values
68
- end
69
-
70
- # Attribute type mapping.
71
- # @!visibility private
72
- def self.openapi_types
73
- {
74
- :'aggregation' => :'SecurityMonitoringRuleQueryAggregation',
75
- :'distinct_fields' => :'Array<String>',
76
- :'group_by_fields' => :'Array<String>',
77
- :'metric' => :'String',
78
- :'metrics' => :'Array<String>',
79
- :'name' => :'String',
80
- :'query' => :'String'
81
- }
82
- end
83
-
84
- # List of attributes with nullable: true
85
- # @!visibility private
86
- def self.openapi_nullable
87
- Set.new([
88
- ])
89
- end
90
-
91
- # Initializes the object
92
- # @param attributes [Hash] Model attributes in the form of hash
93
- # @!visibility private
94
- def initialize(attributes = {})
95
- if (!attributes.is_a?(Hash))
96
- fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::SecurityMonitoringRuleQuery` initialize method"
97
- end
98
-
99
- # check to see if the attribute exists and convert string to symbol for hash key
100
- attributes = attributes.each_with_object({}) { |(k, v), h|
101
- if (!self.class.attribute_map.key?(k.to_sym))
102
- fail ArgumentError, "`#{k}` is not a valid attribute in `DatadogAPIClient::V2::SecurityMonitoringRuleQuery`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
21
+ module SecurityMonitoringRuleQuery
22
+ class << self
23
+ include BaseOneOfModel
24
+ include BaseOneOfModelNoDiscriminator
25
+
26
+ # List of class defined in oneOf (OpenAPI v3)
27
+ def openapi_one_of
28
+ [
29
+ :'SecurityMonitoringStandardRuleQuery',
30
+ :'SecurityMonitoringSignalRuleQuery'
31
+ ]
32
+ end
33
+ # Builds the object
34
+ # @param [Mixed] Data to be matched against the list of oneOf items
35
+ # @return [Object] Returns the model or the data itself
36
+ def build(data)
37
+ # Go through the list of oneOf items and attempt to identify the appropriate one.
38
+ # Note:
39
+ # - We do not attempt to check whether exactly one item matches.
40
+ # - No advanced validation of types in some cases (e.g. "x: { type: string }" will happily match { x: 123 })
41
+ # due to the way the deserialization is made in the base_object template (it just casts without verifying).
42
+ # - TODO: scalar values are de facto behaving as if they were nullable.
43
+ # - TODO: logging when debugging is set.
44
+ openapi_one_of.each do |klass|
45
+ begin
46
+ next if klass == :AnyType # "nullable: true"
47
+ typed_data = find_and_cast_into_type(klass, data)
48
+ next if typed_data._unparsed
49
+ return typed_data if typed_data
50
+ rescue # rescue all errors so we keep iterating even if the current item lookup raises
51
+ end
103
52
  end
104
- h[k.to_sym] = v
105
- }
106
-
107
- if attributes.key?(:'aggregation')
108
- self.aggregation = attributes[:'aggregation']
109
- end
110
53
 
111
- if attributes.key?(:'distinct_fields')
112
- if (value = attributes[:'distinct_fields']).is_a?(Array)
113
- self.distinct_fields = value
54
+ if openapi_one_of.include?(:AnyType)
55
+ data
56
+ else
57
+ self._unparsed = true
58
+ DatadogAPIClient::UnparsedObject.new(data)
114
59
  end
115
60
  end
116
-
117
- if attributes.key?(:'group_by_fields')
118
- if (value = attributes[:'group_by_fields']).is_a?(Array)
119
- self.group_by_fields = value
120
- end
121
- end
122
-
123
- if attributes.key?(:'metric')
124
- self.metric = attributes[:'metric']
125
- end
126
-
127
- if attributes.key?(:'metrics')
128
- if (value = attributes[:'metrics']).is_a?(Array)
129
- self.metrics = value
130
- end
131
- end
132
-
133
- if attributes.key?(:'name')
134
- self.name = attributes[:'name']
135
- end
136
-
137
- if attributes.key?(:'query')
138
- self.query = attributes[:'query']
139
- end
140
- end
141
-
142
- # Check to see if the all the properties in the model are valid
143
- # @return true if the model is valid
144
- # @!visibility private
145
- def valid?
146
- true
147
- end
148
-
149
- # Checks equality by comparing each attribute.
150
- # @param o [Object] Object to be compared
151
- # @!visibility private
152
- def ==(o)
153
- return true if self.equal?(o)
154
- self.class == o.class &&
155
- aggregation == o.aggregation &&
156
- distinct_fields == o.distinct_fields &&
157
- group_by_fields == o.group_by_fields &&
158
- metric == o.metric &&
159
- metrics == o.metrics &&
160
- name == o.name &&
161
- query == o.query
162
- end
163
-
164
- # @see the `==` method
165
- # @param o [Object] Object to be compared
166
- # @!visibility private
167
- def eql?(o)
168
- self == o
169
- end
170
-
171
- # Calculates hash code according to all attributes.
172
- # @return [Integer] Hash code
173
- # @!visibility private
174
- def hash
175
- [aggregation, distinct_fields, group_by_fields, metric, metrics, name, query].hash
176
61
  end
177
62
  end
178
63
  end
@@ -27,5 +27,6 @@ module DatadogAPIClient::V2
27
27
  MAX = "max".freeze
28
28
  NEW_VALUE = "new_value".freeze
29
29
  GEO_DATA = "geo_data".freeze
30
+ EVENT_COUNT = "event_count".freeze
30
31
  end
31
32
  end