oci 2.5.10 → 2.5.11

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 (225) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +4 -1
  3. data/lib/oci.rb +3 -0
  4. data/lib/oci/budget/budget.rb +1 -0
  5. data/lib/oci/budget/budget_client.rb +21 -1
  6. data/lib/oci/budget/models/budget.rb +52 -2
  7. data/lib/oci/budget/models/budget_summary.rb +52 -2
  8. data/lib/oci/budget/models/create_budget_details.rb +55 -2
  9. data/lib/oci/budget/models/target_type.rb +10 -0
  10. data/lib/oci/core/blockstorage_client.rb +18 -6
  11. data/lib/oci/core/compute_client.rb +75 -0
  12. data/lib/oci/core/compute_management_client.rb +4 -1
  13. data/lib/oci/core/core.rb +12 -0
  14. data/lib/oci/core/models/add_security_rule_details.rb +2 -2
  15. data/lib/oci/core/models/boot_volume_backup.rb +19 -1
  16. data/lib/oci/core/models/change_boot_volume_backup_compartment_details.rb +2 -2
  17. data/lib/oci/core/models/change_boot_volume_compartment_details.rb +2 -2
  18. data/lib/oci/core/models/change_cpe_compartment_details.rb +155 -0
  19. data/lib/oci/core/models/change_cross_connect_compartment_details.rb +155 -0
  20. data/lib/oci/core/models/change_cross_connect_group_compartment_details.rb +155 -0
  21. data/lib/oci/core/models/change_instance_compartment_details.rb +154 -0
  22. data/lib/oci/core/models/change_ip_sec_connection_compartment_details.rb +155 -0
  23. data/lib/oci/core/models/change_remote_peering_connection_compartment_details.rb +155 -0
  24. data/lib/oci/core/models/change_virtual_circuit_compartment_details.rb +155 -0
  25. data/lib/oci/core/models/change_volume_backup_compartment_details.rb +2 -2
  26. data/lib/oci/core/models/change_volume_compartment_details.rb +2 -2
  27. data/lib/oci/core/models/change_volume_group_backup_compartment_details.rb +2 -2
  28. data/lib/oci/core/models/change_volume_group_compartment_details.rb +2 -2
  29. data/lib/oci/core/models/copy_volume_backup_details.rb +27 -4
  30. data/lib/oci/core/models/create_cross_connect_details.rb +37 -1
  31. data/lib/oci/core/models/create_cross_connect_group_details.rb +40 -4
  32. data/lib/oci/core/models/create_instance_configuration_base.rb +250 -0
  33. data/lib/oci/core/models/create_instance_configuration_details.rb +15 -57
  34. data/lib/oci/core/models/create_instance_configuration_from_instance_details.rb +179 -0
  35. data/lib/oci/core/models/create_ipv6_details.rb +249 -0
  36. data/lib/oci/core/models/create_remote_peering_connection_details.rb +40 -4
  37. data/lib/oci/core/models/create_service_gateway_details.rb +23 -1
  38. data/lib/oci/core/models/create_subnet_details.rb +24 -1
  39. data/lib/oci/core/models/create_vcn_details.rb +56 -4
  40. data/lib/oci/core/models/create_virtual_circuit_details.rb +38 -2
  41. data/lib/oci/core/models/cross_connect.rb +37 -1
  42. data/lib/oci/core/models/cross_connect_group.rb +37 -1
  43. data/lib/oci/core/models/cross_connect_mapping.rb +50 -1
  44. data/lib/oci/core/models/egress_security_rule.rb +10 -7
  45. data/lib/oci/core/models/ingress_security_rule.rb +10 -7
  46. data/lib/oci/core/models/instance.rb +1 -0
  47. data/lib/oci/core/models/ipv6.rb +375 -0
  48. data/lib/oci/core/models/private_ip.rb +1 -0
  49. data/lib/oci/core/models/remote_peering_connection.rb +37 -1
  50. data/lib/oci/core/models/route_rule.rb +4 -1
  51. data/lib/oci/core/models/security_rule.rb +2 -2
  52. data/lib/oci/core/models/service_gateway.rb +18 -1
  53. data/lib/oci/core/models/subnet.rb +56 -1
  54. data/lib/oci/core/models/update_cross_connect_details.rb +37 -1
  55. data/lib/oci/core/models/update_cross_connect_group_details.rb +40 -4
  56. data/lib/oci/core/models/update_ipv6_details.rb +229 -0
  57. data/lib/oci/core/models/update_remote_peering_connection_details.rb +40 -4
  58. data/lib/oci/core/models/update_security_rule_details.rb +2 -2
  59. data/lib/oci/core/models/update_service_gateway_details.rb +18 -1
  60. data/lib/oci/core/models/update_virtual_circuit_details.rb +37 -1
  61. data/lib/oci/core/models/vcn.rb +42 -1
  62. data/lib/oci/core/models/virtual_circuit.rb +37 -1
  63. data/lib/oci/core/models/volume_backup.rb +19 -1
  64. data/lib/oci/core/virtual_network_client.rb +744 -10
  65. data/lib/oci/core/virtual_network_client_composite_operations.rb +119 -0
  66. data/lib/oci/database/database.rb +3 -0
  67. data/lib/oci/database/database_client.rb +320 -36
  68. data/lib/oci/database/models/autonomous_data_warehouse.rb +1 -0
  69. data/lib/oci/database/models/autonomous_data_warehouse_console_token_details.rb +164 -0
  70. data/lib/oci/database/models/autonomous_data_warehouse_summary.rb +1 -0
  71. data/lib/oci/database/models/autonomous_database.rb +5 -3
  72. data/lib/oci/database/models/autonomous_database_connection_urls.rb +1 -1
  73. data/lib/oci/database/models/autonomous_database_console_token_details.rb +163 -0
  74. data/lib/oci/database/models/autonomous_database_summary.rb +5 -3
  75. data/lib/oci/database/models/autonomous_db_preview_version_summary.rb +1 -3
  76. data/lib/oci/database/models/change_compartment_details.rb +155 -0
  77. data/lib/oci/database/models/create_autonomous_database_base.rb +5 -4
  78. data/lib/oci/database/models/create_data_guard_association_with_new_db_system_details.rb +2 -5
  79. data/lib/oci/database/models/create_database_details.rb +1 -1
  80. data/lib/oci/database/models/create_db_home_with_db_system_id_details.rb +2 -1
  81. data/lib/oci/database/models/create_db_home_with_db_system_id_from_backup_details.rb +2 -1
  82. data/lib/oci/database/models/db_system.rb +2 -5
  83. data/lib/oci/database/models/db_system_summary.rb +2 -5
  84. data/lib/oci/database/models/launch_db_system_base.rb +3 -5
  85. data/lib/oci/database/models/maintenance_window.rb +2 -1
  86. data/lib/oci/database/models/update_autonomous_database_details.rb +5 -3
  87. data/lib/oci/database/models/update_db_system_details.rb +2 -5
  88. data/lib/oci/dns/dns.rb +2 -0
  89. data/lib/oci/dns/dns_client.rb +138 -1
  90. data/lib/oci/dns/models/change_steering_policy_compartment_details.rb +155 -0
  91. data/lib/oci/dns/models/change_zone_compartment_details.rb +155 -0
  92. data/lib/oci/events/events.rb +34 -0
  93. data/lib/oci/events/events_client.rb +537 -0
  94. data/lib/oci/events/events_client_composite_operations.rb +145 -0
  95. data/lib/oci/events/models/action.rb +275 -0
  96. data/lib/oci/events/models/action_details.rb +222 -0
  97. data/lib/oci/events/models/action_details_list.rb +150 -0
  98. data/lib/oci/events/models/action_list.rb +151 -0
  99. data/lib/oci/events/models/change_rule_compartment_details.rb +156 -0
  100. data/lib/oci/events/models/create_faa_s_action_details.rb +170 -0
  101. data/lib/oci/events/models/create_notification_service_action_details.rb +170 -0
  102. data/lib/oci/events/models/create_rule_details.rb +284 -0
  103. data/lib/oci/events/models/create_streaming_service_action_details.rb +170 -0
  104. data/lib/oci/events/models/faa_s_action.rb +178 -0
  105. data/lib/oci/events/models/notification_service_action.rb +179 -0
  106. data/lib/oci/events/models/rule.rb +372 -0
  107. data/lib/oci/events/models/rule_summary.rb +321 -0
  108. data/lib/oci/events/models/streaming_service_action.rb +178 -0
  109. data/lib/oci/events/models/update_rule_details.rb +266 -0
  110. data/lib/oci/events/util.rb +2 -0
  111. data/lib/oci/functions/functions.rb +29 -0
  112. data/lib/oci/functions/functions_invoke_client.rb +237 -0
  113. data/lib/oci/functions/functions_invoke_client_composite_operations.rb +24 -0
  114. data/lib/oci/functions/functions_management_client.rb +851 -0
  115. data/lib/oci/functions/functions_management_client_composite_operations.rb +266 -0
  116. data/lib/oci/functions/models/application.rb +322 -0
  117. data/lib/oci/functions/models/application_summary.rb +281 -0
  118. data/lib/oci/functions/models/change_application_compartment_details.rb +156 -0
  119. data/lib/oci/functions/models/create_application_details.rb +236 -0
  120. data/lib/oci/functions/models/create_function_details.rb +280 -0
  121. data/lib/oci/functions/models/function.rb +397 -0
  122. data/lib/oci/functions/models/function_summary.rb +381 -0
  123. data/lib/oci/functions/models/update_application_details.rb +191 -0
  124. data/lib/oci/functions/models/update_function_details.rb +250 -0
  125. data/lib/oci/functions/util.rb +2 -0
  126. data/lib/oci/healthchecks/health_checks_client.rb +147 -1
  127. data/lib/oci/healthchecks/healthchecks.rb +2 -0
  128. data/lib/oci/healthchecks/models/change_http_monitor_compartment_details.rb +155 -0
  129. data/lib/oci/healthchecks/models/change_ping_monitor_compartment_details.rb +155 -0
  130. data/lib/oci/healthchecks/models/create_http_monitor_details.rb +2 -1
  131. data/lib/oci/healthchecks/models/create_on_demand_http_probe_details.rb +2 -1
  132. data/lib/oci/healthchecks/models/create_on_demand_ping_probe_details.rb +2 -1
  133. data/lib/oci/healthchecks/models/create_ping_monitor_details.rb +2 -1
  134. data/lib/oci/healthchecks/models/http_monitor.rb +2 -0
  135. data/lib/oci/healthchecks/models/http_probe.rb +2 -0
  136. data/lib/oci/healthchecks/models/ping_monitor.rb +2 -0
  137. data/lib/oci/healthchecks/models/ping_probe.rb +2 -0
  138. data/lib/oci/healthchecks/models/update_http_monitor_details.rb +2 -0
  139. data/lib/oci/healthchecks/models/update_ping_monitor_details.rb +2 -0
  140. data/lib/oci/identity/identity.rb +1 -0
  141. data/lib/oci/identity/identity_client.rb +70 -0
  142. data/lib/oci/identity/identity_client_composite_operations.rb +50 -0
  143. data/lib/oci/identity/models/move_compartment_details.rb +155 -0
  144. data/lib/oci/key_management/key_management.rb +2 -0
  145. data/lib/oci/key_management/kms_management_client.rb +73 -0
  146. data/lib/oci/key_management/kms_vault_client.rb +73 -0
  147. data/lib/oci/key_management/models/change_key_compartment_details.rb +153 -0
  148. data/lib/oci/key_management/models/change_vault_compartment_details.rb +153 -0
  149. data/lib/oci/key_management/models/key.rb +1 -0
  150. data/lib/oci/key_management/models/key_summary.rb +1 -0
  151. data/lib/oci/key_management/models/vault.rb +1 -0
  152. data/lib/oci/key_management/models/vault_summary.rb +1 -0
  153. data/lib/oci/limits/limits.rb +23 -0
  154. data/lib/oci/limits/models/create_quota_details.rb +220 -0
  155. data/lib/oci/limits/models/quota.rb +287 -0
  156. data/lib/oci/limits/models/quota_summary.rb +273 -0
  157. data/lib/oci/limits/models/update_quota_details.rb +194 -0
  158. data/lib/oci/limits/quotas_client.rb +439 -0
  159. data/lib/oci/limits/quotas_client_composite_operations.rb +143 -0
  160. data/lib/oci/limits/util.rb +2 -0
  161. data/lib/oci/load_balancer/load_balancer.rb +9 -0
  162. data/lib/oci/load_balancer/load_balancer_client.rb +139 -0
  163. data/lib/oci/load_balancer/load_balancer_client_composite_operations.rb +50 -0
  164. data/lib/oci/load_balancer/models/allow_rule.rb +181 -0
  165. data/lib/oci/load_balancer/models/backend_set.rb +21 -4
  166. data/lib/oci/load_balancer/models/backend_set_details.rb +21 -4
  167. data/lib/oci/load_balancer/models/change_load_balancer_compartment_details.rb +156 -0
  168. data/lib/oci/load_balancer/models/control_access_using_http_methods_rule.rb +205 -0
  169. data/lib/oci/load_balancer/models/create_backend_set_details.rb +21 -4
  170. data/lib/oci/load_balancer/models/create_load_balancer_details.rb +37 -1
  171. data/lib/oci/load_balancer/models/lb_cookie_session_persistence_configuration_details.rb +334 -0
  172. data/lib/oci/load_balancer/models/listener_rule_summary.rb +166 -0
  173. data/lib/oci/load_balancer/models/rule.rb +4 -0
  174. data/lib/oci/load_balancer/models/rule_condition.rb +192 -0
  175. data/lib/oci/load_balancer/models/session_persistence_configuration_details.rb +6 -0
  176. data/lib/oci/load_balancer/models/source_ip_address_condition.rb +167 -0
  177. data/lib/oci/load_balancer/models/source_vcn_id_condition.rb +169 -0
  178. data/lib/oci/load_balancer/models/source_vcn_ip_address_condition.rb +171 -0
  179. data/lib/oci/load_balancer/models/update_backend_set_details.rb +21 -4
  180. data/lib/oci/monitoring/models/alarm.rb +4 -3
  181. data/lib/oci/monitoring/models/alarm_summary.rb +4 -3
  182. data/lib/oci/monitoring/models/change_alarm_compartment_details.rb +155 -0
  183. data/lib/oci/monitoring/models/create_alarm_details.rb +4 -3
  184. data/lib/oci/monitoring/models/datapoint.rb +1 -1
  185. data/lib/oci/monitoring/models/list_metrics_details.rb +4 -4
  186. data/lib/oci/monitoring/models/metric_data.rb +14 -0
  187. data/lib/oci/monitoring/models/metric_data_details.rb +6 -4
  188. data/lib/oci/monitoring/models/summarize_metrics_data_details.rb +3 -0
  189. data/lib/oci/monitoring/models/update_alarm_details.rb +4 -3
  190. data/lib/oci/monitoring/monitoring.rb +1 -0
  191. data/lib/oci/monitoring/monitoring_client.rb +140 -5
  192. data/lib/oci/ons/models/backoff_retry_policy.rb +2 -2
  193. data/lib/oci/ons/models/change_compartment_details.rb +156 -0
  194. data/lib/oci/ons/models/confirmation_result.rb +5 -6
  195. data/lib/oci/ons/models/create_topic_details.rb +1 -1
  196. data/lib/oci/ons/models/notification_topic.rb +2 -2
  197. data/lib/oci/ons/models/notification_topic_summary.rb +2 -2
  198. data/lib/oci/ons/models/subscription.rb +47 -4
  199. data/lib/oci/ons/models/subscription_summary.rb +19 -3
  200. data/lib/oci/ons/notification_control_plane_client.rb +95 -8
  201. data/lib/oci/ons/notification_data_plane_client.rb +109 -8
  202. data/lib/oci/ons/ons.rb +1 -0
  203. data/lib/oci/regions.rb +3 -0
  204. data/lib/oci/streaming/models/change_stream_compartment_details.rb +155 -0
  205. data/lib/oci/streaming/stream_admin_client.rb +58 -0
  206. data/lib/oci/streaming/streaming.rb +1 -0
  207. data/lib/oci/version.rb +1 -1
  208. data/lib/oci/waas/models/access_rule_criteria.rb +14 -2
  209. data/lib/oci/waas/models/change_certificate_compartment_details.rb +154 -0
  210. data/lib/oci/waas/models/change_waas_policy_compartment_details.rb +154 -0
  211. data/lib/oci/waas/models/create_certificate_details.rb +2 -2
  212. data/lib/oci/waas/models/protection_rule_exclusion.rb +16 -1
  213. data/lib/oci/waas/models/protection_settings.rb +9 -5
  214. data/lib/oci/waas/models/waas_policy.rb +1 -1
  215. data/lib/oci/waas/models/waf_config_details.rb +8 -8
  216. data/lib/oci/waas/models/waf_log.rb +40 -19
  217. data/lib/oci/waas/waas.rb +2 -0
  218. data/lib/oci/waas/waas_client.rb +155 -27
  219. data/lib/oci/work_requests/models/work_request.rb +14 -8
  220. data/lib/oci/work_requests/models/work_request_error.rb +3 -3
  221. data/lib/oci/work_requests/models/work_request_log_entry.rb +2 -2
  222. data/lib/oci/work_requests/models/work_request_resource.rb +9 -7
  223. data/lib/oci/work_requests/models/work_request_summary.rb +12 -6
  224. data/lib/oci/work_requests/work_request_client.rb +33 -16
  225. metadata +81 -2
