datadog_api_client 2.17.0 → 2.19.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (239) hide show
  1. checksums.yaml +4 -4
  2. data/.apigentools-info +4 -4
  3. data/.generator/conftest.py +1 -1
  4. data/.generator/poetry.lock +69 -69
  5. data/.generator/schemas/v1/openapi.yaml +334 -16
  6. data/.generator/schemas/v2/openapi.yaml +2864 -470
  7. data/.generator/src/generator/cli.py +5 -0
  8. data/.generator/src/generator/templates/datadog_api_client.j2 +19 -0
  9. data/.generator/src/generator/templates/model_generic.j2 +2 -2
  10. data/.pre-commit-config.yaml +1 -1
  11. data/CHANGELOG.md +43 -0
  12. data/examples/v1/aws-integration/CreateAWSAccount.rb +2 -2
  13. data/examples/v1/aws-integration/DeleteAWSAccount.rb +1 -1
  14. data/examples/v1/aws-integration/UpdateAWSAccount.rb +6 -6
  15. data/examples/v1/azure-integration/CreateAzureIntegration.rb +5 -4
  16. data/examples/v1/azure-integration/DeleteAzureIntegration.rb +2 -14
  17. data/examples/v1/azure-integration/UpdateAzureHostFilters.rb +1 -0
  18. data/examples/v1/azure-integration/UpdateAzureIntegration.rb +5 -4
  19. data/examples/v1/dashboards/CreateDashboard_1284514532.rb +3 -0
  20. data/examples/v1/gcp-integration/CreateGCPIntegration.rb +4 -5
  21. data/examples/v1/gcp-integration/DeleteGCPIntegration.rb +2 -14
  22. data/examples/v1/gcp-integration/UpdateGCPIntegration.rb +4 -5
  23. data/examples/v1/service-level-objectives/CreateSLO_3765703239.rb +46 -0
  24. data/examples/v1/synthetics/PatchTest.rb +22 -0
  25. data/examples/v2/ci-visibility-pipelines/CreateCIAppPipelineEvent.rb +0 -3
  26. data/examples/v2/ci-visibility-pipelines/CreateCIAppPipelineEvent_129899466.rb +0 -3
  27. data/examples/v2/cloud-cost-management/CreateCostAWSCURConfig.rb +18 -0
  28. data/examples/v2/cloud-cost-management/CreateCostAzureUCConfigs.rb +29 -0
  29. data/examples/v2/cloud-cost-management/DeleteCostAWSCURConfig.rb +5 -0
  30. data/examples/v2/cloud-cost-management/DeleteCostAzureUCConfig.rb +5 -0
  31. data/examples/v2/cloud-cost-management/GetCloudCostActivity.rb +5 -0
  32. data/examples/v2/cloud-cost-management/ListAWSRelatedAccounts.rb +5 -0
  33. data/examples/v2/cloud-cost-management/ListCostAWSCURConfigs.rb +5 -0
  34. data/examples/v2/cloud-cost-management/ListCostAzureUCConfigs.rb +5 -0
  35. data/examples/v2/cloud-cost-management/UpdateCostAWSCURConfig.rb +14 -0
  36. data/examples/v2/cloud-cost-management/UpdateCostAzureUCConfigs.rb +14 -0
  37. data/examples/v2/cloudflare-integration/CreateCloudflareAccount.rb +1 -1
  38. data/examples/v2/cloudflare-integration/UpdateCloudflareAccount.rb +4 -1
  39. data/examples/v2/container-images/ListContainerImages.rb +0 -3
  40. data/examples/v2/container-images/ListContainerImages_3088586393.rb +0 -3
  41. data/examples/v2/container-images/ListContainerImages_3974828736.rb +0 -3
  42. data/examples/v2/containers/ListContainers.rb +0 -3
  43. data/examples/v2/containers/ListContainers_2175733917.rb +0 -3
  44. data/examples/v2/containers/ListContainers_931009654.rb +0 -3
  45. data/examples/v2/dora-metrics/CreateDORADeployment.rb +23 -0
  46. data/examples/v2/dora-metrics/CreateDORAIncident.rb +25 -0
  47. data/examples/v2/downtimes/ListMonitorDowntimes_3316718253.rb +5 -0
  48. data/examples/v2/events/ListEvents.rb +0 -3
  49. data/examples/v2/events/ListEvents_1527584014.rb +0 -3
  50. data/examples/v2/events/ListEvents_2663715109.rb +0 -3
  51. data/examples/v2/events/SearchEvents.rb +0 -3
  52. data/examples/v2/events/SearchEvents_3856995058.rb +0 -3
  53. data/examples/v2/gcp-integration/CreateGCPSTSAccount_130557025.rb +16 -0
  54. data/examples/v2/gcp-integration/CreateGCPSTSAccount_2597004741.rb +16 -0
  55. data/examples/v2/gcp-integration/CreateGCPSTSAccount_4235664992.rb +17 -0
  56. data/examples/v2/gcp-integration/UpdateGCPSTSAccount_3205636354.rb +19 -0
  57. data/examples/v2/okta-integration/CreateOktaAccount.rb +19 -0
  58. data/examples/v2/okta-integration/DeleteOktaAccount.rb +5 -0
  59. data/examples/v2/okta-integration/GetOktaAccount.rb +8 -0
  60. data/examples/v2/okta-integration/ListOktaAccounts.rb +5 -0
  61. data/examples/v2/okta-integration/UpdateOktaAccount.rb +20 -0
  62. data/examples/v2/security-monitoring/CreateSecurityMonitoringRule_3367706049.rb +46 -0
  63. data/examples/v2/sensitive-data-scanner/CreateScanningRule.rb +7 -0
  64. data/examples/v2/sensitive-data-scanner/UpdateScanningRule.rb +7 -10
  65. data/examples/v2/teams/CreateTeamMembership.rb +6 -0
  66. data/examples/v2/usage-metering/GetActiveBillingDimensions.rb +8 -0
  67. data/examples/v2/usage-metering/GetMonthlyCostAttribution.rb +8 -0
  68. data/examples/v2/usage-metering/GetProjectedCost.rb +8 -0
  69. data/lib/datadog_api_client/configuration.rb +4 -5
  70. data/lib/datadog_api_client/inflector.rb +113 -0
  71. data/lib/datadog_api_client/v1/api/downtimes_api.rb +28 -7
  72. data/lib/datadog_api_client/v1/api/hosts_api.rb +1 -1
  73. data/lib/datadog_api_client/v1/api/monitors_api.rb +1 -1
  74. data/lib/datadog_api_client/v1/api/synthetics_api.rb +73 -1
  75. data/lib/datadog_api_client/v1/models/azure_account.rb +13 -2
  76. data/lib/datadog_api_client/v1/models/gcp_account.rb +22 -2
  77. data/lib/datadog_api_client/v1/models/organization.rb +1 -1
  78. data/lib/datadog_api_client/v1/models/service_level_objective.rb +11 -1
  79. data/lib/datadog_api_client/v1/models/service_level_objective_request.rb +11 -1
  80. data/lib/datadog_api_client/v1/models/slo_data_source_query_definition.rb +62 -0
  81. data/lib/datadog_api_client/v1/models/slo_formula.rb +98 -0
  82. data/lib/datadog_api_client/v1/models/slo_response_data.rb +11 -1
  83. data/lib/datadog_api_client/v1/models/slo_sli_spec.rb +62 -0
  84. data/lib/datadog_api_client/v1/models/slo_time_slice_comparator.rb +29 -0
  85. data/lib/datadog_api_client/v1/models/slo_time_slice_condition.rb +141 -0
  86. data/lib/datadog_api_client/v1/models/slo_time_slice_query.rb +131 -0
  87. data/lib/datadog_api_client/v1/models/slo_time_slice_spec.rb +99 -0
  88. data/lib/datadog_api_client/v1/models/slo_type.rb +1 -0
  89. data/lib/datadog_api_client/v1/models/slo_type_numeric.rb +1 -0
  90. data/lib/datadog_api_client/v1/models/synthetics_patch_test_body.rb +82 -0
  91. data/lib/datadog_api_client/v1/models/synthetics_patch_test_operation.rb +100 -0
  92. data/lib/datadog_api_client/v1/models/synthetics_patch_test_operation_name.rb +31 -0
  93. data/lib/datadog_api_client/v1/models/usage_summary_date.rb +11 -1
  94. data/lib/datadog_api_client/v1/models/usage_summary_date_org.rb +31 -1
  95. data/lib/datadog_api_client/v1/models/usage_summary_response.rb +31 -1
  96. data/lib/datadog_api_client/v1/models/widget_live_span.rb +2 -0
  97. data/lib/datadog_api_client/v2/api/ci_visibility_pipelines_api.rb +0 -6
  98. data/lib/datadog_api_client/v2/api/cloud_cost_management_api.rb +680 -0
  99. data/lib/datadog_api_client/v2/api/container_images_api.rb +0 -6
  100. data/lib/datadog_api_client/v2/api/containers_api.rb +0 -6
  101. data/lib/datadog_api_client/v2/api/dora_metrics_api.rb +181 -0
  102. data/lib/datadog_api_client/v2/api/downtimes_api.rb +25 -0
  103. data/lib/datadog_api_client/v2/api/events_api.rb +0 -12
  104. data/lib/datadog_api_client/v2/api/metrics_api.rb +3 -2
  105. data/lib/datadog_api_client/v2/api/okta_integration_api.rb +355 -0
  106. data/lib/datadog_api_client/v2/api/usage_metering_api.rb +241 -0
  107. data/lib/datadog_api_client/v2/models/active_billing_dimensions_attributes.rb +92 -0
  108. data/lib/datadog_api_client/v2/models/active_billing_dimensions_body.rb +100 -0
  109. data/lib/datadog_api_client/v2/models/active_billing_dimensions_response.rb +80 -0
  110. data/lib/datadog_api_client/v2/models/active_billing_dimensions_type.rb +26 -0
  111. data/lib/datadog_api_client/v2/models/api_keys_response.rb +14 -4
  112. data/lib/datadog_api_client/v2/models/api_keys_response_meta.rb +90 -0
  113. data/lib/datadog_api_client/v2/models/api_keys_response_meta_page.rb +80 -0
  114. data/lib/datadog_api_client/v2/models/application_key_response_meta.rb +90 -0
  115. data/lib/datadog_api_client/v2/models/application_key_response_meta_page.rb +80 -0
  116. data/lib/datadog_api_client/v2/models/aws_cur_config.rb +129 -0
  117. data/lib/datadog_api_client/v2/models/aws_cur_config_attributes.rb +305 -0
  118. data/lib/datadog_api_client/v2/models/aws_cur_config_patch_data.rb +119 -0
  119. data/lib/datadog_api_client/v2/models/aws_cur_config_patch_request.rb +98 -0
  120. data/lib/datadog_api_client/v2/models/aws_cur_config_patch_request_attributes.rb +98 -0
  121. data/lib/datadog_api_client/v2/models/aws_cur_config_patch_request_type.rb +26 -0
  122. data/lib/datadog_api_client/v2/models/aws_cur_config_post_data.rb +119 -0
  123. data/lib/datadog_api_client/v2/models/aws_cur_config_post_request.rb +98 -0
  124. data/lib/datadog_api_client/v2/models/aws_cur_config_post_request_attributes.rb +202 -0
  125. data/lib/datadog_api_client/v2/models/aws_cur_config_post_request_type.rb +26 -0
  126. data/lib/datadog_api_client/v2/models/aws_cur_config_response.rb +80 -0
  127. data/lib/datadog_api_client/v2/models/aws_cur_config_type.rb +26 -0
  128. data/lib/datadog_api_client/v2/models/aws_cur_configs_response.rb +82 -0
  129. data/lib/datadog_api_client/v2/models/aws_related_account.rb +129 -0
  130. data/lib/datadog_api_client/v2/models/aws_related_account_attributes.rb +90 -0
  131. data/lib/datadog_api_client/v2/models/aws_related_account_type.rb +26 -0
  132. data/lib/datadog_api_client/v2/models/aws_related_accounts_response.rb +82 -0
  133. data/lib/datadog_api_client/v2/models/azure_uc_config.rb +378 -0
  134. data/lib/datadog_api_client/v2/models/azure_uc_config_pair.rb +129 -0
  135. data/lib/datadog_api_client/v2/models/azure_uc_config_pair_attributes.rb +110 -0
  136. data/lib/datadog_api_client/v2/models/azure_uc_config_pair_type.rb +26 -0
  137. data/lib/datadog_api_client/v2/models/azure_uc_config_pairs_response.rb +80 -0
  138. data/lib/datadog_api_client/v2/models/azure_uc_config_patch_data.rb +119 -0
  139. data/lib/datadog_api_client/v2/models/azure_uc_config_patch_request.rb +98 -0
  140. data/lib/datadog_api_client/v2/models/azure_uc_config_patch_request_attributes.rb +98 -0
  141. data/lib/datadog_api_client/v2/models/azure_uc_config_patch_request_type.rb +26 -0
  142. data/lib/datadog_api_client/v2/models/azure_uc_config_post_data.rb +119 -0
  143. data/lib/datadog_api_client/v2/models/azure_uc_config_post_request.rb +98 -0
  144. data/lib/datadog_api_client/v2/models/azure_uc_config_post_request_attributes.rb +192 -0
  145. data/lib/datadog_api_client/v2/models/azure_uc_config_post_request_type.rb +26 -0
  146. data/lib/datadog_api_client/v2/models/azure_uc_configs_response.rb +82 -0
  147. data/lib/datadog_api_client/v2/models/bill_config.rb +161 -0
  148. data/lib/datadog_api_client/v2/models/ci_app_git_info.rb +2 -2
  149. data/lib/datadog_api_client/v2/models/cloud_cost_activity.rb +119 -0
  150. data/lib/datadog_api_client/v2/models/cloud_cost_activity_attributes.rb +98 -0
  151. data/lib/datadog_api_client/v2/models/cloud_cost_activity_response.rb +80 -0
  152. data/lib/datadog_api_client/v2/models/cloud_cost_activity_type.rb +26 -0
  153. data/lib/datadog_api_client/v2/models/cloud_workload_security_agent_rule_attributes.rb +13 -1
  154. data/lib/datadog_api_client/v2/models/cloudflare_account_create_request_attributes.rb +28 -4
  155. data/lib/datadog_api_client/v2/models/cloudflare_account_response_attributes.rb +28 -4
  156. data/lib/datadog_api_client/v2/models/cloudflare_account_update_request_attributes.rb +28 -4
  157. data/lib/datadog_api_client/v2/models/cost_attribution_aggregates_body.rb +100 -0
  158. data/lib/datadog_api_client/v2/models/cost_attribution_type.rb +26 -0
  159. data/lib/datadog_api_client/v2/models/dora_deployment_request.rb +98 -0
  160. data/lib/datadog_api_client/v2/models/dora_deployment_request_attributes.rb +170 -0
  161. data/lib/datadog_api_client/v2/models/dora_deployment_request_data.rb +98 -0
  162. data/lib/datadog_api_client/v2/models/dora_deployment_response.rb +98 -0
  163. data/lib/datadog_api_client/v2/models/dora_deployment_response_data.rb +108 -0
  164. data/lib/datadog_api_client/v2/models/dora_deployment_type.rb +26 -0
  165. data/lib/datadog_api_client/v2/models/dora_git_info.rb +125 -0
  166. data/lib/datadog_api_client/v2/models/dora_incident_request.rb +98 -0
  167. data/lib/datadog_api_client/v2/models/dora_incident_request_attributes.rb +179 -0
  168. data/lib/datadog_api_client/v2/models/dora_incident_request_data.rb +98 -0
  169. data/lib/datadog_api_client/v2/models/dora_incident_response.rb +98 -0
  170. data/lib/datadog_api_client/v2/models/dora_incident_response_data.rb +108 -0
  171. data/lib/datadog_api_client/v2/models/dora_incident_type.rb +26 -0
  172. data/lib/datadog_api_client/v2/models/full_api_key_attributes.rb +24 -4
  173. data/lib/datadog_api_client/v2/models/gcpsts_service_account_attributes.rb +25 -5
  174. data/lib/datadog_api_client/v2/models/incident_attachment_link_attributes.rb +14 -4
  175. data/lib/datadog_api_client/v2/models/incident_create_relationships.rb +9 -19
  176. data/lib/datadog_api_client/v2/models/incident_impacts_type.rb +26 -0
  177. data/lib/datadog_api_client/v2/models/incident_integration_metadata_attributes.rb +21 -1
  178. data/lib/datadog_api_client/v2/models/incident_integration_metadata_response_data.rb +11 -1
  179. data/lib/datadog_api_client/v2/models/incident_integration_relationships.rb +90 -0
  180. data/lib/datadog_api_client/v2/models/incident_non_datadog_creator.rb +90 -0
  181. data/lib/datadog_api_client/v2/models/incident_responders_type.rb +26 -0
  182. data/lib/datadog_api_client/v2/models/incident_response_attributes.rb +69 -4
  183. data/lib/datadog_api_client/v2/models/incident_response_relationships.rb +42 -4
  184. data/lib/datadog_api_client/v2/models/incident_severity.rb +31 -0
  185. data/lib/datadog_api_client/v2/models/incident_todo_attributes.rb +24 -4
  186. data/lib/datadog_api_client/v2/models/incident_todo_relationships.rb +90 -0
  187. data/lib/datadog_api_client/v2/models/incident_todo_response_data.rb +11 -1
  188. data/lib/datadog_api_client/v2/models/incident_update_relationships.rb +8 -0
  189. data/lib/datadog_api_client/v2/models/incident_user_defined_field_type.rb +26 -0
  190. data/lib/datadog_api_client/v2/models/list_application_keys_response.rb +14 -4
  191. data/lib/datadog_api_client/v2/models/monthly_cost_attribution_attributes.rb +151 -0
  192. data/lib/datadog_api_client/v2/models/monthly_cost_attribution_body.rb +100 -0
  193. data/lib/datadog_api_client/v2/models/monthly_cost_attribution_meta.rb +92 -0
  194. data/lib/datadog_api_client/v2/models/monthly_cost_attribution_pagination.rb +88 -0
  195. data/lib/datadog_api_client/v2/models/monthly_cost_attribution_response.rb +92 -0
  196. data/lib/datadog_api_client/v2/models/okta_account.rb +129 -0
  197. data/lib/datadog_api_client/v2/models/okta_account_attributes.rb +170 -0
  198. data/lib/datadog_api_client/v2/models/okta_account_request.rb +98 -0
  199. data/lib/datadog_api_client/v2/models/okta_account_response.rb +80 -0
  200. data/lib/datadog_api_client/v2/models/okta_account_response_data.rb +140 -0
  201. data/lib/datadog_api_client/v2/models/okta_account_type.rb +26 -0
  202. data/lib/datadog_api_client/v2/models/okta_account_update_request.rb +98 -0
  203. data/lib/datadog_api_client/v2/models/okta_account_update_request_attributes.rb +149 -0
  204. data/lib/datadog_api_client/v2/models/okta_account_update_request_data.rb +90 -0
  205. data/lib/datadog_api_client/v2/models/okta_accounts_response.rb +82 -0
  206. data/lib/datadog_api_client/v2/models/partial_api_key_attributes.rb +24 -4
  207. data/lib/datadog_api_client/v2/models/powerpack_relationships.rb +2 -2
  208. data/lib/datadog_api_client/v2/models/powerpacks_response_meta_pagination.rb +8 -0
  209. data/lib/datadog_api_client/v2/models/projected_cost.rb +100 -0
  210. data/lib/datadog_api_client/v2/models/projected_cost_attributes.rb +132 -0
  211. data/lib/datadog_api_client/v2/models/projected_cost_response.rb +82 -0
  212. data/lib/datadog_api_client/v2/models/projected_cost_type.rb +26 -0
  213. data/lib/datadog_api_client/v2/models/relationship_to_incident_impact_data.rb +119 -0
  214. data/lib/datadog_api_client/v2/models/relationship_to_incident_impacts.rb +100 -0
  215. data/lib/datadog_api_client/v2/models/relationship_to_incident_responder_data.rb +119 -0
  216. data/lib/datadog_api_client/v2/models/relationship_to_incident_responders.rb +100 -0
  217. data/lib/datadog_api_client/v2/models/relationship_to_incident_user_defined_field_data.rb +119 -0
  218. data/lib/datadog_api_client/v2/models/relationship_to_incident_user_defined_fields.rb +100 -0
  219. data/lib/datadog_api_client/v2/models/relationship_to_user_team_team.rb +98 -0
  220. data/lib/datadog_api_client/v2/models/relationship_to_user_team_team_data.rb +119 -0
  221. data/lib/datadog_api_client/v2/models/security_monitoring_rule_options.rb +14 -4
  222. data/lib/datadog_api_client/v2/models/security_monitoring_rule_third_party_options.rb +114 -0
  223. data/lib/datadog_api_client/v2/models/security_monitoring_rule_type_create.rb +1 -0
  224. data/lib/datadog_api_client/v2/models/security_monitoring_rule_update_payload.rb +13 -1
  225. data/lib/datadog_api_client/v2/models/security_monitoring_standard_rule_create_payload.rb +13 -1
  226. data/lib/datadog_api_client/v2/models/security_monitoring_standard_rule_response.rb +13 -1
  227. data/lib/datadog_api_client/v2/models/security_monitoring_third_party_root_query.rb +92 -0
  228. data/lib/datadog_api_client/v2/models/security_monitoring_third_party_rule_case.rb +112 -0
  229. data/lib/datadog_api_client/v2/models/security_monitoring_third_party_rule_case_create.rb +130 -0
  230. data/lib/datadog_api_client/v2/models/sensitive_data_scanner_included_keyword_configuration.rb +134 -0
  231. data/lib/datadog_api_client/v2/models/sensitive_data_scanner_rule_attributes.rb +46 -1
  232. data/lib/datadog_api_client/v2/models/sensitive_data_scanner_standard_pattern_attributes.rb +45 -1
  233. data/lib/datadog_api_client/v2/models/sort_direction.rb +27 -0
  234. data/lib/datadog_api_client/v2/models/user_team_attributes.rb +24 -1
  235. data/lib/datadog_api_client/v2/models/user_team_relationships.rb +11 -1
  236. data/lib/datadog_api_client/v2/models/user_team_team_type.rb +26 -0
  237. data/lib/datadog_api_client/version.rb +1 -1
  238. data/lib/datadog_api_client.rb +16 -1
  239. metadata +144 -2
