def parse
      self.result ||= Payload.new.tap do |payload|
        PayloadRepresenter.new(
          payload
        ).from_json(
          input
        )
      end
    rescue MultiJson::ParseError
      raise InvalidJsonError
    end
def parse
      self.result ||= Payload.new.tap do |payload|
        PayloadRepresenter.new(
          payload
        ).from_json(
          input
        )
      end
    rescue MultiJson::ParseError
      raise InvalidJsonError
    end
Initialize the plugin parser

 @param input [String] the JSON as a string to parse
 @return [Drone::Plugin] the instance of that class
 Parse the provided payload

 @return [Drone::Payload] the parsed payload within model
 @raise [Drone::InvalidJsonError] if the provided JSON is invalid