class OCI::LogAnalytics::Models::CreateLogAnalyticsObjectCollectionRuleDetails
The configuration details of collection rule to enable automatic log collection from an object storage bucket.
Constants
- COLLECTION_TYPE_ENUM
Attributes
An optional character encoding to aid in detecting the character encoding of the contents of the objects while processing. It is recommended to set this value as ISO_8859_1 when configuring content of the objects having more numeric characters, and very few alphabets. For e.g. this applies when configuring VCN Flow Logs.
@return [String]
The type of collection.
@return [String]
[Required] The [OCID](docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment to which this rule belongs. @return [String]
A string that describes the details of the rule. It does not have to be unique, and can be changed. Avoid entering confidential information.
@return [String]
Whether or not this rule is currently enabled.
@return [BOOLEAN]
[Required] A unique name given to the rule. The name must be unique within the tenancy, and cannot be modified. @return [String]
[Required] Name of the Object
Storage bucket. @return [String]
[Required] Object
Storage namespace. @return [String]
The override is used to modify some important configuration properties for objects matching a specific pattern inside the bucket. Supported propeties for override are: logSourceName, charEncoding, entityId. Supported matchType for override are "contains".
@return [Hash<String, Array<OCI::LogAnalytics::Models::PropertyOverride>>]
The oldest time of the file in the bucket to consider for collection. Accepted values are: BEGINNING or CURRENT_TIME or RFC3339 formatted datetime string. Use this for HISTORIC or HISTORIC_LIVE collection types. When collectionType is LIVE, specifying pollSince value other than CURRENT_TIME will result in error.
@return [String]
The newest time of the file in the bucket to consider for collection. Accepted values are: CURRENT_TIME or RFC3339 formatted datetime string. Use this for HISTORIC collection type. When collectionType is LIVE or HISTORIC_LIVE, specifying pollTill will result in error.
@return [String]
Public Class Methods
Attribute mapping from ruby-style variable name to JSON key.
# File lib/oci/log_analytics/models/create_log_analytics_object_collection_rule_details.rb, line 103 def self.attribute_map { # rubocop:disable Style/SymbolLiteral 'name': :'name', 'description': :'description', 'compartment_id': :'compartmentId', 'os_namespace': :'osNamespace', 'os_bucket_name': :'osBucketName', 'collection_type': :'collectionType', 'poll_since': :'pollSince', 'poll_till': :'pollTill', 'log_group_id': :'logGroupId', 'log_source_name': :'logSourceName', 'entity_id': :'entityId', 'char_encoding': :'charEncoding', 'is_enabled': :'isEnabled', 'overrides': :'overrides', 'defined_tags': :'definedTags', 'freeform_tags': :'freeformTags' # rubocop:enable Style/SymbolLiteral } end
Initializes the object @param [Hash] attributes Model attributes in the form of hash @option attributes [String] :name The value to assign to the {#name} property @option attributes [String] :description The value to assign to the {#description} property @option attributes [String] :compartment_id The value to assign to the {#compartment_id} property @option attributes [String] :os_namespace The value to assign to the {#os_namespace} property @option attributes [String] :os_bucket_name The value to assign to the {#os_bucket_name} property @option attributes [String] :collection_type The value to assign to the {#collection_type} property @option attributes [String] :poll_since The value to assign to the {#poll_since} property @option attributes [String] :poll_till The value to assign to the {#poll_till} property @option attributes [String] :log_group_id The value to assign to the {#log_group_id} property @option attributes [String] :log_source_name The value to assign to the {#log_source_name} property @option attributes [String] :entity_id The value to assign to the {#entity_id} property @option attributes [String] :char_encoding The value to assign to the {#char_encoding} property @option attributes [BOOLEAN] :is_enabled The value to assign to the {#is_enabled} property @option attributes [Hash<String, Array<OCI::LogAnalytics::Models::PropertyOverride>>] :overrides The value to assign to the {#overrides} property @option attributes [Hash<String, Hash<String, Object>>] :defined_tags The value to assign to the {#defined_tags} property @option attributes [Hash<String, String>] :freeform_tags The value to assign to the {#freeform_tags} property
# File lib/oci/log_analytics/models/create_log_analytics_object_collection_rule_details.rb, line 172 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.name = attributes[:'name'] if attributes[:'name'] self.description = attributes[:'description'] if attributes[:'description'] self.compartment_id = attributes[:'compartmentId'] if attributes[:'compartmentId'] raise 'You cannot provide both :compartmentId and :compartment_id' if attributes.key?(:'compartmentId') && attributes.key?(:'compartment_id') self.compartment_id = attributes[:'compartment_id'] if attributes[:'compartment_id'] self.os_namespace = attributes[:'osNamespace'] if attributes[:'osNamespace'] raise 'You cannot provide both :osNamespace and :os_namespace' if attributes.key?(:'osNamespace') && attributes.key?(:'os_namespace') self.os_namespace = attributes[:'os_namespace'] if attributes[:'os_namespace'] self.os_bucket_name = attributes[:'osBucketName'] if attributes[:'osBucketName'] raise 'You cannot provide both :osBucketName and :os_bucket_name' if attributes.key?(:'osBucketName') && attributes.key?(:'os_bucket_name') self.os_bucket_name = attributes[:'os_bucket_name'] if attributes[:'os_bucket_name'] self.collection_type = attributes[:'collectionType'] if attributes[:'collectionType'] self.collection_type = "LIVE" if collection_type.nil? && !attributes.key?(:'collectionType') # rubocop:disable Style/StringLiterals raise 'You cannot provide both :collectionType and :collection_type' if attributes.key?(:'collectionType') && attributes.key?(:'collection_type') self.collection_type = attributes[:'collection_type'] if attributes[:'collection_type'] self.collection_type = "LIVE" if collection_type.nil? && !attributes.key?(:'collectionType') && !attributes.key?(:'collection_type') # rubocop:disable Style/StringLiterals self.poll_since = attributes[:'pollSince'] if attributes[:'pollSince'] self.poll_since = "CURRENT_TIME" if poll_since.nil? && !attributes.key?(:'pollSince') # rubocop:disable Style/StringLiterals raise 'You cannot provide both :pollSince and :poll_since' if attributes.key?(:'pollSince') && attributes.key?(:'poll_since') self.poll_since = attributes[:'poll_since'] if attributes[:'poll_since'] self.poll_since = "CURRENT_TIME" if poll_since.nil? && !attributes.key?(:'pollSince') && !attributes.key?(:'poll_since') # rubocop:disable Style/StringLiterals self.poll_till = attributes[:'pollTill'] if attributes[:'pollTill'] self.poll_till = "null" if poll_till.nil? && !attributes.key?(:'pollTill') # rubocop:disable Style/StringLiterals raise 'You cannot provide both :pollTill and :poll_till' if attributes.key?(:'pollTill') && attributes.key?(:'poll_till') self.poll_till = attributes[:'poll_till'] if attributes[:'poll_till'] self.poll_till = "null" if poll_till.nil? && !attributes.key?(:'pollTill') && !attributes.key?(:'poll_till') # rubocop:disable Style/StringLiterals self.log_group_id = attributes[:'logGroupId'] if attributes[:'logGroupId'] raise 'You cannot provide both :logGroupId and :log_group_id' if attributes.key?(:'logGroupId') && attributes.key?(:'log_group_id') self.log_group_id = attributes[:'log_group_id'] if attributes[:'log_group_id'] self.log_source_name = attributes[:'logSourceName'] if attributes[:'logSourceName'] raise 'You cannot provide both :logSourceName and :log_source_name' if attributes.key?(:'logSourceName') && attributes.key?(:'log_source_name') self.log_source_name = attributes[:'log_source_name'] if attributes[:'log_source_name'] self.entity_id = attributes[:'entityId'] if attributes[:'entityId'] raise 'You cannot provide both :entityId and :entity_id' if attributes.key?(:'entityId') && attributes.key?(:'entity_id') self.entity_id = attributes[:'entity_id'] if attributes[:'entity_id'] self.char_encoding = attributes[:'charEncoding'] if attributes[:'charEncoding'] raise 'You cannot provide both :charEncoding and :char_encoding' if attributes.key?(:'charEncoding') && attributes.key?(:'char_encoding') self.char_encoding = attributes[:'char_encoding'] if attributes[:'char_encoding'] self.is_enabled = attributes[:'isEnabled'] unless attributes[:'isEnabled'].nil? self.is_enabled = true if is_enabled.nil? && !attributes.key?(:'isEnabled') # rubocop:disable Style/StringLiterals raise 'You cannot provide both :isEnabled and :is_enabled' if attributes.key?(:'isEnabled') && attributes.key?(:'is_enabled') self.is_enabled = attributes[:'is_enabled'] unless attributes[:'is_enabled'].nil? self.is_enabled = true if is_enabled.nil? && !attributes.key?(:'isEnabled') && !attributes.key?(:'is_enabled') # rubocop:disable Style/StringLiterals self.overrides = attributes[:'overrides'] if attributes[:'overrides'] self.defined_tags = attributes[:'definedTags'] if attributes[:'definedTags'] raise 'You cannot provide both :definedTags and :defined_tags' if attributes.key?(:'definedTags') && attributes.key?(:'defined_tags') self.defined_tags = attributes[:'defined_tags'] if attributes[:'defined_tags'] self.freeform_tags = attributes[:'freeformTags'] if attributes[:'freeformTags'] raise 'You cannot provide both :freeformTags and :freeform_tags' if attributes.key?(:'freeformTags') && attributes.key?(:'freeform_tags') self.freeform_tags = attributes[:'freeform_tags'] if attributes[:'freeform_tags'] end
Attribute type mapping.
# File lib/oci/log_analytics/models/create_log_analytics_object_collection_rule_details.rb, line 127 def self.swagger_types { # rubocop:disable Style/SymbolLiteral 'name': :'String', 'description': :'String', 'compartment_id': :'String', 'os_namespace': :'String', 'os_bucket_name': :'String', 'collection_type': :'String', 'poll_since': :'String', 'poll_till': :'String', 'log_group_id': :'String', 'log_source_name': :'String', 'entity_id': :'String', 'char_encoding': :'String', 'is_enabled': :'BOOLEAN', 'overrides': :'Hash<String, Array<OCI::LogAnalytics::Models::PropertyOverride>>', 'defined_tags': :'Hash<String, Hash<String, Object>>', 'freeform_tags': :'Hash<String, String>' # rubocop:enable Style/SymbolLiteral } end
Public Instance Methods
Checks equality by comparing each attribute. @param [Object] other the other object to be compared
# File lib/oci/log_analytics/models/create_log_analytics_object_collection_rule_details.rb, line 286 def ==(other) return true if equal?(other) self.class == other.class && name == other.name && description == other.description && compartment_id == other.compartment_id && os_namespace == other.os_namespace && os_bucket_name == other.os_bucket_name && collection_type == other.collection_type && poll_since == other.poll_since && poll_till == other.poll_till && log_group_id == other.log_group_id && log_source_name == other.log_source_name && entity_id == other.entity_id && char_encoding == other.char_encoding && is_enabled == other.is_enabled && overrides == other.overrides && defined_tags == other.defined_tags && freeform_tags == other.freeform_tags end
Builds the object from hash @param [Hash] attributes Model attributes in the form of hash @return [Object] Returns the model itself
# File lib/oci/log_analytics/models/create_log_analytics_object_collection_rule_details.rb, line 331 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
Custom attribute writer method checking allowed values (enum). @param [Object] collection_type
Object
to be assigned
# File lib/oci/log_analytics/models/create_log_analytics_object_collection_rule_details.rb, line 275 def collection_type=(collection_type) raise "Invalid value for 'collection_type': this must be one of the values in COLLECTION_TYPE_ENUM." if collection_type && !COLLECTION_TYPE_ENUM.include?(collection_type) @collection_type = collection_type end
@see the `==` method @param [Object] other the other object to be compared
# File lib/oci/log_analytics/models/create_log_analytics_object_collection_rule_details.rb, line 311 def eql?(other) self == other end
Calculates hash code according to all attributes. @return [Fixnum] Hash code
# File lib/oci/log_analytics/models/create_log_analytics_object_collection_rule_details.rb, line 320 def hash [name, description, compartment_id, os_namespace, os_bucket_name, collection_type, poll_since, poll_till, log_group_id, log_source_name, entity_id, char_encoding, is_enabled, overrides, defined_tags, freeform_tags].hash end
Returns the object in the form of hash @return [Hash] Returns the object in the form of hash
# File lib/oci/log_analytics/models/create_log_analytics_object_collection_rule_details.rb, line 364 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
Returns the string representation of the object @return [String] String presentation of the object
# File lib/oci/log_analytics/models/create_log_analytics_object_collection_rule_details.rb, line 358 def to_s to_hash.to_s end
Private Instance Methods
Outputs non-array value in the form of hash For object, use to_hash. Otherwise, just return the value @param [Object] value Any valid value @return [Hash] Returns the value in the form of hash
# File lib/oci/log_analytics/models/create_log_analytics_object_collection_rule_details.rb, line 381 def _to_hash(value) if value.is_a?(Array) value.compact.map { |v| _to_hash(v) } elsif value.is_a?(Hash) {}.tap do |hash| value.each { |k, v| hash[k] = _to_hash(v) } end elsif value.respond_to? :to_hash value.to_hash else value end end