@@ -0,0 +1,372 @@
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, Metrics/LineLength
7
+ module OCI
8
+ # The configuration details of an Events rule. For more information, see
9
+ # [Managing Rules for Events](https://docs.cloud.oracle.com/iaas/Content/Events/Task/managingrulesactions.htm)
10
+ #
11
+ class Events::Models::Rule
12
+ LIFECYCLE_STATE_ENUM = [
13
+ LIFECYCLE_STATE_CREATING = 'CREATING'.freeze,
14
+ LIFECYCLE_STATE_ACTIVE = 'ACTIVE'.freeze,
15
+ LIFECYCLE_STATE_INACTIVE = 'INACTIVE'.freeze,
16
+ LIFECYCLE_STATE_UPDATING = 'UPDATING'.freeze,
17
+ LIFECYCLE_STATE_DELETING = 'DELETING'.freeze,
18
+ LIFECYCLE_STATE_DELETED = 'DELETED'.freeze,
19
+ LIFECYCLE_STATE_FAILED = 'FAILED'.freeze,
20
+ LIFECYCLE_STATE_UNKNOWN_ENUM_VALUE = 'UNKNOWN_ENUM_VALUE'.freeze
21
+ ].freeze
22
+
23
+ # **[Required]** A string that describes the rule. It does not have to be unique, and you can change it. Avoid entering
24
+ # confidential information.
25
+ #
26
+ # Example: `\"This rule sends a notification upon completion of DbaaS backup.\"`
27
+ #
28
+ # @return [String]
29
+ attr_accessor :display_name
30
+
31
+ # A string that describes the details of the rule. It does not have to be unique, and you can change it. Avoid entering
32
+ # confidential information.
33
+ #
34
+ # @return [String]
35
+ attr_accessor :description
36
+
37
+ # **[Required]** The current state of the rule.
38
+ #
39
+ # @return [String]
40
+ attr_reader :lifecycle_state
41
+
42
+ # **[Required]** A filter that specifies the event that will trigger actions associated with this rule. A few
43
+ # important things to remember about filters:
44
+ #
45
+ # * Fields not mentioned in the condition are ignored. You can create a valid filter that matches
46
+ # all events with two curly brackets: `{}`
47
+ #
48
+ # For more examples, see
49
+ # [Matching Events with Filters](https://docs.cloud.oracle.com/iaas/Content/Events/Concepts/filterevents.htm).
50
+ # * For a condition with fileds to match an event, the event must contain all the field names
51
+ # listed in the condition. Field names must appear in the condition with the same nesting
52
+ # structure used in the event.
53
+ #
54
+ # For a list of reference events, see
55
+ # [Services that Produce Events](https://docs.cloud.oracle.com/iaas/Content/Events/Reference/eventsproducers.htm).
56
+ # * Rules apply to events in the compartment in which you create them and any child compartments.
57
+ # This means that a condition specified by a rule only matches events emitted from resources in
58
+ # the compartment or any of its child compartments.
59
+ # * The condition is a string value in a JSON object, but numbers in conditions are converted
60
+ # from strings to numbers before they are evaluated for matches. This means that 100, 100.0 or
61
+ # 1.0e2 are all considered equal.
62
+ # * Boolean values are converted to numbers and then evaluated. This means true and True are
63
+ # considered equal, as are False and false.
64
+ # * Wildcard matching is supported with the asterisk (*) character.
65
+ #
66
+ # For examples of wildcard matching, see
67
+ # [Matching Events with Filters](https://docs.cloud.oracle.com/iaas/Content/Events/Concepts/filterevents.htm)
68
+ #
69
+ # Example: `\\\"eventType\\\": \\\"com.oraclecloud.databaseservice.autonomous.database.backup.end\\\"`
70
+ #
71
+ # @return [String]
72
+ attr_accessor :condition
73
+
74
+ # **[Required]** The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment to which this rule belongs.
75
+ #
76
+ # @return [String]
77
+ attr_accessor :compartment_id
78
+
79
+ # **[Required]** Whether or not this rule is currently enabled.
80
+ #
81
+ # Example: `true`
82
+ #
83
+ # @return [BOOLEAN]
84
+ attr_accessor :is_enabled
85
+
86
+ # Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. Exists for cross-compatibility only.
87
+ # For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).
88
+ #
89
+ # Example: `{\"Department\": \"Finance\"}`
90
+ #
91
+ # @return [Hash<String, String>]
92
+ attr_accessor :freeform_tags
93
+
94
+ # Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).
95
+ #
96
+ # Example: `{\"Operations\": {\"CostCenter\": \"42\"}}`
97
+ #
98
+ # @return [Hash<String, Hash<String, Object>>]
99
+ attr_accessor :defined_tags
100
+
101
+ # This attribute is required.
102
+ # @return [OCI::Events::Models::ActionList]
103
+ attr_accessor :actions
104
+
105
+ # **[Required]** The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of this rule.
106
+ #
107
+ # @return [String]
108
+ attr_accessor :id
109
+
110
+ # **[Required]** The time this rule was created, expressed in [RFC 3339](https://tools.ietf.org/html/rfc3339)
111
+ # timestamp format.
112
+ #
113
+ # Example: `2018-09-12T22:47:12.613Z`
114
+ #
115
+ # @return [DateTime]
116
+ attr_accessor :time_created
117
+
118
+ # A message generated by the Events service about the current state of this rule.
119
+ #
120
+ # @return [String]
121
+ attr_accessor :lifecycle_message
122
+
123
+ # Attribute mapping from ruby-style variable name to JSON key.
124
+ def self.attribute_map
125
+ {
126
+ # rubocop:disable Style/SymbolLiteral
127
+ 'display_name': :'displayName',
128
+ 'description': :'description',
129
+ 'lifecycle_state': :'lifecycleState',
130
+ 'condition': :'condition',
131
+ 'compartment_id': :'compartmentId',
132
+ 'is_enabled': :'isEnabled',
133
+ 'freeform_tags': :'freeformTags',
134
+ 'defined_tags': :'definedTags',
135
+ 'actions': :'actions',
136
+ 'id': :'id',
137
+ 'time_created': :'timeCreated',
138
+ 'lifecycle_message': :'lifecycleMessage'
139
+ # rubocop:enable Style/SymbolLiteral
140
+ }
141
+ end
142
+
143
+ # Attribute type mapping.
144
+ def self.swagger_types
145
+ {
146
+ # rubocop:disable Style/SymbolLiteral
147
+ 'display_name': :'String',
148
+ 'description': :'String',
149
+ 'lifecycle_state': :'String',
150
+ 'condition': :'String',
151
+ 'compartment_id': :'String',
152
+ 'is_enabled': :'BOOLEAN',
153
+ 'freeform_tags': :'Hash<String, String>',
154
+ 'defined_tags': :'Hash<String, Hash<String, Object>>',
155
+ 'actions': :'OCI::Events::Models::ActionList',
156
+ 'id': :'String',
157
+ 'time_created': :'DateTime',
158
+ 'lifecycle_message': :'String'
159
+ # rubocop:enable Style/SymbolLiteral
160
+ }
161
+ end
162
+
163
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
164
+ # rubocop:disable Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
165
+
166
+
167
+ # Initializes the object
168
+ # @param [Hash] attributes Model attributes in the form of hash
169
+ # @option attributes [String] :display_name The value to assign to the {#display_name} property
170
+ # @option attributes [String] :description The value to assign to the {#description} property
171
+ # @option attributes [String] :lifecycle_state The value to assign to the {#lifecycle_state} property
172
+ # @option attributes [String] :condition The value to assign to the {#condition} property
173
+ # @option attributes [String] :compartment_id The value to assign to the {#compartment_id} property
174
+ # @option attributes [BOOLEAN] :is_enabled The value to assign to the {#is_enabled} property
175
+ # @option attributes [Hash<String, String>] :freeform_tags The value to assign to the {#freeform_tags} property
176
+ # @option attributes [Hash<String, Hash<String, Object>>] :defined_tags The value to assign to the {#defined_tags} property
177
+ # @option attributes [OCI::Events::Models::ActionList] :actions The value to assign to the {#actions} property
178
+ # @option attributes [String] :id The value to assign to the {#id} property
179
+ # @option attributes [DateTime] :time_created The value to assign to the {#time_created} property
180
+ # @option attributes [String] :lifecycle_message The value to assign to the {#lifecycle_message} property
181
+ def initialize(attributes = {})
182
+ return unless attributes.is_a?(Hash)
183
+
184
+ # convert string to symbol for hash key
185
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
186
+
187
+ self.display_name = attributes[:'displayName'] if attributes[:'displayName']
188
+
189
+ raise 'You cannot provide both :displayName and :display_name' if attributes.key?(:'displayName') && attributes.key?(:'display_name')
190
+
191
+ self.display_name = attributes[:'display_name'] if attributes[:'display_name']
192
+
193
+ self.description = attributes[:'description'] if attributes[:'description']
194
+
195
+ self.lifecycle_state = attributes[:'lifecycleState'] if attributes[:'lifecycleState']
196
+
197
+ raise 'You cannot provide both :lifecycleState and :lifecycle_state' if attributes.key?(:'lifecycleState') && attributes.key?(:'lifecycle_state')
198
+
199
+ self.lifecycle_state = attributes[:'lifecycle_state'] if attributes[:'lifecycle_state']
200
+
201
+ self.condition = attributes[:'condition'] if attributes[:'condition']
202
+
203
+ self.compartment_id = attributes[:'compartmentId'] if attributes[:'compartmentId']
204
+
205
+ raise 'You cannot provide both :compartmentId and :compartment_id' if attributes.key?(:'compartmentId') && attributes.key?(:'compartment_id')
206
+
207
+ self.compartment_id = attributes[:'compartment_id'] if attributes[:'compartment_id']
208
+
209
+ self.is_enabled = attributes[:'isEnabled'] unless attributes[:'isEnabled'].nil?
210
+ self.is_enabled = true if is_enabled.nil? && !attributes.key?(:'isEnabled') # rubocop:disable Style/StringLiterals
211
+
212
+ raise 'You cannot provide both :isEnabled and :is_enabled' if attributes.key?(:'isEnabled') && attributes.key?(:'is_enabled')
213
+
214
+ self.is_enabled = attributes[:'is_enabled'] unless attributes[:'is_enabled'].nil?
215
+ self.is_enabled = true if is_enabled.nil? && !attributes.key?(:'isEnabled') && !attributes.key?(:'is_enabled') # rubocop:disable Style/StringLiterals
216
+
217
+ self.freeform_tags = attributes[:'freeformTags'] if attributes[:'freeformTags']
218
+
219
+ raise 'You cannot provide both :freeformTags and :freeform_tags' if attributes.key?(:'freeformTags') && attributes.key?(:'freeform_tags')
220
+
221
+ self.freeform_tags = attributes[:'freeform_tags'] if attributes[:'freeform_tags']
222
+
223
+ self.defined_tags = attributes[:'definedTags'] if attributes[:'definedTags']
224
+
225
+ raise 'You cannot provide both :definedTags and :defined_tags' if attributes.key?(:'definedTags') && attributes.key?(:'defined_tags')
226
+
227
+ self.defined_tags = attributes[:'defined_tags'] if attributes[:'defined_tags']
228
+
229
+ self.actions = attributes[:'actions'] if attributes[:'actions']
230
+
231
+ self.id = attributes[:'id'] if attributes[:'id']
232
+
233
+ self.time_created = attributes[:'timeCreated'] if attributes[:'timeCreated']
234
+
235
+ raise 'You cannot provide both :timeCreated and :time_created' if attributes.key?(:'timeCreated') && attributes.key?(:'time_created')
236
+
237
+ self.time_created = attributes[:'time_created'] if attributes[:'time_created']
238
+
239
+ self.lifecycle_message = attributes[:'lifecycleMessage'] if attributes[:'lifecycleMessage']
240
+
241
+ raise 'You cannot provide both :lifecycleMessage and :lifecycle_message' if attributes.key?(:'lifecycleMessage') && attributes.key?(:'lifecycle_message')
242
+
243
+ self.lifecycle_message = attributes[:'lifecycle_message'] if attributes[:'lifecycle_message']
244
+ end
245
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
246
+ # rubocop:enable Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
247
+
248
+ # Custom attribute writer method checking allowed values (enum).
249
+ # @param [Object] lifecycle_state Object to be assigned
250
+ def lifecycle_state=(lifecycle_state)
251
+ # rubocop:disable Style/ConditionalAssignment
252
+ if lifecycle_state && !LIFECYCLE_STATE_ENUM.include?(lifecycle_state)
253
+ OCI.logger.debug("Unknown value for 'lifecycle_state' [" + lifecycle_state + "]. Mapping to 'LIFECYCLE_STATE_UNKNOWN_ENUM_VALUE'") if OCI.logger
254
+ @lifecycle_state = LIFECYCLE_STATE_UNKNOWN_ENUM_VALUE
255
+ else
256
+ @lifecycle_state = lifecycle_state
257
+ end
258
+ # rubocop:enable Style/ConditionalAssignment
259
+ end
260
+
261
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
262
+
263
+
264
+ # Checks equality by comparing each attribute.
265
+ # @param [Object] other the other object to be compared
266
+ def ==(other)
267
+ return true if equal?(other)
268
+
269
+ self.class == other.class &&
270
+ display_name == other.display_name &&
271
+ description == other.description &&
272
+ lifecycle_state == other.lifecycle_state &&
273
+ condition == other.condition &&
274
+ compartment_id == other.compartment_id &&
275
+ is_enabled == other.is_enabled &&
276
+ freeform_tags == other.freeform_tags &&
277
+ defined_tags == other.defined_tags &&
278
+ actions == other.actions &&
279
+ id == other.id &&
280
+ time_created == other.time_created &&
281
+ lifecycle_message == other.lifecycle_message
282
+ end
283
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
284
+
285
+ # @see the `==` method
286
+ # @param [Object] other the other object to be compared
287
+ def eql?(other)
288
+ self == other
289
+ end
290
+
291
+ # rubocop:disable Metrics/AbcSize, Layout/EmptyLines
292
+
293
+
294
+ # Calculates hash code according to all attributes.
295
+ # @return [Fixnum] Hash code
296
+ def hash
297
+ [display_name, description, lifecycle_state, condition, compartment_id, is_enabled, freeform_tags, defined_tags, actions, id, time_created, lifecycle_message].hash
298
+ end
299
+ # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
300
+
301
+ # rubocop:disable Metrics/AbcSize, Layout/EmptyLines
302
+
303
+
304
+ # Builds the object from hash
305
+ # @param [Hash] attributes Model attributes in the form of hash
306
+ # @return [Object] Returns the model itself
307
+ def build_from_hash(attributes)
308
+ return nil unless attributes.is_a?(Hash)
309
+
310
+ self.class.swagger_types.each_pair do |key, type|
311
+ if type =~ /^Array<(.*)>/i
312
+ # check to ensure the input is an array given that the the attribute
313
+ # is documented as an array but the input is not
314
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
315
+ public_method("#{key}=").call(
316
+ attributes[self.class.attribute_map[key]]
317
+ .map { |v| OCI::Internal::Util.convert_to_type(Regexp.last_match(1), v) }
318
+ )
319
+ end
320
+ elsif !attributes[self.class.attribute_map[key]].nil?
321
+ public_method("#{key}=").call(
322
+ OCI::Internal::Util.convert_to_type(type, attributes[self.class.attribute_map[key]])
323
+ )
324
+ end
325
+ # or else data not found in attributes(hash), not an issue as the data can be optional
326
+ end
327
+
328
+ self
329
+ end
330
+ # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
331
+
332
+ # Returns the string representation of the object
333
+ # @return [String] String presentation of the object
334
+ def to_s
335
+ to_hash.to_s
336
+ end
337
+
338
+ # Returns the object in the form of hash
339
+ # @return [Hash] Returns the object in the form of hash
340
+ def to_hash
341
+ hash = {}
342
+ self.class.attribute_map.each_pair do |attr, param|
343
+ value = public_method(attr).call
344
+ next if value.nil? && !instance_variable_defined?("@#{attr}")
345
+
346
+ hash[param] = _to_hash(value)
347
+ end
348
+ hash
349
+ end
350
+
351
+ private
352
+
353
+ # Outputs non-array value in the form of hash
354
+ # For object, use to_hash. Otherwise, just return the value
355
+ # @param [Object] value Any valid value
356
+ # @return [Hash] Returns the value in the form of hash
357
+ def _to_hash(value)
358
+ if value.is_a?(Array)
359
+ value.compact.map { |v| _to_hash(v) }
360
+ elsif value.is_a?(Hash)
361
+ {}.tap do |hash|
362
+ value.each { |k, v| hash[k] = _to_hash(v) }
363
+ end
364
+ elsif value.respond_to? :to_hash
365
+ value.to_hash
366
+ else
367
+ value
368
+ end
369
+ end
370
+ end
371
+ end
372
+ # rubocop:enable Lint/UnneededCopDisableDirective, Metrics/LineLength
@@ -0,0 +1,321 @@
1
+ # Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
2
+
3
+ require 'date'
4
+
5
+ # rubocop:disable Lint/UnneededCopDisableDirective, Metrics/LineLength
6
+ module OCI
7
+ # The summary details of rules for Events. For more information, see
8
+ # [Managing Rules for Events](https://docs.cloud.oracle.com/iaas/Content/Events/Task/managingrulesactions.htm)
9
+ #
10
+ class Events::Models::RuleSummary
11
+ # **[Required]** The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of this rule.
12
+ #
13
+ # @return [String]
14
+ attr_accessor :id
15
+
16
+ # **[Required]** A string that describes the rule. It does not have to be unique, and you can change it. Avoid entering
17
+ # confidential information.
18
+ #
19
+ # Example: `\"This rule sends a notification upon completion of DbaaS backup.\"`
20
+ #
21
+ # @return [String]
22
+ attr_accessor :display_name
23
+
24
+ # A string that describes the details of the rule. It does not have to be unique, and you can change it. Avoid entering
25
+ # confidential information.
26
+ #
27
+ # @return [String]
28
+ attr_accessor :description
29
+
30
+ # This attribute is required.
31
+ # @return [String]
32
+ attr_accessor :lifecycle_state
33
+
34
+ # **[Required]** A filter that specifies the event that will trigger actions associated with this rule. A few
35
+ # important things to remember about filters:
36
+ #
37
+ # * Fields not mentioned in the condition are ignored. You can create a valid filter that matches
38
+ # all events with two curly brackets: `{}`
39
+ #
40
+ # For more examples, see
41
+ # [Matching Events with Filters](https://docs.cloud.oracle.com/iaas/Content/Events/Concepts/filterevents.htm).
42
+ # * For a condition with fileds to match an event, the event must contain all the field names
43
+ # listed in the condition. Field names must appear in the condition with the same nesting
44
+ # structure used in the event.
45
+ #
46
+ # For a list of reference events, see
47
+ # [Services that Produce Events](https://docs.cloud.oracle.com/iaas/Content/Events/Reference/eventsproducers.htm).
48
+ # * Rules apply to events in the compartment in which you create them and any child compartments.
49
+ # This means that a condition specified by a rule only matches events emitted from resources in
50
+ # the compartment or any of its child compartments.
51
+ # * The condition is a string value in a JSON object, but numbers in conditions are converted
52
+ # from strings to numbers before they are evaluated for matches. This means that 100, 100.0 or
53
+ # 1.0e2 are all considered equal.
54
+ # * Boolean values are converted to numbers and then evaluated. This means true and True are
55
+ # considered equal, as are False and false.
56
+ # * Wildcard matching is supported with the asterisk (*) character.
57
+ #
58
+ # For examples of wildcard matching, see
59
+ # [Matching Events with Filters](https://docs.cloud.oracle.com/iaas/Content/Events/Concepts/filterevents.htm)
60
+ #
61
+ # Example: `\\\"eventType\\\": \\\"com.oraclecloud.databaseservice.autonomous.database.backup.end\\\"`
62
+ #
63
+ # @return [String]
64
+ attr_accessor :condition
65
+
66
+ # **[Required]** The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment to which this rule belongs.
67
+ #
68
+ # @return [String]
69
+ attr_accessor :compartment_id
70
+
71
+ # **[Required]** Whether or not this rule is currently enabled.
72
+ #
73
+ # Example: `true`
74
+ #
75
+ # @return [BOOLEAN]
76
+ attr_accessor :is_enabled
77
+
78
+ # **[Required]** The time this rule was created, expressed in [RFC 3339](https://tools.ietf.org/html/rfc3339)
79
+ # timestamp format.
80
+ #
81
+ # Example: `2018-09-12T22:47:12.613Z`
82
+ #
83
+ # @return [DateTime]
84
+ attr_accessor :time_created
85
+
86
+ # Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. Exists for cross-compatibility only.
87
+ # For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).
88
+ #
89
+ # Example: `{\"Department\": \"Finance\"}`
90
+ #
91
+ # @return [Hash<String, String>]
92
+ attr_accessor :freeform_tags
93
+
94
+ # Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).
95
+ #
96
+ # Example: `{\"Operations\": {\"CostCenter\": \"42\"}}`
97
+ #
98
+ # @return [Hash<String, Hash<String, Object>>]
99
+ attr_accessor :defined_tags
100
+
101
+ # Attribute mapping from ruby-style variable name to JSON key.
102
+ def self.attribute_map
103
+ {
104
+ # rubocop:disable Style/SymbolLiteral
105
+ 'id': :'id',
106
+ 'display_name': :'displayName',
107
+ 'description': :'description',
108
+ 'lifecycle_state': :'lifecycleState',
109
+ 'condition': :'condition',
110
+ 'compartment_id': :'compartmentId',
111
+ 'is_enabled': :'isEnabled',
112
+ 'time_created': :'timeCreated',
113
+ 'freeform_tags': :'freeformTags',
114
+ 'defined_tags': :'definedTags'
115
+ # rubocop:enable Style/SymbolLiteral
116
+ }
117
+ end
118
+
119
+ # Attribute type mapping.
120
+ def self.swagger_types
121
+ {
122
+ # rubocop:disable Style/SymbolLiteral
123
+ 'id': :'String',
124
+ 'display_name': :'String',
125
+ 'description': :'String',
126
+ 'lifecycle_state': :'String',
127
+ 'condition': :'String',
128
+ 'compartment_id': :'String',
129
+ 'is_enabled': :'BOOLEAN',
130
+ 'time_created': :'DateTime',
131
+ 'freeform_tags': :'Hash<String, String>',
132
+ 'defined_tags': :'Hash<String, Hash<String, Object>>'
133
+ # rubocop:enable Style/SymbolLiteral
134
+ }
135
+ end
136
+
137
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
138
+ # rubocop:disable Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
139
+
140
+
141
+ # Initializes the object
142
+ # @param [Hash] attributes Model attributes in the form of hash
143
+ # @option attributes [String] :id The value to assign to the {#id} property
144
+ # @option attributes [String] :display_name The value to assign to the {#display_name} property
145
+ # @option attributes [String] :description The value to assign to the {#description} property
146
+ # @option attributes [String] :lifecycle_state The value to assign to the {#lifecycle_state} property
147
+ # @option attributes [String] :condition The value to assign to the {#condition} property
148
+ # @option attributes [String] :compartment_id The value to assign to the {#compartment_id} property
149
+ # @option attributes [BOOLEAN] :is_enabled The value to assign to the {#is_enabled} property
150
+ # @option attributes [DateTime] :time_created The value to assign to the {#time_created} property
151
+ # @option attributes [Hash<String, String>] :freeform_tags The value to assign to the {#freeform_tags} property
152
+ # @option attributes [Hash<String, Hash<String, Object>>] :defined_tags The value to assign to the {#defined_tags} property
153
+ def initialize(attributes = {})
154
+ return unless attributes.is_a?(Hash)
155
+
156
+ # convert string to symbol for hash key
157
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
158
+
159
+ self.id = attributes[:'id'] if attributes[:'id']
160
+
161
+ self.display_name = attributes[:'displayName'] if attributes[:'displayName']
162
+
163
+ raise 'You cannot provide both :displayName and :display_name' if attributes.key?(:'displayName') && attributes.key?(:'display_name')
164
+
165
+ self.display_name = attributes[:'display_name'] if attributes[:'display_name']
166
+
167
+ self.description = attributes[:'description'] if attributes[:'description']
168
+
169
+ self.lifecycle_state = attributes[:'lifecycleState'] if attributes[:'lifecycleState']
170
+
171
+ raise 'You cannot provide both :lifecycleState and :lifecycle_state' if attributes.key?(:'lifecycleState') && attributes.key?(:'lifecycle_state')
172
+
173
+ self.lifecycle_state = attributes[:'lifecycle_state'] if attributes[:'lifecycle_state']
174
+
175
+ self.condition = attributes[:'condition'] if attributes[:'condition']
176
+
177
+ self.compartment_id = attributes[:'compartmentId'] if attributes[:'compartmentId']
178
+
179
+ raise 'You cannot provide both :compartmentId and :compartment_id' if attributes.key?(:'compartmentId') && attributes.key?(:'compartment_id')
180
+
181
+ self.compartment_id = attributes[:'compartment_id'] if attributes[:'compartment_id']
182
+
183
+ self.is_enabled = attributes[:'isEnabled'] unless attributes[:'isEnabled'].nil?
184
+ self.is_enabled = true if is_enabled.nil? && !attributes.key?(:'isEnabled') # rubocop:disable Style/StringLiterals
185
+
186
+ raise 'You cannot provide both :isEnabled and :is_enabled' if attributes.key?(:'isEnabled') && attributes.key?(:'is_enabled')
187
+
188
+ self.is_enabled = attributes[:'is_enabled'] unless attributes[:'is_enabled'].nil?
189
+ self.is_enabled = true if is_enabled.nil? && !attributes.key?(:'isEnabled') && !attributes.key?(:'is_enabled') # rubocop:disable Style/StringLiterals
190
+
191
+ self.time_created = attributes[:'timeCreated'] if attributes[:'timeCreated']
192
+
193
+ raise 'You cannot provide both :timeCreated and :time_created' if attributes.key?(:'timeCreated') && attributes.key?(:'time_created')
194
+
195
+ self.time_created = attributes[:'time_created'] if attributes[:'time_created']
196
+
197
+ self.freeform_tags = attributes[:'freeformTags'] if attributes[:'freeformTags']
198
+
199
+ raise 'You cannot provide both :freeformTags and :freeform_tags' if attributes.key?(:'freeformTags') && attributes.key?(:'freeform_tags')
200
+
201
+ self.freeform_tags = attributes[:'freeform_tags'] if attributes[:'freeform_tags']
202
+
203
+ self.defined_tags = attributes[:'definedTags'] if attributes[:'definedTags']
204
+
205
+ raise 'You cannot provide both :definedTags and :defined_tags' if attributes.key?(:'definedTags') && attributes.key?(:'defined_tags')
206
+
207
+ self.defined_tags = attributes[:'defined_tags'] if attributes[:'defined_tags']
208
+ end
209
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
210
+ # rubocop:enable Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
211
+
212
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
213
+
214
+
215
+ # Checks equality by comparing each attribute.
216
+ # @param [Object] other the other object to be compared
217
+ def ==(other)
218
+ return true if equal?(other)
219
+
220
+ self.class == other.class &&
221
+ id == other.id &&
222
+ display_name == other.display_name &&
223
+ description == other.description &&
224
+ lifecycle_state == other.lifecycle_state &&
225
+ condition == other.condition &&
226
+ compartment_id == other.compartment_id &&
227
+ is_enabled == other.is_enabled &&
228
+ time_created == other.time_created &&
229
+ freeform_tags == other.freeform_tags &&
230
+ defined_tags == other.defined_tags
231
+ end
232
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
233
+
234
+ # @see the `==` method
235
+ # @param [Object] other the other object to be compared
236
+ def eql?(other)
237
+ self == other
238
+ end
239
+
240
+ # rubocop:disable Metrics/AbcSize, Layout/EmptyLines
241
+
242
+
243
+ # Calculates hash code according to all attributes.
244
+ # @return [Fixnum] Hash code
245
+ def hash
246
+ [id, display_name, description, lifecycle_state, condition, compartment_id, is_enabled, time_created, freeform_tags, defined_tags].hash
247
+ end
248
+ # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
249
+
250
+ # rubocop:disable Metrics/AbcSize, Layout/EmptyLines
251
+
252
+
253
+ # Builds the object from hash
254
+ # @param [Hash] attributes Model attributes in the form of hash
255
+ # @return [Object] Returns the model itself
256
+ def build_from_hash(attributes)
257
+ return nil unless attributes.is_a?(Hash)
258
+
259
+ self.class.swagger_types.each_pair do |key, type|
260
+ if type =~ /^Array<(.*)>/i
261
+ # check to ensure the input is an array given that the the attribute
262
+ # is documented as an array but the input is not
263
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
264
+ public_method("#{key}=").call(
265
+ attributes[self.class.attribute_map[key]]
266
+ .map { |v| OCI::Internal::Util.convert_to_type(Regexp.last_match(1), v) }
267
+ )
268
+ end
269
+ elsif !attributes[self.class.attribute_map[key]].nil?
270
+ public_method("#{key}=").call(
271
+ OCI::Internal::Util.convert_to_type(type, attributes[self.class.attribute_map[key]])
272
+ )
273
+ end
274
+ # or else data not found in attributes(hash), not an issue as the data can be optional
275
+ end
276
+
277
+ self
278
+ end
279
+ # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
280
+
281
+ # Returns the string representation of the object
282
+ # @return [String] String presentation of the object
283
+ def to_s
284
+ to_hash.to_s
285
+ end
286
+
287
+ # Returns the object in the form of hash
288
+ # @return [Hash] Returns the object in the form of hash
289
+ def to_hash
290
+ hash = {}
291
+ self.class.attribute_map.each_pair do |attr, param|
292
+ value = public_method(attr).call
293
+ next if value.nil? && !instance_variable_defined?("@#{attr}")
294
+
295
+ hash[param] = _to_hash(value)
296
+ end
297
+ hash
298
+ end
299
+
300
+ private
301
+
302
+ # Outputs non-array value in the form of hash
303
+ # For object, use to_hash. Otherwise, just return the value
304
+ # @param [Object] value Any valid value
305
+ # @return [Hash] Returns the value in the form of hash
306
+ def _to_hash(value)
307
+ if value.is_a?(Array)
308
+ value.compact.map { |v| _to_hash(v) }
309
+ elsif value.is_a?(Hash)
310
+ {}.tap do |hash|
311
+ value.each { |k, v| hash[k] = _to_hash(v) }
312
+ end
313
+ elsif value.respond_to? :to_hash
314
+ value.to_hash
315
+ else
316
+ value
317
+ end
318
+ end
319
+ end
320
+ end
321
+ # rubocop:enable Lint/UnneededCopDisableDirective, Metrics/LineLength