oci 2.5.11 → 2.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (188) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -1
  3. data/lib/oci.rb +1 -0
  4. data/lib/oci/auth/federation_client.rb +2 -1
  5. data/lib/oci/auth/signers/instance_principals_security_token_signer.rb +6 -1
  6. data/lib/oci/auth/url_based_certificate_retriever.rb +6 -2
  7. data/lib/oci/auth/util.rb +18 -0
  8. data/lib/oci/core/compute_client.rb +730 -48
  9. data/lib/oci/core/compute_client_composite_operations.rb +119 -0
  10. data/lib/oci/core/compute_management_client.rb +11 -4
  11. data/lib/oci/core/core.rb +13 -0
  12. data/lib/oci/core/models/add_security_rule_details.rb +4 -2
  13. data/lib/oci/core/models/attach_vnic_details.rb +1 -0
  14. data/lib/oci/core/models/capture_console_history_details.rb +1 -0
  15. data/lib/oci/core/models/change_dedicated_vm_host_compartment_details.rb +155 -0
  16. data/lib/oci/core/models/change_dhcp_options_compartment_details.rb +155 -0
  17. data/lib/oci/core/models/change_internet_gateway_compartment_details.rb +155 -0
  18. data/lib/oci/core/models/change_local_peering_gateway_compartment_details.rb +155 -0
  19. data/lib/oci/core/models/change_network_security_group_compartment_details.rb +155 -0
  20. data/lib/oci/core/models/change_public_ip_compartment_details.rb +155 -0
  21. data/lib/oci/core/models/create_dedicated_vm_host_details.rb +262 -0
  22. data/lib/oci/core/models/create_drg_attachment_details.rb +4 -2
  23. data/lib/oci/core/models/create_image_details.rb +1 -1
  24. data/lib/oci/core/models/create_instance_configuration_base.rb +16 -6
  25. data/lib/oci/core/models/create_instance_configuration_details.rb +1 -1
  26. data/lib/oci/core/models/create_instance_configuration_from_instance_details.rb +3 -2
  27. data/lib/oci/core/models/create_instance_pool_details.rb +3 -1
  28. data/lib/oci/core/models/create_local_peering_gateway_details.rb +1 -1
  29. data/lib/oci/core/models/create_service_gateway_details.rb +1 -1
  30. data/lib/oci/core/models/create_volume_group_backup_details.rb +3 -1
  31. data/lib/oci/core/models/create_volume_group_details.rb +1 -1
  32. data/lib/oci/core/models/cross_connect_mapping.rb +4 -0
  33. data/lib/oci/core/models/dedicated_vm_host.rb +359 -0
  34. data/lib/oci/core/models/dedicated_vm_host_instance_shape_summary.rb +170 -0
  35. data/lib/oci/core/models/dedicated_vm_host_instance_summary.rb +215 -0
  36. data/lib/oci/core/models/dedicated_vm_host_shape_summary.rb +171 -0
  37. data/lib/oci/core/models/dedicated_vm_host_summary.rb +325 -0
  38. data/lib/oci/core/models/drg_attachment.rb +6 -3
  39. data/lib/oci/core/models/egress_security_rule.rb +1 -0
  40. data/lib/oci/core/models/image.rb +2 -0
  41. data/lib/oci/core/models/ingress_security_rule.rb +2 -1
  42. data/lib/oci/core/models/instance.rb +16 -1
  43. data/lib/oci/core/models/instance_configuration.rb +10 -7
  44. data/lib/oci/core/models/ipv6.rb +2 -0
  45. data/lib/oci/core/models/launch_instance_details.rb +16 -1
  46. data/lib/oci/core/models/launch_options.rb +3 -2
  47. data/lib/oci/core/models/local_peering_gateway.rb +4 -3
  48. data/lib/oci/core/models/route_rule.rb +2 -1
  49. data/lib/oci/core/models/security_rule.rb +3 -1
  50. data/lib/oci/core/models/service_gateway.rb +4 -3
  51. data/lib/oci/core/models/subnet.rb +2 -1
  52. data/lib/oci/core/models/update_console_history_details.rb +1 -0
  53. data/lib/oci/core/models/update_dedicated_vm_host_details.rb +194 -0
  54. data/lib/oci/core/models/update_drg_attachment_details.rb +6 -3
  55. data/lib/oci/core/models/update_instance_pool_details.rb +3 -1
  56. data/lib/oci/core/models/update_local_peering_gateway_details.rb +4 -3
  57. data/lib/oci/core/models/update_network_security_group_details.rb +2 -0
  58. data/lib/oci/core/models/update_security_rule_details.rb +4 -2
  59. data/lib/oci/core/models/update_service_gateway_details.rb +4 -3
  60. data/lib/oci/core/models/update_vnic_details.rb +2 -0
  61. data/lib/oci/core/models/update_volume_backup_details.rb +1 -1
  62. data/lib/oci/core/models/update_volume_group_backup_details.rb +2 -1
  63. data/lib/oci/core/models/update_volume_group_details.rb +2 -1
  64. data/lib/oci/core/models/vcn.rb +2 -1
  65. data/lib/oci/core/models/volume_backup_schedule.rb +1 -1
  66. data/lib/oci/core/virtual_network_client.rb +396 -59
  67. data/lib/oci/dts/dts.rb +57 -0
  68. data/lib/oci/dts/models/attach_devices_details.rb +153 -0
  69. data/lib/oci/dts/models/change_transfer_job_compartment_details.rb +154 -0
  70. data/lib/oci/dts/models/create_transfer_appliance_details.rb +152 -0
  71. data/lib/oci/dts/models/create_transfer_appliance_entitlement_details.rb +178 -0
  72. data/lib/oci/dts/models/create_transfer_device_details.rb +165 -0
  73. data/lib/oci/dts/models/create_transfer_job_details.rb +238 -0
  74. data/lib/oci/dts/models/create_transfer_package_details.rb +178 -0
  75. data/lib/oci/dts/models/detach_devices_details.rb +153 -0
  76. data/lib/oci/dts/models/multiple_transfer_appliances.rb +153 -0
  77. data/lib/oci/dts/models/multiple_transfer_devices.rb +153 -0
  78. data/lib/oci/dts/models/multiple_transfer_packages.rb +153 -0
  79. data/lib/oci/dts/models/new_transfer_device.rb +246 -0
  80. data/lib/oci/dts/models/shipping_address.rb +263 -0
  81. data/lib/oci/dts/models/shipping_vendors.rb +149 -0
  82. data/lib/oci/dts/models/transfer_appliance.rb +367 -0
  83. data/lib/oci/dts/models/transfer_appliance_certificate.rb +148 -0
  84. data/lib/oci/dts/models/transfer_appliance_encryption_passphrase.rb +152 -0
  85. data/lib/oci/dts/models/transfer_appliance_entitlement.rb +240 -0
  86. data/lib/oci/dts/models/transfer_appliance_public_key.rb +152 -0
  87. data/lib/oci/dts/models/transfer_appliance_summary.rb +223 -0
  88. data/lib/oci/dts/models/transfer_device.rb +268 -0
  89. data/lib/oci/dts/models/transfer_device_summary.rb +254 -0
  90. data/lib/oci/dts/models/transfer_job.rb +356 -0
  91. data/lib/oci/dts/models/transfer_job_summary.rb +296 -0
  92. data/lib/oci/dts/models/transfer_package.rb +281 -0
  93. data/lib/oci/dts/models/transfer_package_summary.rb +201 -0
  94. data/lib/oci/dts/models/update_transfer_appliance_details.rb +180 -0
  95. data/lib/oci/dts/models/update_transfer_device_details.rb +166 -0
  96. data/lib/oci/dts/models/update_transfer_job_details.rb +237 -0
  97. data/lib/oci/dts/models/update_transfer_package_details.rb +204 -0
  98. data/lib/oci/dts/shipping_vendors_client.rb +165 -0
  99. data/lib/oci/dts/shipping_vendors_client_composite_operations.rb +24 -0
  100. data/lib/oci/dts/transfer_appliance_client.rb +569 -0
  101. data/lib/oci/dts/transfer_appliance_client_composite_operations.rb +104 -0
  102. data/lib/oci/dts/transfer_appliance_entitlement_client.rb +223 -0
  103. data/lib/oci/dts/transfer_appliance_entitlement_client_composite_operations.rb +24 -0
  104. data/lib/oci/dts/transfer_device_client.rb +402 -0
  105. data/lib/oci/dts/transfer_device_client_composite_operations.rb +65 -0
  106. data/lib/oci/dts/transfer_job_client.rb +458 -0
  107. data/lib/oci/dts/transfer_job_client_composite_operations.rb +143 -0
  108. data/lib/oci/dts/transfer_package_client.rb +515 -0
  109. data/lib/oci/dts/transfer_package_client_composite_operations.rb +104 -0
  110. data/lib/oci/dts/util.rb +2 -0
  111. data/lib/oci/file_storage/models/create_file_system_details.rb +19 -4
  112. data/lib/oci/file_storage/models/file_system.rb +19 -4
  113. data/lib/oci/file_storage/models/file_system_summary.rb +19 -4
  114. data/lib/oci/file_storage/models/update_file_system_details.rb +22 -4
  115. data/lib/oci/limits/limits.rb +5 -0
  116. data/lib/oci/limits/limits_client.rb +444 -0
  117. data/lib/oci/limits/limits_client_composite_operations.rb +24 -0
  118. data/lib/oci/limits/models/create_quota_details.rb +1 -1
  119. data/lib/oci/limits/models/limit_definition_summary.rb +241 -0
  120. data/lib/oci/limits/models/limit_value_summary.rb +210 -0
  121. data/lib/oci/limits/models/quota.rb +1 -1
  122. data/lib/oci/limits/models/resource_availability.rb +163 -0
  123. data/lib/oci/limits/models/service_summary.rb +159 -0
  124. data/lib/oci/limits/models/update_quota_details.rb +1 -1
  125. data/lib/oci/limits/quotas_client.rb +12 -11
  126. data/lib/oci/monitoring/models/alarm.rb +20 -1
  127. data/lib/oci/monitoring/models/create_alarm_details.rb +20 -1
  128. data/lib/oci/monitoring/models/list_metrics_details.rb +23 -3
  129. data/lib/oci/monitoring/models/metric.rb +20 -1
  130. data/lib/oci/monitoring/models/metric_data.rb +20 -1
  131. data/lib/oci/monitoring/models/metric_data_details.rb +20 -1
  132. data/lib/oci/monitoring/models/summarize_metrics_data_details.rb +20 -1
  133. data/lib/oci/monitoring/models/update_alarm_details.rb +20 -1
  134. data/lib/oci/regions.rb +14 -8
  135. data/lib/oci/streaming/models/archiver.rb +291 -0
  136. data/lib/oci/streaming/models/archiver_error.rb +159 -0
  137. data/lib/oci/streaming/models/archiver_lifecycle_state.rb +14 -0
  138. data/lib/oci/streaming/models/archiver_start_position.rb +10 -0
  139. data/lib/oci/streaming/models/create_archiver_details.rb +223 -0
  140. data/lib/oci/streaming/models/update_archiver_details.rb +222 -0
  141. data/lib/oci/streaming/stream_admin_client.rb +304 -0
  142. data/lib/oci/streaming/stream_admin_client_composite_operations.rb +162 -0
  143. data/lib/oci/streaming/streaming.rb +6 -0
  144. data/lib/oci/version.rb +1 -1
  145. data/lib/oci/waas/models/access_rule.rb +121 -4
  146. data/lib/oci/waas/models/access_rule_criteria.rb +12 -0
  147. data/lib/oci/waas/models/address_list.rb +289 -0
  148. data/lib/oci/waas/models/address_list_summary.rb +279 -0
  149. data/lib/oci/waas/models/caching_rule.rb +243 -0
  150. data/lib/oci/waas/models/caching_rule_criteria.rb +194 -0
  151. data/lib/oci/waas/models/caching_rule_summary.rb +246 -0
  152. data/lib/oci/waas/models/certificate.rb +22 -9
  153. data/lib/oci/waas/models/certificate_extensions.rb +3 -0
  154. data/lib/oci/waas/models/certificate_issuer_name.rb +225 -0
  155. data/lib/oci/waas/models/certificate_public_key_info.rb +4 -1
  156. data/lib/oci/waas/models/certificate_subject_name.rb +8 -1
  157. data/lib/oci/waas/models/certificate_summary.rb +10 -2
  158. data/lib/oci/waas/models/change_address_list_compartment_details.rb +154 -0
  159. data/lib/oci/waas/models/change_custom_protection_rule_compartment_details.rb +154 -0
  160. data/lib/oci/waas/models/create_address_list_details.rb +213 -0
  161. data/lib/oci/waas/models/create_certificate_details.rb +22 -3
  162. data/lib/oci/waas/models/create_custom_protection_rule_details.rb +251 -0
  163. data/lib/oci/waas/models/create_waas_policy_details.rb +26 -4
  164. data/lib/oci/waas/models/custom_protection_rule.rb +326 -0
  165. data/lib/oci/waas/models/custom_protection_rule_setting.rb +180 -0
  166. data/lib/oci/waas/models/custom_protection_rule_summary.rb +279 -0
  167. data/lib/oci/waas/models/origin_group.rb +149 -0
  168. data/lib/oci/waas/models/origin_group_origins.rb +159 -0
  169. data/lib/oci/waas/models/policy_config.rb +201 -4
  170. data/lib/oci/waas/models/protection_rule_exclusion.rb +2 -2
  171. data/lib/oci/waas/models/purge_cache.rb +149 -0
  172. data/lib/oci/waas/models/update_address_list_details.rb +199 -0
  173. data/lib/oci/waas/models/update_certificate_details.rb +10 -2
  174. data/lib/oci/waas/models/update_custom_protection_rule_details.rb +237 -0
  175. data/lib/oci/waas/models/update_waas_policy_details.rb +26 -4
  176. data/lib/oci/waas/models/waas_policy.rb +25 -3
  177. data/lib/oci/waas/models/waas_policy_custom_protection_rule_summary.rb +207 -0
  178. data/lib/oci/waas/models/waas_policy_summary.rb +10 -2
  179. data/lib/oci/waas/models/waf_config.rb +43 -1
  180. data/lib/oci/waas/models/waf_config_details.rb +43 -1
  181. data/lib/oci/waas/models/waf_log.rb +3 -3
  182. data/lib/oci/waas/models/work_request.rb +4 -1
  183. data/lib/oci/waas/models/work_request_operation_types.rb +4 -1
  184. data/lib/oci/waas/models/work_request_summary.rb +4 -1
  185. data/lib/oci/waas/waas.rb +19 -0
  186. data/lib/oci/waas/waas_client.rb +1147 -61
  187. data/lib/oci/waas/waas_client_composite_operations.rb +386 -0
  188. metadata +90 -2