@@ -47,9 +47,12 @@ module DatadogAPIClient::V1
47
47
  # Only hosts that match one of the defined tags are imported into Datadog.
48
48
  attr_accessor :host_filters
49
49
 
50
- # When enabled, Datadog performs configuration checks across your Google Cloud environment by continuously scanning every resource.
50
+ # When enabled, Datadog will activate the Cloud Security Monitoring product for this service account. Note: This requires resource_collection_enabled to be set to true.
51
51
  attr_accessor :is_cspm_enabled
52
52
 
53
+ # When enabled, Datadog will attempt to collect Security Command Center Findings. Note: This requires additional permissions on the service account.
54
+ attr_accessor :is_security_command_center_enabled
55
+
53
56
  # Your private key name found in your JSON service account key.
54
57
  attr_accessor :private_key
55
58
 
@@ -59,6 +62,9 @@ module DatadogAPIClient::V1
59
62
  # Your Google Cloud project ID found in your JSON service account key.
60
63
  attr_accessor :project_id
61
64
 
65
+ # When enabled, Datadog scans for all resources in your GCP environment.
66
+ attr_accessor :resource_collection_enabled
67
+
62
68
  # Should be `https://accounts.google.com/o/oauth2/token`.
63
69
  attr_accessor :token_uri
64
70
 
