public function get_object_type_by_name($NAME, $TYPE)
    {
        // Get our valid object types
        $TYPES = $this->object_types();
        // TransPattern is not valid for get-item-by-NAME, must use UUID or a combination of name and routepartitionname
        $TYPES = array_diff($TYPES, ['TransPattern']);
        // Lines is not valid for get-item-by-name, must be UUID
        $TYPES = array_diff($TYPES, ['Line']);
        // Check to see if the one we were passed is valid for this function
        if (!in_array($TYPE, $TYPES)) {
            throw new \Exception("Object type provided {$TYPE} is not supported");
        }

        $QUERY = ['name' => $NAME];
        $FUNCTION = 'get'.$TYPE;
        $BASETIME = $this->microtimeTicks();
        $RETURN = $this->SOAPCLIENT->$FUNCTION($QUERY);
        $DIFFTIME = $this->microtimeTicks() - $BASETIME;
        $this->log_soap_call($FUNCTION, $DIFFTIME, $QUERY, $RETURN);
        $RETURN = $this->decode_soap_reply($RETURN);
        $RETURN = reset($RETURN);

        return $RETURN;
    }