oci 2.5.1 → 2.5.2

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 (378) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +17 -2
  3. data/lib/oci.rb +1 -0
  4. data/lib/oci/autoscaling/auto_scaling_client.rb +5 -5
  5. data/lib/oci/autoscaling/models/auto_scaling_configuration.rb +2 -2
  6. data/lib/oci/autoscaling/models/create_auto_scaling_configuration_details.rb +2 -2
  7. data/lib/oci/autoscaling/models/update_auto_scaling_configuration_details.rb +2 -2
  8. data/lib/oci/budget/budget.rb +33 -0
  9. data/lib/oci/budget/budget_client.rb +767 -0
  10. data/lib/oci/budget/budget_client_composite_operations.rb +224 -0
  11. data/lib/oci/budget/models/alert_rule.rb +398 -0
  12. data/lib/oci/budget/models/alert_rule_summary.rb +396 -0
  13. data/lib/oci/budget/models/alert_type.rb +10 -0
  14. data/lib/oci/budget/models/budget.rb +413 -0
  15. data/lib/oci/budget/models/budget_summary.rb +413 -0
  16. data/lib/oci/budget/models/create_alert_rule_details.rb +288 -0
  17. data/lib/oci/budget/models/create_budget_details.rb +267 -0
  18. data/lib/oci/budget/models/lifecycle_state.rb +10 -0
  19. data/lib/oci/budget/models/reset_period.rb +9 -0
  20. data/lib/oci/budget/models/sort_by.rb +10 -0
  21. data/lib/oci/budget/models/sort_order.rb +10 -0
  22. data/lib/oci/budget/models/threshold_type.rb +10 -0
  23. data/lib/oci/budget/models/update_alert_rule_details.rb +288 -0
  24. data/lib/oci/budget/models/update_budget_details.rb +239 -0
  25. data/lib/oci/budget/util.rb +2 -0
  26. data/lib/oci/core/blockstorage_client.rb +35 -35
  27. data/lib/oci/core/compute_client.rb +41 -41
  28. data/lib/oci/core/compute_management_client.rb +6 -6
  29. data/lib/oci/core/models/app_catalog_listing_resource_version.rb +1 -1
  30. data/lib/oci/core/models/attach_vnic_details.rb +1 -1
  31. data/lib/oci/core/models/boot_volume.rb +4 -4
  32. data/lib/oci/core/models/boot_volume_backup.rb +4 -4
  33. data/lib/oci/core/models/capture_console_history_details.rb +2 -2
  34. data/lib/oci/core/models/console_history.rb +2 -2
  35. data/lib/oci/core/models/cpe.rb +4 -4
  36. data/lib/oci/core/models/create_boot_volume_backup_details.rb +2 -2
  37. data/lib/oci/core/models/create_boot_volume_details.rb +2 -2
  38. data/lib/oci/core/models/create_cpe_details.rb +2 -2
  39. data/lib/oci/core/models/create_dhcp_details.rb +2 -2
  40. data/lib/oci/core/models/create_drg_attachment_details.rb +1 -1
  41. data/lib/oci/core/models/create_drg_details.rb +2 -2
  42. data/lib/oci/core/models/create_image_details.rb +2 -2
  43. data/lib/oci/core/models/create_instance_configuration_details.rb +2 -2
  44. data/lib/oci/core/models/create_instance_console_connection_details.rb +2 -2
  45. data/lib/oci/core/models/create_instance_pool_details.rb +2 -2
  46. data/lib/oci/core/models/create_internet_gateway_details.rb +2 -2
  47. data/lib/oci/core/models/create_ip_sec_connection_details.rb +2 -2
  48. data/lib/oci/core/models/create_local_peering_gateway_details.rb +3 -3
  49. data/lib/oci/core/models/create_nat_gateway_details.rb +4 -4
  50. data/lib/oci/core/models/create_private_ip_details.rb +3 -3
  51. data/lib/oci/core/models/create_public_ip_details.rb +3 -3
  52. data/lib/oci/core/models/create_route_table_details.rb +2 -2
  53. data/lib/oci/core/models/create_security_list_details.rb +2 -2
  54. data/lib/oci/core/models/create_service_gateway_details.rb +4 -4
  55. data/lib/oci/core/models/create_subnet_details.rb +3 -3
  56. data/lib/oci/core/models/create_vcn_details.rb +3 -3
  57. data/lib/oci/core/models/create_vnic_details.rb +7 -7
  58. data/lib/oci/core/models/create_volume_backup_details.rb +2 -2
  59. data/lib/oci/core/models/create_volume_details.rb +2 -2
  60. data/lib/oci/core/models/create_volume_group_backup_details.rb +2 -2
  61. data/lib/oci/core/models/create_volume_group_details.rb +2 -2
  62. data/lib/oci/core/models/cross_connect.rb +2 -2
  63. data/lib/oci/core/models/cross_connect_group.rb +2 -2
  64. data/lib/oci/core/models/dhcp_dns_option.rb +2 -2
  65. data/lib/oci/core/models/dhcp_option.rb +2 -2
  66. data/lib/oci/core/models/dhcp_options.rb +5 -5
  67. data/lib/oci/core/models/dhcp_search_domain_option.rb +1 -1
  68. data/lib/oci/core/models/drg.rb +4 -4
  69. data/lib/oci/core/models/drg_attachment.rb +2 -2
  70. data/lib/oci/core/models/export_image_via_object_storage_uri_details.rb +2 -2
  71. data/lib/oci/core/models/fast_connect_provider_service.rb +1 -1
  72. data/lib/oci/core/models/image.rb +4 -4
  73. data/lib/oci/core/models/instance.rb +5 -5
  74. data/lib/oci/core/models/instance_configuration.rb +2 -2
  75. data/lib/oci/core/models/instance_configuration_attach_vnic_details.rb +1 -1
  76. data/lib/oci/core/models/instance_configuration_create_volume_details.rb +2 -2
  77. data/lib/oci/core/models/instance_configuration_launch_instance_details.rb +3 -3
  78. data/lib/oci/core/models/instance_console_connection.rb +3 -3
  79. data/lib/oci/core/models/instance_pool.rb +2 -2
  80. data/lib/oci/core/models/internet_gateway.rb +4 -4
  81. data/lib/oci/core/models/ip_sec_connection.rb +4 -4
  82. data/lib/oci/core/models/launch_instance_details.rb +3 -3
  83. data/lib/oci/core/models/local_peering_gateway.rb +5 -5
  84. data/lib/oci/core/models/nat_gateway.rb +7 -7
  85. data/lib/oci/core/models/peer_region_for_remote_peering.rb +1 -1
  86. data/lib/oci/core/models/private_ip.rb +5 -5
  87. data/lib/oci/core/models/public_ip.rb +4 -4
  88. data/lib/oci/core/models/remote_peering_connection.rb +2 -2
  89. data/lib/oci/core/models/route_rule.rb +1 -1
  90. data/lib/oci/core/models/route_table.rb +4 -4
  91. data/lib/oci/core/models/security_list.rb +4 -4
  92. data/lib/oci/core/models/service.rb +1 -1
  93. data/lib/oci/core/models/service_gateway.rb +7 -7
  94. data/lib/oci/core/models/service_id_request_details.rb +1 -1
  95. data/lib/oci/core/models/service_id_response_details.rb +1 -1
  96. data/lib/oci/core/models/shape.rb +1 -1
  97. data/lib/oci/core/models/subnet.rb +7 -7
  98. data/lib/oci/core/models/update_boot_volume_backup_details.rb +2 -2
  99. data/lib/oci/core/models/update_boot_volume_details.rb +2 -2
  100. data/lib/oci/core/models/update_console_history_details.rb +2 -2
  101. data/lib/oci/core/models/update_cpe_details.rb +2 -2
  102. data/lib/oci/core/models/update_dhcp_details.rb +2 -2
  103. data/lib/oci/core/models/update_drg_attachment_details.rb +1 -1
  104. data/lib/oci/core/models/update_drg_details.rb +2 -2
  105. data/lib/oci/core/models/update_image_details.rb +2 -2
  106. data/lib/oci/core/models/update_instance_configuration_details.rb +2 -2
  107. data/lib/oci/core/models/update_instance_details.rb +2 -2
  108. data/lib/oci/core/models/update_instance_pool_details.rb +2 -2
  109. data/lib/oci/core/models/update_internet_gateway_details.rb +2 -2
  110. data/lib/oci/core/models/update_ip_sec_connection_details.rb +2 -2
  111. data/lib/oci/core/models/update_local_peering_gateway_details.rb +3 -3
  112. data/lib/oci/core/models/update_nat_gateway_details.rb +2 -2
  113. data/lib/oci/core/models/update_private_ip_details.rb +3 -3
  114. data/lib/oci/core/models/update_public_ip_details.rb +2 -2
  115. data/lib/oci/core/models/update_route_table_details.rb +2 -2
  116. data/lib/oci/core/models/update_security_list_details.rb +2 -2
  117. data/lib/oci/core/models/update_service_gateway_details.rb +2 -2
  118. data/lib/oci/core/models/update_subnet_details.rb +2 -2
  119. data/lib/oci/core/models/update_vcn_details.rb +2 -2
  120. data/lib/oci/core/models/update_vnic_details.rb +4 -4
  121. data/lib/oci/core/models/update_volume_backup_details.rb +2 -2
  122. data/lib/oci/core/models/update_volume_details.rb +2 -2
  123. data/lib/oci/core/models/update_volume_group_backup_details.rb +2 -2
  124. data/lib/oci/core/models/update_volume_group_details.rb +2 -2
  125. data/lib/oci/core/models/vcn.rb +6 -6
  126. data/lib/oci/core/models/virtual_circuit.rb +4 -4
  127. data/lib/oci/core/models/virtual_circuit_public_prefix.rb +1 -1
  128. data/lib/oci/core/models/vnic.rb +7 -7
  129. data/lib/oci/core/models/vnic_attachment.rb +2 -2
  130. data/lib/oci/core/models/volume.rb +4 -4
  131. data/lib/oci/core/models/volume_attachment.rb +1 -1
  132. data/lib/oci/core/models/volume_backup.rb +4 -4
  133. data/lib/oci/core/models/volume_group.rb +3 -3
  134. data/lib/oci/core/models/volume_group_backup.rb +4 -4
  135. data/lib/oci/core/virtual_network_client.rb +121 -121
  136. data/lib/oci/core/virtual_network_client_composite_operations.rb +6 -6
  137. data/lib/oci/database/database.rb +4 -0
  138. data/lib/oci/database/database_client.rb +202 -78
  139. data/lib/oci/database/database_client_composite_operations.rb +65 -25
  140. data/lib/oci/database/models/autonomous_data_warehouse.rb +4 -4
  141. data/lib/oci/database/models/autonomous_data_warehouse_backup.rb +3 -3
  142. data/lib/oci/database/models/autonomous_data_warehouse_backup_summary.rb +4 -4
  143. data/lib/oci/database/models/autonomous_data_warehouse_summary.rb +4 -4
  144. data/lib/oci/database/models/autonomous_database.rb +43 -8
  145. data/lib/oci/database/models/autonomous_database_backup.rb +3 -3
  146. data/lib/oci/database/models/autonomous_database_backup_summary.rb +4 -4
  147. data/lib/oci/database/models/autonomous_database_summary.rb +43 -8
  148. data/lib/oci/database/models/backup.rb +3 -3
  149. data/lib/oci/database/models/backup_summary.rb +4 -4
  150. data/lib/oci/database/models/create_autonomous_data_warehouse_backup_details.rb +1 -1
  151. data/lib/oci/database/models/create_autonomous_data_warehouse_details.rb +3 -3
  152. data/lib/oci/database/models/create_autonomous_database_backup_details.rb +1 -1
  153. data/lib/oci/database/models/create_autonomous_database_details.rb +33 -4
  154. data/lib/oci/database/models/create_backup_details.rb +1 -1
  155. data/lib/oci/database/models/create_data_guard_association_to_existing_db_system_details.rb +1 -1
  156. data/lib/oci/database/models/create_data_guard_association_with_new_db_system_details.rb +1 -1
  157. data/lib/oci/database/models/create_database_details.rb +2 -2
  158. data/lib/oci/database/models/create_database_from_backup_details.rb +1 -1
  159. data/lib/oci/database/models/create_db_home_with_db_system_id_base.rb +1 -1
  160. data/lib/oci/database/models/create_external_backup_job_details.rb +1 -1
  161. data/lib/oci/database/models/data_guard_association.rb +6 -6
  162. data/lib/oci/database/models/data_guard_association_summary.rb +9 -9
  163. data/lib/oci/database/models/database.rb +5 -5
  164. data/lib/oci/database/models/database_summary.rb +7 -7
  165. data/lib/oci/database/models/db_backup_config.rb +1 -1
  166. data/lib/oci/database/models/db_home.rb +4 -4
  167. data/lib/oci/database/models/db_home_summary.rb +6 -6
  168. data/lib/oci/database/models/db_iorm_config.rb +181 -0
  169. data/lib/oci/database/models/db_iorm_config_update_detail.rb +166 -0
  170. data/lib/oci/database/models/db_node.rb +4 -4
  171. data/lib/oci/database/models/db_node_summary.rb +5 -5
  172. data/lib/oci/database/models/db_system.rb +41 -11
  173. data/lib/oci/database/models/db_system_shape_summary.rb +2 -2
  174. data/lib/oci/database/models/db_system_summary.rb +30 -16
  175. data/lib/oci/database/models/db_version_summary.rb +1 -1
  176. data/lib/oci/database/models/exadata_iorm_config.rb +247 -0
  177. data/lib/oci/database/models/exadata_iorm_config_update_details.rb +186 -0
  178. data/lib/oci/database/models/external_backup_job.rb +2 -2
  179. data/lib/oci/database/models/launch_db_system_base.rb +24 -10
  180. data/lib/oci/database/models/launch_db_system_details.rb +5 -1
  181. data/lib/oci/database/models/launch_db_system_from_backup_details.rb +5 -1
  182. data/lib/oci/database/models/patch.rb +1 -1
  183. data/lib/oci/database/models/patch_details.rb +1 -1
  184. data/lib/oci/database/models/patch_history_entry.rb +2 -2
  185. data/lib/oci/database/models/patch_history_entry_summary.rb +2 -2
  186. data/lib/oci/database/models/patch_summary.rb +2 -2
  187. data/lib/oci/database/models/update_autonomous_data_warehouse_details.rb +2 -2
  188. data/lib/oci/database/models/update_autonomous_database_details.rb +2 -2
  189. data/lib/oci/database/models/update_database_details.rb +2 -2
  190. data/lib/oci/database/models/update_db_system_details.rb +2 -2
  191. data/lib/oci/dns/dns_client.rb +1 -1
  192. data/lib/oci/dns/models/create_steering_policy_details.rb +1 -1
  193. data/lib/oci/dns/models/create_zone_details.rb +1 -1
  194. data/lib/oci/dns/models/record.rb +1 -1
  195. data/lib/oci/dns/models/record_details.rb +1 -1
  196. data/lib/oci/dns/models/record_operation.rb +1 -1
  197. data/lib/oci/dns/models/steering_policy.rb +1 -1
  198. data/lib/oci/dns/models/steering_policy_summary.rb +1 -1
  199. data/lib/oci/dns/models/update_steering_policy_details.rb +1 -1
  200. data/lib/oci/dns/models/update_zone_details.rb +1 -1
  201. data/lib/oci/dns/models/zone.rb +1 -1
  202. data/lib/oci/dns/models/zone_summary.rb +1 -1
  203. data/lib/oci/email/email_client.rb +3 -3
  204. data/lib/oci/email/models/create_sender_details.rb +2 -2
  205. data/lib/oci/email/models/sender.rb +2 -2
  206. data/lib/oci/email/models/sender_summary.rb +2 -2
  207. data/lib/oci/email/models/update_sender_details.rb +2 -2
  208. data/lib/oci/file_storage/file_storage_client.rb +14 -14
  209. data/lib/oci/file_storage/models/create_file_system_details.rb +2 -2
  210. data/lib/oci/file_storage/models/create_mount_target_details.rb +3 -3
  211. data/lib/oci/file_storage/models/create_snapshot_details.rb +2 -2
  212. data/lib/oci/file_storage/models/export.rb +1 -1
  213. data/lib/oci/file_storage/models/file_system.rb +3 -3
  214. data/lib/oci/file_storage/models/mount_target.rb +2 -2
  215. data/lib/oci/file_storage/models/snapshot.rb +2 -2
  216. data/lib/oci/file_storage/models/update_file_system_details.rb +2 -2
  217. data/lib/oci/file_storage/models/update_mount_target_details.rb +2 -2
  218. data/lib/oci/file_storage/models/update_snapshot_details.rb +2 -2
  219. data/lib/oci/healthchecks/models/create_http_monitor_details.rb +2 -2
  220. data/lib/oci/healthchecks/models/create_ping_monitor_details.rb +2 -2
  221. data/lib/oci/healthchecks/models/http_monitor.rb +2 -2
  222. data/lib/oci/healthchecks/models/http_monitor_summary.rb +2 -2
  223. data/lib/oci/healthchecks/models/ping_monitor.rb +2 -2
  224. data/lib/oci/healthchecks/models/ping_monitor_summary.rb +2 -2
  225. data/lib/oci/healthchecks/models/update_http_monitor_details.rb +2 -2
  226. data/lib/oci/healthchecks/models/update_ping_monitor_details.rb +2 -2
  227. data/lib/oci/identity/identity.rb +7 -0
  228. data/lib/oci/identity/identity_client.rb +461 -36
  229. data/lib/oci/identity/identity_client_composite_operations.rb +119 -0
  230. data/lib/oci/identity/models/api_key.rb +2 -2
  231. data/lib/oci/identity/models/auth_token.rb +1 -1
  232. data/lib/oci/identity/models/authentication_policy.rb +168 -0
  233. data/lib/oci/identity/models/availability_domain.rb +1 -1
  234. data/lib/oci/identity/models/compartment.rb +5 -5
  235. data/lib/oci/identity/models/create_compartment_details.rb +2 -2
  236. data/lib/oci/identity/models/create_dynamic_group_details.rb +1 -1
  237. data/lib/oci/identity/models/create_group_details.rb +2 -2
  238. data/lib/oci/identity/models/create_identity_provider_details.rb +2 -2
  239. data/lib/oci/identity/models/create_policy_details.rb +4 -4
  240. data/lib/oci/identity/models/create_tag_default_details.rb +180 -0
  241. data/lib/oci/identity/models/create_tag_details.rb +2 -2
  242. data/lib/oci/identity/models/create_tag_namespace_details.rb +2 -2
  243. data/lib/oci/identity/models/create_user_details.rb +13 -3
  244. data/lib/oci/identity/models/customer_secret_key.rb +2 -2
  245. data/lib/oci/identity/models/dynamic_group.rb +2 -2
  246. data/lib/oci/identity/models/group.rb +5 -5
  247. data/lib/oci/identity/models/identity_provider.rb +4 -4
  248. data/lib/oci/identity/models/idp_group_mapping.rb +1 -1
  249. data/lib/oci/identity/models/mfa_totp_device.rb +20 -9
  250. data/lib/oci/identity/models/mfa_totp_device_summary.rb +7 -1
  251. data/lib/oci/identity/models/password_policy.rb +234 -0
  252. data/lib/oci/identity/models/policy.rb +4 -4
  253. data/lib/oci/identity/models/region.rb +2 -2
  254. data/lib/oci/identity/models/region_subscription.rb +2 -2
  255. data/lib/oci/identity/models/saml2_identity_provider.rb +1 -1
  256. data/lib/oci/identity/models/smtp_credential.rb +1 -1
  257. data/lib/oci/identity/models/smtp_credential_summary.rb +1 -1
  258. data/lib/oci/identity/models/swift_password.rb +1 -1
  259. data/lib/oci/identity/models/tag.rb +4 -4
  260. data/lib/oci/identity/models/tag_default.rb +280 -0
  261. data/lib/oci/identity/models/tag_default_summary.rb +274 -0
  262. data/lib/oci/identity/models/tag_namespace.rb +4 -4
  263. data/lib/oci/identity/models/tag_namespace_summary.rb +3 -3
  264. data/lib/oci/identity/models/tag_summary.rb +3 -3
  265. data/lib/oci/identity/models/tenancy.rb +4 -4
  266. data/lib/oci/identity/models/ui_password.rb +1 -1
  267. data/lib/oci/identity/models/update_authentication_policy_details.rb +154 -0
  268. data/lib/oci/identity/models/update_compartment_details.rb +2 -2
  269. data/lib/oci/identity/models/update_dynamic_group_details.rb +1 -1
  270. data/lib/oci/identity/models/update_group_details.rb +2 -2
  271. data/lib/oci/identity/models/update_identity_provider_details.rb +2 -2
  272. data/lib/oci/identity/models/update_policy_details.rb +4 -4
  273. data/lib/oci/identity/models/update_tag_default_details.rb +150 -0
  274. data/lib/oci/identity/models/update_tag_details.rb +3 -3
  275. data/lib/oci/identity/models/update_tag_namespace_details.rb +3 -3
  276. data/lib/oci/identity/models/update_user_details.rb +13 -3
  277. data/lib/oci/identity/models/user.rb +19 -7
  278. data/lib/oci/load_balancer/load_balancer_client.rb +64 -64
  279. data/lib/oci/load_balancer/load_balancer_client_composite_operations.rb +23 -23
  280. data/lib/oci/load_balancer/models/backend.rb +2 -2
  281. data/lib/oci/load_balancer/models/backend_details.rb +1 -1
  282. data/lib/oci/load_balancer/models/backend_set.rb +1 -1
  283. data/lib/oci/load_balancer/models/backend_set_details.rb +1 -1
  284. data/lib/oci/load_balancer/models/certificate.rb +1 -1
  285. data/lib/oci/load_balancer/models/certificate_details.rb +1 -1
  286. data/lib/oci/load_balancer/models/connection_configuration.rb +1 -1
  287. data/lib/oci/load_balancer/models/create_backend_details.rb +2 -2
  288. data/lib/oci/load_balancer/models/create_backend_set_details.rb +1 -1
  289. data/lib/oci/load_balancer/models/create_certificate_details.rb +1 -1
  290. data/lib/oci/load_balancer/models/create_hostname_details.rb +1 -1
  291. data/lib/oci/load_balancer/models/create_listener_details.rb +1 -1
  292. data/lib/oci/load_balancer/models/create_load_balancer_details.rb +6 -6
  293. data/lib/oci/load_balancer/models/health_check_result.rb +1 -1
  294. data/lib/oci/load_balancer/models/health_checker.rb +1 -1
  295. data/lib/oci/load_balancer/models/hostname.rb +1 -1
  296. data/lib/oci/load_balancer/models/hostname_details.rb +1 -1
  297. data/lib/oci/load_balancer/models/listener.rb +1 -1
  298. data/lib/oci/load_balancer/models/load_balancer.rb +11 -11
  299. data/lib/oci/load_balancer/models/load_balancer_health_summary.rb +1 -1
  300. data/lib/oci/load_balancer/models/load_balancer_policy.rb +1 -1
  301. data/lib/oci/load_balancer/models/path_match_type.rb +1 -1
  302. data/lib/oci/load_balancer/models/path_route_set.rb +1 -1
  303. data/lib/oci/load_balancer/models/session_persistence_configuration_details.rb +1 -1
  304. data/lib/oci/load_balancer/models/update_backend_details.rb +1 -1
  305. data/lib/oci/load_balancer/models/update_backend_set_details.rb +1 -1
  306. data/lib/oci/load_balancer/models/update_hostname_details.rb +2 -2
  307. data/lib/oci/load_balancer/models/update_load_balancer_details.rb +2 -2
  308. data/lib/oci/load_balancer/models/work_request.rb +3 -3
  309. data/lib/oci/monitoring/models/alarm.rb +10 -10
  310. data/lib/oci/monitoring/models/alarm_history_collection.rb +1 -1
  311. data/lib/oci/monitoring/models/alarm_status_summary.rb +5 -5
  312. data/lib/oci/monitoring/models/alarm_summary.rb +10 -10
  313. data/lib/oci/monitoring/models/create_alarm_details.rb +5 -5
  314. data/lib/oci/monitoring/models/metric.rb +2 -2
  315. data/lib/oci/monitoring/models/metric_data.rb +2 -2
  316. data/lib/oci/monitoring/models/metric_data_details.rb +1 -1
  317. data/lib/oci/monitoring/models/summarize_metrics_data_details.rb +2 -2
  318. data/lib/oci/monitoring/models/suppression.rb +1 -1
  319. data/lib/oci/monitoring/models/update_alarm_details.rb +5 -5
  320. data/lib/oci/monitoring/monitoring_client.rb +20 -20
  321. data/lib/oci/monitoring/monitoring_client_composite_operations.rb +2 -2
  322. data/lib/oci/object_storage/models/bucket.rb +4 -4
  323. data/lib/oci/object_storage/models/bucket_summary.rb +3 -3
  324. data/lib/oci/object_storage/models/commit_multipart_upload_details.rb +1 -1
  325. data/lib/oci/object_storage/models/commit_multipart_upload_part_details.rb +1 -1
  326. data/lib/oci/object_storage/models/copy_object_details.rb +1 -1
  327. data/lib/oci/object_storage/models/create_bucket_details.rb +3 -3
  328. data/lib/oci/object_storage/models/create_multipart_upload_details.rb +1 -1
  329. data/lib/oci/object_storage/models/list_objects.rb +1 -1
  330. data/lib/oci/object_storage/models/multipart_upload.rb +2 -2
  331. data/lib/oci/object_storage/models/multipart_upload_part_summary.rb +1 -1
  332. data/lib/oci/object_storage/models/object_lifecycle_policy.rb +1 -1
  333. data/lib/oci/object_storage/models/object_lifecycle_rule.rb +2 -2
  334. data/lib/oci/object_storage/models/object_summary.rb +1 -1
  335. data/lib/oci/object_storage/models/preauthenticated_request.rb +2 -2
  336. data/lib/oci/object_storage/models/rename_object_details.rb +1 -1
  337. data/lib/oci/object_storage/models/update_bucket_details.rb +3 -3
  338. data/lib/oci/object_storage/object_storage_client.rb +3 -3
  339. data/lib/oci/ons/models/confirmation_result.rb +2 -2
  340. data/lib/oci/ons/models/create_subscription_details.rb +4 -4
  341. data/lib/oci/ons/models/create_topic_details.rb +3 -3
  342. data/lib/oci/ons/models/notification_topic.rb +4 -4
  343. data/lib/oci/ons/models/notification_topic_summary.rb +4 -4
  344. data/lib/oci/ons/models/subscription.rb +3 -3
  345. data/lib/oci/ons/models/subscription_summary.rb +4 -4
  346. data/lib/oci/ons/models/topic_attributes_details.rb +2 -2
  347. data/lib/oci/ons/models/update_subscription_details.rb +2 -2
  348. data/lib/oci/ons/notification_control_plane_client.rb +9 -9
  349. data/lib/oci/ons/notification_data_plane_client.rb +10 -10
  350. data/lib/oci/ons/notification_data_plane_client_composite_operations.rb +1 -1
  351. data/lib/oci/regions.rb +1 -0
  352. data/lib/oci/resource_manager/models/create_job_details.rb +2 -2
  353. data/lib/oci/resource_manager/models/create_stack_details.rb +2 -2
  354. data/lib/oci/resource_manager/models/job.rb +2 -2
  355. data/lib/oci/resource_manager/models/job_summary.rb +2 -2
  356. data/lib/oci/resource_manager/models/stack.rb +2 -2
  357. data/lib/oci/resource_manager/models/stack_summary.rb +2 -2
  358. data/lib/oci/resource_manager/models/update_job_details.rb +2 -2
  359. data/lib/oci/resource_manager/models/update_stack_details.rb +2 -2
  360. data/lib/oci/resource_manager/resource_manager_client.rb +6 -6
  361. data/lib/oci/streaming/models/create_stream_details.rb +2 -2
  362. data/lib/oci/streaming/models/stream.rb +2 -2
  363. data/lib/oci/streaming/models/stream_summary.rb +2 -2
  364. data/lib/oci/streaming/models/update_stream_details.rb +2 -2
  365. data/lib/oci/version.rb +1 -1
  366. data/lib/oci/waas/models/certificate.rb +2 -2
  367. data/lib/oci/waas/models/certificate_summary.rb +2 -2
  368. data/lib/oci/waas/models/create_certificate_details.rb +1 -1
  369. data/lib/oci/waas/models/create_waas_policy_details.rb +1 -1
  370. data/lib/oci/waas/models/update_waas_policy_details.rb +1 -1
  371. data/lib/oci/waas/models/waas_policy.rb +2 -2
  372. data/lib/oci/waas/models/waas_policy_summary.rb +2 -2
  373. data/lib/oci/waas/models/work_request.rb +3 -3
  374. data/lib/oci/waas/models/work_request_resource.rb +1 -1
  375. data/lib/oci/waas/models/work_request_summary.rb +2 -2
  376. data/lib/oci/waas/waas_client.rb +53 -53
  377. data/lib/oci/waas/waas_client_composite_operations.rb +18 -18
  378. metadata +31 -2