@@ -78,9 +84,11 @@ module DatadogAPIClient::V1
78
84
  :'errors' => :'errors',
79
85
  :'host_filters' => :'host_filters',
80
86
  :'is_cspm_enabled' => :'is_cspm_enabled',
87
+ :'is_security_command_center_enabled' => :'is_security_command_center_enabled',
81
88
  :'private_key' => :'private_key',
82
89
  :'private_key_id' => :'private_key_id',
83
90
  :'project_id' => :'project_id',
91
+ :'resource_collection_enabled' => :'resource_collection_enabled',
84
92
  :'token_uri' => :'token_uri',
85
93
  :'type' => :'type'
86
94
  }
@@ -99,9 +107,11 @@ module DatadogAPIClient::V1
99
107
  :'errors' => :'Array<String>',
100
108
  :'host_filters' => :'String',
101
109
  :'is_cspm_enabled' => :'Boolean',
110
+ :'is_security_command_center_enabled' => :'Boolean',
102
111
  :'private_key' => :'String',
103
112
  :'private_key_id' => :'String',
104
113
  :'project_id' => :'String',
114
+ :'resource_collection_enabled' => :'Boolean',
105
115
  :'token_uri' => :'String',
106
116
  :'type' => :'String'
107
117
  }
@@ -161,6 +171,10 @@ module DatadogAPIClient::V1
161
171
  self.is_cspm_enabled = attributes[:'is_cspm_enabled']
