datadog_api_client 2.17.0 → 2.19.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 (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