Sha256: 2692f264c0732ec9491677b7a636a1d8f4ec2898d5a8024281d216093287faf7

Contents?: true

Size: 1.25 KB

Versions: 1

Compression:

Stored size: 1.25 KB

Contents

# Copyright (c) 2022 Contrast Security, Inc. See https://www.contrastsecurity.com/enduser-terms-0317a for more details.
# frozen_string_literal: true

require_relative 'telemetry_exception_base'
require_relative 'telemetry_exception_message'

module Contrast
  module Agent
    # This class will hold the basic information for a Parent Telemetry Exception Event
    class TelemetryExceptionEvent < Contrast::Agent::TelemetryExceptionBase
      # Array of Telemetry Exclusions
      # @return [Array<Contrast::Agent::TelemetryExceptionMessage>]
      attr_reader :exclusions

      # Initialization of the Parent Event requires us to require the exception
      # to be created
      #
      # @param message [Contrast::Agent::TelemetryExceptionMessage]
      def initialize message
        super()
        validate_class message, Contrast::Agent::TelemetryExceptionMessage, 'exception_message'
        @exclusions = Array.new(1, message)
      end

      # @param message [Contrast::Agent::TelemetryExceptionMessage]
      def push message
        validate_class message, Contrast::Agent::TelemetryExceptionMessage, 'exception_message'
        @exclusions << message
      end

      def to_controlled_hash
        exclusions.map(&:to_controlled_hash)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
contrast-agent-6.0.0 lib/contrast/agent/telemetry/events/exceptions/telemetry_exception_event.rb