162
172
  end
163
173
 
174
+ if attributes.key?(:'is_security_command_center_enabled')
175
+ self.is_security_command_center_enabled = attributes[:'is_security_command_center_enabled']
176
+ end
177
+
164
178
  if attributes.key?(:'private_key')
165
179
  self.private_key = attributes[:'private_key']
166
180
  end
@@ -173,6 +187,10 @@ module DatadogAPIClient::V1
173
187
  self.project_id = attributes[:'project_id']
174
188
  end
175
189
 
190
+ if attributes.key?(:'resource_collection_enabled')
191
+ self.resource_collection_enabled = attributes[:'resource_collection_enabled']
192
+ end
193
+
176
194
  if attributes.key?(:'token_uri')
177
195
  self.token_uri = attributes[:'token_uri']
178
196
  end
@@ -197,9 +215,11 @@ module DatadogAPIClient::V1
197
215
  errors == o.errors &&
198
216
  host_filters == o.host_filters &&
199
217
  is_cspm_enabled == o.is_cspm_enabled &&
218
+ is_security_command_center_enabled == o.is_security_command_center_enabled &&
200
219
  private_key == o.private_key &&
201
220
  private_key_id == o.private_key_id &&
202
221
  project_id == o.project_id &&
222
+ resource_collection_enabled == o.resource_collection_enabled &&
203
223
  token_uri == o.token_uri &&
