Class: OCI::Waas::Models::WafConfig
- Inherits:
-
Object
- Object
- OCI::Waas::Models::WafConfig
- Defined in:
- lib/oci/waas/models/waf_config.rb
Overview
The Web Application Firewall configuration for the WAAS policy.
Instance Attribute Summary collapse
-
#access_rules ⇒ Array<OCI::Waas::Models::AccessRule>
The access rules applied to the Web Application Firewall.
-
#address_rate_limiting ⇒ OCI::Waas::Models::AddressRateLimiting
The IP address rate limiting settings used to limit the number of requests from an address.
-
#caching_rules ⇒ Array<OCI::Waas::Models::CachingRule>
A list of caching rules applied to the web application.
-
#captchas ⇒ Array<OCI::Waas::Models::Captcha>
A list of CAPTCHA challenge settings.
-
#custom_protection_rules ⇒ Array<OCI::Waas::Models::CustomProtectionRuleSetting>
A list of the custom protection rule OCIDs and their actions.
-
#device_fingerprint_challenge ⇒ OCI::Waas::Models::DeviceFingerprintChallenge
The device fingerprint challenge settings.
-
#good_bots ⇒ Array<OCI::Waas::Models::GoodBot>
A list of bots allowed to access the web application.
-
#human_interaction_challenge ⇒ OCI::Waas::Models::HumanInteractionChallenge
The human interaction challenge settings.
-
#js_challenge ⇒ OCI::Waas::Models::JsChallenge
The JavaScript challenge settings.
-
#origin ⇒ String
The key in the map of origins referencing the origin used for the Web Application Firewall.
-
#origin_groups ⇒ Array<String>
The map of origin groups and their keys used to associate origins to the
wafConfig
. -
#protection_rules ⇒ Array<OCI::Waas::Models::ProtectionRule>
A list of the protection rules and their details.
-
#protection_settings ⇒ OCI::Waas::Models::ProtectionSettings
The settings to apply to protection rules.
-
#threat_feeds ⇒ Array<OCI::Waas::Models::ThreatFeed>
A list of threat intelligence feeds and the actions to apply to known malicious traffic based on internet intelligence.
-
#whitelists ⇒ Array<OCI::Waas::Models::Whitelist>
A list of IP addresses that bypass the Web Application Firewall.
Class Method Summary collapse
-
.attribute_map ⇒ Object
Attribute mapping from ruby-style variable name to JSON key.
-
.swagger_types ⇒ Object
Attribute type mapping.
Instance Method Summary collapse
-
#==(other) ⇒ Object
Checks equality by comparing each attribute.
-
#build_from_hash(attributes) ⇒ Object
Builds the object from hash.
- #eql?(other) ⇒ Boolean
-
#hash ⇒ Fixnum
Calculates hash code according to all attributes.
-
#initialize(attributes = {}) ⇒ WafConfig
constructor
Initializes the object.
-
#to_hash ⇒ Hash
Returns the object in the form of hash.
-
#to_s ⇒ String
Returns the string representation of the object.
Constructor Details
#initialize(attributes = {}) ⇒ WafConfig
Initializes the object
139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 |
# File 'lib/oci/waas/models/waf_config.rb', line 139 def initialize(attributes = {}) return unless attributes.is_a?(Hash) # convert string to symbol for hash key attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v } self.access_rules = attributes[:'accessRules'] if attributes[:'accessRules'] raise 'You cannot provide both :accessRules and :access_rules' if attributes.key?(:'accessRules') && attributes.key?(:'access_rules') self.access_rules = attributes[:'access_rules'] if attributes[:'access_rules'] self.address_rate_limiting = attributes[:'addressRateLimiting'] if attributes[:'addressRateLimiting'] raise 'You cannot provide both :addressRateLimiting and :address_rate_limiting' if attributes.key?(:'addressRateLimiting') && attributes.key?(:'address_rate_limiting') self.address_rate_limiting = attributes[:'address_rate_limiting'] if attributes[:'address_rate_limiting'] self.captchas = attributes[:'captchas'] if attributes[:'captchas'] self.device_fingerprint_challenge = attributes[:'deviceFingerprintChallenge'] if attributes[:'deviceFingerprintChallenge'] raise 'You cannot provide both :deviceFingerprintChallenge and :device_fingerprint_challenge' if attributes.key?(:'deviceFingerprintChallenge') && attributes.key?(:'device_fingerprint_challenge') self.device_fingerprint_challenge = attributes[:'device_fingerprint_challenge'] if attributes[:'device_fingerprint_challenge'] self.good_bots = attributes[:'goodBots'] if attributes[:'goodBots'] raise 'You cannot provide both :goodBots and :good_bots' if attributes.key?(:'goodBots') && attributes.key?(:'good_bots') self.good_bots = attributes[:'good_bots'] if attributes[:'good_bots'] self.human_interaction_challenge = attributes[:'humanInteractionChallenge'] if attributes[:'humanInteractionChallenge'] raise 'You cannot provide both :humanInteractionChallenge and :human_interaction_challenge' if attributes.key?(:'humanInteractionChallenge') && attributes.key?(:'human_interaction_challenge') self.human_interaction_challenge = attributes[:'human_interaction_challenge'] if attributes[:'human_interaction_challenge'] self.js_challenge = attributes[:'jsChallenge'] if attributes[:'jsChallenge'] raise 'You cannot provide both :jsChallenge and :js_challenge' if attributes.key?(:'jsChallenge') && attributes.key?(:'js_challenge') self.js_challenge = attributes[:'js_challenge'] if attributes[:'js_challenge'] self.origin = attributes[:'origin'] if attributes[:'origin'] self.caching_rules = attributes[:'cachingRules'] if attributes[:'cachingRules'] raise 'You cannot provide both :cachingRules and :caching_rules' if attributes.key?(:'cachingRules') && attributes.key?(:'caching_rules') self.caching_rules = attributes[:'caching_rules'] if attributes[:'caching_rules'] self.custom_protection_rules = attributes[:'customProtectionRules'] if attributes[:'customProtectionRules'] raise 'You cannot provide both :customProtectionRules and :custom_protection_rules' if attributes.key?(:'customProtectionRules') && attributes.key?(:'custom_protection_rules') self.custom_protection_rules = attributes[:'custom_protection_rules'] if attributes[:'custom_protection_rules'] self.origin_groups = attributes[:'originGroups'] if attributes[:'originGroups'] raise 'You cannot provide both :originGroups and :origin_groups' if attributes.key?(:'originGroups') && attributes.key?(:'origin_groups') self.origin_groups = attributes[:'origin_groups'] if attributes[:'origin_groups'] self.protection_rules = attributes[:'protectionRules'] if attributes[:'protectionRules'] raise 'You cannot provide both :protectionRules and :protection_rules' if attributes.key?(:'protectionRules') && attributes.key?(:'protection_rules') self.protection_rules = attributes[:'protection_rules'] if attributes[:'protection_rules'] self.protection_settings = attributes[:'protectionSettings'] if attributes[:'protectionSettings'] raise 'You cannot provide both :protectionSettings and :protection_settings' if attributes.key?(:'protectionSettings') && attributes.key?(:'protection_settings') self.protection_settings = attributes[:'protection_settings'] if attributes[:'protection_settings'] self.threat_feeds = attributes[:'threatFeeds'] if attributes[:'threatFeeds'] raise 'You cannot provide both :threatFeeds and :threat_feeds' if attributes.key?(:'threatFeeds') && attributes.key?(:'threat_feeds') self.threat_feeds = attributes[:'threat_feeds'] if attributes[:'threat_feeds'] self.whitelists = attributes[:'whitelists'] if attributes[:'whitelists'] end |
Instance Attribute Details
#access_rules ⇒ Array<OCI::Waas::Models::AccessRule>
The access rules applied to the Web Application Firewall. Used for defining custom access policies with the combination of ALLOW
, DETECT
, and BLOCK
rules, based on different criteria.
13 14 15 |
# File 'lib/oci/waas/models/waf_config.rb', line 13 def access_rules @access_rules end |
#address_rate_limiting ⇒ OCI::Waas::Models::AddressRateLimiting
The IP address rate limiting settings used to limit the number of requests from an address.
17 18 19 |
# File 'lib/oci/waas/models/waf_config.rb', line 17 def address_rate_limiting @address_rate_limiting end |
#caching_rules ⇒ Array<OCI::Waas::Models::CachingRule>
A list of caching rules applied to the web application.
45 46 47 |
# File 'lib/oci/waas/models/waf_config.rb', line 45 def caching_rules @caching_rules end |
#captchas ⇒ Array<OCI::Waas::Models::Captcha>
A list of CAPTCHA challenge settings. These are used to challenge requests with a CAPTCHA to block bots.
21 22 23 |
# File 'lib/oci/waas/models/waf_config.rb', line 21 def captchas @captchas end |
#custom_protection_rules ⇒ Array<OCI::Waas::Models::CustomProtectionRuleSetting>
A list of the custom protection rule OCIDs and their actions.
49 50 51 |
# File 'lib/oci/waas/models/waf_config.rb', line 49 def custom_protection_rules @custom_protection_rules end |
#device_fingerprint_challenge ⇒ OCI::Waas::Models::DeviceFingerprintChallenge
The device fingerprint challenge settings. Used to detect unique devices based on the device fingerprint information collected in order to block bots.
25 26 27 |
# File 'lib/oci/waas/models/waf_config.rb', line 25 def device_fingerprint_challenge @device_fingerprint_challenge end |
#good_bots ⇒ Array<OCI::Waas::Models::GoodBot>
A list of bots allowed to access the web application.
29 30 31 |
# File 'lib/oci/waas/models/waf_config.rb', line 29 def good_bots @good_bots end |
#human_interaction_challenge ⇒ OCI::Waas::Models::HumanInteractionChallenge
The human interaction challenge settings. Used to look for natural human interactions such as mouse movements, time on site, and page scrolling to identify bots.
33 34 35 |
# File 'lib/oci/waas/models/waf_config.rb', line 33 def human_interaction_challenge @human_interaction_challenge end |
#js_challenge ⇒ OCI::Waas::Models::JsChallenge
The JavaScript challenge settings. Used to challenge requests with a JavaScript challenge and take the action if a browser has no JavaScript support in order to block bots.
37 38 39 |
# File 'lib/oci/waas/models/waf_config.rb', line 37 def js_challenge @js_challenge end |
#origin ⇒ String
The key in the map of origins referencing the origin used for the Web Application Firewall. The origin must already be included in Origins
. Required when creating the WafConfig
resource, but not on update.
41 42 43 |
# File 'lib/oci/waas/models/waf_config.rb', line 41 def origin @origin end |
#origin_groups ⇒ Array<String>
The map of origin groups and their keys used to associate origins to the wafConfig
. Origin groups allow you to apply weights to groups of origins for load balancing purposes. Origins with higher weights will receive larger proportions of client requests. To add additional origins to your WAAS policy, update the origins
field of a UpdateWaasPolicy
request.
54 55 56 |
# File 'lib/oci/waas/models/waf_config.rb', line 54 def origin_groups @origin_groups end |
#protection_rules ⇒ Array<OCI::Waas::Models::ProtectionRule>
A list of the protection rules and their details.
58 59 60 |
# File 'lib/oci/waas/models/waf_config.rb', line 58 def protection_rules @protection_rules end |
#protection_settings ⇒ OCI::Waas::Models::ProtectionSettings
The settings to apply to protection rules.
62 63 64 |
# File 'lib/oci/waas/models/waf_config.rb', line 62 def protection_settings @protection_settings end |
#threat_feeds ⇒ Array<OCI::Waas::Models::ThreatFeed>
A list of threat intelligence feeds and the actions to apply to known malicious traffic based on internet intelligence.
66 67 68 |
# File 'lib/oci/waas/models/waf_config.rb', line 66 def threat_feeds @threat_feeds end |
#whitelists ⇒ Array<OCI::Waas::Models::Whitelist>
A list of IP addresses that bypass the Web Application Firewall.
70 71 72 |
# File 'lib/oci/waas/models/waf_config.rb', line 70 def whitelists @whitelists end |
Class Method Details
.attribute_map ⇒ Object
Attribute mapping from ruby-style variable name to JSON key.
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
# File 'lib/oci/waas/models/waf_config.rb', line 73 def self.attribute_map { # rubocop:disable Style/SymbolLiteral 'access_rules': :'accessRules', 'address_rate_limiting': :'addressRateLimiting', 'captchas': :'captchas', 'device_fingerprint_challenge': :'deviceFingerprintChallenge', 'good_bots': :'goodBots', 'human_interaction_challenge': :'humanInteractionChallenge', 'js_challenge': :'jsChallenge', 'origin': :'origin', 'caching_rules': :'cachingRules', 'custom_protection_rules': :'customProtectionRules', 'origin_groups': :'originGroups', 'protection_rules': :'protectionRules', 'protection_settings': :'protectionSettings', 'threat_feeds': :'threatFeeds', 'whitelists': :'whitelists' # rubocop:enable Style/SymbolLiteral } end |
.swagger_types ⇒ Object
Attribute type mapping.
96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 |
# File 'lib/oci/waas/models/waf_config.rb', line 96 def self.swagger_types { # rubocop:disable Style/SymbolLiteral 'access_rules': :'Array<OCI::Waas::Models::AccessRule>', 'address_rate_limiting': :'OCI::Waas::Models::AddressRateLimiting', 'captchas': :'Array<OCI::Waas::Models::Captcha>', 'device_fingerprint_challenge': :'OCI::Waas::Models::DeviceFingerprintChallenge', 'good_bots': :'Array<OCI::Waas::Models::GoodBot>', 'human_interaction_challenge': :'OCI::Waas::Models::HumanInteractionChallenge', 'js_challenge': :'OCI::Waas::Models::JsChallenge', 'origin': :'String', 'caching_rules': :'Array<OCI::Waas::Models::CachingRule>', 'custom_protection_rules': :'Array<OCI::Waas::Models::CustomProtectionRuleSetting>', 'origin_groups': :'Array<String>', 'protection_rules': :'Array<OCI::Waas::Models::ProtectionRule>', 'protection_settings': :'OCI::Waas::Models::ProtectionSettings', 'threat_feeds': :'Array<OCI::Waas::Models::ThreatFeed>', 'whitelists': :'Array<OCI::Waas::Models::Whitelist>' # rubocop:enable Style/SymbolLiteral } end |
Instance Method Details
#==(other) ⇒ Object
Checks equality by comparing each attribute.
231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 |
# File 'lib/oci/waas/models/waf_config.rb', line 231 def ==(other) return true if equal?(other) self.class == other.class && access_rules == other.access_rules && address_rate_limiting == other.address_rate_limiting && captchas == other.captchas && device_fingerprint_challenge == other.device_fingerprint_challenge && good_bots == other.good_bots && human_interaction_challenge == other.human_interaction_challenge && js_challenge == other.js_challenge && origin == other.origin && caching_rules == other.caching_rules && custom_protection_rules == other.custom_protection_rules && origin_groups == other.origin_groups && protection_rules == other.protection_rules && protection_settings == other.protection_settings && threat_feeds == other.threat_feeds && whitelists == other.whitelists end |
#build_from_hash(attributes) ⇒ Object
Builds the object from hash
275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 |
# File 'lib/oci/waas/models/waf_config.rb', line 275 def build_from_hash(attributes) return nil unless attributes.is_a?(Hash) self.class.swagger_types.each_pair do |key, type| if type =~ /^Array<(.*)>/i # check to ensure the input is an array given that the the attribute # is documented as an array but the input is not if attributes[self.class.attribute_map[key]].is_a?(Array) public_method("#{key}=").call( attributes[self.class.attribute_map[key]] .map { |v| OCI::Internal::Util.convert_to_type(Regexp.last_match(1), v) } ) end elsif !attributes[self.class.attribute_map[key]].nil? public_method("#{key}=").call( OCI::Internal::Util.convert_to_type(type, attributes[self.class.attribute_map[key]]) ) end # or else data not found in attributes(hash), not an issue as the data can be optional end self end |
#eql?(other) ⇒ Boolean
255 256 257 |
# File 'lib/oci/waas/models/waf_config.rb', line 255 def eql?(other) self == other end |
#hash ⇒ Fixnum
Calculates hash code according to all attributes.
264 265 266 |
# File 'lib/oci/waas/models/waf_config.rb', line 264 def hash [access_rules, address_rate_limiting, captchas, device_fingerprint_challenge, good_bots, human_interaction_challenge, js_challenge, origin, caching_rules, custom_protection_rules, origin_groups, protection_rules, protection_settings, threat_feeds, whitelists].hash end |
#to_hash ⇒ Hash
Returns the object in the form of hash
308 309 310 311 312 313 314 315 316 317 |
# File 'lib/oci/waas/models/waf_config.rb', line 308 def to_hash hash = {} self.class.attribute_map.each_pair do |attr, param| value = public_method(attr).call next if value.nil? && !instance_variable_defined?("@#{attr}") hash[param] = _to_hash(value) end hash end |
#to_s ⇒ String
Returns the string representation of the object
302 303 304 |
# File 'lib/oci/waas/models/waf_config.rb', line 302 def to_s to_hash.to_s end |