@@ -0,0 +1,413 @@
1
+ # Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
2
+
3
+ require 'date'
4
+ require 'logger'
5
+
6
+ # rubocop:disable Lint/UnneededCopDisableDirective
7
+ module OCI
8
+ # A budget.
9
+ class Budget::Models::BudgetSummary # rubocop:disable Metrics/LineLength
10
+ RESET_PERIOD_ENUM = [
11
+ RESET_PERIOD_MONTHLY = 'MONTHLY'.freeze,
12
+ RESET_PERIOD_UNKNOWN_ENUM_VALUE = 'UNKNOWN_ENUM_VALUE'.freeze
13
+ ].freeze
14
+
15
+ LIFECYCLE_STATE_ENUM = [
16
+ LIFECYCLE_STATE_ACTIVE = 'ACTIVE'.freeze,
17
+ LIFECYCLE_STATE_INACTIVE = 'INACTIVE'.freeze,
18
+ LIFECYCLE_STATE_UNKNOWN_ENUM_VALUE = 'UNKNOWN_ENUM_VALUE'.freeze
19
+ ].freeze
20
+
21
+ # **[Required]** The OCID of the budget
22
+ # @return [String]
23
+ attr_accessor :id
24
+
25
+ # **[Required]** The OCID of the compartment
26
+ # @return [String]
27
+ attr_accessor :compartment_id
28
+
29
+ # **[Required]** The OCID of the compartment on which budget is applied
30
+ # @return [String]
31
+ attr_accessor :target_compartment_id
32
+
33
+ # **[Required]** The display name of the budget.
34
+ # @return [String]
35
+ attr_accessor :display_name
36
+
37
+ # The description of the budget.
38
+ # @return [String]
39
+ attr_accessor :description
40
+
41
+ # **[Required]** The amount of the budget expressed in the currency of the customer's rate card.
42
+ #
43
+ # @return [Float]
44
+ attr_accessor :amount
45
+
46
+ # **[Required]** The reset period for the budget.
47
+ #
48
+ # @return [String]
49
+ attr_reader :reset_period
50
+
51
+ # **[Required]** The current state of the budget.
52
+ # @return [String]
53
+ attr_reader :lifecycle_state
54
+
55
+ # **[Required]** Total number of alert rules in the budget
56
+ # @return [Integer]
57
+ attr_accessor :alert_rule_count
58
+
59
+ # Version of the budget. Starts from 1 and increments by 1.
60
+ # @return [Integer]
61
+ attr_accessor :version
62
+
63
+ # The actual spend in currency for the current budget cycle
64
+ # @return [Float]
65
+ attr_accessor :actual_spend
66
+
67
+ # The forecasted spend in currency by the end of the current budget cycle
68
+ # @return [Float]
69
+ attr_accessor :forecasted_spend
70
+
71
+ # Time budget spend was last computed
72
+ # @return [DateTime]
73
+ attr_accessor :time_spend_computed
74
+
75
+ # **[Required]** Time budget was created
76
+ # @return [DateTime]
77
+ attr_accessor :time_created
78
+
79
+ # **[Required]** Time budget was updated
80
+ # @return [DateTime]
81
+ attr_accessor :time_updated
82
+
83
+ # Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace.
84
+ # For more information, see [Resource Tags](https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm).
85
+ #
86
+ # Example: `{\"Department\": \"Finance\"}`
87
+ #
88
+ # @return [Hash<String, String>]
89
+ attr_accessor :freeform_tags
90
+
91
+ # Defined tags for this resource. Each key is predefined and scoped to a namespace.
92
+ # For more information, see [Resource Tags](https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm).
93
+ #
94
+ # Example: `{\"Operations\": {\"CostCenter\": \"42\"}}`
95
+ #
96
+ # @return [Hash<String, Hash<String, Object>>]
97
+ attr_accessor :defined_tags
98
+
99
+ # Attribute mapping from ruby-style variable name to JSON key.
100
+ def self.attribute_map
101
+ {
102
+ # rubocop:disable Style/SymbolLiteral
103
+ 'id': :'id',
104
+ 'compartment_id': :'compartmentId',
105
+ 'target_compartment_id': :'targetCompartmentId',
106
+ 'display_name': :'displayName',
107
+ 'description': :'description',
108
+ 'amount': :'amount',
109
+ 'reset_period': :'resetPeriod',
110
+ 'lifecycle_state': :'lifecycleState',
111
+ 'alert_rule_count': :'alertRuleCount',
112
+ 'version': :'version',
113
+ 'actual_spend': :'actualSpend',
114
+ 'forecasted_spend': :'forecastedSpend',
115
+ 'time_spend_computed': :'timeSpendComputed',
116
+ 'time_created': :'timeCreated',
117
+ 'time_updated': :'timeUpdated',
118
+ 'freeform_tags': :'freeformTags',
119
+ 'defined_tags': :'definedTags'
120
+ # rubocop:enable Style/SymbolLiteral
121
+ }
122
+ end
123
+
124
+ # Attribute type mapping.
125
+ def self.swagger_types
126
+ {
127
+ # rubocop:disable Style/SymbolLiteral
128
+ 'id': :'String',
129
+ 'compartment_id': :'String',
130
+ 'target_compartment_id': :'String',
131
+ 'display_name': :'String',
132
+ 'description': :'String',
133
+ 'amount': :'Float',
134
+ 'reset_period': :'String',
135
+ 'lifecycle_state': :'String',
136
+ 'alert_rule_count': :'Integer',
137
+ 'version': :'Integer',
138
+ 'actual_spend': :'Float',
139
+ 'forecasted_spend': :'Float',
140
+ 'time_spend_computed': :'DateTime',
141
+ 'time_created': :'DateTime',
142
+ 'time_updated': :'DateTime',
143
+ 'freeform_tags': :'Hash<String, String>',
144
+ 'defined_tags': :'Hash<String, Hash<String, Object>>'
145
+ # rubocop:enable Style/SymbolLiteral
146
+ }
147
+ end
148
+
149
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
150
+ # rubocop:disable Metrics/LineLength, Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
151
+
152
+
153
+ # Initializes the object
154
+ # @param [Hash] attributes Model attributes in the form of hash
155
+ # @option attributes [String] :id The value to assign to the {#id} property
156
+ # @option attributes [String] :compartment_id The value to assign to the {#compartment_id} property
157
+ # @option attributes [String] :target_compartment_id The value to assign to the {#target_compartment_id} property
158
+ # @option attributes [String] :display_name The value to assign to the {#display_name} property
159
+ # @option attributes [String] :description The value to assign to the {#description} property
160
+ # @option attributes [Float] :amount The value to assign to the {#amount} property
161
+ # @option attributes [String] :reset_period The value to assign to the {#reset_period} property
162
+ # @option attributes [String] :lifecycle_state The value to assign to the {#lifecycle_state} property
163
+ # @option attributes [Integer] :alert_rule_count The value to assign to the {#alert_rule_count} property
164
+ # @option attributes [Integer] :version The value to assign to the {#version} property
165
+ # @option attributes [Float] :actual_spend The value to assign to the {#actual_spend} property
166
+ # @option attributes [Float] :forecasted_spend The value to assign to the {#forecasted_spend} property
167
+ # @option attributes [DateTime] :time_spend_computed The value to assign to the {#time_spend_computed} property
168
+ # @option attributes [DateTime] :time_created The value to assign to the {#time_created} property
169
+ # @option attributes [DateTime] :time_updated The value to assign to the {#time_updated} property
170
+ # @option attributes [Hash<String, String>] :freeform_tags The value to assign to the {#freeform_tags} property
171
+ # @option attributes [Hash<String, Hash<String, Object>>] :defined_tags The value to assign to the {#defined_tags} property
172
+ def initialize(attributes = {})
173
+ return unless attributes.is_a?(Hash)
174
+
175
+ # convert string to symbol for hash key
176
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
177
+
178
+ self.id = attributes[:'id'] if attributes[:'id']
179
+
180
+ self.compartment_id = attributes[:'compartmentId'] if attributes[:'compartmentId']
181
+
182
+ raise 'You cannot provide both :compartmentId and :compartment_id' if attributes.key?(:'compartmentId') && attributes.key?(:'compartment_id')
183
+
184
+ self.compartment_id = attributes[:'compartment_id'] if attributes[:'compartment_id']
185
+
186
+ self.target_compartment_id = attributes[:'targetCompartmentId'] if attributes[:'targetCompartmentId']
187
+
188
+ raise 'You cannot provide both :targetCompartmentId and :target_compartment_id' if attributes.key?(:'targetCompartmentId') && attributes.key?(:'target_compartment_id')
189
+
190
+ self.target_compartment_id = attributes[:'target_compartment_id'] if attributes[:'target_compartment_id']
191
+
192
+ self.display_name = attributes[:'displayName'] if attributes[:'displayName']
193
+
194
+ raise 'You cannot provide both :displayName and :display_name' if attributes.key?(:'displayName') && attributes.key?(:'display_name')
195
+
196
+ self.display_name = attributes[:'display_name'] if attributes[:'display_name']
197
+
198
+ self.description = attributes[:'description'] if attributes[:'description']
199
+
200
+ self.amount = attributes[:'amount'] if attributes[:'amount']
201
+
202
+ self.reset_period = attributes[:'resetPeriod'] if attributes[:'resetPeriod']
203
+
204
+ raise 'You cannot provide both :resetPeriod and :reset_period' if attributes.key?(:'resetPeriod') && attributes.key?(:'reset_period')
205
+
206
+ self.reset_period = attributes[:'reset_period'] if attributes[:'reset_period']
207
+
208
+ self.lifecycle_state = attributes[:'lifecycleState'] if attributes[:'lifecycleState']
209
+
210
+ raise 'You cannot provide both :lifecycleState and :lifecycle_state' if attributes.key?(:'lifecycleState') && attributes.key?(:'lifecycle_state')
211
+
212
+ self.lifecycle_state = attributes[:'lifecycle_state'] if attributes[:'lifecycle_state']
213
+
214
+ self.alert_rule_count = attributes[:'alertRuleCount'] if attributes[:'alertRuleCount']
215
+
216
+ raise 'You cannot provide both :alertRuleCount and :alert_rule_count' if attributes.key?(:'alertRuleCount') && attributes.key?(:'alert_rule_count')
217
+
218
+ self.alert_rule_count = attributes[:'alert_rule_count'] if attributes[:'alert_rule_count']
219
+
220
+ self.version = attributes[:'version'] if attributes[:'version']
221
+
222
+ self.actual_spend = attributes[:'actualSpend'] if attributes[:'actualSpend']
223
+
224
+ raise 'You cannot provide both :actualSpend and :actual_spend' if attributes.key?(:'actualSpend') && attributes.key?(:'actual_spend')
225
+
226
+ self.actual_spend = attributes[:'actual_spend'] if attributes[:'actual_spend']
227
+
228
+ self.forecasted_spend = attributes[:'forecastedSpend'] if attributes[:'forecastedSpend']
229
+
230
+ raise 'You cannot provide both :forecastedSpend and :forecasted_spend' if attributes.key?(:'forecastedSpend') && attributes.key?(:'forecasted_spend')
231
+
232
+ self.forecasted_spend = attributes[:'forecasted_spend'] if attributes[:'forecasted_spend']
233
+
234
+ self.time_spend_computed = attributes[:'timeSpendComputed'] if attributes[:'timeSpendComputed']
235
+
236
+ raise 'You cannot provide both :timeSpendComputed and :time_spend_computed' if attributes.key?(:'timeSpendComputed') && attributes.key?(:'time_spend_computed')
237
+
238
+ self.time_spend_computed = attributes[:'time_spend_computed'] if attributes[:'time_spend_computed']
239
+
240
+ self.time_created = attributes[:'timeCreated'] if attributes[:'timeCreated']
241
+
242
+ raise 'You cannot provide both :timeCreated and :time_created' if attributes.key?(:'timeCreated') && attributes.key?(:'time_created')
243
+
244
+ self.time_created = attributes[:'time_created'] if attributes[:'time_created']
245
+
246
+ self.time_updated = attributes[:'timeUpdated'] if attributes[:'timeUpdated']
247
+
248
+ raise 'You cannot provide both :timeUpdated and :time_updated' if attributes.key?(:'timeUpdated') && attributes.key?(:'time_updated')
249
+
250
+ self.time_updated = attributes[:'time_updated'] if attributes[:'time_updated']
251
+
252
+ self.freeform_tags = attributes[:'freeformTags'] if attributes[:'freeformTags']
253
+
254
+ raise 'You cannot provide both :freeformTags and :freeform_tags' if attributes.key?(:'freeformTags') && attributes.key?(:'freeform_tags')
255
+
256
+ self.freeform_tags = attributes[:'freeform_tags'] if attributes[:'freeform_tags']
257
+
258
+ self.defined_tags = attributes[:'definedTags'] if attributes[:'definedTags']
259
+
260
+ raise 'You cannot provide both :definedTags and :defined_tags' if attributes.key?(:'definedTags') && attributes.key?(:'defined_tags')
261
+
262
+ self.defined_tags = attributes[:'defined_tags'] if attributes[:'defined_tags']
263
+ end
264
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
265
+ # rubocop:enable Metrics/LineLength, Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
266
+
267
+ # Custom attribute writer method checking allowed values (enum).
268
+ # @param [Object] reset_period Object to be assigned
269
+ def reset_period=(reset_period)
270
+ # rubocop:disable Style/ConditionalAssignment
271
+ if reset_period && !RESET_PERIOD_ENUM.include?(reset_period)
272
+ # rubocop: disable Metrics/LineLength
273
+ OCI.logger.debug("Unknown value for 'reset_period' [" + reset_period + "]. Mapping to 'RESET_PERIOD_UNKNOWN_ENUM_VALUE'") if OCI.logger
274
+ # rubocop: enable Metrics/LineLength
275
+ @reset_period = RESET_PERIOD_UNKNOWN_ENUM_VALUE
276
+ else
277
+ @reset_period = reset_period
278
+ end
279
+ # rubocop:enable Style/ConditionalAssignment
280
+ end
281
+
282
+ # Custom attribute writer method checking allowed values (enum).
283
+ # @param [Object] lifecycle_state Object to be assigned
284
+ def lifecycle_state=(lifecycle_state)
285
+ # rubocop:disable Style/ConditionalAssignment
286
+ if lifecycle_state && !LIFECYCLE_STATE_ENUM.include?(lifecycle_state)
287
+ # rubocop: disable Metrics/LineLength
288
+ OCI.logger.debug("Unknown value for 'lifecycle_state' [" + lifecycle_state + "]. Mapping to 'LIFECYCLE_STATE_UNKNOWN_ENUM_VALUE'") if OCI.logger
289
+ # rubocop: enable Metrics/LineLength
290
+ @lifecycle_state = LIFECYCLE_STATE_UNKNOWN_ENUM_VALUE
291
+ else
292
+ @lifecycle_state = lifecycle_state
293
+ end
294
+ # rubocop:enable Style/ConditionalAssignment
295
+ end
296
+
297
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Metrics/LineLength, Layout/EmptyLines
298
+
299
+
300
+ # Checks equality by comparing each attribute.
301
+ # @param [Object] other the other object to be compared
302
+ def ==(other)
303
+ return true if equal?(other)
304
+
305
+ self.class == other.class &&
306
+ id == other.id &&
307
+ compartment_id == other.compartment_id &&
308
+ target_compartment_id == other.target_compartment_id &&
309
+ display_name == other.display_name &&
310
+ description == other.description &&
311
+ amount == other.amount &&
312
+ reset_period == other.reset_period &&
313
+ lifecycle_state == other.lifecycle_state &&
314
+ alert_rule_count == other.alert_rule_count &&
315
+ version == other.version &&
316
+ actual_spend == other.actual_spend &&
317
+ forecasted_spend == other.forecasted_spend &&
318
+ time_spend_computed == other.time_spend_computed &&
319
+ time_created == other.time_created &&
320
+ time_updated == other.time_updated &&
321
+ freeform_tags == other.freeform_tags &&
322
+ defined_tags == other.defined_tags
323
+ end
324
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Metrics/LineLength, Layout/EmptyLines
325
+
326
+ # @see the `==` method
327
+ # @param [Object] other the other object to be compared
328
+ def eql?(other)
329
+ self == other
330
+ end
331
+
332
+ # rubocop:disable Metrics/AbcSize, Metrics/LineLength, Layout/EmptyLines
333
+
334
+
335
+ # Calculates hash code according to all attributes.
336
+ # @return [Fixnum] Hash code
337
+ def hash
338
+ [id, compartment_id, target_compartment_id, display_name, description, amount, reset_period, lifecycle_state, alert_rule_count, version, actual_spend, forecasted_spend, time_spend_computed, time_created, time_updated, freeform_tags, defined_tags].hash
339
+ end
340
+ # rubocop:enable Metrics/AbcSize, Metrics/LineLength, Layout/EmptyLines
341
+
342
+ # rubocop:disable Metrics/AbcSize, Layout/EmptyLines
343
+
344
+
345
+ # Builds the object from hash
346
+ # @param [Hash] attributes Model attributes in the form of hash
347
+ # @return [Object] Returns the model itself
348
+ def build_from_hash(attributes)
349
+ return nil unless attributes.is_a?(Hash)
350
+
351
+ self.class.swagger_types.each_pair do |key, type|
352
+ if type =~ /^Array<(.*)>/i
353
+ # check to ensure the input is an array given that the the attribute
354
+ # is documented as an array but the input is not
355
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
356
+ public_method("#{key}=").call(
357
+ attributes[self.class.attribute_map[key]]
358
+ .map { |v| OCI::Internal::Util.convert_to_type(Regexp.last_match(1), v) }
359
+ )
360
+ end
361
+ elsif !attributes[self.class.attribute_map[key]].nil?
362
+ public_method("#{key}=").call(
363
+ OCI::Internal::Util.convert_to_type(type, attributes[self.class.attribute_map[key]])
364
+ )
365
+ end
366
+ # or else data not found in attributes(hash), not an issue as the data can be optional
367
+ end
368
+
369
+ self
370
+ end
371
+ # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
372
+
373
+ # Returns the string representation of the object
374
+ # @return [String] String presentation of the object
375
+ def to_s
376
+ to_hash.to_s
377
+ end
378
+
379
+ # Returns the object in the form of hash
380
+ # @return [Hash] Returns the object in the form of hash
381
+ def to_hash
382
+ hash = {}
383
+ self.class.attribute_map.each_pair do |attr, param|
384
+ value = public_method(attr).call
385
+ next if value.nil? && !instance_variable_defined?("@#{attr}")
386
+
387
+ hash[param] = _to_hash(value)
388
+ end
389
+ hash
390
+ end
391
+
392
+ private
393
+
394
+ # Outputs non-array value in the form of hash
395
+ # For object, use to_hash. Otherwise, just return the value
396
+ # @param [Object] value Any valid value
397
+ # @return [Hash] Returns the value in the form of hash
398
+ def _to_hash(value)
399
+ if value.is_a?(Array)
400
+ value.compact.map { |v| _to_hash(v) }
401
+ elsif value.is_a?(Hash)
402
+ {}.tap do |hash|
403
+ value.each { |k, v| hash[k] = _to_hash(v) }
404
+ end
405
+ elsif value.respond_to? :to_hash
406
+ value.to_hash
407
+ else
408
+ value
409
+ end
410
+ end
411
+ end
412
+ end
413
+ # rubocop:enable Lint/UnneededCopDisableDirective
@@ -0,0 +1,288 @@
1
+ # Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
2
+
3
+ require 'date'
4
+
5
+ # rubocop:disable Lint/UnneededCopDisableDirective
6
+ module OCI
7
+ # The create alert rule details. This is a batch-create.
8
+ class Budget::Models::CreateAlertRuleDetails # rubocop:disable Metrics/LineLength
9
+ TYPE_ENUM = [
10
+ TYPE_ACTUAL = 'ACTUAL'.freeze,
11
+ TYPE_FORECAST = 'FORECAST'.freeze
12
+ ].freeze
13
+
14
+ THRESHOLD_TYPE_ENUM = [
15
+ THRESHOLD_TYPE_PERCENTAGE = 'PERCENTAGE'.freeze,
16
+ THRESHOLD_TYPE_ABSOLUTE = 'ABSOLUTE'.freeze
17
+ ].freeze
18
+
19
+ # The name of the alert rule.
20
+ # @return [String]
21
+ attr_accessor :display_name
22
+
23
+ # The description of the alert rule.
24
+ # @return [String]
25
+ attr_accessor :description
26
+
27
+ # **[Required]** Type of alert. Valid values are ACTUAL (the alert will trigger based on actual usage) or
28
+ # FORECAST (the alert will trigger based on predicted usage).
29
+ #
30
+ # @return [String]
31
+ attr_reader :type
32
+
33
+ # **[Required]** The threshold for triggering the alert expressed as a whole number or decimal value.
34
+ # If thresholdType is ABSOLUTE, threshold can have at most 12 digits before the decimal point and up to 2 digits after the decimal point.
35
+ # If thresholdType is PERCENTAGE, the maximum value is 10000 and can have up to 2 digits after the decimal point.
36
+ #
37
+ # @return [Float]
38
+ attr_accessor :threshold
39
+
40
+ # **[Required]** The type of threshold.
41
+ # @return [String]
42
+ attr_reader :threshold_type
43
+
44
+ # **[Required]** The audience that will received the alert when it triggers.
45
+ # @return [String]
46
+ attr_accessor :recipients
47
+
48
+ # The message to be sent to the recipients when alert rule is triggered.
49
+ # @return [String]
50
+ attr_accessor :message
51
+
52
+ # Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace.
53
+ # For more information, see [Resource Tags](https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm).
54
+ #
55
+ # Example: `{\"Department\": \"Finance\"}`
56
+ #
57
+ # @return [Hash<String, String>]
58
+ attr_accessor :freeform_tags
59
+
60
+ # Defined tags for this resource. Each key is predefined and scoped to a namespace.
61
+ # For more information, see [Resource Tags](https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm).
62
+ #
63
+ # Example: `{\"Operations\": {\"CostCenter\": \"42\"}}`
64
+ #
65
+ # @return [Hash<String, Hash<String, Object>>]
66
+ attr_accessor :defined_tags
67
+
68
+ # Attribute mapping from ruby-style variable name to JSON key.
69
+ def self.attribute_map
70
+ {
71
+ # rubocop:disable Style/SymbolLiteral
72
+ 'display_name': :'displayName',
73
+ 'description': :'description',
74
+ 'type': :'type',
75
+ 'threshold': :'threshold',
76
+ 'threshold_type': :'thresholdType',
77
+ 'recipients': :'recipients',
78
+ 'message': :'message',
79
+ 'freeform_tags': :'freeformTags',
80
+ 'defined_tags': :'definedTags'
81
+ # rubocop:enable Style/SymbolLiteral
82
+ }
83
+ end
84
+
85
+ # Attribute type mapping.
86
+ def self.swagger_types
87
+ {
88
+ # rubocop:disable Style/SymbolLiteral
89
+ 'display_name': :'String',
90
+ 'description': :'String',
91
+ 'type': :'String',
92
+ 'threshold': :'Float',
93
+ 'threshold_type': :'String',
94
+ 'recipients': :'String',
95
+ 'message': :'String',
96
+ 'freeform_tags': :'Hash<String, String>',
97
+ 'defined_tags': :'Hash<String, Hash<String, Object>>'
98
+ # rubocop:enable Style/SymbolLiteral
99
+ }
100
+ end
101
+
102
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
103
+ # rubocop:disable Metrics/LineLength, Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
104
+
105
+
106
+ # Initializes the object
107
+ # @param [Hash] attributes Model attributes in the form of hash
108
+ # @option attributes [String] :display_name The value to assign to the {#display_name} property
109
+ # @option attributes [String] :description The value to assign to the {#description} property
110
+ # @option attributes [String] :type The value to assign to the {#type} property
111
+ # @option attributes [Float] :threshold The value to assign to the {#threshold} property
112
+ # @option attributes [String] :threshold_type The value to assign to the {#threshold_type} property
113
+ # @option attributes [String] :recipients The value to assign to the {#recipients} property
114
+ # @option attributes [String] :message The value to assign to the {#message} property
115
+ # @option attributes [Hash<String, String>] :freeform_tags The value to assign to the {#freeform_tags} property
116
+ # @option attributes [Hash<String, Hash<String, Object>>] :defined_tags The value to assign to the {#defined_tags} property
117
+ def initialize(attributes = {})
118
+ return unless attributes.is_a?(Hash)
119
+
120
+ # convert string to symbol for hash key
121
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
122
+
123
+ self.display_name = attributes[:'displayName'] if attributes[:'displayName']
124
+
125
+ raise 'You cannot provide both :displayName and :display_name' if attributes.key?(:'displayName') && attributes.key?(:'display_name')
126
+
127
+ self.display_name = attributes[:'display_name'] if attributes[:'display_name']
128
+
129
+ self.description = attributes[:'description'] if attributes[:'description']
130
+
131
+ self.type = attributes[:'type'] if attributes[:'type']
132
+
133
+ self.threshold = attributes[:'threshold'] if attributes[:'threshold']
134
+
135
+ self.threshold_type = attributes[:'thresholdType'] if attributes[:'thresholdType']
136
+
137
+ raise 'You cannot provide both :thresholdType and :threshold_type' if attributes.key?(:'thresholdType') && attributes.key?(:'threshold_type')
138
+
139
+ self.threshold_type = attributes[:'threshold_type'] if attributes[:'threshold_type']
140
+
141
+ self.recipients = attributes[:'recipients'] if attributes[:'recipients']
142
+
143
+ self.message = attributes[:'message'] if attributes[:'message']
144
+
145
+ self.freeform_tags = attributes[:'freeformTags'] if attributes[:'freeformTags']
146
+
147
+ raise 'You cannot provide both :freeformTags and :freeform_tags' if attributes.key?(:'freeformTags') && attributes.key?(:'freeform_tags')
148
+
149
+ self.freeform_tags = attributes[:'freeform_tags'] if attributes[:'freeform_tags']
150
+
151
+ self.defined_tags = attributes[:'definedTags'] if attributes[:'definedTags']
152
+
153
+ raise 'You cannot provide both :definedTags and :defined_tags' if attributes.key?(:'definedTags') && attributes.key?(:'defined_tags')
154
+
155
+ self.defined_tags = attributes[:'defined_tags'] if attributes[:'defined_tags']
156
+ end
157
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
158
+ # rubocop:enable Metrics/LineLength, Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
159
+
160
+ # Custom attribute writer method checking allowed values (enum).
161
+ # @param [Object] type Object to be assigned
162
+ def type=(type)
163
+ # rubocop: disable Metrics/LineLength
164
+ raise "Invalid value for 'type': this must be one of the values in TYPE_ENUM." if type && !TYPE_ENUM.include?(type)
165
+
166
+ # rubocop: enable Metrics/LineLength
167
+ @type = type
168
+ end
169
+
170
+ # Custom attribute writer method checking allowed values (enum).
171
+ # @param [Object] threshold_type Object to be assigned
172
+ def threshold_type=(threshold_type)
173
+ # rubocop: disable Metrics/LineLength
174
+ raise "Invalid value for 'threshold_type': this must be one of the values in THRESHOLD_TYPE_ENUM." if threshold_type && !THRESHOLD_TYPE_ENUM.include?(threshold_type)
175
+
176
+ # rubocop: enable Metrics/LineLength
177
+ @threshold_type = threshold_type
178
+ end
179
+
180
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Metrics/LineLength, Layout/EmptyLines
181
+
182
+
183
+ # Checks equality by comparing each attribute.
184
+ # @param [Object] other the other object to be compared
185
+ def ==(other)
186
+ return true if equal?(other)
187
+
188
+ self.class == other.class &&
189
+ display_name == other.display_name &&
190
+ description == other.description &&
191
+ type == other.type &&
192
+ threshold == other.threshold &&
193
+ threshold_type == other.threshold_type &&
194
+ recipients == other.recipients &&
195
+ message == other.message &&
196
+ freeform_tags == other.freeform_tags &&
197
+ defined_tags == other.defined_tags
198
+ end
199
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Metrics/LineLength, Layout/EmptyLines
200
+
201
+ # @see the `==` method
202
+ # @param [Object] other the other object to be compared
203
+ def eql?(other)
204
+ self == other
205
+ end
206
+
207
+ # rubocop:disable Metrics/AbcSize, Metrics/LineLength, Layout/EmptyLines
208
+
209
+
210
+ # Calculates hash code according to all attributes.
211
+ # @return [Fixnum] Hash code
212
+ def hash
213
+ [display_name, description, type, threshold, threshold_type, recipients, message, freeform_tags, defined_tags].hash
214
+ end
215
+ # rubocop:enable Metrics/AbcSize, Metrics/LineLength, Layout/EmptyLines
216
+
217
+ # rubocop:disable Metrics/AbcSize, Layout/EmptyLines
218
+
219
+
220
+ # Builds the object from hash
221
+ # @param [Hash] attributes Model attributes in the form of hash
222
+ # @return [Object] Returns the model itself
223
+ def build_from_hash(attributes)
224
+ return nil unless attributes.is_a?(Hash)
225
+
226
+ self.class.swagger_types.each_pair do |key, type|
227
+ if type =~ /^Array<(.*)>/i
228
+ # check to ensure the input is an array given that the the attribute
229
+ # is documented as an array but the input is not
230
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
231
+ public_method("#{key}=").call(
232
+ attributes[self.class.attribute_map[key]]
233
+ .map { |v| OCI::Internal::Util.convert_to_type(Regexp.last_match(1), v) }
234
+ )
235
+ end
236
+ elsif !attributes[self.class.attribute_map[key]].nil?
237
+ public_method("#{key}=").call(
238
+ OCI::Internal::Util.convert_to_type(type, attributes[self.class.attribute_map[key]])
239
+ )
240
+ end
241
+ # or else data not found in attributes(hash), not an issue as the data can be optional
242
+ end
243
+
244
+ self
245
+ end
246
+ # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
247
+
248
+ # Returns the string representation of the object
249
+ # @return [String] String presentation of the object
250
+ def to_s
251
+ to_hash.to_s
252
+ end
253
+
254
+ # Returns the object in the form of hash
255
+ # @return [Hash] Returns the object in the form of hash
256
+ def to_hash
257
+ hash = {}
258
+ self.class.attribute_map.each_pair do |attr, param|
259
+ value = public_method(attr).call
260
+ next if value.nil? && !instance_variable_defined?("@#{attr}")
261
+
262
+ hash[param] = _to_hash(value)
263
+ end
264
+ hash
265
+ end
266
+
267
+ private
268
+
269
+ # Outputs non-array value in the form of hash
270
+ # For object, use to_hash. Otherwise, just return the value
271
+ # @param [Object] value Any valid value
272
+ # @return [Hash] Returns the value in the form of hash
273
+ def _to_hash(value)
274
+ if value.is_a?(Array)
275
+ value.compact.map { |v| _to_hash(v) }
276
+ elsif value.is_a?(Hash)
277
+ {}.tap do |hash|
278
+ value.each { |k, v| hash[k] = _to_hash(v) }
279
+ end
280
+ elsif value.respond_to? :to_hash
281
+ value.to_hash
282
+ else
283
+ value
284
+ end
285
+ end
286
+ end
287
+ end
288
+ # rubocop:enable Lint/UnneededCopDisableDirective