204
224
  type == o.type
205
225
  end
@@ -208,7 +228,7 @@ module DatadogAPIClient::V1
208
228
  # @return [Integer] Hash code
209
229
  # @!visibility private
210
230
  def hash
211
- [auth_provider_x509_cert_url, auth_uri, automute, client_email, client_id, client_x509_cert_url, errors, host_filters, is_cspm_enabled, private_key, private_key_id, project_id, token_uri, type].hash
231
+ [auth_provider_x509_cert_url, auth_uri, automute, client_email, client_id, client_x509_cert_url, errors, host_filters, is_cspm_enabled, is_security_command_center_enabled, private_key, private_key_id, project_id, resource_collection_enabled, token_uri, type].hash
212
232
  end
213
233
  end
214
234
  end
@@ -30,7 +30,7 @@ module DatadogAPIClient::V1
30
30
  # Description of the organization.
31
31
  attr_accessor :description
32
32
 
33
- # The name of the new child-organization, limited to 32 characters.
33
+ # The name of the child organization, limited to 32 characters.
34
34
  attr_reader :name
35
35
 
36
36
  # The `public_id` of the organization you are operating within.
@@ -73,6 +73,9 @@ module DatadogAPIClient::V1
73
73
  # min of all of those requests.
74
74
  attr_accessor :query
75
75
 
76
+ # A generic SLI specification. This is currently used for time-slice SLOs only.
77
+ attr_accessor :sli_specification
78
+
76
79
  # A list of tags associated with this service level objective.
77
80
  # Always included in service level objective responses (but may be empty).
78
81
  # Optional in create/update requests.
@@ -112,6 +115,7 @@ module DatadogAPIClient::V1
112
115
  :'monitor_tags' => :'monitor_tags',
113
116
  :'name' => :'name',
114
117
  :'query' => :'query',
118
+ :'sli_specification' => :'sli_specification',
115
119
  :'tags' => :'tags',
116
120
  :'target_threshold' => :'target_threshold',
117
121
  :'thresholds' => :'thresholds',
@@ -135,6 +139,7 @@ module DatadogAPIClient::V1
135
139
  :'monitor_tags' => :'Array<String>',
136
140
  :'name' => :'String',
137
141
  :'query' => :'ServiceLevelObjectiveQuery',
142
+ :'sli_specification' => :'SLOSliSpec',
138
143
  :'tags' => :'Array<String>',