@@ -0,0 +1,279 @@
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
+ # A summary of the address list's information.
9
+ class Waas::Models::AddressListSummary
10
+ LIFECYCLE_STATE_ENUM = [
11
+ LIFECYCLE_STATE_CREATING = 'CREATING'.freeze,
12
+ LIFECYCLE_STATE_ACTIVE = 'ACTIVE'.freeze,
13
+ LIFECYCLE_STATE_FAILED = 'FAILED'.freeze,
14
+ LIFECYCLE_STATE_UPDATING = 'UPDATING'.freeze,
15
+ LIFECYCLE_STATE_DELETING = 'DELETING'.freeze,
16
+ LIFECYCLE_STATE_DELETED = 'DELETED'.freeze,
17
+ LIFECYCLE_STATE_UNKNOWN_ENUM_VALUE = 'UNKNOWN_ENUM_VALUE'.freeze
18
+ ].freeze
19
+
20
+ # The [OCID](https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm) of the address list.
21
+ # @return [String]
22
+ attr_accessor :id
23
+
24
+ # The [OCID](https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm) of the address list's compartment.
25
+ # @return [String]
26
+ attr_accessor :compartment_id
27
+
28
+ # The user-friendly name of the address list.
29
+ # @return [String]
30
+ attr_accessor :display_name
31
+
32
+ # The total number of unique IP addresses in the address list.
33
+ # @return [Float]
34
+ attr_accessor :address_count
35
+
36
+ # Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace.
37
+ # For more information, see [Resource Tags](https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm).
38
+ #
39
+ # Example: `{\"Department\": \"Finance\"}`
40
+ #
41
+ # @return [Hash<String, String>]
42
+ attr_accessor :freeform_tags
43
+
44
+ # Defined tags for this resource. Each key is predefined and scoped to a namespace.
45
+ # For more information, see [Resource Tags](https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm).
46
+ #
47
+ # Example: `{\"Operations\": {\"CostCenter\": \"42\"}}`
48
+ #
49
+ # @return [Hash<String, Hash<String, Object>>]
50
+ attr_accessor :defined_tags
51
+
52
+ # The current lifecycle state of the address list.
53
+ # @return [String]
54
+ attr_reader :lifecycle_state
55
+
56
+ # The date and time the address list was created, in the format defined by RFC3339.
57
+ # @return [DateTime]
58
+ attr_accessor :time_created
59
+
60
+ # Attribute mapping from ruby-style variable name to JSON key.
61
+ def self.attribute_map
62
+ {
63
+ # rubocop:disable Style/SymbolLiteral
64
+ 'id': :'id',
65
+ 'compartment_id': :'compartmentId',
66
+ 'display_name': :'displayName',
67
+ 'address_count': :'addressCount',
68
+ 'freeform_tags': :'freeformTags',
69
+ 'defined_tags': :'definedTags',
70
+ 'lifecycle_state': :'lifecycleState',
71
+ 'time_created': :'timeCreated'
72
+ # rubocop:enable Style/SymbolLiteral
73
+ }
74
+ end
75
+
76
+ # Attribute type mapping.
77
+ def self.swagger_types
78
+ {
79
+ # rubocop:disable Style/SymbolLiteral
80
+ 'id': :'String',
81
+ 'compartment_id': :'String',
82
+ 'display_name': :'String',
83
+ 'address_count': :'Float',
84
+ 'freeform_tags': :'Hash<String, String>',
85
+ 'defined_tags': :'Hash<String, Hash<String, Object>>',
86
+ 'lifecycle_state': :'String',
87
+ 'time_created': :'DateTime'
88
+ # rubocop:enable Style/SymbolLiteral
89
+ }
90
+ end
91
+
92
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
93
+ # rubocop:disable Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
94
+
95
+
96
+ # Initializes the object
97
+ # @param [Hash] attributes Model attributes in the form of hash
98
+ # @option attributes [String] :id The value to assign to the {#id} property
99
+ # @option attributes [String] :compartment_id The value to assign to the {#compartment_id} property
100
+ # @option attributes [String] :display_name The value to assign to the {#display_name} property
101
+ # @option attributes [Float] :address_count The value to assign to the {#address_count} property
102
+ # @option attributes [Hash<String, String>] :freeform_tags The value to assign to the {#freeform_tags} property
103
+ # @option attributes [Hash<String, Hash<String, Object>>] :defined_tags The value to assign to the {#defined_tags} property
104
+ # @option attributes [String] :lifecycle_state The value to assign to the {#lifecycle_state} property
105
+ # @option attributes [DateTime] :time_created The value to assign to the {#time_created} property
106
+ def initialize(attributes = {})
107
+ return unless attributes.is_a?(Hash)
108
+
109
+ # convert string to symbol for hash key
110
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
111
+
112
+ self.id = attributes[:'id'] if attributes[:'id']
113
+
114
+ self.compartment_id = attributes[:'compartmentId'] if attributes[:'compartmentId']
115
+
116
+ raise 'You cannot provide both :compartmentId and :compartment_id' if attributes.key?(:'compartmentId') && attributes.key?(:'compartment_id')
117
+
118
+ self.compartment_id = attributes[:'compartment_id'] if attributes[:'compartment_id']
119
+
120
+ self.display_name = attributes[:'displayName'] if attributes[:'displayName']
121
+
122
+ raise 'You cannot provide both :displayName and :display_name' if attributes.key?(:'displayName') && attributes.key?(:'display_name')
123
+
124
+ self.display_name = attributes[:'display_name'] if attributes[:'display_name']
125
+
126
+ self.address_count = attributes[:'addressCount'] if attributes[:'addressCount']
127
+
128
+ raise 'You cannot provide both :addressCount and :address_count' if attributes.key?(:'addressCount') && attributes.key?(:'address_count')
129
+
130
+ self.address_count = attributes[:'address_count'] if attributes[:'address_count']
131
+
132
+ self.freeform_tags = attributes[:'freeformTags'] if attributes[:'freeformTags']
133
+
134
+ raise 'You cannot provide both :freeformTags and :freeform_tags' if attributes.key?(:'freeformTags') && attributes.key?(:'freeform_tags')
135
+
136
+ self.freeform_tags = attributes[:'freeform_tags'] if attributes[:'freeform_tags']
137
+
138
+ self.defined_tags = attributes[:'definedTags'] if attributes[:'definedTags']
139
+
140
+ raise 'You cannot provide both :definedTags and :defined_tags' if attributes.key?(:'definedTags') && attributes.key?(:'defined_tags')
141
+
142
+ self.defined_tags = attributes[:'defined_tags'] if attributes[:'defined_tags']
143
+
144
+ self.lifecycle_state = attributes[:'lifecycleState'] if attributes[:'lifecycleState']
145
+
146
+ raise 'You cannot provide both :lifecycleState and :lifecycle_state' if attributes.key?(:'lifecycleState') && attributes.key?(:'lifecycle_state')
147
+
148
+ self.lifecycle_state = attributes[:'lifecycle_state'] if attributes[:'lifecycle_state']
149
+
150
+ self.time_created = attributes[:'timeCreated'] if attributes[:'timeCreated']
151
+
152
+ raise 'You cannot provide both :timeCreated and :time_created' if attributes.key?(:'timeCreated') && attributes.key?(:'time_created')
153
+
154
+ self.time_created = attributes[:'time_created'] if attributes[:'time_created']
155
+ end
156
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
157
+ # rubocop:enable Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
158
+
159
+ # Custom attribute writer method checking allowed values (enum).
160
+ # @param [Object] lifecycle_state Object to be assigned
161
+ def lifecycle_state=(lifecycle_state)
162
+ # rubocop:disable Style/ConditionalAssignment
163
+ if lifecycle_state && !LIFECYCLE_STATE_ENUM.include?(lifecycle_state)
164
+ OCI.logger.debug("Unknown value for 'lifecycle_state' [" + lifecycle_state + "]. Mapping to 'LIFECYCLE_STATE_UNKNOWN_ENUM_VALUE'") if OCI.logger
165
+ @lifecycle_state = LIFECYCLE_STATE_UNKNOWN_ENUM_VALUE
166
+ else
167
+ @lifecycle_state = lifecycle_state
168
+ end
169
+ # rubocop:enable Style/ConditionalAssignment
170
+ end
171
+
172
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
173
+
174
+
175
+ # Checks equality by comparing each attribute.
176
+ # @param [Object] other the other object to be compared
177
+ def ==(other)
178
+ return true if equal?(other)
179
+
180
+ self.class == other.class &&
181
+ id == other.id &&
182
+ compartment_id == other.compartment_id &&
183
+ display_name == other.display_name &&
184
+ address_count == other.address_count &&
185
+ freeform_tags == other.freeform_tags &&
186
+ defined_tags == other.defined_tags &&
187
+ lifecycle_state == other.lifecycle_state &&
188
+ time_created == other.time_created
189
+ end
190
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
191
+
192
+ # @see the `==` method
193
+ # @param [Object] other the other object to be compared
194
+ def eql?(other)
195
+ self == other
196
+ end
197
+
198
+ # rubocop:disable Metrics/AbcSize, Layout/EmptyLines
199
+
200
+
201
+ # Calculates hash code according to all attributes.
202
+ # @return [Fixnum] Hash code
203
+ def hash
204
+ [id, compartment_id, display_name, address_count, freeform_tags, defined_tags, lifecycle_state, time_created].hash
205
+ end
206
+ # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
207
+
208
+ # rubocop:disable Metrics/AbcSize, Layout/EmptyLines
209
+
210
+
211
+ # Builds the object from hash
212
+ # @param [Hash] attributes Model attributes in the form of hash
213
+ # @return [Object] Returns the model itself
214
+ def build_from_hash(attributes)
215
+ return nil unless attributes.is_a?(Hash)
216
+
217
+ self.class.swagger_types.each_pair do |key, type|
218
+ if type =~ /^Array<(.*)>/i
219
+ # check to ensure the input is an array given that the the attribute
220
+ # is documented as an array but the input is not
221
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
222
+ public_method("#{key}=").call(
223
+ attributes[self.class.attribute_map[key]]
224
+ .map { |v| OCI::Internal::Util.convert_to_type(Regexp.last_match(1), v) }
225
+ )
226
+ end
227
+ elsif !attributes[self.class.attribute_map[key]].nil?
228
+ public_method("#{key}=").call(
229
+ OCI::Internal::Util.convert_to_type(type, attributes[self.class.attribute_map[key]])
230
+ )
231
+ end
232
+ # or else data not found in attributes(hash), not an issue as the data can be optional
233
+ end
234
+
235
+ self
236
+ end
237
+ # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
238
+
239
+ # Returns the string representation of the object
240
+ # @return [String] String presentation of the object
241
+ def to_s
242
+ to_hash.to_s
243
+ end
244
+
245
+ # Returns the object in the form of hash
246
+ # @return [Hash] Returns the object in the form of hash
247
+ def to_hash
248
+ hash = {}
249
+ self.class.attribute_map.each_pair do |attr, param|
250
+ value = public_method(attr).call
251
+ next if value.nil? && !instance_variable_defined?("@#{attr}")
252
+
253
+ hash[param] = _to_hash(value)
254
+ end
255
+ hash
256
+ end
257
+
258
+ private
259
+
260
+ # Outputs non-array value in the form of hash
261
+ # For object, use to_hash. Otherwise, just return the value
262
+ # @param [Object] value Any valid value
263
+ # @return [Hash] Returns the value in the form of hash
264
+ def _to_hash(value)
265
+ if value.is_a?(Array)
266
+ value.compact.map { |v| _to_hash(v) }
267
+ elsif value.is_a?(Hash)
268
+ {}.tap do |hash|
269
+ value.each { |k, v| hash[k] = _to_hash(v) }
270
+ end
271
+ elsif value.respond_to? :to_hash
272
+ value.to_hash
273
+ else
274
+ value
275
+ end
276
+ end
277
+ end
278
+ end
279
+ # rubocop:enable Lint/UnneededCopDisableDirective, Metrics/LineLength
@@ -0,0 +1,243 @@
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
+ # CachingRule model.
9
+ class Waas::Models::CachingRule
10
+ ACTION_ENUM = [
11
+ ACTION_CACHE = 'CACHE'.freeze,
12
+ ACTION_BYPASS_CACHE = 'BYPASS_CACHE'.freeze,
13
+ ACTION_UNKNOWN_ENUM_VALUE = 'UNKNOWN_ENUM_VALUE'.freeze
14
+ ].freeze
15
+
16
+ # The unique key for the caching rule.
17
+ # @return [String]
18
+ attr_accessor :key
19
+
20
+ # **[Required]** The name of the caching rule.
21
+ # @return [String]
22
+ attr_accessor :name
23
+
24
+ # **[Required]** The action to take on matched caching rules.
25
+ # - **CACHE:** Allow to set caching rule, which would be cached.
26
+ #
27
+ # - **BYPASS_CACHE:** Allow to set caching rule, which would never be cached. e.g. all requests would be passed directly to origin for those file types.
28
+ # @return [String]
29
+ attr_reader :action
30
+
31
+ # The caching duration (applies only to `CACHE` action) specified in ISO 8601 extended format. Supported units: seconds, minutes, hours, days, weeks, months. Max value - 99. Mixing of multiple units is not supported.
32
+ # @return [String]
33
+ attr_accessor :caching_duration
34
+
35
+ # Enables or disables the client caching.
36
+ # Browsers use the Cache-Control header value for caching content locally, in the browser.
37
+ # This setting will control the addition of a Cache-Control header to responses. It overrides existing Cache-Control headers.
38
+ # @return [BOOLEAN]
39
+ attr_accessor :is_client_caching_enabled
40
+
41
+ # The client caching duration (applies only to `CACHE` action) specified in ISO 8601 extended format, in case client caching enabled. It sets Cache-Control header max-age time, i.e. the local browser cache expire time. Supported units: seconds, minutes, hours, days, weeks, months. Max value - 99. Mixing of multiple units is not supported.
42
+ # @return [String]
43
+ attr_accessor :client_caching_duration
44
+
45
+ # **[Required]** The array of the rule criteria with condition and value.
46
+ # @return [Array<OCI::Waas::Models::CachingRuleCriteria>]
47
+ attr_accessor :criteria
48
+
49
+ # Attribute mapping from ruby-style variable name to JSON key.
50
+ def self.attribute_map
51
+ {
52
+ # rubocop:disable Style/SymbolLiteral
53
+ 'key': :'key',
54
+ 'name': :'name',
55
+ 'action': :'action',
56
+ 'caching_duration': :'cachingDuration',
57
+ 'is_client_caching_enabled': :'isClientCachingEnabled',
58
+ 'client_caching_duration': :'clientCachingDuration',
59
+ 'criteria': :'criteria'
60
+ # rubocop:enable Style/SymbolLiteral
61
+ }
62
+ end
63
+
64
+ # Attribute type mapping.
65
+ def self.swagger_types
66
+ {
67
+ # rubocop:disable Style/SymbolLiteral
68
+ 'key': :'String',
69
+ 'name': :'String',
70
+ 'action': :'String',
71
+ 'caching_duration': :'String',
72
+ 'is_client_caching_enabled': :'BOOLEAN',
73
+ 'client_caching_duration': :'String',
74
+ 'criteria': :'Array<OCI::Waas::Models::CachingRuleCriteria>'
75
+ # rubocop:enable Style/SymbolLiteral
76
+ }
77
+ end
78
+
79
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
80
+ # rubocop:disable Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
81
+
82
+
83
+ # Initializes the object
84
+ # @param [Hash] attributes Model attributes in the form of hash
85
+ # @option attributes [String] :key The value to assign to the {#key} property
86
+ # @option attributes [String] :name The value to assign to the {#name} property
87
+ # @option attributes [String] :action The value to assign to the {#action} property
88
+ # @option attributes [String] :caching_duration The value to assign to the {#caching_duration} property
89
+ # @option attributes [BOOLEAN] :is_client_caching_enabled The value to assign to the {#is_client_caching_enabled} property
90
+ # @option attributes [String] :client_caching_duration The value to assign to the {#client_caching_duration} property
91
+ # @option attributes [Array<OCI::Waas::Models::CachingRuleCriteria>] :criteria The value to assign to the {#criteria} property
92
+ def initialize(attributes = {})
93
+ return unless attributes.is_a?(Hash)
94
+
95
+ self.key = attributes[:'key'] if attributes[:'key']
96
+
97
+ self.name = attributes[:'name'] if attributes[:'name']
98
+
99
+ self.action = attributes[:'action'] if attributes[:'action']
100
+
101
+ self.caching_duration = attributes[:'cachingDuration'] if attributes[:'cachingDuration']
102
+
103
+ raise 'You cannot provide both :cachingDuration and :caching_duration' if attributes.key?(:'cachingDuration') && attributes.key?(:'caching_duration')
104
+
105
+ self.caching_duration = attributes[:'caching_duration'] if attributes[:'caching_duration']
106
+
107
+ self.is_client_caching_enabled = attributes[:'isClientCachingEnabled'] unless attributes[:'isClientCachingEnabled'].nil?
108
+
109
+ raise 'You cannot provide both :isClientCachingEnabled and :is_client_caching_enabled' if attributes.key?(:'isClientCachingEnabled') && attributes.key?(:'is_client_caching_enabled')
110
+
111
+ self.is_client_caching_enabled = attributes[:'is_client_caching_enabled'] unless attributes[:'is_client_caching_enabled'].nil?
112
+
113
+ self.client_caching_duration = attributes[:'clientCachingDuration'] if attributes[:'clientCachingDuration']
114
+
115
+ raise 'You cannot provide both :clientCachingDuration and :client_caching_duration' if attributes.key?(:'clientCachingDuration') && attributes.key?(:'client_caching_duration')
116
+
117
+ self.client_caching_duration = attributes[:'client_caching_duration'] if attributes[:'client_caching_duration']
118
+
119
+ self.criteria = attributes[:'criteria'] if attributes[:'criteria']
120
+ end
121
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
122
+ # rubocop:enable Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
123
+
124
+ # Custom attribute writer method checking allowed values (enum).
125
+ # @param [Object] action Object to be assigned
126
+ def action=(action)
127
+ # rubocop:disable Style/ConditionalAssignment
128
+ if action && !ACTION_ENUM.include?(action)
129
+ OCI.logger.debug("Unknown value for 'action' [" + action + "]. Mapping to 'ACTION_UNKNOWN_ENUM_VALUE'") if OCI.logger
130
+ @action = ACTION_UNKNOWN_ENUM_VALUE
131
+ else
132
+ @action = action
133
+ end
134
+ # rubocop:enable Style/ConditionalAssignment
135
+ end
136
+
137
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
138
+
139
+
140
+ # Checks equality by comparing each attribute.
141
+ # @param [Object] other the other object to be compared
142
+ def ==(other)
143
+ return true if equal?(other)
144
+
145
+ self.class == other.class &&
146
+ key == other.key &&
147
+ name == other.name &&
148
+ action == other.action &&
149
+ caching_duration == other.caching_duration &&
150
+ is_client_caching_enabled == other.is_client_caching_enabled &&
151
+ client_caching_duration == other.client_caching_duration &&
152
+ criteria == other.criteria
153
+ end
154
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
155
+
156
+ # @see the `==` method
157
+ # @param [Object] other the other object to be compared
158
+ def eql?(other)
159
+ self == other
160
+ end
161
+
162
+ # rubocop:disable Metrics/AbcSize, Layout/EmptyLines
163
+
164
+
165
+ # Calculates hash code according to all attributes.
166
+ # @return [Fixnum] Hash code
167
+ def hash
168
+ [key, name, action, caching_duration, is_client_caching_enabled, client_caching_duration, criteria].hash
169
+ end
170
+ # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
171
+
172
+ # rubocop:disable Metrics/AbcSize, Layout/EmptyLines
173
+
174
+
175
+ # Builds the object from hash
176
+ # @param [Hash] attributes Model attributes in the form of hash
177
+ # @return [Object] Returns the model itself
178
+ def build_from_hash(attributes)
179
+ return nil unless attributes.is_a?(Hash)
180
+
181
+ self.class.swagger_types.each_pair do |key, type|
182
+ if type =~ /^Array<(.*)>/i
183
+ # check to ensure the input is an array given that the the attribute
184
+ # is documented as an array but the input is not
185
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
186
+ public_method("#{key}=").call(
187
+ attributes[self.class.attribute_map[key]]
188
+ .map { |v| OCI::Internal::Util.convert_to_type(Regexp.last_match(1), v) }
189
+ )
190
+ end
191
+ elsif !attributes[self.class.attribute_map[key]].nil?
192
+ public_method("#{key}=").call(
193
+ OCI::Internal::Util.convert_to_type(type, attributes[self.class.attribute_map[key]])
194
+ )
195
+ end
196
+ # or else data not found in attributes(hash), not an issue as the data can be optional
197
+ end
198
+
199
+ self
200
+ end
201
+ # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
202
+
203
+ # Returns the string representation of the object
204
+ # @return [String] String presentation of the object
205
+ def to_s
206
+ to_hash.to_s
207
+ end
208
+
209
+ # Returns the object in the form of hash
210
+ # @return [Hash] Returns the object in the form of hash
211
+ def to_hash
212
+ hash = {}
213
+ self.class.attribute_map.each_pair do |attr, param|
214
+ value = public_method(attr).call
215
+ next if value.nil? && !instance_variable_defined?("@#{attr}")
216
+
217
+ hash[param] = _to_hash(value)
218
+ end
219
+ hash
220
+ end
221
+
222
+ private
223
+
224
+ # Outputs non-array value in the form of hash
225
+ # For object, use to_hash. Otherwise, just return the value
226
+ # @param [Object] value Any valid value
227
+ # @return [Hash] Returns the value in the form of hash
228
+ def _to_hash(value)
229
+ if value.is_a?(Array)
230
+ value.compact.map { |v| _to_hash(v) }
231
+ elsif value.is_a?(Hash)
232
+ {}.tap do |hash|
233
+ value.each { |k, v| hash[k] = _to_hash(v) }
234
+ end
235
+ elsif value.respond_to? :to_hash
236
+ value.to_hash
237
+ else
238
+ value
239
+ end
240
+ end
241
+ end
242
+ end
243
+ # rubocop:enable Lint/UnneededCopDisableDirective, Metrics/LineLength