139
144
  :'target_threshold' => :'Float',
140
145
  :'thresholds' => :'Array<SLOThreshold>',
@@ -214,6 +219,10 @@ module DatadogAPIClient::V1
214
219
  self.query = attributes[:'query']
215
220
  end
216
221
 
222
+ if attributes.key?(:'sli_specification')
223
+ self.sli_specification = attributes[:'sli_specification']
224
+ end
225
+
217
226
  if attributes.key?(:'tags')
218
227
  if (value = attributes[:'tags']).is_a?(Array)
219
228
  self.tags = value
@@ -299,6 +308,7 @@ module DatadogAPIClient::V1
299
308
  monitor_tags == o.monitor_tags &&
300
309
  name == o.name &&
301
310
  query == o.query &&
311
+ sli_specification == o.sli_specification &&
302
312
  tags == o.tags &&
303
313
  target_threshold == o.target_threshold &&
304
314
  thresholds == o.thresholds &&
@@ -311,7 +321,7 @@ module DatadogAPIClient::V1
311
321
  # @return [Integer] Hash code
312
322
  # @!visibility private
313
323
  def hash
314
- [created_at, creator, description, groups, id, modified_at, monitor_ids, monitor_tags, name, query, tags, target_threshold, thresholds, timeframe, type, warning_threshold].hash
324
+ [created_at, creator, description, groups, id, modified_at, monitor_ids, monitor_tags, name, query, sli_specification, tags, target_threshold, thresholds, timeframe, type, warning_threshold].hash
315
325
  end
316
326
  end
317
327
  end
@@ -47,6 +47,9 @@ module DatadogAPIClient::V1
47
47
  # min of all of those requests.
48
48
  attr_accessor :query
49
49
 
50
+ # A generic SLI specification. This is currently used for time-slice SLOs only.
51
+ attr_accessor :sli_specification
52
+
50
53
  # A list of tags associated with this service level objective.
51
54
  # Always included in service level objective responses (but may be empty).
52
55
  # Optional in create/update requests.
@@ -81,6 +84,7 @@ module DatadogAPIClient::V1
81
84
  :'monitor_ids' => :'monitor_ids',
82
85
  :'name' => :'name',
83
86
  :'query' => :'query',
87
+ :'sli_specification' => :'sli_specification',
84
88
  :'tags' => :'tags',
85
89
  :'target_threshold' => :'target_threshold',
86
90
  :'thresholds' => :'thresholds',
@@ -99,6 +103,7 @@ module DatadogAPIClient::V1
99
103
  :'monitor_ids' => :'Array<Integer>',
100
104
  :'name' => :'String',
101
105
  :'query' => :'ServiceLevelObjectiveQuery',
106
+ :'sli_specification' => :'SLOSliSpec',
102
107
  :'tags' => :'Array<String>',
103
108
  :'target_threshold' => :'Float',
104
109
  :'thresholds' => :'Array<SLOThreshold>',
@@ -156,6 +161,10 @@ module DatadogAPIClient::V1
156
161
  self.query = attributes[:'query']
157
162
  end
158
163
 
164
+ if attributes.key?(:'sli_specification')
165
+ self.sli_specification = attributes[:'sli_specification']
166
+ end
167
+
159
168
  if attributes.key?(:'tags')
160
169
  if (value = attributes[:'tags']).is_a?(Array)
161
170
  self.tags = value
@@ -236,6 +245,7 @@ module DatadogAPIClient::V1
236
245
  monitor_ids == o.monitor_ids &&
237
246
  name == o.name &&
238
247
  query == o.query &&
248
+ sli_specification == o.sli_specification &&
239
249
  tags == o.tags &&
240
250
  target_threshold == o.target_threshold &&
241
251
  thresholds == o.thresholds &&
@@ -248,7 +258,7 @@ module DatadogAPIClient::V1
248
258
  # @return [Integer] Hash code
249
259
  # @!visibility private
250
260
  def hash
251
- [description, groups, monitor_ids, name, query, tags, target_threshold, thresholds, timeframe, type, warning_threshold].hash
261
+ [description, groups, monitor_ids, name, query, sli_specification, tags, target_threshold, thresholds, timeframe, type, warning_threshold].hash
252
262
  end
253
263
  end
254
264
  end
@@ -0,0 +1,62 @@
1
+ =begin
2
+ #Datadog API V1 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::V1
20
+ # A formula and function query.
21
+ module SLODataSourceQueryDefinition
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
+ :'FormulaAndFunctionMetricQueryDefinition'
30
+ ]
31
+ end
32
+ # Builds the object
33
+ # @param data [Mixed] Data to be matched against the list of oneOf items
34
+ # @return [Object] Returns the model or the data itself
35
+ def build(data)
36
+ # Go through the list of oneOf items and attempt to identify the appropriate one.
37
+ # Note:
38
+ # - We do not attempt to check whether exactly one item matches.
39
+ # - No advanced validation of types in some cases (e.g. "x: { type: string }" will happily match { x: 123 })
40
+ # due to the way the deserialization is made in the base_object template (it just casts without verifying).
41
+ # - TODO: scalar values are de facto behaving as if they were nullable.
42
+ # - TODO: logging when debugging is set.
43
+ openapi_one_of.each do |klass|
44
+ begin
45
+ next if klass == :AnyType # "nullable: true"
46
+ typed_data = find_and_cast_into_type(klass, data)
47
+ next if typed_data.respond_to?(:_unparsed) && typed_data._unparsed
48
+ return typed_data if typed_data
49
+ rescue # rescue all errors so we keep iterating even if the current item lookup raises
50
+ end
51
+ end
52
+
53
+ if openapi_one_of.include?(:AnyType)
54
+ data
55
+ else
56
+ self._unparsed = true
57
+ DatadogAPIClient::UnparsedObject.new(data)
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,98 @@
1
+ =begin
2
+ #Datadog API V1 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::V1
20
+ # A formula that specifies how to combine the results of multiple queries.
21
+ class SLOFormula
22
+ include BaseGenericModel
23
+
24
+ # The formula string, which is an expression involving named queries.
25
+ attr_reader :formula
26
+
27
+ # Attribute mapping from ruby-style variable name to JSON key.
28
+ # @!visibility private
29
+ def self.attribute_map
30
+ {
31
+ :'formula' => :'formula'
32
+ }
33
+ end
34
+
35
+ # Attribute type mapping.
36
+ # @!visibility private
37
+ def self.openapi_types
38
+ {
39
+ :'formula' => :'String'
40
+ }
41
+ end
42
+
43
+ # Initializes the object
44
+ # @param attributes [Hash] Model attributes in the form of hash
45
+ # @!visibility private
46
+ def initialize(attributes = {})
47
+ if (!attributes.is_a?(Hash))
48
+ fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V1::SLOFormula` initialize method"
49
+ end
50
+
51
+ # check to see if the attribute exists and convert string to symbol for hash key
52
+ attributes = attributes.each_with_object({}) { |(k, v), h|
53
+ if (!self.class.attribute_map.key?(k.to_sym))
54
+ fail ArgumentError, "`#{k}` is not a valid attribute in `DatadogAPIClient::V1::SLOFormula`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
55
+ end
56
+ h[k.to_sym] = v
57
+ }
58
+
59
+ if attributes.key?(:'formula')
60
+ self.formula = attributes[:'formula']
61
+ end
62
+ end
63
+
64
+ # Check to see if the all the properties in the model are valid
65
+ # @return true if the model is valid
66
+ # @!visibility private
67
+ def valid?
68
+ return false if @formula.nil?
69
+ true
70
+ end
71
+
72
+ # Custom attribute writer method with validation
73
+ # @param formula [Object] Object to be assigned
74
+ # @!visibility private
75
+ def formula=(formula)
76
+ if formula.nil?
77
+ fail ArgumentError, 'invalid value for "formula", formula cannot be nil.'
78
+ end
79
+ @formula = formula
80
+ end
81
+
82
+ # Checks equality by comparing each attribute.
83
+ # @param o [Object] Object to be compared
84
+ # @!visibility private
85
+ def ==(o)
86
+ return true if self.equal?(o)
87
+ self.class == o.class &&
88
+ formula == o.formula
89
+ end
90
+
91
+ # Calculates hash code according to all attributes.
92
+ # @return [Integer] Hash code
93
+ # @!visibility private
94
+ def hash
95
+ [formula].hash
96
+ end
97
+ end
98
+ end
@@ -76,6 +76,9 @@ module DatadogAPIClient::V1
76
76
  # min of all of those requests.
77
77
  attr_accessor :query
78
78
 
79
+ # A generic SLI specification. This is currently used for time-slice SLOs only.
80
+ attr_accessor :sli_specification
81
+
79
82
  # A list of tags associated with this service level objective.
80
83
  # Always included in service level objective responses (but may be empty).
81
84
  # Optional in create/update requests.
@@ -116,6 +119,7 @@ module DatadogAPIClient::V1
116
119
  :'monitor_tags' => :'monitor_tags',
117
120
  :'name' => :'name',
118
121
  :'query' => :'query',
122
+ :'sli_specification' => :'sli_specification',
119
123
  :'tags' => :'tags',
120
124
  :'target_threshold' => :'target_threshold',
121
125
  :'thresholds' => :'thresholds',
@@ -140,6 +144,7 @@ module DatadogAPIClient::V1
140
144
  :'monitor_tags' => :'Array<String>',
141
145
  :'name' => :'String',
142
146
  :'query' => :'ServiceLevelObjectiveQuery',
147
+ :'sli_specification' => :'SLOSliSpec',
143
148
  :'tags' => :'Array<String>',
144
149
  :'target_threshold' => :'Float',
145
150
  :'thresholds' => :'Array<SLOThreshold>',
@@ -225,6 +230,10 @@ module DatadogAPIClient::V1
225
230
  self.query = attributes[:'query']
226
231
  end
227
232
 
233
+ if attributes.key?(:'sli_specification')
234
+ self.sli_specification = attributes[:'sli_specification']
235
+ end
236
+
228
237
  if attributes.key?(:'tags')
229
238
  if (value = attributes[:'tags']).is_a?(Array)
230
239
  self.tags = value
@@ -271,6 +280,7 @@ module DatadogAPIClient::V1
271
280
  monitor_tags == o.monitor_tags &&
272
281
  name == o.name &&
273
282
  query == o.query &&
283
+ sli_specification == o.sli_specification &&
274
284
  tags == o.tags &&
275
285
  target_threshold == o.target_threshold &&
276
286
  thresholds == o.thresholds &&
@@ -283,7 +293,7 @@ module DatadogAPIClient::V1
283
293
  # @return [Integer] Hash code
284
294
  # @!visibility private
285
295
  def hash
286
- [configured_alert_ids, created_at, creator, description, groups, id, modified_at, monitor_ids, monitor_tags, name, query, tags, target_threshold, thresholds, timeframe, type, warning_threshold].hash
296
+ [configured_alert_ids, created_at, creator, description, groups, id, modified_at, monitor_ids, monitor_tags, name, query, sli_specification, tags, target_threshold, thresholds, timeframe, type, warning_threshold].hash
287
297
  end
288
298
  end
289
299
  end
@@ -0,0 +1,62 @@
1
+ =begin
2
+ #Datadog API V1 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::V1
20
+ # A generic SLI specification. This is currently used for time-slice SLOs only.
21
+ module SLOSliSpec
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
+ :'SLOTimeSliceSpec'
30
+ ]
31
+ end
32
+ # Builds the object
33
+ # @param data [Mixed] Data to be matched against the list of oneOf items
34
+ # @return [Object] Returns the model or the data itself
35
+ def build(data)
36
+ # Go through the list of oneOf items and attempt to identify the appropriate one.
37
+ # Note:
38
+ # - We do not attempt to check whether exactly one item matches.
39
+ # - No advanced validation of types in some cases (e.g. "x: { type: string }" will happily match { x: 123 })
40
+ # due to the way the deserialization is made in the base_object template (it just casts without verifying).
41
+ # - TODO: scalar values are de facto behaving as if they were nullable.
42
+ # - TODO: logging when debugging is set.
43
+ openapi_one_of.each do |klass|
44
+ begin
45
+ next if klass == :AnyType # "nullable: true"
46
+ typed_data = find_and_cast_into_type(klass, data)
47
+ next if typed_data.respond_to?(:_unparsed) && typed_data._unparsed
48
+ return typed_data if typed_data
49
+ rescue # rescue all errors so we keep iterating even if the current item lookup raises
50
+ end
51
+ end
52
+
53
+ if openapi_one_of.include?(:AnyType)
54
+ data
55
+ else
56
+ self._unparsed = true
57
+ DatadogAPIClient::UnparsedObject.new(data)
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,29 @@
1
+ =begin
2
+ #Datadog API V1 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::V1
20
+ # The comparator used to compare the SLI value to the threshold.
21
+ class SLOTimeSliceComparator
22
+ include BaseEnumModel
23
+
24
+ GREATER = ">".freeze
25
+ GREATER_EQUAL = ">=".freeze
26
+ LESS = "<".freeze
27
+ LESS_EQUAL = "<=".freeze
28
+ end
29
+ end
@@ -0,0 +1,141 @@
1
+ =begin
2
+ #Datadog API V1 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::V1
20
+ # The time-slice condition, composed of 3 parts: 1. the metric timeseries query, 2. the comparator,
21
+ # and 3. the threshold.
22
+ class SLOTimeSliceCondition
23
+ include BaseGenericModel
24
+
25
+ # The comparator used to compare the SLI value to the threshold.
26
+ attr_reader :comparator
27
+
28
+ # The queries and formula used to calculate the SLI value.
29
+ attr_reader :query
30
+
31
+ # The threshold value to which each SLI value will be compared.
32
+ attr_reader :threshold
33
+
34
+ # Attribute mapping from ruby-style variable name to JSON key.
35
+ # @!visibility private
36
+ def self.attribute_map
37
+ {
38
+ :'comparator' => :'comparator',
39
+ :'query' => :'query',
40
+ :'threshold' => :'threshold'
41
+ }
42
+ end
43
+
44
+ # Attribute type mapping.
45
+ # @!visibility private
46
+ def self.openapi_types
47
+ {
48
+ :'comparator' => :'SLOTimeSliceComparator',
49
+ :'query' => :'SLOTimeSliceQuery',
50
+ :'threshold' => :'Float'
51
+ }
52
+ end
53
+
54
+ # Initializes the object
55
+ # @param attributes [Hash] Model attributes in the form of hash
56
+ # @!visibility private
57
+ def initialize(attributes = {})
58
+ if (!attributes.is_a?(Hash))
59
+ fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V1::SLOTimeSliceCondition` initialize method"
60
+ end
61
+
62
+ # check to see if the attribute exists and convert string to symbol for hash key
63
+ attributes = attributes.each_with_object({}) { |(k, v), h|
64
+ if (!self.class.attribute_map.key?(k.to_sym))
65
+ fail ArgumentError, "`#{k}` is not a valid attribute in `DatadogAPIClient::V1::SLOTimeSliceCondition`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
66
+ end
67
+ h[k.to_sym] = v
68
+ }
69
+
70
+ if attributes.key?(:'comparator')
71
+ self.comparator = attributes[:'comparator']
72
+ end
73
+
74
+ if attributes.key?(:'query')
75
+ self.query = attributes[:'query']
76
+ end
77
+
78
+ if attributes.key?(:'threshold')
79
+ self.threshold = attributes[:'threshold']
80
+ end
81
+ end
82
+
83
+ # Check to see if the all the properties in the model are valid
84
+ # @return true if the model is valid
85
+ # @!visibility private
86
+ def valid?
87
+ return false if @comparator.nil?
88
+ return false if @query.nil?
89
+ return false if @threshold.nil?
90
+ true
91
+ end
92
+
93
+ # Custom attribute writer method with validation
94
+ # @param comparator [Object] Object to be assigned
95
+ # @!visibility private
96
+ def comparator=(comparator)
97
+ if comparator.nil?
98
+ fail ArgumentError, 'invalid value for "comparator", comparator cannot be nil.'
99
+ end
100
+ @comparator = comparator
101
+ end
102
+
103
+ # Custom attribute writer method with validation
104
+ # @param query [Object] Object to be assigned
105
+ # @!visibility private
106
+ def query=(query)
107
+ if query.nil?
108
+ fail ArgumentError, 'invalid value for "query", query cannot be nil.'
109
+ end
110
+ @query = query
111
+ end
112
+
113
+ # Custom attribute writer method with validation
114
+ # @param threshold [Object] Object to be assigned
115
+ # @!visibility private
116
+ def threshold=(threshold)
117
+ if threshold.nil?
118
+ fail ArgumentError, 'invalid value for "threshold", threshold cannot be nil.'
119
+ end
120
+ @threshold = threshold
121
+ end
122
+
123
+ # Checks equality by comparing each attribute.
124
+ # @param o [Object] Object to be compared
125
+ # @!visibility private
126
+ def ==(o)
127
+ return true if self.equal?(o)
128
+ self.class == o.class &&
129
+ comparator == o.comparator &&
130
+ query == o.query &&
131
+ threshold == o.threshold
132
+ end
133
+
134
+ # Calculates hash code according to all attributes.
135
+ # @return [Integer] Hash code
136
+ # @!visibility private
137
+ def hash
138
+ [comparator, query, threshold].hash
139
+ end
140
+ end
141
+ end